This document provides an introduction and overview of a research paper on network synthesis for non-simultaneous requirements. It begins with an abstract describing how the paper will provide an introduction to matroid theory and the greedy algorithm to form the basis for an initial optimal network synthesis algorithm. It will then expand the algorithm to allow for non-uniform cost functions and explore generalizing the problem to allow for multiple commodity flows. The document provides definitions for key concepts like graphs, networks, requirements graphs, and formulates the network synthesis problem. It introduces matroids and the greedy algorithm, proving their relationship and showing how the greedy algorithm can be used to find optimal solutions for matroid problems. It provides an example matroid and greedy algorithm application.
1. Network Synthesis For Non-Simultaneous
Requirements - Final Draft.
Bekezhan Nurkhaidarov
Adviser: Gabe Feinberg
April 15, 2016
Abstract
I will provide a brief introduction to Matroid Theory and the Greedy Algo-
rithm. This will form the basis for an initial optimal network synthesis algorithm
given a uniform cost function and symmetric requirement graph. We shall then
expand upon the algorithm to allow for non-uniform cost functions. Finally, we
will explore a generalization of the aforementioned problem, allowing for multiple
commodity flows.
Contents
1 Introduction. 1
2 Problem Formulation. 3
3 Matroids and the Greedy Algorithm. 4
4 Symmetric and Uniform Cost Flow Algorithm. 11
5 Symmetric and a Non-Uniform Cost Flow Algorithm. 15
6 Multicommodity Flow Algorithm. 22
1 Introduction.
The study of synthesizing minimum cost network flows started in the late 1950s and
early 1960s as a way of modeling communication networks. The earliest work [13]
1
2. used linear programming to model all of the constraints and minimize the resulting
system. However, this resulted in enormous linear programming problems that were
inefficient and impractical for all but the simplest of models. Further work by Gomory
and Hu [4, 5] simplified the technique using various elements from graph theory, linear
algebra and combinatorics. This work continues to be relevant to this day, perhaps even
more so with increased interest in optimization and the applicability of such models to
shipping and communications networks.
In this paper, we will consider three increasingly complex variations of flow syn-
thesis problems. For each, we shall describe the elements of an algorithm that finds
optimal solutions to the problems as well as provide basic examples, proof of optimal-
ity and discuss efficiency. We will also consider further advances and future work in
this field and possible problems of implementation.
Consider the following scenario. We have 3 different ground based satellites, A,B
and C transmitting data to each other during different times of the day. In the morning
satellites A and C send 5 units of data to each other, during midday, satellites A and B
send 3 units of data to each other and finally at night satellites B and C send 7 units of
data to each other. Suppose that data does not to be sent directly, i.e data from A to B
can sent via C, and given the costs of building a cable with capacity of 1 unit of data
between any 2 satellites. We need to build the minimum cost system that can handle
the data usage during all three parts of the day.
A
B
C5
7
Figure 1: A potential solution.
We can see that Figure 1 is one potential solution that can handle the data in all
three scenarios. Whether this is the minimum cost function depends on what the costs
for each cable are. This paper will discuss problems similar to this one.
2
3. 2 Problem Formulation.
We begin with a few basic definition from graph theory. A more detailed introduction
can be found in [1].
1. A graph is a set of nodes (V) connected by edges (E).
2. A complete graph is a graph where there exists an edge between any node pair.
3. A tree is a graph with no cycles.
4. A subgraph of a graph G is another graph formed from the subset of nodes and
edges of G.
5. The spanning tree of a graph G is a tree that is sub-graph of G and connects all
of the nodes of G.
6. A network N = (G,C) is a graph G = (V,E) with a capacity function C : E → R+
that assigns each edge a positive real capacity.
Now we will introduce some definitions unique to our problem. Consider a set V of
nodes and a set of requirements (a,b,n) where a,b ∈ V and n ∈ R+ which corresponds
to requirement of sending n units between a and b (in our example above, this is the
data being sent during a specific time of day). This can be equivalently expressed in a
requirement graph R, a graph R = (V,E) with the value of the a−b edge corresponding
to n given (a,b,n) and to 0 if no requirements exists between a and b. For our above
example, Figure 2 is the requirement graph.
A
B
C5
7
3
Figure 2: Requirment Graph.
We are also given a cost function c : E → R+ i.e one that assigns a positive cost
per unit of capacity for every edge. Note that this different from the capacity function.
3
4. Before we formally state the problem and begin discussing solutions, we need to
introduce some terminology and notations that will be used frequently throughout the
paper
For a network T, a given a requirement graph R and cost function c:
1. fab - total max flow from node a to node b allowed in T.
2. vab - the capacity of the edge connecting a to b, has value of 0 if no such edge
exists.
3. rab - total required flow from node a to node b, equal to the capacity of the edge
connecting a and b in R, has value of 0 if no such edge exists.
4. T is feasible if fij ≥ rij for every i, j pair in any R.
5. The cost of T, c(T) is defined as:
c(T) = ∑vijcij
We can now formally define the Synthesis Problem: given R and c, assign capacity
values to each edge of a complete graph T such that c(T) is minimal and T is feasible.
We will explore several variations of the synthesis problem, each with less limitation
and thus increasingly complexity.
The cost function c can be uniform or non-uniform. A uniform cost function sets
constant costs per unit capacity for all edges. We can also limit the requirement tree R
to be symmetric, in other words, the flow from node a to b has to equal the flow from b
to a or equivalently having R be a undirected graph. Our 3 variants of the problem are:
1. Symmetric R and uniform c.
2. Symmetric R and non-uniform c.
3. Multicommodity flow problem - a generalized case of the prior two variations.
We will first focus our attention on the first 2 simplified variations. The general-
ized multicommodity case will require additional information to properly formulate the
problem, we shall discuss that further in section 6.
3 Matroids and the Greedy Algorithm.
Before going into our algorithm for the first variant of the problem, we consider the
seemingly unrelated concept of matroids and the greedy algorithm. Together they will
4
5. be central in increasing the algorithm’s efficiency compared to a linear programming
brute force method.
We begin by defining a matroid.
Definition 3.1 [9] A matroid M is an ordered pair (E,I ) consisting of a finite set E
and a collection I of subsets of E satisfying the following conditions:
(A1)/0 ∈ I
(A2) If I ∈ I and I ⊆ I, then I ∈ I
(A3) If I1 and I2 are in I and |I1| < |I2|, then there is an element e of I2 −I1, such that
I1 ∪{e} ∈ I .
An intuitive way of thinking about matroids is to consider the independent sets
as the set of lineally independent columns matrices. We will now introduce some
definitions related to matroids.
Let us call the members of I the independent set of M and E the ground set of
M. The maximal independent sets of a matroid are called the bases of a matroid and
we define B as the set of all bases. A dependent set is a subset of E that is not in I .
Finally a circuit is defined as the minimal dependent set of M
We can equivalently define a matroid by considering bases:
Definition 3.2 [8] A matroid M is an ordered pair (E,B) consisting of a finite set
E and a nonempty collection B (the bases) of subsets of E satisfying the following
conditions:
(M1) No basis properly contains another basis.
(M2) If B1 and B2 are in B and e ∈ B1, then there is an element f ∈ B2 such that
(B1e)∪{ f} ∈ B.
Although it may be potentially confusing, it is beneficial for us to use both defi-
nitions of matroids. We will always use I when defining matroids according to the
independent set (Definition 3.1) and B when defining a matroid in terms of bases (Def-
inition 3.2).
Lemma 3.3 Def. 3.1 is sufficient for def. 3.2.
Proof: Recall that a bases of a matroid are the maximal independent sets of a matroid.
Given a matroid M = (E,I ), we can see that M1 follows immediately from A2 and
the definition of a base.
Let B1,B2 ∈ B, wlog suppose | B1 |>| B2 |, then by A3 we can say ∃K ∈ I such
that K ⊃ B2, contradicting the maximality of B2, thus | B1 |=| B2 |.
5
6. For some x ∈ B1, by A2, B1 {x} ∈ I . | B2 |>| B1 {x} | so by A3 we get:
∃e ∈ B2 (B1 {x}) s.t B3 = B1 {x}∪{e} ∈ I
Suppose B3 is not a maximal independent set, then ∃L ∈ I such that L ⊃ B3 with
| L |>| B2 |, since all bases are of equivalent, this is a contradiction. Thus B3 is a
maximal independent set and a member of B.
Lemma 3.4 Def. 3.2 is sufficient for def. 3.1.
Proof: Given a matroid M = (E,B) we define the independent set I as the union of
the powersets of every base in M. A1 and A2 follow immediately from this definition.
Let V ⊂ B1 and U ⊆ B2 for B1,B2 ∈ B with | B1 |=| B2 |≥| U |>| V |. Then for
x ∈ B2 U we can use M2 to attain the following:
∃f ∈ B1 s.t B3 = B2 {x}∪{ f} ∈ B
If f ∈ V, then {V ∪ f} ∈ B3 will be an independent set. Otherwise we can repeat the
above process until we get such a result. This is possible because | B1 V |<| B2 U |.
Theorem 3.5 The two definitions of matroids, 3.1 and 3.2 are equivalent.
Proof: This follows immediately from Lemma 3.3 and 3.4.
a
b
c
d
e
Figure 3: Graph G.
We will now introduce an example of matroids. Let E be the edge set, let I , or
independent set be the collection of subsets of edges that contain no cycles. Recall that
6
7. a base B is the set of maximal independent sets. Then we have:
B = {a,b,c},{a,b,d},{a,b,e},{a,e,c},{a,d,c},{b,e,d},
{b,c,d},{c,e,d}
B is the set of maximal sets of edges that contain no cycles. Thus B is the set of
spanning trees on G. We can see that this would satisfy the requirements of definition
3.2 as (M1) is satisfied since they are all of equivalent size and we can test that (M2)
is satisfied.
Theorem 3.6 . Given two spanning trees T1, T2 on a graph G, and an edge e ∈ T1 we
can always find some edge f ∈ T2 such that (T1e)∪ f is also a spanning tree on G.
Proof: See [1] for details.
Theorem 3.7 For any graph G = (V,E), let B be the set of spanning trees, then
M(E,B) is a matroid.
Proof: We will show that as defined, M(E,B) satisfies the requirements of definition
3.2. B is the set of maximal sets of edges that contain no cycles, thus every member
of B is of equivalent size, therefore (M1) is satisfied. (M2) is satisfied by Thm. 3.6.
Now that we have defined matroids and the bases, suppose we gave every element
in E some positive real valued weight. If we define the weight of a base as the sum
of the weight of its members, how could we find the bases with maximum weight.
Finding every base would and finding and computing each weight would be inefficient,
we discuss a very simple algorithm that can efficiently find the maximum weight base.
Given a matroid M = (E,I ) and a weight function w : E → R+ we wish to find
the maximum weight independent set S, where w(S) = ∑e∈S w(e) . We can see that
a maximum weight independent set will be a maximally sized independent set since
∀e ∈ E,w(e) ≥ 0 and thus must be a basis. There exists an algorithm that not only finds
such a base S, but also returns the maximum weight set for all independent sets of size
k. Note: the weight function is separate from the cost and capacity function mentioned
earlier.
Definition 3.8 (Greedy Algorithm. [10])
Let E be some finite set and C be some collection of subsets of E (note (E,C) need
not necessarily be a matroid). Given some weight function w : E → R+, we define the
Greedy Algorithm as follows:
7
8. I = /0
-Pick e ∈ EI with maximum w(e) such that I ∪{e} ∈ C.
-I = I ∪e
-Repeat until no such e exists.
Output I.
Although seemingly very simple, by picking the greatest viable local option, the
greedy algorithm will produce the optimal global solution for a specific set of struc-
tures, specifically matroids.
Theorem 3.9 [9] If (E,I ) is a matroid, then for all weight functions w : E → R, the
greedy algorithm produces a base of maximal weight.
Proof: This follows immediately from Lemma 3.10, which shows that there does not
exist a base of greater weight than the one produced by the greedy algorithm.
Lemma 3.10 [9] Let Bg = (e1,e2 ...en) be the basis of (E,I ) attained via the greedy
algorithm with w(e1) ≥ w(e2) ≥ ... ≥ w(en). Suppose there exists another basis, Bo =
(f1, f2 ... fn) such that w(f1) ≥ w(f2) ≥ ... ≥ w(fn). Then for 1 ≤ j ≤ n:
w(ej) ≥ w(fj).
Proof: Assume that there is some k such that w(ek) < w(fk). Take the least such k.
Consider I1 = (e1,e2 ...ek−1) and I2 = (f1, f2 ... fk). By A3 from def. 3.1, we have:
∃x ∈ (I2 −I1) such that I1 ∪e ∈ I
Thus I1 ∪ ft ∈ I for some 1 ≤ t ≤ k. Furthermore, w(ft) ≥ w(fk) > w(ek) by assump-
tion. Therefore, the greedy algorithm would have chosen ft to include in Bg rather than
ek, contradicting our original assumptions.
Interestingly the converse of Thm 3.10 holds true as well, if the greedy algorithm
guarantees an optimal solution for all weight functions then the underlying structure
must be a matroid [8].
Theorem 3.11 [9] Given a finite set E and C some collection of subsets of E, the
greedy algorithm produces the maximal weight member of C for all weight functions
w : E → R, if and only if (E,C) is a matroid.
8
9. Proof: One direction is proven above, see [9] for full proof.
We will now present an example of the Greedy Algorithm.
Consider the graph G = (V,E) from above. We now add a weight function on every
edge on G as shown below.
A
B
C
D
3
7
5
28
Figure 4: Graph G with weight function.
We wish to find a set I ∈ I of maximum weight. By Thm. 3.7 this is a matroid,
thus Thm. 3.9 guarantees that the greedy algorithm will find such a set. Recall that B
for this matroid is the set of spanning trees.
Start with I = /0 and pick an e ∈ E with maximum c(e) such that I ∪{e} ∈ I . We
can pick any edge at the moment, thus we pick the edge connecting A to B with weight
8.
I = {8}
Next we pick a maximum cost unused edge that does not create a cycle when combined
with I.
I = {7,8}
We continue, the edge with the greatest cost available is 5, however (7,8,5) form a
cycle, thus it cannot be picked. So we pick 3.
I = {3,7,8}
No more edges can be added to I without creating a cycle, thus the algorithm stops.
We have found a a set I ∈ I of maximum cost. Note: The resulting maximum cost
spanning tree is not necessarily unique.
Recall that a set of requirements can be expressed as a graph R, the maximum
spanning tree of R is also known as a Dominating Requirement Tree. From here on
out we shall refer to it as the DRT. We can see that the DRT (referring to the set of
9
10. requirements expressed in the DRT) is a necessary condition for feasibility as it is a
subset of the orginal set of requirments, however consider the following.
Lemma 3.12 A DRT is a feasible solution i.e it fulfils all of the capacity requirements
given by R.
Proof:
Claim: Let T be a DRT, with vaj = 0, i.e no edge connecting nodes a and j. By
definition of a tree, there exists a path of edges connecting the points a,b,c...i, j. Then:
raj ≤ min(vab,vbc ...vij)
or equivalently
raj ≤ min(rab,rbc ...rij).
Suppose this is not true, then there exists some vcd such that raj > vcd. Then we can
remove the edge connecting cd in the DRT and replace it with the edge connecting aj.
The resulting graph will still have no cycle, thus creating a spanning tree with greater
total weight. This contradicts the assumption that the DRT is the maximum weight
spanning tree.
Consider a DRT, we can see that given a path a,b,c...i, j, the following is always
satisfied:
faj ≥ min(fab, fbc ... fij)
By the construction of the DRT, if vab = 0, then fab ≥ vab = rab since the edge
capacities of the DRT are equal to edge capacities of R.
Consider a rij such that vij = 0 and a path a,b,c...i, j. We know:
raj ≤ min(rab,rbc ...rij)
also
faj ≥ min(fab, fbc ... fij)
We know that:
faj ≥ rab, fbc ≥ rbc ...
Therefore:
faj ≥ raj.
Thus the DRT is feasible.
This is leads to the following huge result.
10
11. Theorem 3.13 A DRT is a necessary and sufficient condition for feasibility.
Proof: This is trivially seen from Lemma 3.12.
Consider the following, given a graph with n nodes, we can have at most n
2 unique
requirements, one for each pair of nodes, however we can now reduce it to the n − 1
requirements in the DRT and disregard the rest of the requirements. This is a huge
reduction and is integral in the creation of efficient solution algorithms. We will fre-
quently refer back to the DRT throughout the paper.
4 Symmetric and Uniform Cost Flow Algorithm.
Our objective in this section is to synthesize a network that fulfills all of the given
requirements with minimal cost, we present an example to demonstrate this process.
We will use the nodes {A,B,C,D}. First we need a symmetric requirement graph R
that represents the necessary capacity requirements that our system must fulfill. Let
us consider Figure 4 as our requirement graph and have uniform cost of 1 unit per
edge capacity for all edges. In other words, we need a network with capacity to non-
simultaneously send 7 units between nodes A and B, 3 units between A and C, 8 units
between A and D ... such that c(T) is minimal.
The following algorithm synthesizes the optimal network [6] :
1. Construct a maximum weight spanning tree of G. We already did this above in
the prior section using the greedy algorithm.
A
B
C
D
3
7
8
Figure 5: DRT of Graph G.
2. Decompose the DRT into a sum of trees with uniform weight capacities by sub-
tracting the smallest weight function in a trees until the whole tree is expressed
as a sum. It is trivial to see that this step does not change the capacity of the
DRT.
11
12. A
B
C
D
3
3
3
+
A
B D
4
4
+
A
D
1
Figure 6: Decomposition of the DRT.
3. Synthesize a cycle from each of the deconstructed trees with edge capacity equal
to half of the tree.
A
B
C
D
1.5
1.5
1.5
1.5
+
A
B D
2
2
2
+
A
D
1
Figure 7: Cycle Synthesis.
Lemma 4.1 Steps 3 of the algorithm does not change the maximum flow capac-
ity.
Proof:
After step 2, the DRT is decomposed into trees, by definition, in a tree there is
only a single path between any two nodes. Consider a tree in which the capacity
of every edge is equal to n. Thus fab = n for any nodes a and b in the tree.
After Step 3, in a cycle there are 2 paths between any 2 nodes. All of the edge
capacities are now equal to n
2 , then in the cycle, fab = 2n
2 = n for any nodes a
and b. Thus Step 3 does not alter the capacity between any pair of nodes.
4. Combine the cycles together to create an optimal minimum cost system. It fol-
lows from the previous steps that this has the same capacity between any pair of
nodes as the DRT.
The total cost is 13.
12
13. A
B
C
D
1.5
3.5
3.5
1.5
3
Figure 8: Optimal Solution.
Note: This algorithm does not produce a unique solution, a different DRT or dif-
ferent cycle synthesis may result in various possible solutions with equal total cost.
We will now prove that the algorithm produces an optimal result, first we must
consider feasibility.
Lemma 4.2 The algorithm produces a feasible solution.
Proof: By 3.12, a DRT is a feasible solution, and by 4.1 we know that fab for any nodes
a and b is not altered, thus the algorithms produces a feasible solution.
Knowing that the resulting solution is feasible, now we will prove that the solution
is optimal i.e that there does not exist a feasible solution with a lower total cost.
Lemma 4.3 Given R = (V,E), for any i ∈ V the i− j edge will be included in the DRT
of R for j = maxq{riq}.
Proof: Recall that the DRT is picked via the Greedy Algorithm. Suppose that the DRT
does not pick a, the edge i− j with maximal rij. By definition of the Greedy Algorithm,
this can only occur if adding a creates a cycle. If the addition of a creates a cycle, then
there must already be some i−k edge chosen by the algorithm. Since a is the maximum
value edge, by definition of the Greedy Algorithm this is a contradiction.
Lemma 4.4 The algorithm produces a solution T = (V,E) such that
∀i ∈ V,∑
j
vij = maxj{rij}.
13
14. The sum of all of edge capacities coming in/out of vertex i in T is equal to the maximum
value of all requirement edge coming in/out of i in R.
Proof: Consider a node i in the DRT that is connected to a and c with edges capacity x
and y respectively such that x > y. During step 2, suppose the edges connecting b are
decomposed into k trees. Let ain and icn be the capacity of the a − i and i − c edges
respectively in the nth tree. Since x > y, for some m, we have
ic1 +ic2 +...+icm = ai1 +ai2 +...+aim = y
then for the remaining k −m = n trees we have:
aim+1 +aim+2 +...+aik = x−y
During step 3, cycle synthesis, for the first m trees the total capacity of the edges coming
in/out of i will be:
m
∑
q=1
icq
2
+
aiq
2
=
m
∑
q=1
icq = y
Then for the final k − m = n trees, the total capacity of the edges coming in/out of i
created via cycle synthesis will be:
k
∑
q=m+1
2
aiq
2
= x−y
So combining all of the cycles in step 4 we get:
∑
j
vij = y+(x−y) = x.
Since x > y, by 4.3 we get:
x = maxj{rij}.
By setting y = 0, we can make the same argument for when i is a leaf node, i.e if there
is only a single edge connected to i in the DRT.
Theorem 4.5 The final solution produced by the algorithm is optimal
Proof: By 4.2 the final solution is feasible, i.e it fulfills the requirements of R. For any
feasible network:
∑
j
vij ≥ maxj{rij},i = 1,2...n
14
15. In other words, the total flow of all edges coming in/out of a node must be greater than
equal to the largest output value of the equivalent node in requirement matrix. From
4.4 we can see that no edge capacity can be reduced without affecting the feasibility of
T. Therefore since edge capacity costs are uniform, the T created by the algorithm is
the optimal solution.
5 Symmetric and a Non-Uniform Cost Flow Algorithm.
Now we will consider a non-uniform cost function c, i.e different edges have different
costs per unit capacity. Of course one could simply use linear programming and basic
linear algebra to minimize ∑cijyij using the constraints given by R, however then we
would end up having 2n−1 equations for an n-node graph G [13]. This would get
inefficient for large values of n. Thus we look for a way to simplify the problem to a
more reasonable number of constraints. The idea of a Dominating Requirement Tree
(DRT) is once again used, as well as a new concept of minimal cuts.
We introduce a new concept of flows. Intuitively the flow on a network T is a way
to transport a commodity from node s to node t such that the amount transported over
each each does not exceed the capacity set by T and all commodities must leave at s
and arrive at t.
Definition 5.1 An s −t flow F : E → R+ on a network N on graph G = (V,E) and
capacity function c : E → R+ must satisfy the following:
1. F(e) ≤ c(E),∀e ∈ E.
2. F(e,E) = 0 for all e ∈ E {s,t}
The value of an s−t flow F is defined as the maximum amount of units that can be
transported from s to t in F.
Consider a network N on graph G = (V,E) and capacity function c : E → R+ with
s,t ∈ V. If we partition V into 2 sets such that one set contains s and the other t, we
define the edges connecting the two sets as an s-t cut on N.
More rigorously, let N be the set of all nodes in a given graph G, and define sets
A ⊂ V and ¯A ⊂ V such that:
1. s ∈ A
2. t ∈ ¯A
3. A∪ ¯A = N
15
16. 4. A∩ ¯A = /0
An edge connecting A and ¯A is an edge that connects a node from A to one in ¯A.
An s −t cut, C, is the set of edges connecting A and ¯A. The capacity of C is the total
sum of capacities fo edges in C, it is denoted P(C).
Lemma 5.2 Consider a network N with graph G = (V,E) and capacity function c :
E → R+ . Recall that fab is the maximum amount that we can send between node a to
node b. For s,t ∈ V, let C be an s−t cut in N, then:
P(C) ≥ fst.
Proof: Since s ∈ A and t ∈ ¯A all of the flow must cross that cut, thus P(C) ≥ fst.
In other words, any flow between s and t is bounded by the value of the capacity of
an s−t cut.
We will finally introduce the concept of augmenting or residual paths. Intuitively,
given a network N and a s−t flow F, an s−t augmenting is a flow from s to t that only
uses the edge capacities unused by F.
Definition 5.3 Given a network N = (G,C) and a s−t flow F, we define the residual
network as a network on the graph G = (V,E) and capacity function C where each
edge e ∈ E has capacity of C(e)−F = (e). An s−t augmenting path is one that exists
in N i.e one can reach t from s by travelling along non-zero edges in residual network.
We use the idea of augmenting paths to show that there exists a cut C with P(C)
equal to the maximum s−t flow. The proof is constructive and we will build a cut that
satisfies the necessary conditions. First we need the following theorem.
Theorem 5.4 . Given a maximal s −t flow F on a netowork N = (G,C), there does
not exist an s−t augmenting path in the residual graph.
Proof: See [10] for details.
Lemma 5.5 [10] Given a N = (G,C), consider the maximal s −t flow F on N such
that the value of F is equal to fst. Then ∃ an s-t cut C such that
P(C) = fst.
16
17. Proof: Start by constructing the residual network, then we define the cut C as follows.
Let A be the set of vertexes that can be reached from s via an augmenting path and ¯A
consist of the rest of the vertexes. s ∈ A and t ∈ ¯A (see Thm. 5.4). Consider an edge in
C from nodes a to b, since a ∈ A and b ∈ ¯A there does not exist an augmenting ab path.
In other words, the flow over the cut edges is equal to the capacity. Since every unit of
flow leaving s must enter t, we have:
P(C) ≤ fst
From 5.2:
P(C) ≥ fst
Therefore
P(C) = fst.
We now reach the following conclusion.
Theorem 5.6 (Min Cut - Max Flow Theorem, [10].) The maximum flow between two
nodes s and t is equal to the minimum capacity cut of all s−t cuts.
Proof: Let C be the minimum capacity s−t cut. By Lemma 5.2 it cannot be less than
fst and Lemma 5.5 states that there exists a cut with capacity equal to fst. Thus
P(C) = fst.
In other words, for any network N, the value of the maximum s−t flow is equal to
the minimum s−t cut.
Let us then define an algorithm discovered in 1956 by Ford and Fulkerson to find
the maximum flow between nodes s,t and consequently the minimum s − t cut in a
network. [3].
Definition 5.7 (Ford-Fulkerson Algorithm, [3].) Let N be a network with nodes s, t
and capacity function c. Let us denote An as the set of all nodes v such that there exists
an s − v augmenting path given a flow K. That is, An is the set of nodes that we can
reach from s using only excess capacity of any edge.
We will now build up a flow K, start with every edge in K having capacity 0.
1. If node t ∈ An, then let W be any s−t flow in the residual network of N along the
17
18. edges x0,x1,...xl (WLOG we can assume that no edges are repeated). Let:
ε = min0≤n≤l[c(xn)−W(xn)]
2. We define the new flow K as follows: fK (xn) = fK(xn) + ε for xn ∈ W and
fK (y) = fK(y) for y /∈ W.
3. Set K = K
4. Repeat until t /∈ An.
5. K is the flow on N with maximum s−t flow.
Theorem 5.8 The Ford-Fulkerson Algorithm builds a flow K that is an s−t maximum
flow.
Proof: Take the sets An and ¯An. Let en be an edge connecting va ∈ An and vb ∈ ¯An, then
K(en) = c(en). Consider C, the An, ¯An cut, then:
f(An, ¯An) = P(C).
By Thm. 5.6 the flow f is maximal and C is a minimal cut.
Now we can define the algorithm to solve the second synthesis problem. In our
solution flow, let eij be the i− j edge, cij be the cost of increasing capacity by one unit
on eij and vij be the capacity of eij. Then our goal is to build a feasible solution such
that the following is minimized:
∑cijvij.
Or equivalently maximize:
z = ∑−cijvij.
This is the algorithm presented by Gomory and Hu to solve the synthesis problem
given a symmetric and non-uniform cost function.
1. Start with a network T with all edge capacities of 0.
18
19. A
B
C
D
7
3
4
1
6
2
Figure 9: The requirement graph, R
A
B
C
D
3
1
6
2
9
4
Figure 10: Unit capacity cost graph.
2. Given a symmetric requirement graph R with n vertexes, we run the greedy al-
gorithm to find the DRT (as in section 4). This gives us n−1 requirements that
are necessary and sufficient for feasibility.
3. For each of the n − 1 requirements, we run the Ford-Fulkerson Algorithm to
find the n − 1 flows and corresponding minimum cuts on N that represent the
minimum requirements.
4. Use the simplex method to adjust the capacities of T to find the optimal network
T that fulfills all of the current n − 1 cuts in T. Replace T with T Note: the
output from this step is not always feasible, it just fulfills the cuts from T, T
may have a different set of minimum cuts.
5. Rerun Steps 4 and 5 until solution is feasible, output T.
For further details, especially regarding the simplex algorithm, see [5].
We now present an example. Consider the requirement graph Figure 9 and cost
function Figure 10.
Starting with a flow T with all edge capacities of 0 we find the 3 minimal cuts that
correspond to the 3 requirements from the DRT an (A-C cut, A-D cut, B-D cut). In the
case of zero flow, any cut is minimal as they all have value of 0.
19
20. A
B
C
D
7
4
6
Figure 11: DRT of R.
A
B
C
D
0
0
0
0
0
0
Figure 12: Minimal cuts.
Now we can run the simplex algorithm by minimizing z = yab + 3yac + 9yad +
4ybc +4ybd +2ycd subject to yij ≥ 0 and the 3 cuts:
yab +yac +yad ≥ 7
yab +yac +yad ≥ 6
yad +ybd +ycd ≥ 4
Notice that in Figure 13, the cuts from Figure 12 are satisfied in T , however the
A
B
C
D
0
7
0
4
0
0
Figure 13: T’: solution satisfying the cuts in Figure 12.
20
21. A
B
C
D
0
7
0
4
0
0
Figure 14: Minimal cuts.
A
B
C
D
7
0
0
4
0
0
Figure 15: We continue to run the algorithm.
solution is not feasible. We repeat the steps, once again finding the 3 minimal cuts that
correspond to the DRT using Ford-Fulkerson and use the simplex method to optimize
z given those restrictions.
We keep repeating the procedure until the optimal T flow is feasible. Then we
have found the minimal cost feasible solution. Refer to [5] to see that the algorithm
will only take a finite number of steps.
One may further ease the process by checking for any unreasonable cost edges
before running the above algorithm. We define cij are unreasonable if there exists a
A
B
C
D
7
0
0
4
0
0
Figure 16: Minimal cuts.
21
22. A
B
C
D
5
2
2
4
0
2
Figure 17: Optimal Solution
A
B
C
D
7
4
0
6
0
0
Figure 18: Alternate Optimal Solution
i− j path such that:
cij ≥ cia +cab +...cd j.
It is clear that we can automatically set yij = 0 in T if cij is an unreasonable cost edge
without increasing z. We can see that we could have excluded the edges AD,BC, and
BD from the simplex algorithm and still reach an optimal solution seen in Figure 18.
6 Multicommodity Flow Algorithm.
The previous sections have dealt with building minimum cost networks that can non-
simultaneously allow for only a single flow. However, this type of model is not ideal for
simulating real-world situations. Let us consider a generalization of this where instead
of a single flow, we have multiple groups of sets of flows that must be simultaneously
feasible.
Consider the requirement graph R we mentioned prior. In that problem, the re-
quirements were a flow of 7 between A and C, or a flow of 6 between A and D or ... all
in all we had 5 different single flows requirements that had to be non-simultaneously
feasible. Now, let’s generalize so that the requirement is to send flow of 7 from A to
C AND a flow of 6 from A to D, OR a flow of 3 from C to D AND a flow of 4 from
22
23. B to D, and the problem is to build a minimum cost network such that these require-
ments are all non-simultaneously feasible. Instead of non-simultaneously fulfilling sin-
gle flow requirements, we know non-simultaneously have to fulfill sets of individual
flow requirements. Notice that unlike previously, the individual requirements are now
directed, however our final network is still undirected like in the previous examples.
Such requirements are known as a multicommodity flow requirements, as each re-
quirement can be seen as a separate commodity that must be shipped. This generaliza-
tion allows us to model many more practical situations and is actually used in software
for shipping, and telecommunication network planning, among others [7].
Let us now formally define the problem.
Consider a network T = (G,C) on undirected graph complete G = (V,E) and ca-
pacity function C : E → R with N nodes and n
2 edges. We wish to find a capacity
function C such that any of the requirements are non-simultaneously feasible and total
cost is minimized.
The requirements are defined as n groups of sets of K commodities each made
up of iK single commodity flows made up of a source, sink pair sn
K,tn
K ∈ V and non-
negative demand dn
k (source and sink distinctions are needed because flow requirements
are now directed). Since we now have flow directionality, for any single requirement
flow n of commodity k on edge ij, if the flow of the commodity is in the ij direction,
then fk(ij) = dn
k is positive, otherwise it is negative, −dn
k . For each commodity K,
the following conservation constraints must be fulfilled [11]. For any node i that is a
source:
∑
ij∈E
fk(ij) = dn
k
For any node i that is a sink:
∑
ji∈E
fk(ji) = dn
k
For all other nodes:
∑
ij∈E
fk(ij)− ∑
ij∈E
fk(ji) = 0.
In other words, for each flow requirement, all of the flow must start at the source and
end at the sink, there is no residual flow left over.
Let Pk be the set of all paths for commodity k in T. For an edge ij in E, we can
define fk(ij) as the sum of the value of flow carried through ij by any path in Pk. Note:
flow values are always positive. Then we can say say a flow is feasible if for every
commodity k
f(ij)+ f(ji) ≤ vij
23
24. for all edges ij in T [7]. Our goal is to create a minimum cost feasible T.
As with all previous problems, this too can be solved solely via linear programming.
J. A. Tomlin in [12] shows a way to express a generic multicommodity problem in a
single constraint matrix. He then goes on to outline two ways to derive equivalent linear
programs. However, we end up with an enormous amount of variables, and this method
is limited to problems with around 15 nodes and 20 commodities due to the complexity
of the linear problem. Nevertheless, it provides a framework for future results in this
field.
However, a certain class of multimcommodity problems can in fact be solved effi-
ciently. Evans, Jarvis and Duke in [2] show that any multicommodity problem with 2
sources or 2 sinks, regardless of how many commodities is equivalent to a single com-
modity network, for which there there exist known efficient algorithms. The concept
of matorids, specifically graphic matorids are used to show the equivalency of the two
problems.
In [7], M. Minoux goes further to find a more efficient, non linear programming al-
gorithm to solve the multicommodity problem. At the core of the algorithm, a general-
ized concept of the max-flow min-cut theorem is used. However, to increase efficiency,
the algorithm does not find the globally optimal solution, but rather an approximation
of the optimal solution. The algorithm can solve 20 node, 40 edge problems in around
10 minutes with the solution being between 5-10% away from the optimality, this is
enough for most practical uses. In fact, this algorithm was tested on several real-world
problems and is now implemented in network planning software.
References
[1] Reinhard Diestel. Graph Theory. Springer-Verlag, New York, 2010.
[2] James R. Evans, John J. Jarvis, and Richard A. Duke. Graphic matroids
and the multicommodity transportation problem. Mathematical Programming,
13(1):323–328.
[3] L. R. Ford, Jr. and D. R. Fulkerson. Maximal flow through a network. Canad. J.
Math., 8:399–404, 1956.
[4] R. E. Gomory and T. C. Hu. Multi-terminal network flows. J. Soc. Indust. Appl.
Math., 9:551–570, 1961.
[5] R. E. Gomory and T. C. Hu. An application of generalized linear programming
to network flows. J. Soc. Indust. Appl. Math., 10:260–283, 1962.
24
25. [6] Eugene Lawler. Combinatorial Optimization - Networks and Matroids. Holt,
Reinhart and Winston, New York, 1976.
[7] M Minoux. Optimum synthesis of a network with non-simultaneous multicom-
modity flow requirements. North-Holland Mathematics Studies, 59:269–277,
1981.
[8] David L. Neel and Nancy Ann Neudauer. Matroids you have known. Mathematics
Magazine, 82(1):26–41, 2009.
[9] James Oxley. Matroid Theory. Oxford University Press, Oxford, UK, 1992.
[10] Alexander Schrijver. Combinatorial Optimization. Springer, Berlin, 2003.
[11] Clifford Stein. Approximation Algorithms for Multicommodity Flow and
Shop Scheduling Problems. PhD thesis, MIT, Cambridge, MA, USA, 1992.
AAI0572800.
[12] J. A. Tomlin. Minimum-cost multicommodity network flows. Operations Re-
search, 14(1):45–51, 1966.
[13] O. Wing and R. T. Chien. Optimal synthesis of a communication net. IRE Trans.,
CT-8:44–49, 1961.
25