[Cbc] Problem with root cuts when LP relaxation is integer optimal
John Forrest
john.forrest at fastercoin.com
Sat May 18 08:37:09 EDT 2019
James,
The problem is that the final solve does not use presolve so problem is
large. Normally this doesn't matter but in your case it does. I am
thinking about the best thing to do, but here are two solutions -
1) In CbcSolver.cpp look for
originalSolver->setBasis(*basis);
and add
originalSolver->setHintParam(OsiDoPresolveInResolve, true, OsiHintTry);
This may be what will be changed in code.
2) I have committed to trunk/Cbc/examples presolveBefore.cpp
This also works. If you add
#define SAVE_MEMORY
then it should use less memory which may fix your other problems.
John Forrest
On 17/05/2019 16:09, James Levis wrote:
> I am reading a problem where the LP relaxation is also integer
> optimal. clp solves the problem in ~12 s. CPLEX solves the whole
> problem in several seconds.
>
> CBC finds the LP solution in 1.8 s, and acknowledges that it is the
> optimal solution (|Cbc3007W No integer variables - nothing to do|),
> but then the root cuts change the optimal value by ~300 orders of
> magnitude (|Cuts at root node changed objective from 1.25864e+08 to
> -1.79769e+308|). It then starts the search with a large negative value
> (|200 Obj -1.0630244e+15 Primal inf 3.6043524e+12 (98)|), and works
> back to the actual optimal value over the course of nearly an hour
> (3119 s).
>
> It also states that zero nodes were enumerated and zero iterations
> were performed.
>
> Can anyone tell me what is going on and how to avoid it? In general,
> the LP relaxation will not be integer optimal, so I can't just use clp.
>
> Selected prompt inputs and outputs are provided below:
>
> |`C:\my_directory>cbc Welcome to the CBC MILP Solver Version: Trunk
> (unstable) Build Date: May 3 2019 CoinSolver takes input from
> arguments ( - switches to stdin) Enter ? for list of commands or help
> Coin:import SF_STD.lp Coin:solv Continuous objective value is
> 1.25864e+08 - 1.83 seconds Cgl0002I 6 variables fixed Cgl0004I
> processed model has 18298 rows, 19156 columns (0 integer (0 of which
> binary)) and 137182 elements Cbc3007W No integer variables - nothing
> to do Cuts at root node changed objective from 1.25864e+08 to
> -1.79769e+308 .... Perturbing problem by 0.001% of 0.0057290012 -
> largest nonzero change 0 ( 0%) - largest zero change 1.0005696e-05 0
> Obj 1.2586431e+08 Primal inf 3829487.6 (43) Dual inf 636.78239 (1)
> w.o. free dual inf (0) 200 Obj -1.0630244e+15 Primal inf 3.6043524e+12
> (98) ... 272255 Obj 1.2586085e+08 Optimal - objective value
> 1.2586431e+08 Optimal - objective value 1.2586431e+08 Result - Optimal
> solution found Objective value: 125864307.31267282 Enumerated nodes: 0
> Total iterations: 0 Time (CPU seconds): 3119.13 Time (Wallclock
> seconds): 3119.13|
>
> _______________________________________________
> Cbc mailing list
> Cbc at list.coin-or.org
> https://list.coin-or.org/mailman/listinfo/cbc
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/cbc/attachments/20190518/c0dd2386/attachment.html>
More information about the Cbc
mailing list