[SCIP] Unresolved numerical problems in a set covering formulation

Ambros Gleixner gleixner at zib.de
Fri Mar 23 12:04:59 CET 2018


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
> 

-- 
Ambros Gleixner, Research Group Mathematical Optimization Methods at
Zuse Institute Berlin, http://www.zib.de/gleixner


More information about the Scip mailing list