我正在尝试对跨码头问题建模。它有以下几组:
j 代表出站卡车,
s 用于分拣站和
l 用于出站码头。
此外,还有一个二进制变量 z(j,s),如果出站卡车 j 分配给分拣站 s,则该变量为 1。
在计算之前,您必须将出站码头分配给分拣站。为此,我定义了一个子集 k(s,l)。我的示例如下所示:
Sets
j /J1*J27/
s /S1*S4/
l /L1*L30/
;
Sets k(s,l)
/S1.(L1,L2,L3,L4,L5,L6)
S2.(L7,L8,L9,L10,L11,L12)
S3.(L13,L14,L15,L16,L17,L18,L19,L20)
S4.(L21,L22,L23,L24,L25,L26,L27,L28,L29,L30)/
我的问题是对以下方程建模:
我该如何建模?我试过这样:
方程.. sum(j, z(j,s)) =l= card(k);
但它不起作用,因为 'card(k)' 不代表分配给 Sorting Station 的出站码头数量。所以我的问题是,是否可以在子集上对卡运营商进行建模?
或者有人知道另一种可能的方法来模拟这个方程吗?