如何解决Rompr:使用替代功能起作用的动态变量
我正在R中使用ompr软件包来解决线性程序。我想知道是否可以将约束添加为动态表达式(在构建模型时未明确键入变量名称的情况)。这是我想要的一个简单示例:
y='x'
m=MIPModel() %>%
add_variable(x,type='integer',ub=5) %>%
add_constraint(y[1]<=2) %>%
set_objective(sum_expr(x[i],i=1:4),sense='max')
这会产生错误Error in check_for_unkNown_vars_impl(model,the_ast) : The expression contains a variable that is not part of the model.
,因为模型环境不知道变量y。在add_constraint
调用中,我想用变量y在全局环境中替换它的值。但是,该包使用substitute
来在单独的环境中提取约束表达式,因此它永远不会在全局环境中寻找y的值。我尝试了多个函数将变量传递给约束(eval(y)
,unquote(y)
deparse(y)
),但是我无法使模型接受它们并求解。有什么方法可以将动态变量传递给在参数值上使用替代值的函数?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。