R 中的混合整数线性规划

Mixed Integer Linear Programming in R

我正在寻找解决 R 中形式的问题:

哪里

是一个指示函数,如果参数 (.) 为真则等于 1,否则为零。

我查看了 lpSolve、Rcplex 和 crs 包,但我不太明白如何将我的问题放入这些包提供的函数中。我真的不知道如何将我的指标函数合并到 objective 中。我考虑过让我的控件本身成为二进制 W,但随后我将不得不提供 lambda(权重),但是,我的兴趣是找到 lambda 的最佳组合,而不是 W。

你基本上想要

z<=r => w=1

这可以写成

w=0 => z>r

z >= r + 0.001 - M*w

其中 M 是一个足够大的常量(但最好不要太大)。 Cplex 和 Gurobi 等一些求解器具有指标约束:这样可以直接表达最后的蕴涵,而无需求助于大 M 公式。