我正在解决优化问题。问题有二元约束。求解器(在迭代期间)将这些二进制约束设置为0到1之间的小数(近似于宽松的梯度搜索)。我希望向求解器表明它应该只搜索0..1的不连续值。
有办法做到这一点吗?
或者,OpenSolver中是否有一个算法来模仿simplex-lp并提供全局最优?
这种廉价的方法,就是对一个for循环,并迭代这些值。我想知道是否有办法对其进行短语以便非线性问题变成线性问题。
感谢。
答案 0 :(得分:0)
GRG Nonlinear和Simplex LP方法都使用Branch& amp;面对整数约束时的绑定方法。此方法首先“放宽”整数需求,找到解决方案,然后将其中一个约束修复为整数并找到新的解决方案。 See the Solver on-line documentation
这是一种强力搜索方法,可能需要相当长的时间。
Evolutionary方法使用它自己的算法来处理整数约束,并且通常比其他两种方法快得多。
您要求线性化非线性问题 - 您需要提供更具体的信息才能回答(例如,您的等式是什么?您如何设置求解器问题?等等)