Module org.jgrapht.core
Package org.jgrapht.alg.flow.mincost
Class MinimumCostFlowProblem.MinimumCostFlowProblemImpl<V,E>
- java.lang.Object
-
- org.jgrapht.alg.flow.mincost.MinimumCostFlowProblem.MinimumCostFlowProblemImpl<V,E>
-
- Type Parameters:
V
- the graph vertex typeE
- the graph edge type
- All Implemented Interfaces:
MinimumCostFlowProblem<V,E>
- Enclosing interface:
- MinimumCostFlowProblem<V,E>
public static class MinimumCostFlowProblem.MinimumCostFlowProblemImpl<V,E> extends Object implements MinimumCostFlowProblem<V,E>
Default implementation of a Minimum Cost Flow Problem
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.jgrapht.alg.flow.mincost.MinimumCostFlowProblem
MinimumCostFlowProblem.MinimumCostFlowProblemImpl<V,E>
-
-
Constructor Summary
Constructors Constructor Description MinimumCostFlowProblemImpl(Graph<V,E> graph, Function<V,Integer> supplyMap, Function<E,Integer> arcCapacityUpperBounds)
Constructs a new minimum cost flow problem without arc capacity lower bounds.MinimumCostFlowProblemImpl(Graph<V,E> graph, Function<V,Integer> nodeSupplies, Function<E,Integer> arcCapacityUpperBounds, Function<E,Integer> arcCapacityLowerBounds)
Constructs a new minimum cost flow problemMinimumCostFlowProblemImpl(Graph<V,E> graph, Function<V,Integer> nodeSupplies, Function<E,Integer> arcCapacityUpperBounds, Function<E,Integer> arcCapacityLowerBounds, Function<E,Double> arcCosts)
Constructs a new minimum cost flow problem
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Function<E,Integer>
getArcCapacityLowerBounds()
Returns a function which specifies the minimum capacity of an arc.Function<E,Integer>
getArcCapacityUpperBounds()
Returns a function which specifies the maximum capacity of an arc.Function<E,Double>
getArcCosts()
Returns a function which specifies the network arc costs.Graph<V,E>
getGraph()
Returns the flow networkFunction<V,Integer>
getNodeSupply()
Returns a function which defines the supply and demand of each node in that network.
-
-
-
Constructor Detail
-
MinimumCostFlowProblemImpl
public MinimumCostFlowProblemImpl(Graph<V,E> graph, Function<V,Integer> supplyMap, Function<E,Integer> arcCapacityUpperBounds)
Constructs a new minimum cost flow problem without arc capacity lower bounds.- Parameters:
graph
- the flow networksupplyMap
- the node demandsarcCapacityUpperBounds
- the arc capacity upper bounds
-
MinimumCostFlowProblemImpl
public MinimumCostFlowProblemImpl(Graph<V,E> graph, Function<V,Integer> nodeSupplies, Function<E,Integer> arcCapacityUpperBounds, Function<E,Integer> arcCapacityLowerBounds)
Constructs a new minimum cost flow problem- Parameters:
graph
- the flow networknodeSupplies
- the node demandsarcCapacityUpperBounds
- the arc capacity upper boundsarcCapacityLowerBounds
- the arc capacity lower bounds
-
MinimumCostFlowProblemImpl
public MinimumCostFlowProblemImpl(Graph<V,E> graph, Function<V,Integer> nodeSupplies, Function<E,Integer> arcCapacityUpperBounds, Function<E,Integer> arcCapacityLowerBounds, Function<E,Double> arcCosts)
Constructs a new minimum cost flow problem- Parameters:
graph
- the flow networknodeSupplies
- the node demandsarcCapacityUpperBounds
- the arc capacity upper boundsarcCapacityLowerBounds
- the arc capacity lower boundsarcCosts
- the arc costs
-
-
Method Detail
-
getGraph
public Graph<V,E> getGraph()
Returns the flow network- Specified by:
getGraph
in interfaceMinimumCostFlowProblem<V,E>
- Returns:
- the flow network
-
getNodeSupply
public Function<V,Integer> getNodeSupply()
Returns a function which defines the supply and demand of each node in that network. Supplies can be positive, negative or 0. Nodes with positive negative supply are the demand nodes, nodes with zero supply are the transhipment nodes. Flow is always directed from nodes with positive supply to nodes with negative supply. Summed over all nodes, the total demand should equal 0.- Specified by:
getNodeSupply
in interfaceMinimumCostFlowProblem<V,E>
- Returns:
- supply function
-
getArcCapacityLowerBounds
public Function<E,Integer> getArcCapacityLowerBounds()
Returns a function which specifies the minimum capacity of an arc. The minimum capacity is the minimum amount of flow that has to go through an arc.- Specified by:
getArcCapacityLowerBounds
in interfaceMinimumCostFlowProblem<V,E>
- Returns:
- arc capacity lower bounding function
-
getArcCapacityUpperBounds
public Function<E,Integer> getArcCapacityUpperBounds()
Returns a function which specifies the maximum capacity of an arc. The flow through an arc cannot exceed this upper bound.- Specified by:
getArcCapacityUpperBounds
in interfaceMinimumCostFlowProblem<V,E>
- Returns:
- arc capacity upper bounding function
-
getArcCosts
public Function<E,Double> getArcCosts()
Returns a function which specifies the network arc costs. Every unit of flow through an arc will have the price of the cost of this arc.- Specified by:
getArcCosts
in interfaceMinimumCostFlowProblem<V,E>
- Returns:
- arc cost function
-
-