【问题标题】:Binary variables for bin packing with R?用R进行装箱的二进制变量?
【发布时间】:2017-10-04 12:02:48
【问题描述】:

我正在尝试在 R 中为装箱问题构建优化模型。通常有一个二进制变量,如果选择一个图形作为最终结果,则为 1,否则为 0。该变量很有用,因为需要将一些约束设为空。例如,当求解器试图检查矩形图形是否可以放入盒子时(给定盒子的固定高度和宽度以及每个图形的高度和宽度),其中一个约束通常是:

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

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

Bc = 二进制变量。

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

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

在这种情况下我应该搜索虚拟变量还是其他什么?

【问题讨论】:

  • 如果我没看错的话,你可以预先计算一个“人物”是否可以装进盒子里。无需为此使用二进制变量。然后你可以设置X(f,b)=0 如果它不适合。或者更好的是只为有效对生成变量X(f,b)(f,b)

标签: r mathematical-optimization bin-packing


【解决方案1】:

您可以使用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),每个包都为整数决策变量提供了自定义配置。

【讨论】:

    猜你喜欢
    • 2016-11-29
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    • 2018-07-18
    • 2012-06-25
    • 2023-03-21
    • 1970-01-01
    • 2022-07-11
    相关资源
    最近更新 更多