【问题标题】:Excel Solver not obeying binary constraintExcel Solver 不服从二元约束
【发布时间】:2009-08-25 07:11:33
【问题描述】:

我在 Excel 中创建了一个模型以与 Solver 结合使用。它主要工作。唯一的问题是 Solver 并没有真正将受约束的单元格正确地处理为二进制。找到解决方案后,其中一些数字实际上是 0.9999996、1.0000000003、0.0000017 等等。

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

【问题讨论】:

    标签: excel solver


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      由于计算机的有限精度和优化算法的性质,求解器具有内置的容差。我会尝试选择“求解器参数”对话框上的“选项”按钮,然后增加精度(例如从默认值 0.000001为 0.00000001)。我不确定这是否可行,但值得一试。

      我的公司制造了一款与 Excel 挂钩的商业级求解器,名为 What'sBest。如果上述方法不起作用,您可以考虑。您可以在 www.lindo.com 找到更多信息

      【讨论】:

      • 其实默认的精度是5,我改成0了,好像可以了。奇怪的是,如果变量应该是二进制的,我必须摆弄精度! :S 谢谢!
      【解决方案3】:

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

      一种可能的解决方法是设置几个单元格(可能您正在计算的单元格中具有最小值的那些)具有约束<=1>=0 而不是二进制。您提供的图片没有显示出来,所以我不确定您要的是什么。

      (为未设置为二进制的单元格设置一个带有 sumproduct 的单元格可能会有所帮助;见下文。)

      例如,如果您尝试解决总共 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,具体取决于您想要的答案略低于还是高于目标。

      【讨论】:

        【解决方案4】:

        我遇到了类似的问题,可以通过转到求解器选项然后选中“使用自动缩放”来解决它。我不确定这是否会解决您的问题,但值得一试。

        【讨论】:

          【解决方案5】:

          可能不是您的问题,但请注意选项中有一个 Ignore Integer Constraints 复选框,在 Excel 求解器中默认选中该复选框。至少在我的 Excel 2011 for Mac 副本中是这种情况。

          【讨论】:

            【解决方案6】:

            我遇到了同样的事情,取消选中 Ignore Integer Constraints 框为我解决了这个问题。

            【讨论】:

              猜你喜欢
              • 2023-03-06
              • 1970-01-01
              • 1970-01-01
              • 2016-10-09
              • 1970-01-01
              • 1970-01-01
              • 2012-05-22
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多