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 124 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 1234
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 134 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 1324
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 124 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 134 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 1234
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 1324
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 124
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 134
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 1234
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
23: 2 units
24: 6 units
2 0
8
0
2
13: 3 units
0
4
1
12: 8 units
0
34: 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
© Copyright 2026 Paperzz