COIN-OR::LEMON - Graph Library

Custom Query (512 matches)


Show under each result:

Results (13 - 15 of 512)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Ticket Resolution Summary Owner Reporter
#607 fixed Bug in DIMACS reader method Peter Kovacs Peter Kovacs

The type checking code in readDimacsCap() is incorrect, see the attached patch.

#606 fixed StaticDigraph copy constructor Alpar Juttner Gabriel Gouvine

While using StaticDigraph, I saw that the copy constructor is not disabled, which leads to errors for new users like myself. Could you please fix this by including this patch?

#605 invalid Overflow in Optimal Cost Alpar Juttner mgara

Motivation ==========

Please consider the following simple class of problems (which I will refer to as the primal MRF problem [1]):

max_{x,r} c' r


r = |Ax - b|

where A is a network/graph matrix (the rows define the oriented edges, the matrix is Totally Unimodular), and c >= 0, b are integral vectors. The dual of this problem is an instance of an MCF problem defined on a graph represented by the network matrix A with b as the costs of the edges and c as the capacities. Strong duality holds here.

In our work, we are interested in examining and evaluating different approaches to solving either the MRF or MCF problem using either primal, dual or primal-dual methods. The context we have in mind is application to image processing tasks, in particular we are interested in the phase unwrapping problem in InSAR.

Properties of MCF Instances ===========================

  1. The MCF dual problem of the MRF problem is defined on the same graph as

defined by A, with the addition of an opposite arc with negative cost for every oriented arc in A.

  1. The MCF dual problem has no node imbalances by definition. The network flow

condition must still be enforced.

  1. By corollary of 1 & 2, the optimal values for the MCF dual problem must be


Current Issue with Lemon: =========================

Please consider the attached code that was tested with Lemon version 1.3.1. It should be self contained and compilable with the make command if the LEMON_HOME directory is correctly set in the Makefile.

Once compiled it can be run as follows (assuming a linux environment with a BASH shell) to reproduce the issue.

for scale in $(seq .1 .1 .4); do ./lemon_mcf_solver netgen_8_08a.txt $scale; done > output.txt

In output.txt we should see that as we scale the costs b by a factor of .1 - .4 smoothly we get a negative optimal value initially, but when we reach .4 we obtain a positive optimal value:

grep "simplex cost:\|scaling costs" output.txt

INFO: scaling costs by 0.100000 INFO: network simplex cost: -575280232 INFO: scaling costs by 0.200000 INFO: network simplex cost: -1154018674 INFO: scaling costs by 0.300000 INFO: network simplex cost: -1732004546 INFO: scaling costs by 0.400000 INFO: network simplex cost: 1984124216

Given property 3 of these MCF instances we know that positive cost solution is impossible to these MCF instances. In fact, we've verified that the solution is correct up to scale .3 (by comparing with other solvers) and around the scale of .4 is when we hit this issue.

We came across this issue by modifying some NETGEN instances to have the properties of the MCF dual problem we expect.

Please let us know if this is an issue with how we are using the Lemon library, or perhaps if this is a bug in the Lemon library that can be addressed.

Thank you in advance, Matt

[1] Kolmogorov, Vladimir. "Primal-dual algorithm for convex Markov random fields." Microsoft Research MSR-TR-2005-117 (2005).

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Note: See TracQuery for help on using queries.