#include <min_cost_flow.h>
Inheritance diagram for MinCostFlow:
k
having minimal total cost from a given source node to a given target node in an edge-weighted directed graph. To this end, the edge-capacities and edge-weitghs have to be nonnegative. The edge-capacities should be integers, but the edge-weights can be integers, reals or of other comparable numeric type. This algorithm is intended to use only for small values of k
, since it is only polynomial in k, not in the length of k (which is log k). In order to find the minimum cost flow of value k
it finds the minimum cost flow of value i
for every i
between 0 and k
.
Graph | The directed graph type the algorithm runs on. | |
LengthMap | The type of the length map. | |
CapacityMap | The capacity map type. |
Definition at line 60 of file min_cost_flow.h.
Public Member Functions | |
MinCostFlow (Graph &_G, LengthMap &_length, CapacityMap &_cap) | |
The constructor of the class. | |
int | run (Node s, Node t, int k) |
Runs the algorithm. | |
Length | totalLength () |
Gives back the total weight of the found flow. | |
const EdgeIntMap & | getFlow () const |
Returns a const reference to the EdgeMap flow . | |
const PotentialMap & | getPotential () const |
Returns a const reference to the NodeMap potential (the dual solution). | |
bool | checkComplementarySlackness () |
Checking the complementary slackness optimality criteria. |
|
|
|
Runs the algorithm. Returns k if there is a flow of value at least k edge-disjoint from s to t. Otherwise it returns the maximum value of a flow from s to t.
|
|
This function gives back the total weight of the found flow. Assumes that |
|
Returns a const reference to the EdgeMap
|
|
Returns a const reference to the NodeMap
|
|
This function checks, whether the given solution is optimal If executed after the call of
|