[Scip] LP not solved but heuristic called
Gerald Gamrath
gamrath at zib.de
Fri Oct 24 19:43:07 CEST 2014
Dear Jens,
heuristics with timing SCIP_HEURTIMING_AFTERLPLOOP are called after the
LP solving loop at a node was finished, but (perhaps a bit
counter-intuitively) independently of whether the LP was solved to
optimality. In your case, there probably are numerical troubles at node
175 (please set the verblevel to 5 to verify this), so the LP at this
node could not be solved.
I would suggest to add a check in your heuristic which stops the
procedure if the LP was not solved to optimality. This is already done
in many of SCIP's heuristics, see, e.g., heur_rounding.c.
By the way: For what you are doing, a heuristic is not really the
correct plugin, but you should better use a relaxation handler. If you
set the priority of your relaxator to a negative value, it will always
be called after the LP solving.
Best,
Gerald
> Hello Mailinglist,
>
> I implemented a heuristic to update the dual bound of the current
> node. Its timingmask is SCIP_HEURTIMING_AFTERLPLOOP, and it needs to
> results of all the pricingproblems of the last iteration in the
> pricing loop, as well as the LP solution and duals.
>
> For some reason the LP does not get solved for node 175 (see the
> extract from the log file below), but the heuristic is called.
> At least I guess the LP was not solved, because there is no output
> from the LP solver, as is the case for other nodes.
>
> This results in the heuristic taking the pricing results of the
> previous iteration, and the old LP solution which is not feasible for
> the current node.
>
> Does anyone know where the trouble might come from?
>
> Thanks
>
> Jens Leoff
>
>
>
>
> 2.5s| 174 | 150 | 10713 | 45.3 |5608k| 73 | 23 |1809 | 784
> |1808 | 819 | 0 | 0 | 0 | 8.183333e+01 | -- | Inf
> In 'scip_active'..of cons: sequence: [19 >= 2], bound: 1.00000000e+00
> In 'scip_prop' of GBBranchingDecisions..
>
> ICHBAS02 basis redimensioning invalidates factorization
> IBASIS02 loading of Basis invalidates factorization
> starting value = 8.20000000e+01
> starting shift = 0.00000000e+00
> type | time | iters | facts | shift | value
> L | 0.0 | 0 | 414 | 0.00e+00 | 8.20000000e+01
> WDEVEX02 trying refinement step..
> --- checking feasibility and optimality
> --- solve(leave) triggers refactorization
> --- refactorizing basis matrix
> --- leave finished. iteration: 6, value: 8.20066667e+01, shift:
> 0.00000000e+00, epsilon: 1.00000000e-16, feastol: 1.00000000e-06,
> opttol: 1.00000000e-07
> ISOLVE57 stop: 0, basis status: DUAL (1), solver status: RUNNING (-1)
> DSHIFT07 = unshifting ...
> --- maxInfeas: 3.88578059e-16, shift: 0.00000000e+00, leavetol:
> 1.00000000e-07
> Finished solving (status=OPTIMAL, iters=6, leave=6, enter=0, flips=0,
> objValue=8.20066667e+01)
>
> In 'priceSubproblems' (redCost)..
>
> In 'scip_exec' of HeurLagrangeanDualBound..
> globalDualBound: 8.18333333e+01, localDualBound: 8.20066667e+01,
> lagrangeanDualBound: 8.20066667e+01
>
> 2.5s| 175 | 151 | 10719 | 45.0 |5610k| 74 | 38 |1809 | 784
> |1808 | 820 | 0 | 0 | 0 | 8.183333e+01 | -- | Inf
> In 'scip_deactive'..of cons: sequence: [19 >= 2], bound: 1.00000000e+00
> In 'scip_active'..of cons: sequence: [19 < 2], bound: 1.20000000e+01
> In 'scip_prop' of GBBranchingDecisions..
> In 'scip_exec' of HeurLagrangeanDualBound..
>
> pricing results:
> [(sequence: [], -2.22044605e-16), (sequence: [19 >= 2], -1.11022302e-16)]
> stack:
> [(sequence: [19 < 2], 0xfb7ed0, L: 1.20000000e+01)]
>
> trackLength: 1.19066667e+01
>
> *** Program received signal SIGABRT (Aborted) ***
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> http://listserv.zib.de/mailman/listinfo/scip
More information about the Scip
mailing list