[SCIP] SCIP gives the negative dual when a <= constraint is active at rhs

liding xu lidingx.zz at gmail.com
Tue Jun 25 10:42:04 CEST 2019


Hello,
   I am using scip to implement a branch and price algorithm for
unsplittable multi-commodity flow problem:
        min c^T x       (1)
              Ax <= 1,   (2)
              Ex = 1,     (3)
              x is binary.
   where x is path variable, c is positive cost vector, E matrix only
consists of 0, 1 binary, A is a positive capacity matrix, and 1 in (2) and
(3) is unit vector.

  However, in the scip reduced cost pricing plugin, I call
SCIPgetDualsolLinear() for one of constraints (2), but get a negative dual
where the constraint is active at rhs 1. In my knowledge, the dual for <=
constraint can never be negative!

  I recompiled SCIP to enable the SCIP_DEBUG output of the lp.c, and it
display the detail on that pricing LP:

Every cols and rows is right except for one row:

[/home/xld/scip-6.0.1/src/scip/lp.c:14376] debug:  row <clique constraint
107> [-1e+20,1] + 0: activity=1.000000000, dualsol=-5.146793449,
pfeas=1/1(1), dfeas=1/1(1)

And here is statics on this LP solving:
[/home/xld/scip-6.0.1/src/scip/lp.c:12058] debug: solving dual LP
[/home/xld/scip-6.0.1/src/scip/lp.c:11264] debug: calling LP algorithm
<dual simplex> with a time limit of 1e+100 seconds
[/home/xld/scip-6.0.1/src/scip/lp.c:10324] debug: solving LP 7 (20 cols,
164 rows) with dual simplex (diving=0, nduallps=5, ndivinglps=0)
[/home/xld/scip-6.0.1/src/scip/lp.c:10454] debug: solved LP 7 with dual
simplex (diving=0, nduallps=6, ndivinglps=0)
[/home/xld/scip-6.0.1/src/scip/lp.c:11303] debug: LP feasibility:
primalfeasible=1, dualfeasible=1
[/home/xld/scip-6.0.1/src/scip/lp.c:12010] debug: solving LP with dual
simplex returned solstat=1 (internal status: 2, primalfeasible=1,
dualfeasible=1)
[/home/xld/scip-6.0.1/src/scip/lp.c:12307] debug: lpFlushAndSolve()
returned solstat 1 (error=0)
[/home/xld/scip-6.0.1/src/scip/lp.c:14197] debug: getting new LP solution 7
for solstat 1

  It report feasible, but the dual is not within any tolerance, and I also
tried dual simplex and primal simplex of GUROBI and CPLEX, all produce the
same result, it cannot be a numerical result.

  Why the scip produce wrong dual on active constraint?

Liding XU
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.zib.de/pipermail/scip/attachments/20190625/3d7375e9/attachment.html>


More information about the Scip mailing list