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 (将#修改为@)