Skip to main content

Section 7.1 Directed Graphs and Network Flow

In this section, we introduce capacitated networks and flows.

Exploration 7.1.1.

Consider a series of islands with bridges between them. A group of people are trying to move from island v0 to island v5. Due to the length/width of the bridges, only but so many people can move between a pair of islands in a minute, and these are labeled. The bridges also only allow movement in one direction.
A Network Flow depicting several islands with bridges and carrying capacity.

(a)

Conjecture a solution to the maximum number of people that can arrive at v5 in a minute.

(b)

If you could increase the capacity of a single bridge to increase the number of people who can travel to v5 in a minute, which would it be and by how much?

Definition 7.1.2.

A directed graph or network is a pair D=(V,E) where V is a set of vertices and E is a set of ordered pairs of distinct elements of V.
A network is capacitated if for each edge (vi,vj)E we assign a non negative capacity cij. (If there is no edge from vi to vj, we may equivalently say that cij=0.)
A flow assigned to a capacitated network is an assignment to each edge (vi,vj)E, a value xij such that 0xijcij. (If there is no edge from vi to vj, what must xij be?)

Note 7.1.3.

Graph theory is a rich, complex and deep area of study. Graph Theorists study a variety of graphs or objects called graphs, with a wide range of conventions. For the purposes of this chapter, graphs are directed, there is at most two edges between graphs (one in each direction), and loops are disallowed. Note that in general some or any of these conventions can be modified or removed.

Definition 7.1.4.

For any vertex vj, the net input flow at vertex vj is φ(vj)=ixijixji
If φ(vj)<0 then we say vj is called a source.
If φ(vj)>0 then we say vj is called a sink.
If φ(vj)=0 then we say vj is called an intermediary vertex.

Activity 7.1.5.

For the network in Exploration 7.1.1, find three different flows, including one you believe is an “optimal” flow.

(a)

For each flow you found: identify the sources, sinks, and intermediary vertices.

(b)

For each flow you found, compute the sum jφ(vj).

Activity 7.1.8.

Consider the network:
A network with multiple sources and sinks.

(a)

Find a (not necessarily optimal!) flow through this network with exactly two sources and exactly two sinks.

(b)

Add two vertices to this network: vs,vt, and two edges from vs to two vertices, and two edges to vt from two different vertices, each with infinite capacity, and extend the above flow to those edges so that this flow has a unique source and sink.

Observation 7.1.9.

To be able to address the sort of questions we wish to ask, we will restrict ourselves to networks with a unique fixed source or sink, with no edges from the sink or to the source. In light of Activity 7.1.8, this is not really much of a restriction.

Subsection 7.1.1 Max Flow

Activity 7.1.10.

Suppose we have a capacitated network with a unique fixed source vs and sink vd.
We wish to define a maximization linear optimization problem with decision variables xij,vi,vjV.
(a)
Define the objective function both in terms of variables xsj and xid. Explain why these are equivalent (can you prove it?).
(b)
For each edge (vi,vj), there is a natural inequality constraint for the decision variables associated with this edge. What is this inequality?
(c)
For each vertex vj not our source or sink, there is an equality constraint for the decision variables associated with this vertex. Which is this equality?
  1. ixjiixsj=0.
  2. ixijixjd=0.
  3. ixij=0.
  4. ixji=0.
  5. ixijixji=0.
  6. ixij+ixji=0.
(d)
There is an additional type of inequality for this problem, what is it?
(f)
Solve this problem:
(g)
Let μi denote the dual variable for Exploration 7.1.1 associated with vertex i and let yij denote the dual variable associated with edge (vi,vj).
Describe the dual min problem.