Minimum Spanning Tree and Maximal Flow

Outline
 Minimum
 Maximal
Spanning Tree
Flow
 Algorithm
 LP
formulation
1
The Minimum Spanning Tree
Problem
最小延展樹問題
2
8.1.2 The Minimum Spanning Tree
Problem

application context
nodes are cities (節點是城市)
 arcs are potential highways to be built to connect the
cities (線段是連接城市的高速公路)
 what is the cheapest way (i.e., shortest total distance) to
have all cities connected? (最短的公路網將所有城市
連接起來)

3
8.1.2 The Minimum Spanning Tree
Problem
 general
concept
 tree:
a connected network such that the n nodes
of the network are connected by n-1 arcs
 which is a tree?
4
8.1.2 The Minimum Spanning Tree
Problem
 think
about this
 the
cheapest way to connect all cities should be
a tree
 called
spanning tree, as it connects all cities
 the
only question: how to find the cheapest
spanning tree?
只要細想,每個人都懂。
5
8.1.2 The Minimum Spanning Tree
Problem
 question:
would the cheapest arc always in
the minimum spanning tree?
 must
be
an arc in the spanning tree
an arc not in the spanning tree
the cheapest arc, not in the spanning tree
6
8.1.2 The Minimum Spanning Tree
Problem
 question:
would we find the minimum
spanning tree by always selecting the
cheapest unselected arc?
 no,
see, e.g., the cheapest three arcs.
4
22
13
2
26
18
27
6
24
20
1
30
18
5
3
49
33
32
7
7
8.1.2 The Minimum Spanning Tree
Problem
 Let
us grow the minimum spanning tree
step by step, i.e., add the arcs one by one.
(一步一步的養大這minimum spanning tree.)
 As
argued before, arc (1, 2) must be in the
minimum spanning tree.
 Thus,
we have a small tree T{1, 2}.
4
22
13
2
26
18
27
6
24
20
1
30
18
5
3
49
33
32
7
8
8.1.2 The Minimum Spanning Tree
Problem

In the minimum spanning tree, which of the three arcs, (1, 3), (2, 3),
and (2, 4), should be connected to the tree T{1, 2} grown so far?

Arc (1, 3) of length 18 should be in the minimum spanning tree. Why?

Considered a spanning tree without arc (1, 3).

The cost of the spanning tree can be reduced by swapping an arc with
higher cost with arc (1, 3).

Thus, arc (1, 3) should be in the minimum spanning tree.
4
22
13
2
26
18
27
6
24
20
1
30
18
5
3
49
33
32
7
9
8.1.2 The Minimum Spanning Tree
Problem
 to
find the minimum spanning tree:
 start
with the arc of minimum cost to from a
tree (從最便宜的公路開始)
 grow
the tree by adding an arc connecting to it
such that (每次加一條公路)
 adding
the arc maintains a tree (保持tree的形式),
and
 among
possible arcs to add, the added arc is of the
lowest cost (選能加上的公路中最便宜的)
10
8.1.2 The Minimum Spanning Tree
Problem
4
22
13
2
26
18
27
6
24
20
1
33
30
18
5
32
3
49
7
11
8.1.2 The Minimum Spanning Tree
Problem
4
22
13
2
26
18
27
6
24
20
1
33
30
18
5
32
3
49
7
12
8.1.2 The Minimum Spanning Tree
Problem
4
22
13
2
26
18
27
6
24
20
1
33
30
18
5
32
3
49
7
13
8.1.2 The Minimum Spanning Tree
Problem
4
22
13
2
26
18
27
6
24
20
1
33
30
18
5
32
3
49
7
14
8.1.2 The Minimum Spanning Tree
Problem
4
22
13
2
26
18
27
6
24
20
1
33
30
18
5
32
3
49
7
15
8.1.2 The Minimum Spanning Tree
Problem
4
22
13
2
26
18
27
6
24
20
1
33
30
18
5
32
3
49
7
16
8.1.2 The Minimum Spanning Tree
Problem
4
22
13
2
26
18
27
6
24
20
1
33
30
18
5
32
3
49
7
17
The Maximal Flow Problem
最大流量問題
18
Railway Map

Each railway
segment has a
capacity (i.e., upper
bound of tonnage
(per day)).

What is the
maximal flow from,
say, Paris to
Moscow?
http://www.worldchanging.com/archives/009028.html
19
The Maximal Flow Problem
 The
number beside an arc is the capacity of
flow along the arc. (管線旁的數字是管線的容量)
 The
movement can be of either direction.
 What
is the maximal flow from node 1 to
node 4?
2
6
10
1
4
2
3
6
3
20
The Maximal Flow Problem
 At
any moment, we need to keep track of
the flow and the residual capacity (i.e.,
remaining capacity) of an arc.
2
0
1
0
10
0
3
0
2
3
0
6
0
6
4
0
number beside an arc:
boxed = residual capacity,
normal = current flow.
21
The Maximal Flow Problem
2
0
1
0
10
0
3
0
6
0
2
4
0
The route 124 allows a
flow of 6 units.
0
6
3
2
6
1
6
4
0
3
0
2
3
6
0
4
6
0
6
22
The Maximal Flow Problem
2
6
1
6
4
0
3
6
0
0
2
3
4
6
The route 1234
allows a flow of 2 units.
0
6
2
6+2
6 1
8
2
0
3
2
0
3
6
0
4
6+2
6
2
4
23
The Maximal Flow Problem
2
6+2
6 1
8
2
0
3
2
0
3
6
0
4
6+2
6
The route 134 allows a
a flow of 3 units.
2
4
6+2+3
6+2
6 1
2
8
2
3
0
2
0
3
6
0
6+2+3
6+2
6
4
2+3
1
24
The Maximal Flow Problem
 The
maximal flow from node 1 to node 4 is
11 units. The flow pattern is shown below,
with the residual capacities of arcs boxed.
2
11
1
8
2
2
0
3
0
3
6
0
4
11
5
1
25
The Maximal Flow Problem
 The
method seems all right:
 We
first find a route of positive flow from the
source to the sink.
 Find the residual capacities of arcs by
subtracting added flows from their (residual)
capacities.
 Keep on repeating the above two steps until no
route with positive flow can be added.
 However,
the method can run into trouble.
26
The Maximal Flow Problem
2
6
10
1
4
2
3
6
3
2
0
1
0
10
0
3
0
2
3
0
6
4
0
0
6
27
The Maximal Flow Problem
2
0
1
0
10
0
3
0
6
0
2
4
0
0
6
3
The route 1324
allows a flow of 2 units.
2
2
1
0
10
2
1
2
0
3
2
4
4
2
0
6
28
The Maximal Flow Problem
2
2
1
0
10
2
1
2
4
2
0
4
2
0
6
3
The route 124 allows a
flow of 4 units.
2
6
1
4
6
2
1
2
0
3
6
0
4
6
0
6
29
The Maximal Flow Problem
2
6
1
4
6
2
1
6
0
2
0
3
4
6
0
6
The route 134 allows a
flow of 1 unit.
2
7
1
4
6
3
0
2
0
3
6
0
4
7
1
5
30
The Maximal Flow Problem
 There
seems to be no more flow to node 4,
because residual capacity of
 arc
(1, 3) = 0, arc (2, 3) = 0, arc (2, 4) = 0
2
7
1
4
6
3
0
2
0
3
6
0
4
7
1
5
31
The Maximal Flow Problem
 However,
this does not make sense, because
the flow is found to be 11 units before.
 What
is wrong?
2
4
7
6
2
1
3
4
7
1
3
32
The Maximal Flow Problem
 Compare
the two flow patterns. Any
observations?
 In
the second case, the flow in the vertical
arc is in the wrong direction.
2
11 1
8
2 2
0
3
0
3
6
0
5
1
4 11
7 1
4
6
3
0
2
2
3
0
6
0
4
7
1
5
33
The Maximal Flow Problem
 In
a large network, how can we be sure
which direction to follow when we add flows
one by one?
 There
should be ways to revert the direction
of a wrong flow.
2
4
7
2
1
2
1
4
2
4
7
1
3
34
The Maximal Flow Problem
 Suppose
that we send 2 units from node 1 to
node 2 to take up the capacity of node 2 to
node 4 of the red flow.
 The
red flow is along arc (3, 2) is then redirected to arc (3, 4).
2
4
62
7+2
7 1
0 1
2
2
3
0
4
2 0
2
1
15
4
7+2
7
35
The Maximal Flow Problem
2
 The
6
4
result:
9
1
0
3
0
6
0
2
3
3
9
4
3
 Two
more units of flow can be sent along
the route 1234
2
9+2 1
6+2
2
3
0
2
3
6
0
0
5
4
9+2
1
36
The Maximal Flow Problem

There is a labeling algorithm basically keeping
track of the flows, the residual capacities, and the
re-direction of flows.

The algorithm works for networks with capacity
limits on bi-directional flows on arcs. It is possible
to have different limits for the two directions of the
same arc. (容許i到j跟j到i的capacity不一樣)
3
5
the capacity of i  j flow
the capacity of j  i flow
i
j
37
The Maximal Flow Problem
 Find
the maximal flow from node 1 to node
4 for the following network. The number
beside an arc is the capacity limit of the arc.
All arcs are bi-directional.
2
10
1
6
4
2
3
6
3
38
The Maximal Flow Problem

Since node 1 is the source, flow can only be possible from
node 1 to node 2. Thus, arc (1, 2) is practically a directed arc.

Similar, flow can only be possible from node 1 to node 3,
node 2 to node 4, and node 3 to node 4. Thus, practically
arcs (1, 3), (2, 4), and (3, 4) are directed arcs.

The flow on (2, 3) can be on either direction.
2 6
0
10
2
0
4
1
3
0
2
0 3
6
39
The Maximal Flow Problem
2 6
0
10
0
2
0
4
1
3
0
2
0 3
The route 1324
allows a flow of 2 units.
6
0
the residual capacity
of flowing from
node 1 to node 3
0
2
0
the residual capacity
of flowing from
node 3 to node 1
10
4
2 6
2 4
2
0
4
1
3
1
2 0
0 3
2
2
0
0
6
40
The Maximal Flow Problem
0
2
0
10
4
2 6
2
0
2 4
2
0
4
1
3
1
2 0
0 3
2
0
The route 124
allows a flow of 4 units.
6
6
2
0
6
10
4
0
0
4
2 6
2 4
6
2
0
4
1
3
1
2 0
0 3
2
6
2
0
0
6
41
The Maximal Flow Problem
6
2
0
6
10
4
0
0
4
2 6
6
2
0
2 4
6
2
0
4
1
3
1
2 0
20 3
0
The route 134
allows a flow of 1 unit.
6
7
6
2
0
4
0
6
10
0
4
2 6
2 4
6
2
0
4
1
3
1
0
2 0
3
20 3
2
7
6
2
0
0
1
65
42
The Maximal Flow Problem
7
6
2
0
4
0
6
10
0
4
2 6
6
2
0
2 4
4
1
3
1
0
2 0
3
0 3
2
7
6
2
0
0
1
The route 1234
allows a flow of 4 unit.
65
11 7
6
2
0
0
8
4 2 46
0
2 4
0
2
6
10
1
3
1
0
6
2
0
4
2 0 4
3
0 3
2
65
0
1
5
1
11
7
6
2
0
43
The Maximal Flow Problem
 How
to get the flows?
 Compare
with the original. The differences
in (residual) capacities give the actual flows.
2 6
0
10
0
2
0
3
0 3
6
maximal flow from node 1
to node 4 : 11 units
2
11
23: 2 units
24: 6 units
2 0
8
0
2
13: 3 units
0
4
1
12: 8 units
0
34: 5 units
6
11
4
1
0
5
4
3 3
1
44
A Linear Program Formulation
of
the Maximal Flow Problem
45
LP Formulation of
the Maximal Flow Problem

Oil is pumped out at node 1, temporarily stored at nodes 2,
3, and 4, and eventually sent the refinery at node 5 through
the pipe lines. In the following, arc represents a pipe line,
with its capacity (i.e., barrels of oil per day) written beside
it. Formulate a linear program to find the maximal
amount of oil sent from node 1 to node 5.

A maximal flow problem can be formulated as a linear program
(and solved by an optimizer).
2
50
45
1
40
35
3
25
10
4
20
5
15
46
LP Formulation of
the Maximal Flow Problem

Let xij be the number of barrels of oil pumped from node i
to node j; xij  0.

Because node 1 is the source, x21 = x31 = 0.

Similarly, x52 = x53 = x54 = 0 because node 5 is the sink.

Because we do not know the direction of flow in arc (2, 3),
we are not sure which of x23 and x32 should be equal to zero.

Similarly, we have no idea of fixing which of x24 and x42,
and of x34 and x43, to zero.
2
50
45
20
1
40 25 4
5
15
35
10
3
47
LP Formulation of
the Maximal Flow Problem
 We
further introduce a variable x51.
Effectively we act an artificial arc from
node 5 to node 1.
45
1
2
40
35
3
50
25
4
20
5
15
10
x51
48
LP Formulation of
the Maximal Flow Problem
 Each
LP constraint matches with a physical
relationship of the problem.
 There
are two types of constraints:
 conservation
of flow: the amount of oil into a
node must be the same as the amount out of the
node.
 bounds on flow: 0 xij  capacity of i to j flow
49
LP Formulation of
the Maximal Flow Problem
objective function: max x51,
 conservation of flow

node 1:
 node 2:
 node 3:
 node 4:
 node 5:

x51 = x12 + x13,
x12 + x32 + x42 = x23 + x24 + x25,
x13 + x23 + x43 = x32 + x34 + x35,
x24 + x34 = x42 + x43 + x45,
x25 + x35 + x45 = x51,
45
1
2
40
35
3
50
25 4
20
15
10
5
50
LP Formulation of
the Maximal Flow Problem

bounds:
0  x12  45,
 0  x13  35,
 0  x23, x32  40,
 0  x24, x42  25,
 0  x25  50,
 0  x34, x43  10,
 0  x35  15,
1
 0  x45  20

2
50
45
40
35
3
25
10
4
20
5
15
51
LP Formulation of
the Maximal Flow Problem
 Read
Example 8-6 for more example.
52
Assignment #3
 Chapter
8
 Problem
1 (a), (b), plus
 (c)
Formulate this problem as a mathematical
programming model.
 Problem
10
 Problem 16 (a) Find the maximal flow of this
network, and (b) Formulate the problem as a
linear program.
53