线性规划问题:最小化使用的卡车数量

问题描述

我需要用线性整数程序建模以下问题:

我们需要将 n 个不同的产品从工厂运送到仓库。每个产品都有自己的权重(元素 i 的权重 wi

我尝试了不同的方法,但总是无法在目标函数中对卡车数量进行建模。

我使用了一个变量 Yij,如果卡车 i 携带物品 j,则该变量等于 1,否则为 0,并设法编写了不同的约束条件。但我找不到如何计算使用该变量的卡车数量

如果有人有任何建议,那将非常有帮助。

谢谢

解决方法

假设 Yij 是一个充满二元变量rectangular matrix of size (m=items,n=trucks),例如:

truck    0    1   2
item 0   x00  x   x
item 1   x10  x   x
item 2   x20  x   x
item 3   x30  x   x

您可以创建额外的二进制变量 t_used_0(仅针对 truck_0 显示),例如:

sum(Yij_column_0) <= m * t_used_0

    <-> x00 + x10 + x20 + x30 <= 4 * t_used_0

sum(Yij_column_0) >= t_used_0

    <-> x00 + x10 + x20 + x30 >= t_used_0

然后您有 n 个辅助二元变量 t_used_i,您可以将其总结为您的目标

(在那些线性化中有很多自由度(例如等价与仅蕴涵),这在一定程度上解释了用户 abc 要求更多信息的原因。通常,您利用 em> 一切可能。)