问题描述:

I am building a CPLEX model (VRP-like). In one of the model constraints I am forcing an initial flow from the depot to the each one of the different sets of customers I have, at least, sufficient to cope with the demands of the customers of the sets.

As such, say I have n different I[i] sets, with i = 1..n. And then, for each I[i] the sum of the arcs leaving the depot to each one of the elements in I[i] shall count as the capacity of a truck, say Q, if the arc is traversed. Hence, the aforementioned sum shall be greater or equal to the sum of the demands, say d[I[i][j]] for each one of the customers j in I[i] to ensure enough trucks will enter the set I[i].

In other "words": \sum_{j\in I_i} {Q*x_{0, j}}\geq\sum_j\in I_i{d_j}. If I export the CPLEX model I have those constraints, e.g.

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

The first dimension on the ArcRouting(..)(..)(..)(..) variables describes the number of the set of elements, 2 in that case, the second one the vehicle number, ranging from 1 to 10, while the third describes the departure node, and the fourth one the arrival node. That is why the third one is always 1, since node 0 is renamed as 1 during the LP exportation, and the fourth one only contains 44 and 45 since that specific set only contains a couple of elements.

As you can notice, it suffices that an arc be set to one (regardless of the vehicle used or customer from I[2] to visit) to meet the constraint, since, one truck could deliver up to 600.000 units while customers' joint demand is only 12.000 units.

The problem is that when I try to solve the model with the mod.solve() I get the following error:

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)

What is the Infeasibility row 'V.1.FlowCreation_a[1]': 0 >= 12000. letting me know of my model that I don't fully understand?

相关阅读:
Top