Minimum-cost flow problem
Minimum-cost flow problem
In the minimum-cost flow problem, we want to find a flow that satisfies all supply and demand and has the minimum possible cost. Formally, a flow in the network is a function assigning flows to edges, (non-negative amount of flow on edge to ), which satisfies the capacity constraints and flow conservation constraints.
The input is a flow network where:
Link to original
- is a set of nodes
- is a set of directed edges
- For each edge , is the capacity of edge We label each edge (x, y)
- For each node , (as in flow-feasibility problem) is the (initial) supply (if ) or demand (if ) at . 1st number on each edge, x
- For each edge , is the cost of one unit of flow on edge . 2nd number on each edge, y
The cost of a flow is
The capacity constraints state that for each edge
Example of flow in this network
Technical assumption
If , then
We can add an intermediate node as follows:
Flow conservation constraints (basics)
Net flow outgoing from node :
- net flow from each transitional node () is
- net flow from each “supply” node is at most
- net flow incoming to each “demand” node is at most (the demand at )
Formally, the net flow outgoing from :
= &0 &&\text{if } d(v) = 0 \\ \le &d(v) &&\text{if } d(v) > 0 \\ \ge &d(v) &&\text{if } d(v) < 0 \end{cases}$$ A flow satisfies all supplies and demands if the net flow outgoing from each vertex $v$ is equal to $d(v)$. > [!example] > 
Application of minimum-cost flow problem
A car manufacturer produces several car models in several plants and ships them to several retail centres. Each retail centre requests a specific number of cars of each model.
Determine the production plan for each plant and the shipping schedule so that the total cost of production and transportation is minimised.
We model as a minimum-cost flow problem:
- nodes: plant (supply), plant/model, retailer/model, retailer (demand)
- edges
- production edge (pi, pi/mj): capacity - maximum possible production of cars mj at plant pi cost - production cost of one car mj at plant pi
- transportation edge (pi/mj, rk/mj): transportation of cars mj from plant pi to retailer rkl capacity and transportation cost per one car
- demand edge (rk/mj, rk): capacity - demand for cars mj at retailer rk
A (integral) flow corresponds to a feasible production/transportation schedule. A minimum cost (integral) flow gives an optimal (minimum cost) production/transportation schedule.
Slides: 9-13 theory behind algorithm / full example of use
Slides: 14 successive shortest path algorithm
Slides: 15 correctness and running time
Multi-commodity flow problem
In a multi-commodity flow problem, we want to design simultaneous flow of all commodities which satisfies the demands of all commodities, and optimises some specified global objective.
The input is:
- a (directed) network where is the capacity of an edge .
- commodities
Commodity () is specified by where:
- and are the origin (source) and the destination (target) of commodity
- is the (amount of) demand of this commodity
Slides 17-18 example spec
Feasibility multi-commodity-flow problem
Slide 20
Minimum-cost multi-commodity-flow problem
The congestion of a flow on an edge is defined as
In minimum-congestion multi-commodity-flow problems, we want to design a simultaneous flow of all commodities which minimises maximum congestion:
Slides 19-23





