我正在构建一个CPLEX模型(类似VRP)。在其中一个模型约束中,我强制从仓库到我拥有的每组不同客户的初始流程,至少足以满足集合客户的需求。
因此,我说n
套不同I[i]
套,i = 1..n
。然后,对于每个I[i]
,离开仓库到I[i]
中每个元素的弧的总和将计为卡车的容量,比如Q
,如果弧是走过。因此,上述金额应大于或等于需求的总和,例如d[I[i][j]]
中j
中的每个客户I[i]
,以确保有足够的卡车进入集合I[i]
1}}。
在其他“词语”中:\sum_{j\in I_i} {Q*x_{0, j}}\geq\sum_j\in I_i{d_j}
。如果我导出CPLEX模型,我有这些约束,例如
V.1.FlowCreation_a(1)#1484: 600000 ArcRouting(2)(1)(1)(44)#17223
+ 600000 ArcRouting(2)(1)(1)(45)#17225
+ 600000 ArcRouting(2)(2)(1)(44)#17229
+ 600000 ArcRouting(2)(2)(1)(45)#17231
+ 600000 ArcRouting(2)(3)(1)(44)#17235
+ 600000 ArcRouting(2)(3)(1)(45)#17237
+ 600000 ArcRouting(2)(4)(1)(44)#17241
+ 600000 ArcRouting(2)(4)(1)(45)#17243
+ 600000 ArcRouting(2)(5)(1)(44)#17247
+ 600000 ArcRouting(2)(5)(1)(45)#17249
+ 600000 ArcRouting(2)(6)(1)(44)#17253
+ 600000 ArcRouting(2)(6)(1)(45)#17255
+ 600000 ArcRouting(2)(7)(1)(44)#17259
+ 600000 ArcRouting(2)(7)(1)(45)#17261
+ 600000 ArcRouting(2)(8)(1)(44)#17265
+ 600000 ArcRouting(2)(8)(1)(45)#17267
+ 600000 ArcRouting(2)(9)(1)(44)#17271
+ 600000 ArcRouting(2)(9)(1)(45)#17273
+ 600000 ArcRouting(2)(10)(1)(44)#17277
+ 600000 ArcRouting(2)(10)(1)(45)#17279
>= 12000
ArcRouting(..)(..)(..)(..)
变量的第一个维度描述了元素集的数量,2在这种情况下,第二个维度是车辆编号,范围从1到10,而第三个维度描述了离开节点,第四个到达节点。这就是为什么第三个总是1,因为节点0在LP导出期间被重命名为1,而第四个仅包含44和45,因为该特定集仅包含几个元素。
正如您所注意到的那样,只要将一个弧设置为一个(无论使用的车辆或I[2]
来自mod.solve()
的客户)来满足约束,就足够了,因为,一辆卡车可以提供高达600.000单位客户的共同需求仅为12.000个单位。
问题在于,当我尝试使用Warning: Control callbacks may disable some MIP features.
Lazy constraint(s) or lazy constraint callback is present.
Disabling dual reductions (CPX_PARAM_REDUCE) in presolve.
Disabling non-linear reductions (CPX_PARAM_PRELINEAR) in presolve.
Infeasibility row 'V.1.FlowCreation_a[1]': 0 >= 12000.
Presolve time = 0.08 sec. (20.62 ticks)
Root node processing (before b&c):
Real time = 0.09 sec. (21.15 ticks)
Sequential b&c:
Real time = 0.00 sec. (0.00 ticks)
------------
Total (root+branch&cut) = 0.09 sec. (21.15 ticks)
解决模型时,我收到以下错误:
Infeasibility row 'V.1.FlowCreation_a[1]': 0 >= 12000.
public static readonly DependencyProperty TextViewProperty =
DependencyProperty.Register(...)
让我知道我的模型我不完全理解的是什么?