线性规划 Excel 求解器

Linear Programming Excel Solver

我正在尝试最小化 B19 中的 objective 函数。为什么求解器找不到任何可行的解决方案?我不明白。基本上模型是:

变量:
-xi
约束:
- xi 是布尔值
- sum(li * xi') < F
- li * xi > F' , foreach i
Objective 功能:
- sum(xi * di)

是的,您当前拥有的一组约束合并后 是不可行的。 如果稍微放松一下,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

你所有圆周率加起来是 5.4。并且由于之前的一组限制,所有的X都被强制取值为1。所以你必须让B10至少为5.4。

综上所述,我怀疑您不希望 xi 是二进制的。也许,您希望它们是 0 <= xi <= 1,,也就是说,它们也可以取小数值。

放宽B10和B16的值后,Excel找到了解决办法。见下图。

根据 OP 的说明更新

  1. 您的 Xi 变量没问题。 0表示出租车运行,1表示会去维修

  2. Objective函数:最小化修复成本(Sumproduct of Ci Xi)也可以。

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

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

    想一想:一旦任何出租车的pi超过阈值,它就会被强制修理,因为Xi必须变为1。

  4. 全球可用性:为此,您可以简单地总结 'available taxis' 并确保超过所需的最小值(比如 5)

    sum(1-xi) >=5

如果您以这种方式设置您的 Excel 模型,您将得到一个可行的解决方案。

见下图:

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

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

(1-xi)是在用出租车的指标。

所以这个约束变成:

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

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

希望对您有所帮助。