Originally posted by: EdKlotz
>
> Hello,
>
> Thank you very much. Your suggestions are very helpful.
>
> I have a question regarding the solution time of these MILP problems. I am not quite sure I can interpret the cplex.log file correctly. Please find attached the cplex.log file for one of the problem instances I am considering.
>
> My question is as follows. In my understanding, the column "Objective" reports the objective value at the current node, the column "Best Integer" is the best integer feasible solution, and the "Best Bound" reports the best lower bound for the MILP. Is this correct?
Exactly.
>
> As you can see in the log file, the "Best Bound" remains constant, and equal to the optimal value, through out the algorithm, while the "Best Bound" gradually decreases to the optimal solution (the problem is a minimization). In this example, I have used the default emphasis parameters, and I have also supplied to the solver a list of initial solutions.
>
> I can't quite understand this behavior. Typically, the upper bound converges to the optimal solution very fast and the lower bound takes a lot of time to converge. Why is the problem behaving in this way? Does this has something to do with the indication constraints?
The indicator constraints could indeed be involved here. While the indicator constraints have an advantage as previously discussed regarding
better numerics than the big M formulation, their primary disadvantage is
that when CPLEX relaxes an indicator constraint in a node relaxation for
your MILP, it does so by removing the indicator constraints completely.
This compares unfavorably with relaxing of integer variables, where the
variables remain in the problem (along with their bounds), but are now
continuous. Now, if you use a big M formulation instead of an indicator
formulation and have to use very large big M values, then your big M formulation will have node LP relaxation essentially as weak as the indicator constraints.
Given this background, the question you need to ask is whether you can
formulate your model with modest size big M values. In other words, for
the variables the constraints of interest here, do you know that their
upper bounds are actually quite modest (e.g. <= 10000 or something like
that), but currently you still have infinite upper bounds on those
variables? If so, you might be able to use big M values on the order
of 10000, in which case the big M formulation may be tighter and avoid
some of the numerical disadvantages we previously discussed. In that
case, give the big M formulation a try.
>
> I have tried all the permutations of the emphasis parameters with little success. Most of the time the default parameters seem to be the most robust. Do you have any suggestions on how to accelerate the algorithm? This behavior is the same for most problem instances that I consider. I don't necessarily look for the global optimum but if I stop the algorithm prematurely, the quality of the solution is quite far from optimal, since the "Best Integer" has very slow convergence.
If you already tried MIP emphasis = 3 (i.e. just focus on improving the
best node value), and you still saw no improvement in the best node as
in the log you attached, then the odds are that you will not find other
parameter settings that will make progress in the best node. You might
try setting the presolve symmetry parameter to 5 in addition to MIP emphasis = 3, but I'm not overly optimistic.
Beyond that you might consider an alternate approach where you just
focus on trying to move the best integer solution faster. To that
end, take the best run you had so far, and also set the frequency for
the RINS heuristic to something like 120 nodes. Using interactive CPLEX,
use the command 'set mip strategy rins 120' to do this. That won't speed
help make progress in the best node, but it may help CPLEX find the best
integer solution in less time.
Finally, you could also look into tightening your formulation
by adding cuts specific to your model that CPLEX's more generic cuts
(e.g. flow cover cuts, mixed integer rounding cuts, zero half cuts) will
not find.
Ed
>
> Kind regards,
> Angelos
#CPLEXOptimizers#DecisionOptimization