Excel求解器不服从二进制约束

我在Excel中创build了一个与Solver结合使用的模型。 它大部分工作。 唯一的问题是,求解器并不是真的将被约束为二进制的单元格视为正确的。 当find解决scheme时,其中一些数字实际上是0.9999996,1.0000000003,0.0000017等等。

我在Mac OS X上使用Excel 2004。有什么想法?

由于计算机的有限精度和优化algorithm的性质,求解器具有内置公差。我尝试在求解参数对话框中select选项button,然后提高精度(比如从0.000001到0.00000001) 。 我不确定这是否可行,但值得一试。

我的公司做了一个商业级的求职者挂钩到Excel称为What'sBest。 如果上述不起作用,你可以考虑。 你可以在www.lindo.comfind更多信息

如果二进制值远离0或1,则可能必须转到Solver窗口中的选项,并检查“忽略整数约束是否已选中”框。

如果求解器无法在时间范围内find解决scheme或允许的迭代次数(或者如果没有正确答案),则不会返回二进制答案。

一个可能的解决方法, 取决于你想要解决的问题的types 以及你需要的确切答案 ,就是设置几个单元格(可能是你正在计算的单元格中的值最小的单元格) <=1>=0而不是二进制。 你提供的图片没有显示,所以我不完全确定你以后的样子。

(对于没有设置为二进制的单元,设置一个带有副产品的单元格可能会有所帮助;请参见下文。

举个例子,如果你试图解决总共22个问题(没有解决方法),你可以从下面开始:

 9 1 9 1 9 1 6 1 3 1 

如果您将第二列中的所有值设置为二进制,则最终将包含:

 9 0.5625 9 0.5625 9 0.5625 6 0.708333333 3 0.854166667 

如果您将前3个设置为二进制,而后两个设置为<=1>=0 ,则最终结果为:

 9 0 9 1 9 1 6 0.333333333 3 0.666666667 

最后两行的sumproduct = 4,你可以用它来手动设置最后两个中的一个为1,另一个为0,这取决于你是否想要一个稍微低于或高于目标的回答。

我有类似的问题,可以解决它通过解决选项,然后检查“使用自动缩放”。 我不确定这会不会解决您的问题,但值得一试。

可能不是您的问题,但请注意在Excel解算器中默认选中的选项中存在“ Ignore Integer Constraintscheckbox。 至less在我的Excel 2011 for Mac版本中就是这种情况。