微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Rompr:使用替代功能起作用的动态变量

如何解决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 举报,一经查实,本站将立刻删除。