线性编程Excel求解器

时间:2018-05-08 15:47:41

标签: excel linear-programming

我正在努力减少B19中的目标函数。为什么解算器找不到任何可行的解决方案?我无法理解。基本上模型是:

变量:
- xi
约束:
- xi是布尔值
- sum(li * xi') < F
- li * xi > F',foreach i
目标函数:
- sum(xi * di)

1 个答案:

答案 0 :(得分:0)

是的,您目前拥有的一组约束,合并时是不可行的。 如果你放松一点,Excel会找到最佳解决方案。

首先,看看pi * xi > 0.6 for all i 这样做有两件事。由于所有pi都大于0,所有xi变量都被强制为1.(0不可能)

另外,请看最后一栏,xi。由于该pi为0.2,即使对于x = 1,xi * pi也不能> 0.6。 (要找到可行的解决方案,您必须将P'降低到0.2

  1. 现在看看你的另一个约束: sum of pi * xi < 5
  2. 你所有的pi加起来都是5.4。由于前一组约束,所有X都被强制取值1.所以你必须使B10至少为5.4。

    所有这一切,我怀疑你不希望你的xi是二进制的。也许,你希望它们是0 <= xi <= 1,,也就是说,它们也可以取小数值。

    放松B10和B16的值后,Excel能够找到解决方案。见下图。

    enter image description here

    根据OP的澄清更新

    1. 你的Xi变量很好。 0表示出租车正在运行,1表示它将进行维修。

    2. 目标功能:最大限度地降低维修成本(慈溪的产品)也很好。

    3. 您必须更改个人出租车限制。正如问题所定义的那样,pi = 0是好的,pi为1是坏的。该公司不希望任何出租车的pi超过阈值P'。

      约束:pi * (1-Xi) <= 0.6(比如说​​)

      想一想:一旦出租车的pi越过门槛,它就会被迫去修理,因为习近平必须成为1。

    4. 全球可用性:为此,您可以简单地总结“可用出租车”并确保超出所需的最低要求(比如5)

      sum(1-xi) >=5

    5. 如果以这种方式设置Excel模型,您将获得可行的解决方案。

      见下图:

      enter image description here

      更新2:包括全球退化指数上限

      如果不是上面的约束4.你想要一个约束,使所有pi的总和保持在一定的限度,你将执行以下操作:

      (1-xi)是出租车服务的指标。

      所以这个约束变为:

      Sum of pi * (1-xi) <= P'

      为方便起见,您可以在Excel中创建一行(1-xi),然后使用该行的Sumproduct和pi行。

      希望有所帮助。