V - 大葉大學

advertisement
Chapter 5 Fundamental Properties
of Graphs and Digraphs
大葉大學 資訊工程系 黃鈴玲
2011.11





5.1
5.2
5.3
5.4
5.7
Bipartite Graphs
Eulerian Graph
Hamiltonian Graphs
Hamiltonian Cycles in Weighted Graphs
On the Adjacency Matrix of a Digraph
2
Definition 5.1
Theorem 5.3
Observation 5.4
3
Definition 5.6
Theorem 5.7
Corollary 5.8
4
5
6
CurrentVertex
edges: 所有黑色邊形成的集合
L: 紅色邊,每一步驟加一條邊
e
此時e是G[edges]的bridge,
能不走就不走
重複此做法至結束,
最後一條邊必定是e,
Eulerian Circuit就找到了。
7

Find an Eulerian circuit for the following graph.
(請試著trace前述的演算法)
v1
v2
v3
v7
v4
v6
v5
8
Example 5.12
9
Definition 5.13
Note 5.15
10
Thm 5.16:
If G is a simple Hamiltonian graph, then for each S  V(G),
the number of components of G- S is at most |S|.
Example S={a, b, c, d, e, f, g}
a
c
b
d
e
f
g
4個component
刪掉7點後,最多剩下7個component
11
Thm 5.16:
If G is a simple Hamiltonian graph, then for each S  V(G),
the number of components of G- S is at most |S|.
pf: G is hamiltonian   a hamiltonian cycle C
Suppose S={v1, v2, …, vn}.
Gn
vn
G1
…
C
v3
G3
v1
v2
G2
故G- S 最多分成n個component.
12
證明下面兩圖
都不是Hamilton
的方法:
刪除紅點後,變成7個component
紅點只有6個
不是Hamiltonian
刪除紅點後,變成5個component
紅點只有4個
不是Hamiltonian
13
Lemma 5.19:
Corollary 5.20:
Corollary 5.21:
14
上述定理提供了判斷圖形是否 hamiltonian 的一種方法
 重複將不相連但degree 和  n 的兩點連一條邊
新圖形是否 hamiltonian 決定了原圖是否hamiltonian

n=7

4+3  7
且不相連

4+3  7
且不相連
4+3  7
且不相連
Not hamiltonian!
15
n=7




若重複一直做,原圖會變成complete graph
 原圖是Hamiltonian
16
17
e6

e5
e1
e2
e6

e5
e2
e3
從K6任挑一個
Hamiltonian Cycle C(藍色)
重複加邊變成K6
e6 C
e5 C
e4 C
e3 C
e2 C

u2
u0
u5
u3
e1
e2
u1
C= u0, u1, u2, u3, u4, u5, u0
找ut使得 {u0, ut},
{u1, ut+1}為原圖的邊
u5
e1

u3
e2
u2
u4
e3
e4
e4
u0
e1
u1
u4
將C中加入邊{u0, ut}, {u1, ut+1}
刪除 {u0, u1}及 {ut, ut+1}
C= u0, u4, u3, u2, u1, u5, u0
重複此法至所有紅邊都刪除為止
18
v0
v1
v5
v2
v4
v3
19
Traveling Salesman Problem (TSP):
Suppose that a salesman is required to make a
round trip through a given collection of n(3)
cities. What route should he take to minimize the
total distance traveled?
(本節以下內容取材自另一本課本)
 G: connected weighted graph,
vi  V(G): the cities,
w(vivj) of edge vivj: the distance to travel
directly between vi and vj .
(Assume that G is complete)
※ TSP asks for a Hamiltonian cycle of minimum weight.
20
∵TSP is a NP-complete problem
∴改成 find low weight 的 HC
TSP: Given a weighted complete graph G and a positive
constant B, does there exist a hamiltonian cycle C in G
so that w(C)  B?
此處提供兩種作法
前提: 需先符合triangle inequality (三角不等式)
w(vi,vk)  w(vi,vj) + w(vj,vk)
vi
vj
vk
21
Algorithm TSP-1 (a greedy algorithm)
[ To determine a low weight HC in a weighted complete
graph G of order(點數) p3 satisfying the triangle
inequality. ]
1. n  1. (n is the cycle length)
2. Select any vertex of G to form Cn.
(Cn剛開始只有一個點)
3. If n < p, then find a vertex vn not on Cn s.t. w(unvn) is minimum for
some un is on Cn, and go to Step 4. Otherwise, Cn is the desired HC.
4. Let Cn+1 be the (n+1)-cycle obtained by inserting vn immediately
before un on Cn.
5. n  n +1 and return to Step 3.
22
G若不是complete graph,要先加邊,使之成為complete。
加邊方式:若u,v兩點不相連,就加uv這條邊,
邊的權重為G中u-v shortest path上的權重和。
v1 v2 v3 v4 v5 v6
v1  0
v2  3

v3  3
M 
v4  2

v5  7
v6 3
3 3 2 7 3
0 3 4 5 5

3 0 1 4 4

4 1 0 5 5
5 4 5 0 4

5 4 5 4 0

1. C1: v1
2. ∵ v2, …, v6中,w(v1v4)最小
∴C2: v1v4v1
3.
v2 v3 v5 v6
v1 3 3 7 3
v4 4
1
5
5
∵ w(v3v4) 最小
∴C3: v1v3v4v1
(加在要連的點之前)
23
v2 v5 v6
4.
v1 3 7 3
v3 3 4 4
v4 4 5 5
∵ w(v1v2) 最小
∴C4: v1v3v4v2v1
v5
6.
5.
v5 v6
v1
v2
v3
v4
7
3
5
5
4
4
5
5
C5: v1v3v4v2v6v1
v1
v2
v3
v4
v6
7
5
4
5
4
C6: v1v5v3v4v2v6v1
C6的 weight 總和為24, 而min weight 為18.
若改選別的點當C1,可能 weight 總和更小.
原圖G若不是complete,
找到的HC要對應變成G
的closed walk
24
Theorem
C : a HC given by Algorithm TSP-1
Cm : min weight HC
 w(C)  2  w(Cm)
(Algorithm TSP-1不保證能找出min HC,
但用 Algorithm TSP-1 找出的cycle 其weight 不會
大於 min HC 的兩倍.)
25
[ To determine a low weight HC in a weighted complete
graph G of order p3 satisfying the triangle inequality. ]
1. Find a min spanning tree T of G.
2. Conduct a depth-first search of T.
(起點為 T 的leaf)
3. If vi1, vi2, …, vip is the order in which the
vertices of T are visited in step 2, then
output the hamiltonian cycle
vi1, vi2, …, vip, vi1.
(Algorithm TSP-2 找出的cycle 其 weight 也不會大於
min HC 的兩倍.)
26
v1
3
v1
3
v2
v6
v5



v6

4
v5
2
4
v3

1
v4
A min spanning tree T
(a)

A depth-first search
從 leaf v2開始
(b)
5
3
v2
2
4
1
v3
v4
A HC
(c)
weight 總和為19
C: v2,v1,v4,v3,v5,v6,v2
27
Exercise
Use Alg. TSP-1 and TSP-2 to find a closed walk whose
weight does not exceed twice the weight of a shortest
closed walk in the given weighted graph G.
v1
G
1
2
3
v5
v2
Sol:
先把 G 變成 complete
3
4
v4
5
v3
v1 v2 v3 v4 v5
v1
v2
v3
v4
v5
v1
0
4
2
5
1
G
4
0
3
7
3
v5
2
3
0
5
3
5
7
5
0
4
1
3
3
4
0
4
1
3
4
3
v4
2
5
v2
7
5
3
v3
28
u1 u2 u3 u4 u5
u1
u2
u3
u4
u5
29
u1 u2 u3 u4 u5
u1
u2
u3
u4
u5
1
1

2
A(G )  0

0
0
0 1 1 0
0 0 1 0
1 1 1 0 A(G ) 3

0 0 1 0
0 0 0 0
u1 u2 u3 u4 u5
u1 1
u2 0

 u3 1
u4 0

u5 0

1 1 2 0
1 1 1 0
0 1 2 0

0 0 1 0
0 0 0 0
有 2 條從u3到u4且長度為 3 的walk:
u3  u1  u3  u4
e2
e3
e5
u3  u4  u4  u4
e5
e6
e6
(點及邊可重複的路徑)
30
Theorem 5.39
A(G)k 矩陣中的元素aij(k),
代表了由ui節點到uj節點且長度為 k 的walk數
31
Download