Opened 16 years ago

Last modified 12 years ago

#746 new Feature Requests (None)

max flow with lower bounds (capacities)

Reported by: jens- Owned by: Douglas Gregor
Milestone: To Be Determined Component: graph
Version: None Severity: Not Applicable
Keywords: Cc:

Description (last modified by Dave Abrahams)

hello

If I use the push_relabel_max_flow.hpp with only 
upper capacities everything works fine, but now I 
need to include lower capacities.
How can I do this and how can I compute the new flow 
values afterwards?

yours
jens

Change History (10)

comment:1 by maestrodd, 16 years ago

Logged In: YES 
user_id=520483

Hi Jens,

please try to elaborate a little more on what you are doing
and what you want to do.

Cheers,
Stephan

comment:2 by jens-, 16 years ago

Logged In: YES 
user_id=1615116

Hi Stephan,

to be more precise: 
I had given a graph with upper capacities and wanted to 
get the maxflow value. therefore I used the 
boost::adjacency_list, created the residual graph and set 
its residual_capacity and capacity properties as expected 
by the algorithm. This is the input for the 
push_relabel_max_flow.hpp and then I got the flow values 
by capacity - residualcapacity. Works fine!

Now I have to include lower capacities and I would like to 
know if it's possible to use these somehow directly in the 
implemented algorithm. 
Up to now I use a transformation, which adds dummy edges 
to the residual graph so that afterwards the lower 
capacities are eliminated. But this makes the graph bigger 
(more edges). Is there a possibility to use the 
push_relabel_max_flow.hpp without adding edges, just by 
using the property map?

yours
Jens

comment:3 by jens-, 16 years ago

Logged In: YES 
user_id=1615116

A paper in which the transformation from a max flow 
problem with lower capacities (bounds) to one with lower 
capacity (bound) zero is described in:

http://etd.uwaterloo.ca/etd/cquimber2006.pdf

If one finds a solution without adding edges, as done in 
the paper, please tell me!

comment:4 by jens-, 16 years ago

Logged In: YES 
user_id=1615116

mistake in Link, correction:
http://etd.uwaterloo.ca/etd/cquimper2006.pdf

comment:5 by jens-, 16 years ago

Status: assignedclosed
Summary: max flow with lower capacitiesmax flow with lower bounds (capacities)
Logged In: YES 
user_id=1615116

1. capacity == bound

2. Inttroducing lower bounds:
As described in 
R.K. Ahuja, T.L. Magnanti and J.B. Orlin 
"Network flows: Theory, Algorithms, and Applications "

there are implementations of the max flow algorithm that 
work with only residual capacities! (see chapter 6, 
p.191ff)
So it is easy to introduce lower bounds on the edges and 
to solve the max flow problem more efficiently than by 
using dummy edges as done by Berge.
My question: Is there a possibility to have such an 
implementation in the boost library. For future works this 
semms really interesting to me.

comment:6 by Dave Abrahams, 15 years ago

Description: modified (diff)
Owner: changed from nobody to Douglas Gregor
Severity: Showstopper
Status: assignednew

comment:7 by Marshall Clow, 15 years ago

Owner: changed from Douglas Gregor to doug_gregor

Assigned to "doug_gregor" instead of nonexistent user "dgregor"

comment:8 by Douglas Gregor, 14 years ago

Owner: changed from doug_gregor to Douglas Gregor

comment:9 by Jeremiah Willcock, 13 years ago

Severity: ShowstopperNot Applicable

comment:10 by Jeremiah Willcock, 12 years ago

Milestone: To Be Determined
Note: See TracTickets for help on using tickets.