[Scip] Slow LP re-optimization after branching

Gerald Gamrath gamrath at zib.de
Wed Feb 26 19:46:53 CET 2014


Hi Xavier,

> I realized that in the LP files I sent to you,
> there are a lot of extra artificial variables (at least one by
> constraint),
> whereas in the first log I sent to you, there were only two artifical
> variables for all constraints.
> Please excuse me for that, I had to produce results using this
> initialization, with smaller instances, for another purpose,
> and I forgot to change the code before generating LP files.
> If you need them, I will be able to generate the LP files with two
> artificial variables next week.
yes, that would be good.
>
> Anyway, SCIPprintStatistics tells that, a 65000 * 20000 LP,
> with at least 20000 artificial variables is solved in 300 sec at root
> node.
>
> Then, during column generation, 6920 of 7200 seconds are spent
> reoptimising LPs.
> There are 35 column generation iterations.
> All negative reduced cost columns are added at each iteration (full
> pricing).
>
> In a 7200 seconds run, 223 seconds were spent pricing.
> Almost all the time was spent solving LPs ...
> SCIPprintStatistics output :
>
> Pricers            :   ExecTime  SetupTime      Calls       Vars
>   problem variables:       0.00          -          0          0
>   Exact pricer     :     223.51       0.01         34        605
>
> LP                 :       Time      Calls Iterations  Iter/call  
> Iter/sec  Time-0-It Calls-0-It
>   primal LP        :    6920.86         34     661444   19454.24     
> 95.57       0.00          0
>   dual LP          :      54.79          1      35700   35700.00    
> 651.58       0.00          0
>
> Column generation has not the time to terminate at root node.
>
> Is the LP solved again and again from scratch ?

Yes, this looks like SCIP is solving the LP from scratch over and over
again. This is a known issue which will be fixed in the upcoming SCIP
release. SCIP applies an objective limit for LP solving, which means
that the dual simplex stops when reaching the objective limit. Normally,
the current node could be cut off, in a branch-and-price context,
pricing has to be done, but this can also be done with the current dual
solution values. Actually, you can see this as a kind of stabilization.
On the other hand, the current basis is then only dual feasible and
adding new columns leads to loosing the dual feasibility as well and the
LP needs to be reoptimized from scratch. In particular with as many
variables as you have, this can slow down your LP solving significantly.

We are working hard on finishing the release until tomorrow, please
check it out then and try it. It should resolve your problem and reduce
the LP reoptimization time.

Best,
Gerald



More information about the Scip mailing list