变量分支与约束分支
Variable branching vs. constraint branching
谁能给我解释一下,变量分支和约束分支之间有什么区别(Ryan 和 Foster)?
我正在阅读这篇文章:
“机组排班中海量广义集划分问题的求解”,作者D.M。 Ryan (J. Op1 Res. Soc. Vol. 4)
在我看来,这与制定为集合划分问题的工作人员排班或护士排班问题完全相同。
两种分支方法都在1个变量上分支,有什么区别?
我正在尝试使用 SCIP 在 Python 中实施 Branch-and-Price。
我还没有读过您所指的文字,但希望可以让您理解 vague/handwavey 为什么约束分支是一项强大的技术。
考虑安排护士的大集合划分问题。
如果我们用 可变分支 来解决这个问题,每个分支都类似于说 "nurse 1,543 can/cannot work shift 16,325" 之类的话。此实例中的每个分支对 整体 解决方案只有 次要 影响。
相反,我们可以使用约束分支,这允许我们在每个分支上进行许多更改。我们这样做是为了将更多 完整性 纳入解决方案。
我们自己定义和分支的"imaginary variables"y_ij可以从行覆盖table中选择。鉴于我们有一组分数 x 变量,y_ij 是我们同时满足约束 i 和 j 的分数。虽然你是对的,这是我们正在分支的"one variable",但它会对解决方案产生更大的影响。
例如,如果我们在 y_12 上 1-branch,那么我们将同时禁止所有不满足约束 1 和 2 的列。选择 y_ij 分支的方法是最接近整数(但仍然是小数)的方法,更喜欢 1-branches 而不是 0-branches.
谁能给我解释一下,变量分支和约束分支之间有什么区别(Ryan 和 Foster)?
我正在阅读这篇文章:
“机组排班中海量广义集划分问题的求解”,作者D.M。 Ryan (J. Op1 Res. Soc. Vol. 4)
在我看来,这与制定为集合划分问题的工作人员排班或护士排班问题完全相同。
两种分支方法都在1个变量上分支,有什么区别?
我正在尝试使用 SCIP 在 Python 中实施 Branch-and-Price。
我还没有读过您所指的文字,但希望可以让您理解 vague/handwavey 为什么约束分支是一项强大的技术。
考虑安排护士的大集合划分问题。 如果我们用 可变分支 来解决这个问题,每个分支都类似于说 "nurse 1,543 can/cannot work shift 16,325" 之类的话。此实例中的每个分支对 整体 解决方案只有 次要 影响。
相反,我们可以使用约束分支,这允许我们在每个分支上进行许多更改。我们这样做是为了将更多 完整性 纳入解决方案。
我们自己定义和分支的"imaginary variables"y_ij可以从行覆盖table中选择。鉴于我们有一组分数 x 变量,y_ij 是我们同时满足约束 i 和 j 的分数。虽然你是对的,这是我们正在分支的"one variable",但它会对解决方案产生更大的影响。
例如,如果我们在 y_12 上 1-branch,那么我们将同时禁止所有不满足约束 1 和 2 的列。选择 y_ij 分支的方法是最接近整数(但仍然是小数)的方法,更喜欢 1-branches 而不是 0-branches.