SlideShare a Scribd company logo
1 of 25
Download to read offline
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
[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

More Related Content

What's hot

Graceful Labeling For Open Star of Graphs
Graceful Labeling For Open Star of GraphsGraceful Labeling For Open Star of Graphs
Graceful Labeling For Open Star of Graphsinventionjournals
 
IRJET - On Strong Blast Domination of Graphs
 IRJET - On Strong Blast Domination of Graphs IRJET - On Strong Blast Domination of Graphs
IRJET - On Strong Blast Domination of GraphsIRJET Journal
 
Approximate Thin Plate Spline Mappings
Approximate Thin Plate Spline MappingsApproximate Thin Plate Spline Mappings
Approximate Thin Plate Spline MappingsArchzilon Eshun-Davies
 
Cs6702 graph theory and applications Anna University question paper apr may 2...
Cs6702 graph theory and applications Anna University question paper apr may 2...Cs6702 graph theory and applications Anna University question paper apr may 2...
Cs6702 graph theory and applications Anna University question paper apr may 2...appasami
 
Support Vector Machines (SVM)
Support Vector Machines (SVM)Support Vector Machines (SVM)
Support Vector Machines (SVM)amitpraseed
 
Cryptography an application of vectors and matrices
Cryptography an application of vectors and matricesCryptography an application of vectors and matrices
Cryptography an application of vectors and matricesdianasc04
 
Application of matrices in Daily life
Application of matrices in Daily lifeApplication of matrices in Daily life
Application of matrices in Daily lifeshubham mishra
 
A Quest for Subexponential Time Parameterized Algorithms for Planar-k-Path: F...
A Quest for Subexponential Time Parameterized Algorithms for Planar-k-Path: F...A Quest for Subexponential Time Parameterized Algorithms for Planar-k-Path: F...
A Quest for Subexponential Time Parameterized Algorithms for Planar-k-Path: F...cseiitgn
 
Graph theory in network system
Graph theory in network systemGraph theory in network system
Graph theory in network systemManikanta satyala
 
International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)ijceronline
 

What's hot (20)

L 4 4
L 4 4L 4 4
L 4 4
 
Graceful Labeling For Open Star of Graphs
Graceful Labeling For Open Star of GraphsGraceful Labeling For Open Star of Graphs
Graceful Labeling For Open Star of Graphs
 
Lesson 29
Lesson 29Lesson 29
Lesson 29
 
IRJET - On Strong Blast Domination of Graphs
 IRJET - On Strong Blast Domination of Graphs IRJET - On Strong Blast Domination of Graphs
IRJET - On Strong Blast Domination of Graphs
 
Graph
GraphGraph
Graph
 
Graph theory
Graph theoryGraph theory
Graph theory
 
Arrays in Visual Basic Programming
Arrays in Visual Basic ProgrammingArrays in Visual Basic Programming
Arrays in Visual Basic Programming
 
Approximate Thin Plate Spline Mappings
Approximate Thin Plate Spline MappingsApproximate Thin Plate Spline Mappings
Approximate Thin Plate Spline Mappings
 
Weighted graphs
Weighted graphsWeighted graphs
Weighted graphs
 
Cs6702 graph theory and applications Anna University question paper apr may 2...
Cs6702 graph theory and applications Anna University question paper apr may 2...Cs6702 graph theory and applications Anna University question paper apr may 2...
Cs6702 graph theory and applications Anna University question paper apr may 2...
 
Plot function in R
Plot function in RPlot function in R
Plot function in R
 
Support Vector Machines (SVM)
Support Vector Machines (SVM)Support Vector Machines (SVM)
Support Vector Machines (SVM)
 
Maxterms
MaxtermsMaxterms
Maxterms
 
Cryptography an application of vectors and matrices
Cryptography an application of vectors and matricesCryptography an application of vectors and matrices
Cryptography an application of vectors and matrices
 
Data structure and algorithm
Data structure and algorithmData structure and algorithm
Data structure and algorithm
 
Application of matrices in Daily life
Application of matrices in Daily lifeApplication of matrices in Daily life
Application of matrices in Daily life
 
Siegel
SiegelSiegel
Siegel
 
A Quest for Subexponential Time Parameterized Algorithms for Planar-k-Path: F...
A Quest for Subexponential Time Parameterized Algorithms for Planar-k-Path: F...A Quest for Subexponential Time Parameterized Algorithms for Planar-k-Path: F...
A Quest for Subexponential Time Parameterized Algorithms for Planar-k-Path: F...
 
Graph theory in network system
Graph theory in network systemGraph theory in network system
Graph theory in network system
 
International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)
 

Similar to Thesis_Draft_Nurkhaidarov

International journal of applied sciences and innovation vol 2015 - no 1 - ...
International journal of applied sciences and innovation   vol 2015 - no 1 - ...International journal of applied sciences and innovation   vol 2015 - no 1 - ...
International journal of applied sciences and innovation vol 2015 - no 1 - ...sophiabelthome
 
Matlab intro notes
Matlab intro notesMatlab intro notes
Matlab intro notespawanss
 
2-Dimensional and 3-Dimesional Electromagnetic Fields Using Finite element me...
2-Dimensional and 3-Dimesional Electromagnetic Fields Using Finite element me...2-Dimensional and 3-Dimesional Electromagnetic Fields Using Finite element me...
2-Dimensional and 3-Dimesional Electromagnetic Fields Using Finite element me...IOSR Journals
 
Applied Graph Theory Applications
Applied Graph Theory ApplicationsApplied Graph Theory Applications
Applied Graph Theory Applicationsvipin3195
 
How to draw a good graph
How to draw a good graphHow to draw a good graph
How to draw a good graphTarun Gehlot
 
EmacsRedisplayAlgorithm
EmacsRedisplayAlgorithmEmacsRedisplayAlgorithm
EmacsRedisplayAlgorithmJames Gosling
 
A simple and fast exact clustering algorithm defined for complex
A simple and fast exact clustering algorithm defined for complexA simple and fast exact clustering algorithm defined for complex
A simple and fast exact clustering algorithm defined for complexAlexander Decker
 
Application of Graph Theory in Computer science using Data Structure.pdf
Application of Graph Theory in Computer science using Data Structure.pdfApplication of Graph Theory in Computer science using Data Structure.pdf
Application of Graph Theory in Computer science using Data Structure.pdfNancy Ideker
 
On the-optimal-number-of-smart-dust-particles
On the-optimal-number-of-smart-dust-particlesOn the-optimal-number-of-smart-dust-particles
On the-optimal-number-of-smart-dust-particlesCemal Ardil
 
A NEW PARALLEL ALGORITHM FOR COMPUTING MINIMUM SPANNING TREE
A NEW PARALLEL ALGORITHM FOR COMPUTING MINIMUM SPANNING TREEA NEW PARALLEL ALGORITHM FOR COMPUTING MINIMUM SPANNING TREE
A NEW PARALLEL ALGORITHM FOR COMPUTING MINIMUM SPANNING TREEijscmc
 
A NEW PARALLEL ALGORITHM FOR COMPUTING MINIMUM SPANNING TREE
A NEW PARALLEL ALGORITHM FOR COMPUTING MINIMUM SPANNING TREEA NEW PARALLEL ALGORITHM FOR COMPUTING MINIMUM SPANNING TREE
A NEW PARALLEL ALGORITHM FOR COMPUTING MINIMUM SPANNING TREEijscmcj
 
B61301007 matlab documentation
B61301007 matlab documentationB61301007 matlab documentation
B61301007 matlab documentationManchireddy Reddy
 
Quantum algorithm for solving linear systems of equations
 Quantum algorithm for solving linear systems of equations Quantum algorithm for solving linear systems of equations
Quantum algorithm for solving linear systems of equationsXequeMateShannon
 
Teaching Graph Algorithms in the Field - Bipartite Matching in optical datace...
Teaching Graph Algorithms in the Field - Bipartite Matching in optical datace...Teaching Graph Algorithms in the Field - Bipartite Matching in optical datace...
Teaching Graph Algorithms in the Field - Bipartite Matching in optical datace...Kostas Katrinis
 
Information Content of Complex Networks
Information Content of Complex NetworksInformation Content of Complex Networks
Information Content of Complex NetworksHector Zenil
 
for sbi so Ds c c++ unix rdbms sql cn os
for sbi so   Ds c c++ unix rdbms sql cn osfor sbi so   Ds c c++ unix rdbms sql cn os
for sbi so Ds c c++ unix rdbms sql cn osalisha230390
 

Similar to Thesis_Draft_Nurkhaidarov (20)

International journal of applied sciences and innovation vol 2015 - no 1 - ...
International journal of applied sciences and innovation   vol 2015 - no 1 - ...International journal of applied sciences and innovation   vol 2015 - no 1 - ...
International journal of applied sciences and innovation vol 2015 - no 1 - ...
 
Matlab intro notes
Matlab intro notesMatlab intro notes
Matlab intro notes
 
2-Dimensional and 3-Dimesional Electromagnetic Fields Using Finite element me...
2-Dimensional and 3-Dimesional Electromagnetic Fields Using Finite element me...2-Dimensional and 3-Dimesional Electromagnetic Fields Using Finite element me...
2-Dimensional and 3-Dimesional Electromagnetic Fields Using Finite element me...
 
Applied Graph Theory Applications
Applied Graph Theory ApplicationsApplied Graph Theory Applications
Applied Graph Theory Applications
 
How to draw a good graph
How to draw a good graphHow to draw a good graph
How to draw a good graph
 
EmacsRedisplayAlgorithm
EmacsRedisplayAlgorithmEmacsRedisplayAlgorithm
EmacsRedisplayAlgorithm
 
A simple and fast exact clustering algorithm defined for complex
A simple and fast exact clustering algorithm defined for complexA simple and fast exact clustering algorithm defined for complex
A simple and fast exact clustering algorithm defined for complex
 
Application of Graph Theory in Computer science using Data Structure.pdf
Application of Graph Theory in Computer science using Data Structure.pdfApplication of Graph Theory in Computer science using Data Structure.pdf
Application of Graph Theory in Computer science using Data Structure.pdf
 
On the-optimal-number-of-smart-dust-particles
On the-optimal-number-of-smart-dust-particlesOn the-optimal-number-of-smart-dust-particles
On the-optimal-number-of-smart-dust-particles
 
A NEW PARALLEL ALGORITHM FOR COMPUTING MINIMUM SPANNING TREE
A NEW PARALLEL ALGORITHM FOR COMPUTING MINIMUM SPANNING TREEA NEW PARALLEL ALGORITHM FOR COMPUTING MINIMUM SPANNING TREE
A NEW PARALLEL ALGORITHM FOR COMPUTING MINIMUM SPANNING TREE
 
A NEW PARALLEL ALGORITHM FOR COMPUTING MINIMUM SPANNING TREE
A NEW PARALLEL ALGORITHM FOR COMPUTING MINIMUM SPANNING TREEA NEW PARALLEL ALGORITHM FOR COMPUTING MINIMUM SPANNING TREE
A NEW PARALLEL ALGORITHM FOR COMPUTING MINIMUM SPANNING TREE
 
Computer Science Assignment Help
Computer Science Assignment Help Computer Science Assignment Help
Computer Science Assignment Help
 
Algorithms Design Exam Help
Algorithms Design Exam HelpAlgorithms Design Exam Help
Algorithms Design Exam Help
 
B61301007 matlab documentation
B61301007 matlab documentationB61301007 matlab documentation
B61301007 matlab documentation
 
Exhaustive Combinatorial Enumeration
Exhaustive Combinatorial EnumerationExhaustive Combinatorial Enumeration
Exhaustive Combinatorial Enumeration
 
Lecture3
Lecture3Lecture3
Lecture3
 
Quantum algorithm for solving linear systems of equations
 Quantum algorithm for solving linear systems of equations Quantum algorithm for solving linear systems of equations
Quantum algorithm for solving linear systems of equations
 
Teaching Graph Algorithms in the Field - Bipartite Matching in optical datace...
Teaching Graph Algorithms in the Field - Bipartite Matching in optical datace...Teaching Graph Algorithms in the Field - Bipartite Matching in optical datace...
Teaching Graph Algorithms in the Field - Bipartite Matching in optical datace...
 
Information Content of Complex Networks
Information Content of Complex NetworksInformation Content of Complex Networks
Information Content of Complex Networks
 
for sbi so Ds c c++ unix rdbms sql cn os
for sbi so   Ds c c++ unix rdbms sql cn osfor sbi so   Ds c c++ unix rdbms sql cn os
for sbi so Ds c c++ unix rdbms sql cn os
 

Thesis_Draft_Nurkhaidarov

  • 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