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:

  • 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
Link to original

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] > ![](https://git.is.horse/insert/university/obsidian-notes/-/raw/9d95afcbbdb7a4c77ca9f62b32e35c6f31e269e7/University/Year%203/Semester%202/6CCS3OME%20Optimisation%20Methods/Diagrams/Pasted%20image%2020240417212017.png)

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

1 item under this folder.