Professional Documents
Culture Documents
đồ thị
đồ thị
Chương 5
BM Toan 1
BM Toan
Đồ thị b c
a d e
k
g
2
BM Toan
ii) E là tập hợp gồm các cặp không sắp thứ tự của hai
phần tử của V gọi là các cạnh của G.
3
BM Toan
b c
a d e
k
g
4
BM Toan
Chú ý
Ta nói cạnh uv nối u với v, cạnh uv kề với u,v.
Nếu uvE thì ta nói đỉnh u kề đỉnh v.
Hai cạnh nối cùng một cặp đỉnh gọi là hai cạnh song
song.
Cạnh uu có hai đầu mút trùng nhau gọi là một khuyên.
5
BM Toan
6
BM Toan
7
BM Toan
b c
a d e
h
k b
g a
b c
d
a
d c
8
BM Toan
9
Detroit
New York
San Francisco
Chicago
Denver Washington
Los Angeles
BM Toan
10
Detroit
New York
San Francisco
Chicago
Denver Washington
Los Angeles
BM Toan
11
Detroit
New York
San Francisco
Chicago
Denver
Washington
Los Angeles
BM Toan
Định nghĩa 5
12
BM Toan
b b
a
a
d c c
d
13
BM Toan
Chú ý
14
BM Toan
15
BM Toan
16
BM Toan
Detroit
New York
Chicago
San Francisco
Denver Washington
Los Angeles
17
BM Toan
Detroit
New York
Chicago
San Francisco
Denver Washington
Los Angeles
18
BM Toan
19
BM Toan
20
BM Toan
a b
c d
e
21
BM Toan
22
BM Toan
23
BM Toan
c d
e
f
Bậc đỉnh c: deg-(c)= 1 ; deg+(c)=2
Định lí
Cho đồ thị G = (V,E), m là số cạnh (cung)
1) 2m deg(v)
vV
2) Nếu G có hướng thì:
m deg(v) deg(v)
vV vV
3) Số đỉnh bậc lẻ của đồ thị là số chẵn
25
BM Toan
26
BM Toan
Tìm ma trận kề
a b c d
a a
0 1 1 0
b
b
1 0 1 1
c
c
1 1 0 1
d d
0 1 1 0
27
BM Toan
Tìm ma trận kề
a b a b c d e f
a 0 2 1 0 0 0
d
b 2 0 1 0 1 1
c e
c 1 1 0 0 0 1
f d 0 0 0 0 0 0
e 0 1 0 0 1 0
f 0 1 1 0 0 0
28
BM Toan
Đẳng cấu
Định nghĩa
Cho hai đơn đồ thị G = (V,E) và G’= (V’,E’). Ta nói rằng G đẳng
cấu G’, ký hiệu G G’, nếu tồn tại song ánh f :V→ V’sao cho:
uv là cạnh của G f(u)f(v) là cạnh của G’
29
BM Toan
Đẳng cấu
Chú ý
Nếu G và G’ là các đơn đồ thị vô hướng đẳng cấu qua
ánh xạ f thì chúng có:
Cùng số đỉnh
Cùng số cạnh
Cùng số đỉnh với bậc cho sẵn (vd: số đỉnh bậc 2 của
G và G’ bằng nhau)
deg v = deg f(v)
30
BM Toan
Đẳng cấu
31
BM Toan
Ví dụ
d
d e
e
32
BM Toan
b 2
a 1 3
d c
6
e 4 5
f
Đẳng cấu
33
BM Toan
a 2
b 1
4
5
d
e 3
c
34
BM Toan
a
b
c e
35
BM Toan
36
BM Toan
37
BM Toan
38
BM Toan
39
BM Toan
40
BM Toan
a) Đường đi không có cạnh nào xuất hiện quá một lần gọi là
đường đi đơn
b) Đường đi không có đỉnh nào xuất hiện quá một lần gọi là
đường đi sơ cấp
c) Đường đi được gọi là chu trình nếu nó bắt đầu và kết thúc
tại cùng một đỉnh
BM Toan
42
BM Toan
44
BM Toan
K4
K5
Đồ thị đủ Kn
45
BM Toan
C4
C5
Cycle Cn
46
BM Toan
W4
W5
Wheel Wn
47
BM Toan
Đồ thị đủ Kn
K1 K2 K3 K4
K5 K6
n
n( n 1)
Số cạnh trong Kn:
i 1
i
2
48
BM Toan
Cycles
C3 C4 C5 C6
C7 C8
49
BM Toan
Wheels
W3 W4 W5 W6
W7 W8
50
BM Toan
n-cubes (hypercubes)
Q0
Q1 Q2 Q4
Q3
51
BM Toan
Bipartite Graph
52
BM Toan
Euler
53
53
BM Toan
Hamilton
(1755-1804)
54
54
BM Toan
Các khu vực này được nối với nhau bởi 7 cây cầu
55
55
BM Toan
56
56
BM Toan
Euler Paths
Câu hỏi: Có thể đi qua 7 cây cầuvà quay lại được điểm xuất phát mà không phải đi
qua bất kỳ cây cầu nào lần thứ 2
A
D
B
Phương pháp Euler đưa ra để giải quyết vấn đề đó là sử dụng đồ thị
58
58 B
BM Toan
Định nghĩa.
i. Đường đi Euler là đường đi qua tất
cả các cạnh mỗi cạnh (cung) đúng
một lần.Chu trình Euler là chu trình
đi qua tất cả các cạnh của đồ thị mỗi
cạnh đúng một lần.
ii. Đồ thị được gọi là đồ thị Euler nếu
nó có chu
trình Euler 59
59
BM Toan
Đường đi Euler-Đường đi
Hamilton
Thuật toán Fleury để tìm chu trình Euler.
Đường đi Euler-Đường đi
Hamilton
a b c d
e
h g f
abcfdcefghbga
62
62
BM Toan
Đường đi Euler-Đường đi
Hamilton
Điều kiện đủ cho đồ thị có hướng ,
đơn(không
có khuyên và không có cạnh song song
cùng
chiều)
ĐK Meyniel. ij và ji E deg(i)+deg(j)2n-
1 với i, j tùy ý.
Đường đi Euler-Đường đi
Hamilton
Đồ thị có trọng số
0 5 31 40
0 27 73
26 0 8 49 25 38
D 0 16
70 0 9
23 0 12
10 0
71
BM Toan
Bài toán.
Cho G = (V, E) đơn, liên thông, có trọng số
dương
(w(uv) > 0 với mọi u khác v). Tìm đường đi
ngắn
nhất từ u0 đến v và tính khoảng cách d(u
0,v).
72
BM Toan
Phương pháp
Xác định tuần tự các đỉnh có khoảng cách
đến u0
từ nhỏ đến lớn.
1. Trước tiên đỉnh có khoảng cách nhỏ
nhất đến u0 là u0.
2. Trong V\{u0} tìm đỉnh có khoảng cách
đến u0 nhỏ nhất (đỉnh này phải là một
trong các đỉnh kề với u0) giả sử đó là u1
73
BM Toan
76
7 s BM Toan
r
1
4 3
3 x
u 1
2 3
t
1 4
w
y 3 z 5
u0 r s t x y z w
0* (,-) (,-) (,-) (,-) (,-) (,-) (,-)
77
7 s BM Toan
r
1
4 3
3 x
u 1
2 3
t
1 4
w
y 3 z 5
u0 r s t x y z w
0* (,-) (,-) (,-) (,-) (,-) (,-) (,-)
- (4,u0) (,-) (,-) (,-) (1u0)* (,-) (,-)
78
7 s BM Toan
r
1
4 3
3 x
u 1
2 3
t
1 4
w
y 3 z 5
u0 r s t x y z w
0* (,-) (,-) (,-) (,-) (,-) (,-) (,-)
- (4,u0) (,-) (,-) (,-) (1u0)* (,-) (,-)
- (3,y)* (,-) (,-) (,-) - (4,y) (,-)
79
r 7 BM Toan
1
4 3 x
3
u 1
2 t 3
1 4
z w
y 3 5
u0 r s t x y z w
0* (,-) (,-) (,-) (,-) (,-) (,-) (,-)
- (4,u0) (,-) (,-) (,-) (1u0)* (,-) (,-)
- (3,y)* (,-) (,-) (,-) - (4,y) (,-)
- - (10,r) (6,r) (,-) - (4,y)* (,-)
- - (10,r) (6,r)* (,-) - - (9,z)
- - (9,t) - (7,t)* - - (9,z)
- - (8,x)* - - - - (9,z)
- - - - 80 - - - (9,z)*
BM Toan
Cây đường đi s
r
3 1
t 1
u x
2
y 3 z 5
w
81
BM Toan
Ví dụ 2(ĐHKHTN,2006).
Câu 5. Cho đồ thị có trọng số G = (V, E) ,
V = { v1, v2, v3, v4, v5, v6 , v7}xác định bởi
ma
trận trọng số D. Dùng thuật toán Dijkstra
tìm
đường đi ngắn nhất từ v1 đến các đỉnh
v2,v3,v 4, v5,
v6,v7
82
BM Toan
0 5 31 40
0 27 73
26 0 8 49 25 38
D 0 16
70 0 9
23 0 12
10 0
83
BM Toan
84
BM Toan
v1 v2 v3 v4 v5 v6 v7
0* (,-) (,-) (,-) (,-) (,-) (,-)
- (5,v1)* (31,v1) (40,v1) (,-) (,-) (,-)
- - (31,v1)* (40,v1) (78,v2) (,-) (,-)
- - - (39,v3)* (78,v2) (56,v3) (69,v3)
- - - - (78,v2) - (67,v6)*
- - - - (77,v7) - -
85
BM Toan
86
BM Toan
Ví dụ 3(ĐHKHTN2005).
Cho một ví dụ chứng tỏ rằng thuật toán
Dijkstrađể tìm đường đi ngắn nhất từ
một đỉnh đến các đỉnh khác không áp
dụng được cho đồ thị có trọng lượng
nếu có cạnh có trọng lượng âm
87
BM Toan
a b c
0 ( , ) ( , )
(5, a ) (4, a) *
(5, a) b
*
5 -3
a 4 c
88
BM Toan
BAØI 4(Đề2007)
Duøng thuaät toaùn Dijsktra ñeå tìm ñöôøng ñi
ngaén nhaát töø ñænh a ñeán ñænh z vaø
chieàu daøi cuûa noù trong ñoà thò voâ
höôùng coù troïng löôïng sau:
b 5 d 5 f
4 7
3
2 1 2 z
a
3 4
c 6 e 5 g
89
BM Toan
a b c d e f g z
0 (,-) (,-) (,-) (,-) (,-) (,-) (,-)
0 (4.a) (3.a) (,-) (,-) (,-) (,-) (,-)
0 (4.a) (3.a) (6.c) (9.c) (,-) (,-) (,-)
0 (4.a) (3.a) (6.c) (9.c) (,-) (,-) (,-)
0 (4.a) (3.a) (6.c) (7.d) (11.d) (,-) (,-)
0 (4.a) (3.a) (6.c) (7.d) (11.d) (12,e ) (,-)
0 (4.a) (3.a) (6.c) (7.d) (11.d) (12,e ) (18,f )
0 (4.a) (3.a) (6.c) (7.d) (11.d) (12,e ) (16,g )
90
BM Toan
92
BM Toan
Ví dụ 1.
4
2 3 2
7 1
6
1 2 2 -6
8 3
5
4
2
93
BM Toan
8 3
5
4
2
k 1 2 3 4 5 6
0 0 (,-) (,-) (,-) (,-) (,-)
94
BM Toan
4
2 3 2
7 1
6
1 2 2 -6
8 3
5
4
2
k 1 2 3 4 5 6
0 0 (,-) (,-) (,-) (,-) (,-)
1 0 (7,1) (,-) (8,1) (,-) (,-)
95
BM Toan
4
2 3 2
7 1
6
1 2 2 -6
8 3
5
4
2
k 1 2 3 4 5 6
0 0 (,-) (,-) (,-) (,-) (,-)
1 0 (7,1) (,-) (8,1) (,-) (,-)
2 0 (7,1) (11,2) (8,1) (9,2) (8,2)
96
BM Toan
4
2 3 2
7 1
6
1 2 2 -6
8 3
5
4
2
k 1 2 3 4 5 6
0 0 (,-) (,-) (,-) (,-) (,-)
1 0 (7,1) (,-) (8,1) (,-) (,-)
2 0 (7,1) (11,2) (8,1) (9,2) (8,2)
3 0 (7,1) (10,6) (2,6) (9,2) (8,2)
97
BM Toan
4
2 3 2
7 1
6
1 2 2 -6
8 3
4 5
2
k 1 2 3 4 5 6
0 0 (,-) (,-) (,-) (,-) (,-)
1 0 (7,1) (,-) (8,1) (,-) (,-)
2 0 (7,1) (11,2) (8,1) (9,2) (8,2)
3 0 (7,1) (10,6) (2,6) (9,2) (8,2)
4 0 (4,4) (10,6) (2,6) (4,4) (8,2)
98
4 BM Toan
2 3 2
7 1
6
1 2 2 -6
8 3
4 5
2
k 1 2 3 4 5 6
0 0 (,-) (,-) (,-) (,-) (,-)
1 0 (7,1) (,-) (8,1) (,-) (,-)
2 0 (7,1) (11,2) (8,1) (9,2) (8,2)
3 0 (7,1) (10,6) (2,6) (9,2) (8,2)
4 0 (4,4) (10,6) (2,6) (4,4) (8,2)
5 0 (4,4) (8,2) (2,6) (4,4) (5,2)
99
2 4 3 BM Toan
7 2
1 6
1 2 2 -6
8 5 3
4
2
k 1 2 3 4 5 6
0 0 (,-) (,-) (,-) (,-) (,-)
1 0 (7,1) (,-) (8,1) (,-) (,-)
2 0 (7,1) (11,2) (8,1) (9,2) (8,2)
3 0 (7,1) (10,6) (2,6) (9,2) (8,2)
4 0 (4,4) (10,6) (2,6) (4,4) (8,2)
5 0 (4,4) (8,2) (2,6) (4,4) (5,2)
6 0 (4,4) (7,6) (-1,6) (4,4) (5,2)
100
BM Toan
101
BM Toan
Ví dụ 2.
4
2 3 2
7 1
6
1 2 2 -2
8 3
5
4
2
102
BM Toan
k 1 2 3 4 5 6
0 0 (,-) (,-) (,-) (,-) (,-)
1 0 (7,1) (,-) (8,1) (,-) (,-)
2 0 (7,1) (11,2) (8,1) (9,2) (8,2)
3 0 (7,1) (10,6) (6,6) (9,2) (8,2)
4 0 (7,1) (10,6) (6,6) (8,4) (8,2)
5 0 (7,1) (10,6) (6,6) (8,4) (8,2)
103
BM Toan
2 3 2
7 1
6
1
-2
5
4
2
104
BM Toan
ii) Thuật toán tìm kiếm theo chiều rộng (Breadth First
Search).
Đánh giá hiệu quả của thuật toán
105
v0
BM Toan
Ý tưởng
Xuất phát xét từ đỉnh v 0.
Chọn đỉnh u kề với đỉnh v 0 .
Lặp lại quá trình đối với đỉnh u.
Bước tổng quát: Giả sử xét đỉnh v.
- Nếu trong số các đỉnh kề với v tìm được đỉnh w chưa
được xét thì xét đỉnh này và từ đỉnh đó bắt đầu tìm kiếm
- Nếu không còn đỉnh nào kề với v mà chưa được xét thì
đỉnh v đã duyệt xong và quay lại tiếp tục tìm kiếm từ đỉnh
trước đó ta đến được đỉnh v
Kết thúc tìm kiếm nếu v = v 0
106
106
BM Toan
107
BM Toan
Thuật toán
BEGIN
(* Initialization *).
for v V do Chuaxet[v]:=true;
for v V do
if Chuaxet[v] then DFS(v);
End;
108
BM Toan
Ví dụ:
3 (9)
5 (5) 8 (6)
2 (2) 7 (8)
6 (4)
1(1)
4 (3) 9 (7)
12 (11)
13 (10)
10 (12) 11 (13)
109
v0
BM Toan
Nhận xét:
Đỉnh được thăm cành muộn sẽ càng sớm trở thành đã
duyệt xong.
Đây là hệ quả của việc các đỉnh được thăm sẽ được xếp
và trong ngăn xếp
110
110
v0
BM Toan
Ý tưởng:
Thay ngăn xếp bằng hàng đợi.
Đỉnh duyệt xong ngay sau khi ta xét xong các đỉnh kề
(chưa được thăm) với nó
111
111
BM Toan
112
BM Toan
Thuật toán
BEGIN
(* Initialization *).
for v V do Chuaxet[v]:=true;
for v V do
if Chuaxet[v] then BFS(v);
End;
113
BM Toan
Ví dụ:
3 (12)
5 (9) 8 (13)
2 (2) 7 (6)
6 (5)
1(1)
4 (3) 9 (10)
12 (4)
13 (11)
10 (7) 11 (8)
114
114