用R填充箱的二元变量?

时间:2017-10-04 12:02:49

标签: r mathematical-optimization bin-packing

我正在尝试在R中为bin打包问题构建一个优化模型。通常有一个二进制变量,如果为最终结果选择了数字,则为1,否则为0。该变量很有用,因为需要将某些约束置为null。例如,当求解器试图检查矩形图形是否适合框时(给定框的固定高度和宽度以及每个图形的高度和宽度),其中一个约束通常是:

Xc> =((宽度)/ 2)* bc

Xc是图形分配的水平分量(它是在笛卡尔平面中处理的二维问题)

Bc =二元变量。

Thia基本上意味着中心的x分量需要大于数字宽度除以2的数值。这是确保项目不超过框左边界限的约束。如果选择了数字,则二进制变量为1并且检查此约束,否则,零将使右侧部分为空,并且未被考虑的图形的x分量可以是其他任何内容。

我不知道如何设置这些二进制变量。每个图都需要其中一个,而目标函数基本上是最大化这些变量的总和。

在这种情况下我应该搜索虚拟变量吗?

1 个答案:

答案 0 :(得分:0)

您可以使用lpsolvehttps://cran.r-project.org/web/packages/lpSolve/lpSolve.pdf。在此包中的原始lp()中,可以通过int.vec

定义整数变量
  

int.vec :数字向量,给出需要为整数的变量索引。   因此,该向量的长度将是整数变量的数量

还有更多此类MIP包(检查here;目前为cplexAPI,glpkAPI,lpSolve,lpSolveAPI,Rcplex,Rglpk,rLindo,Rmosek,Rsymphony),每个包都有自定义的整数决策变量。