|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectedu.uci.ics.jung.algorithms.IterativeProcess
edu.uci.ics.jung.algorithms.flows.EdmondsKarpMaxFlow
Implements the EdmondsKarpMaxFlow algorithm for solving the maximum flow problem. After the algorithm is executed, each edge is labeled with a MustableDouble value that indicates the flow along that edge.
The algorithm operates on the assumption that the user has provided a UserDatum value of type Number along each edge indicating the capacity available.
An example of using this algorithm is as follows:
EdmondsKarpMaxFlow ek = new EdmondsKarpMaxFlow(graph,sourceVertex,"CAPACITY","FLOW"); ek.evaluate(); // This actually instructs the solver to compute the max flow
| Constructor Summary | |
EdmondsKarpMaxFlow(DirectedGraph directedGraph,
Vertex source,
Vertex sink,
java.lang.String edgeCapacityKey,
java.lang.String edgeFlowKey)
Constructs a new instance of the algorithm solver for a given graph, source, and sink. |
|
| Method Summary | |
DirectedGraph |
getFlowGraph()
Retrieves the flow graph used to compute the max flow |
int |
getMaxFlow()
Returns the max flow value |
java.util.Set |
getMinCutEdges()
Retrieve the min-cut edge set |
java.util.Set |
getNodesInSinkPartition()
Retrieves the nodes lying on the side of the partition (partitioned using the min-cut) of the sink node |
java.util.Set |
getNodesInSourcePartition()
Retrieves the nodes lying on the side of the partition (partitioned using the min-cut) of the source node |
| Methods inherited from class edu.uci.ics.jung.algorithms.IterativeProcess |
evaluate, getDesiredPrecision, getIterations, getMaximumIterations, getPrecision, hasConverged, relativePrecision, setDesiredPrecision, setMaximumIterations |
| Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
public EdmondsKarpMaxFlow(DirectedGraph directedGraph,
Vertex source,
Vertex sink,
java.lang.String edgeCapacityKey,
java.lang.String edgeFlowKey)
directedGraph - the flow graphsource - the source vertexsink - the sink vertexedgeCapacityKey - the UserDatum key that stores the capacity for each edge.edgeFlowKey - the UserDatum key where the solver will place the value of the flow for each edge| Method Detail |
public int getMaxFlow()
public java.util.Set getNodesInSinkPartition()
public java.util.Set getNodesInSourcePartition()
public java.util.Set getMinCutEdges()
public DirectedGraph getFlowGraph()
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||