<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Hi Sebastian,<br>
<br>
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:<br>
<br>
propagating/maxrounds = 0<br>
propagating/maxroundsroot = 0<br>
<br>
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.<br>
<br>
Best,<br>
Jakob <br>
<br>
<div class="moz-cite-prefix">Am 11.11.19 um 15:43 schrieb Sebastian
Schmidt:<br>
</div>
<blockquote type="cite"
cite="mid:fa59828a58509bec4e57ea052a5d369b8366a64d.camel@informatik.uni-halle.de">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div>Hi,</div>
<div><br>
</div>
<div>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.</div>
<div><br>
</div>
<div>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.</div>
<div><br>
</div>
<div>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.</div>
<div><br>
</div>
<div>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.</div>
<div><br>
</div>
<div>Is there any parameter I need to set to make SCIP produce a
feasible dual solution, besides setting the presolving maxrounds
to zero?</div>
<div><br>
</div>
<div>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.</div>
<div>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.</div>
<div><br>
</div>
<div>Kind Regards,</div>
<div>Sebastian Schmidt</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
Scip mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Scip@zib.de">Scip@zib.de</a>
<a class="moz-txt-link-freetext" href="https://listserv.zib.de/mailman/listinfo/scip">https://listserv.zib.de/mailman/listinfo/scip</a>
</pre>
</blockquote>
<br>
<pre class="moz-signature" cols="72">--
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: <a class="moz-txt-link-abbreviated" href="mailto:witzig@zib.de">witzig@zib.de</a></pre>
</body>
</html>