[SCIP] How to get an accurate dual solution to a LP?
Jakob Witzig
witzig at zib.de
Mon Nov 11 17:17:51 CET 2019
Hi Sebastian,
since SCIP is MIP solver, it usually doesn't take too much care about
dual solution values. Thus, I would recommend to solve your LPs with
SoPlex directly or to change your setup and use SCIP as a
branch-and-price framework. However, if you would like to stay with your
current setup you also have to disable propagation:
propagating/maxrounds = 0
propagating/maxroundsroot = 0
With enabled propagation, only 1163 out of 66789 constraints enter the
LP relaxation, all others were deleted / deactivated during propagation.
Thus, you have solved a different problem and, of course, the dual
multipliers may not match.
Best,
Jakob
Am 11.11.19 um 15:43 schrieb Sebastian Schmidt:
> Hi,
>
> I'm trying to swap from Gurobi to SCIP in my column generation based
> algorithm for MinCostFlow. For this, I need SCIP to solve a linear
> program and generate an accurate dual solution. The dual solution that
> SCIP produces when presolving is disabled seems to be accurate, but
> violates some dual constraints.
>
> I have set the relative gap limit to zero, and the absolute to 0.1,
> half the value of the gcd of my weights and bounds.
>
> I have implemented column generation by regenerating the LP for every
> round from scratch, so I don't use any more functionality of SCIP than
> LP solving.
>
> I have a self-implemented abstract layer between the LP solver and the
> LP generator, and I just swapped out the solver. Using Gurobi,
> everything worked fine, so I'm sure there is no bug elsewhere.
>
> Is there any parameter I need to set to make SCIP produce a feasible
> dual solution, besides setting the presolving maxrounds to zero?
>
> In case this is a bug in SCIP, I attached the problem that gets solved
> wrongly. In the code, I set the bounds of all variables to >= 0 and <=
> SCIPinfinity. Also I disabled presolving as described above.
> The problem is that the dual of Route_choice_constraint_0x5621d4278800
> gets set to 193. But by the goal function coeffecient of the primal
> variable Route_choice_0x5621d4278800_1 which is 191, it should be
> bound to 191. This variable appears besides in the goal function only
> in constraint Route_choice_constraint_0x5621d4278800. So in the dual
> problem there must be a constraint
> Route_choice_constraint_0x5621d4278800 <= 191.
>
> Kind Regards,
> Sebastian Schmidt
>
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> https://listserv.zib.de/mailman/listinfo/scip
--
Jakob Witzig
Zuse Institute Berlin (ZIB)
Division Mathematical Optimization and Scientific Information
Research Group Mathematical Optimization Methods
Takustrasse 7
14195 Berlin
Tel. : +49 (0)30 84185-416
Fax : +49 (0)30 84185-269
email: witzig at zib.de
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.zib.de/pipermail/scip/attachments/20191111/5e07ff41/attachment.html>
More information about the Scip
mailing list