public class PushRelabelMaximumFlow<V,E> extends MaximumFlowAlgorithmBase<V,E>
Push-relabel maximum flow algorithm designed by Andrew V. Goldberg and Robert Tarjan. Current implementation complexity upper-bound is O(V^3). For more details see: "A new approach to the maximum flow problem" by Andrew V. Goldberg and Robert Tarjan STOC '86: Proceedings of the eighteenth annual ACM symposium on Theory of computing
Modifier and Type | Class and Description |
---|---|
class |
PushRelabelMaximumFlow.EdgeExtension |
class |
PushRelabelMaximumFlow.VertexExtension |
MaximumFlowAlgorithm.MaximumFlow<V,E>, MaximumFlowAlgorithm.MaximumFlowImpl<V,E>
DEFAULT_EPSILON
Constructor and Description |
---|
PushRelabelMaximumFlow(DirectedGraph<V,E> network) |
Modifier and Type | Method and Description |
---|---|
MaximumFlowAlgorithm.MaximumFlow<V,E> |
buildMaximumFlow(V source,
V sink)
Builds maximum flow for the supplied network flow, for the supplied
${source} and ${sink}
|
void |
initialize(PushRelabelMaximumFlow.VertexExtension source,
PushRelabelMaximumFlow.VertexExtension sink,
Queue<PushRelabelMaximumFlow.VertexExtension> active) |
protected void |
pushFlowThrough(PushRelabelMaximumFlow.EdgeExtension ex,
double f) |
compareFlowTo, composeFlow, edgeExtended, pushFlowThrough, vertexExtended
public PushRelabelMaximumFlow(DirectedGraph<V,E> network)
public void initialize(PushRelabelMaximumFlow.VertexExtension source, PushRelabelMaximumFlow.VertexExtension sink, Queue<PushRelabelMaximumFlow.VertexExtension> active)
public MaximumFlowAlgorithm.MaximumFlow<V,E> buildMaximumFlow(V source, V sink)
MaximumFlowAlgorithm
source
- source of the flow inside the networksink
- sink of the flow inside the networkprotected void pushFlowThrough(PushRelabelMaximumFlow.EdgeExtension ex, double f)
Copyright © 2016. All rights reserved.