是否有可靠的工具或源代码(最好是C ++)通过单纯形法解决有界变量的LP?在我的问题中,所有变量都限定为1.
我实际上在StackOverflow帖子中发现了一些工具:SoPlex,CLP和lpsolve。
其中,我认为SoPlex更为广泛。在文档中,据说SoPlex考虑了变量边界。然后它说:
“如果所有原始变量都在它们的范围内,则Simplex基础被称为原始可行。类似地,如果所有双变量都在它们的范围内,则它被称为双重可行。如果基础是两者,原始和双重可行,找到了最佳解决方案。“
我的印象是它没有强制在变量范围内的基础,而是检查解决方案的变量是否在边界内。如果是这样,它认为解决方案是最佳的。
是否有任何工具可以找到考虑变量边界的可行解决方案?
答案 0 :(得分:0)
带有限或有盒装变量的LP是完全正常的,非常常见。就像有远程约束的问题一样,即左侧和右侧的约束。
SoPlex能够同时运行原始和双重单纯形。它从松弛的基础开始 - 所有变量都在一个边界上 - 并相应地移动边界,使得这个基础对于相应的单形类型是原始的或双重可行的。
获得可行基础的另一种可能性是使用所谓的阶段1.这解决了修改后的LP并切换回原来的。