CPLEX约束问题

时间:2016-10-13 21:38:43

标签: c++14 cplex

我正在构建一个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(...) 让我知道我的模型我不完全理解的是什么?

0 个答案:

没有答案