[SCIP] Unresolved numerical problems in a set covering formulation

Christoph Hansknecht c.hansknecht at tu-braunschweig.de
Wed Mar 28 18:11:42 CEST 2018


Hello Ambros,

thank you very much for your help and suggestions.

Apparently the problem was indeed due to the different magnitudes of
cost coefficients. I was focused on the condition of the base matrices
instead, so I did not consider that possibility. I implemented Farkas
pricing (Although I would prefer some other means of ensuring primal
feasibility, I will have to think on that).

If you could find the time, I would appreciate it if you could make it
easier to track down numerical problems. "Unresolved numerical problem"
is just a little vague.

Christoph

On Fri, 2018-03-23 at 12:04 +0100, Ambros Gleixner wrote:
> Hi Christoph,
> 
> Some answers inline:
> 
> 
> Am 22.03.2018 um 17:51 schrieb Christoph Hansknecht:
> > Hello all,
> > 
> > I am currently solving a combinatorial problem which consists of
> > covering a set of edges in a graph with a limited number of (s,t)-
> > paths. I have employed a pricing approach which consists of a
> > master
> > program with the following structure:
> > 
> > - Each (s,t)-path has a variable, the path variables
> >   have costs which are supposed to be minimized
> > - Each edge has to be covered by an (s,t)-path
> > - The number of paths is bounded from above
> > - All edges in the graph have binary variables assigned to
> >   them, the variable of an edge has zero cost, an equality
> >   constraint ensures that the value of the edge variable 
> >   is equal to the sum of the variables of the (s,t)-paths
> >   containing that edge.
> > 
> > The exact formulation can be seen here: http://mathb.in/23666
> > 
> > I have added some artificial variables with high cost in order to
> > ensure feasibility. Also, the path variables will be implicitly
> > binary
> > as soon as the edge variables are fixed. 
> > 
> > 
> > 
> > I am pricing new paths based on the dual solution values of the
> > current
> > master problem. I use the edge variables to make sure that the
> > pricing
> > problem is well-behaved deeper down the B&B tree (which would not
> > be
> > the case for 0/1 path variables).
> 
> What do you mean by well-behaved?
> 
> 
> > I implemented the formulation in C++ using scip 4.0.0 / soplex
> > 3.0.0.
> > The approach works as expected and I am able to solve smaller
> > problems.
> > 
> > I therefore ran the program on a larger instance (1200 vertices,
> > 45,000
> > edges, 300 edges need to be covered by 30 paths). After several
> > pricing
> > rounds I got the following message:
> > 
> > (node 1) solution of LP 57 not optimal (pfeas=1, dfeas=0) --
> > solving
> > again with tighter feasibility tolerance
> > 
> > ...
> > 
> > (node 1) unresolved numerical troubles in LP 87 -- using pseudo
> > solution instead (loop 1)
> > 
> > The message was sent while trying to solve the root LP. Scip then
> > went
> > on and started branching immediately. Similar problems occurred in
> > different nodes in the tree:
> > 
> > (node 2) solution of LP 87 not optimal (pfeas=1, dfeas=0) --
> > solving
> > again with tighter feasibility tolerance
> > (node 2) solution of LP 87 not optimal (pfeas=1, dfeas=0) --
> > solving
> > again from scratch
> > (node 2) unresolved numerical troubles in LP 88
> > 
> > Still, scip seemed to work reasonably well nonetheless. After a
> > short
> > while it was reported that the optimal solution has been found. It
> > is
> > however the case that the pricing did not find any new paths after
> > the
> > first occurrence of the numerical problems.
> > 
> > 
> > 
> > I browsed the archives and found a thread with a similar problem:
> > 
> > http://listserv.zib.de/pipermail/scip/2012-March/000891.html
> > 
> > However, the thread seems to be unresolved (apparently, the OP gave
> > up
> > on it?)
> > 
> > Following a suggestion in the thread, I dumped out the problem
> > right
> > before the unresolved numerical problems start in the root LP:
> > 
> > https://pastebin.com/N42NE7Bd
> > 
> > I solved the problem directly (which for some reason works without
> > problems) and displayed the LP solution quality. I got the
> > following
> > back:
> > 
> > Basis matrix condition (estimated): 2.369756e+03
> > Basis matrix condition (exact):     2.369756e+03
> > 
> > The condition seems high to me, but I really have no comparison.
> > 
> > 
> > 
> > 
> > My questions are:
> > - Is this kind of problem common with set covering formulations?
> 
> Not that I would know.
> 
> 
> > - Is the condition of the basis matrix the problem? If
> >   so, do you know of any numerically better set covering
> > formulations?
> 
> No, <1e4 is rather small.
> 
> 
> > - Or is the problem caused by the large costs of the artificial
> >   variables compared to the path costs?
> 
> That could very well be, especially since SCIP reports that dual
> feasibility is the problem (dfeas=0).  If you can reduce the big-M or
> ensure initial feasibility without the z variables or implement the
> Farkas pricing callback, either might solve your issues.  How large
> is
> the M?
> 
> 
> > - Is it a coincidence that the pricer does not find any more
> >   paths as
> > soon as the numerical problem occurs or is the
> >   pricer not able to find
> > new paths due to
> >   numerical problems (dfeas=0 seems to indicate that
> > there
> >   is no feasible dual solution)?
> 
> Without dual solution the redcost pricing cannot be called, so this
> is
> not a coincidence.
> 
> 
> > Is it possible that
> >   a path has
> > been missed and the reportedly optimal
> >   solution is in fact not
> > optimal?
> 
> I don't think so, SCIP should recognize this and treat the dual bound
> from the LP relaxation as invalid.  What does the dual bound column
> say?
> 
> Further suggestions:
> - Update to SCIP 5.0.1 / SoPlex 3.1.1.
> - Experiment with a different LP solver to see if it is a systemative
> formulation or an LP solver issue.
> 
> Best,
> Ambros
> 
> 
> > 
> > I would very much appreciate any help on the problem.
> > 
> > Sincerely,
> > Christoph Hansknecht
> > _______________________________________________
> > Scip mailing list
> > Scip at zib.de
> > https://listserv.zib.de/mailman/listinfo/scip
> > 
> 
> 


More information about the Scip mailing list