我目前正在研究MIP问题,我可以利用2类特殊有序集(SOS2)。
我的问题是,我还没有完全理解这些集合。原因是因为我必须为SOS2中的变量赋予权重。
我不确定我应该分配什么。在我的集合中有一个非常明确的顺序,但我不确定权重应该是什么,只是分配1,2,3 ... n我认为不正确?
所以我的问题是,有人可以向我解释一下特殊有序集中变量的权重是什么以及它们应分配给它们的值是什么?
答案 0 :(得分:1)
首先,他们定义了一个排序。特别是对于SOS2集合,存在邻居的概念:在SOS2集合中,只有两个相邻变量可以是非负的。一些求解器也在其分支决策中使用权重。如果您有像(1,2,3,10000)
这样的x值,这可能很有用。请参考您的求解器文档。通常,sos权重应该是唯一的。使用(1,2,3,...)
通常是一个很好的默认值,否则使用像x值这样的东西(假设你没有一个平行于y轴的段)。
请注意,在许多情况下,具有二元变量的配方将胜过SOS配方(特别是高端求解器的情况,可以对具有二元变量的配方应用智能切割)。一些求解器甚至会尝试使用二进制变量自动将一些SOS集重新形成一个表单。