[Lemon-user] Lemon Cycle canceling

Kovács Péter kpeter at inf.elte.hu
Tue Aug 7 22:55:52 CEST 2012


Hi,

> I'm using your library to implement a new cycle canceling algorithm.
> I'm trying to figure out why the number of nodes in the residual network
> is ( n + 1 ).

LEMON implements algorithms for solving a general form of the min cost 
flow problem, in which inequality constraints are allowed (although 
typical definitions of this problem contain equality constraints). For 
the details, see:
http://lemon.cs.elte.hu/pub/doc/1.2.3/a00005.html

To handle this generality, an additional root node is added to the 
underlying graph as well as arcs connecting this root node to each 
oiriginal node (these arcs represent LP slack variables corresponding to 
the supply/demand constraints).

> Also, are you aware that the solution to the circulation algorithm does
> not provide an admissible primal form solution.  meaning that for
> instance in your min_cost_flow_test instance, the solution given
> initially contains a cycle  2-> 10 -> 4 -> 0  and 2 -> 0.  All of these
> arcs have  > 0 and < u flow.  At least one of them should however be at
> 0 or U by modifying the cycle flow by some delta unit.

Yes. Circulation algorithm does not ensure that the returned solution is 
admissible in this sense (i.e. basic). There is a related feature 
request here:
http://lemon.cs.elte.hu/trac/lemon/ticket/216

Moreover, the min cost flow algorithms can also return a non-basic 
solution (in case of cycles with zero total cost) except for NetworkSimplex.

Best regards,
Peter




More information about the Lemon-user mailing list