Trang 7 Định lýG = V, E là một đồ thị vơ hướng:o Số đỉnh lớn hơn hoặc bằng 3o Bậc của mọi đỉnh đều lớn hơn hoặc bằng 2thì trong G luơn tồn tại một chu trình sơ cấpĐịnh lýG = V, E là một
Trang 1Đồ thị
1
bda
k
ehg
c
Những khái niệm và tính chất cơ bản
Đồ thị vô hướng ( undirected graph )
Hai cạnh nối cùng một cặp đỉnh gọi là hai
cạnh song song ( parallel ).
Cạnh uu có hai đầu mút trùng nhau gọi là
Trang 2Định nghĩa 2
Đồ thị vô hướng không có cạnh song song và
không có khuyên gọi là đơn đồ thị vô hướng
(simple graphs).
Định nghĩa 3
Đồ thị vô hướng cho phép có cạnh song song
nhưng không có khuyên gọi là đa đồ thị vô
hướng (multigraphs).
Định nghĩa 4
Đồ thị vô hướng cho phép có cạnh song song
và có khuyên gọi là giả đồ thị (pseudographs).
bdak
ehg
c
cd
c
ba
Đa đồ thị vô hướng
Giả đồ thị
San Francisco
Denver
Los Angeles
New York Chicago
Washington Detroit
San Francisco
Denver
Los Angeles
New York Chicago
Washington Detroit
San Francisco
Denver
Los Angeles
New York Chicago
ii) E là đa tập hợp gồm các cặp có sắp thứ tự của hai
đỉnh Mỗi phần tử của E được gọi là một cung (cạnh)
của G Ký hiệu uv
Ta nói cung uv đi từ u đến v, cung uv kề với u,v
Đồ thị có hướng ( directed graph )
Ví dụ 6
Trang 3 Nếu uv là một cung thì ta nói:
Đa đồ thị có hướng không chứa các cạnh song
song gọi là đồ thị có hướng
New York
Chicago Washington Detroit
San Francisco
Denver Los Angeles
New York
Chicago Washington Detroit
17
Cho đồ thị vô hướng G = (V, E) Bậc của đỉnh v,
ký hiệu deg(v) , là số cạnh kề với v , trong đó một
khuyên tại một đỉnh được đếm hai lần cho bậc
f e
Trang 41) deg-(v) := số cung có đỉnh cuối là v, gọi là bậc
f e
Bậc đỉnh a: deg-(a) = 1 ; deg+(a) = 1Bậc đỉnh b: deg-(b) = 1 ; deg+(b) = 3Bậc đỉnh c: deg-(c) = 1 ; deg+(c) = 2
23
Định lý
Trong mọi đồ thị G = (V, E), nếu số đỉnh
nhiều hơn 1 thì tồn tại ít nhất hai đỉnh
cùng bậc
Định lý
Trong mọi đồ thị G = (V, E), nếu số đỉnh
nhiều hơn 2 và có đúng hai đỉnh cùng bậc
thì hai đỉnh này không đồng thời bằng 0
hoặc n-1
Ta sử dụng ma trận kề : Cho G = (V,E) với V={1,2,…,n}.
Ma trận kề của G là ma trận A = (aij)nxác định như sau:
Trang 5dc
fe
Định nghĩa
Cho hai đơn đồ thị G = (V,E) và G’= (V’,E’)
Ta nói rằng Gđẳng cấuG’, 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’
Trang 6Cho hai đồ thị G = (V,E) và G’ = (V’,E’) (cùng
vô hướng hoặc cùng có hướng).
G’ được gọi là đồ thị con của G, ký hiệu
G’ G nếu V’ V và E’ E
Nếu V’ = V và E’ E thì G’ được gọi là đồ
thị con khung của G.
31
Đồ thị con
32
Ví dụ về đồ thị con
Cho G = (V,E) là đồ thị vô hướng u,vV
a) Đường đi ( path ) có chiều dài k nối hai đỉnh
u,v là dãy đỉnh và cạnh liên tiếp nhau
v0e1v1e2…vk-1ekvk sao cho:
v0 = u ,vk= v, ei = vi-1vi , i=1,2,…,k
33
Đường đi, chu trình, đồ thị liên thông
Đường đi và chu trình:
b) Đường đi không có cạnh nào xuất hiện quá một lần gọi là đường đi đơn ( simple )
c) Đườ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 ( elementary )
d) Đường đi được gọi là chu trình ( cycle ) nếu nó bắt đầu và kết thúc tại cùng một đỉnh
34
Ví dụ về đường đi
35
(u, y, w, v) là một đường đi độ dài 3
(z, u, y, v, u) là một đường đi đơn nhưng không sơ
cấp
(u, y, w, v, u) là một chu trình Có thể xem chu
trình này như chu trình (w, v, u, y, w)
Chu trình sơ cấp:
(b, c, d, b)
(b, f, e, b)
Chu trình sơ cấp nào không?
Trang 7Định lý
G = (V, E) là một đồ thị vô hướng:
o Số đỉnh lớn hơn hoặc bằng 3
o Bậc của mọi đỉnh đều lớn hơn hoặc bằng 2
thì trong G luôn tồn tại một chu trình sơ cấp
Định lý
G = (V, E) là một đồ thị vô hướng:
o Số đỉnh lớn hơn hoặc bằng 4
o Bậc của mọi đỉnh đều lớn hơn hoặc bằng 3
thì trong G luôn tồn tại một chu trình sơ cấp có độ
Định nghĩa
Cho G = (V,E) Trên V ta định nghĩa quan hệ tương đương như sau:
u~v u = v hay có một đường đi từ u đến v
a) Nếu u~v thì ta nói hai đỉnh u và v liên thông với nhau b) Mỗi lớp tương đương được gọi là một thành phần liên thông
của G c) Nếu G chỉ có một thành phần liên thông thì G gọi là liên thông
o Có 3 thành phần liên thông
Đồ thị liên thông
Định nghĩa Cho G = (V,E) là đồ thị vô hướng
liên thông
a) Đỉnh v được gọi là đỉnh khớp nếu G-v
không liên thông (G-v là đồ thị con của G có
được bằng cách xoá v và các cạnh kề với v)
b) Cạnh e được gọi là cầu nếu G-e không liên
thông (G-e là đồ thị con của G có được bằng
Trang 8Nhận xét
v là một đỉnh khớp khi và chỉ khi số thành phần liên
thông tăng lên nếu bỏ v và các cạnh kề với nó
e là một cầu khi và chỉ khi số thành phần liên thông
tăng lên nếu bỏ cạnh e
Định nghĩa Cho G = (V,E) vô hướng liên thông, không phải Kn, n>2.
a) Số liên thông cạnh của G, ký hiệu e(G)
là số cạnh ít nhất mà khi xoá đi G không còn liên thông nữa.
b) Số liên thông đỉnh của G, ký hiệu v(G)
là số đỉnh ít nhất mà khi xoá đi G không còn liên thông nữa.
Định nghĩa.Cho đồ thị có hướng G = (V,E) Trên V tađịnh nghĩa quan hệ tương đương như sau:
u~v u = v hay có một đường đi từ u đến v và
đường đi từ v đến u
a) Nếu u~v thì ta nói hai đỉnh u và vliên thông mạnh
với nhau b) Mỗi lớp tương đương được gọi là một thành phần
liên thông mạnhcủa G c) Nếu Gchỉ có một thành phần liên thông mạnhthì G
Ví dụ về đồ thị liên thông mạnh
47
1 Đồ thị đầy đủ Kn
48
Một số đồ thị vô hướng đặc biệt
- Đơn đồ thị cấp n mà giữa hai đỉnh bất kỳ đều có một cạnh
Trang 108 Đồ thị phân đôi ( Bipartite Graph )
Cho đồ thị vô hướng , đơn G có 7 đỉnh trong đó
có một đỉnh bậc 6 Hỏi G có liên thông không?
Giải
Đỉnh bậc 6 nối với 6 đỉnh còn lại Do đó hai đỉnh
bất kỳ đều có một đường đi qua đỉnh bậc 6 Do
Nhận xét: Đỉnh bậc 5 nối với 5 đỉnh còn lại
Do đó ta chỉ phải quan tâm đến 5 đỉnh còn lại
Ta xét đơn đồ thị với 5 đỉnh và các bậc là 1,1,2,2,2.
59
TH1 Hai đỉnh bậc 1 nối với nhau, 3 đỉnh bậc 2 nối
với nhau tạo thành chu trình
Suy ra đồ thị cần tìm là
TH2 Hai đỉnh bậc 1 không nối với nhau Khi đó haiđỉnh bậc 1 phải nối với hai đỉnh bậc 2 khác nhau vàđỉnh bậc hai còn lại phải nối với hai đỉnh bậc hai ấy
60Suy ra đồ thị cần tìm là:
Trang 11Bài toán: Có thể xuất phát tại một điểm nào đó trong
thành phố, đi qua tất cả 7 cây cầu, mỗi cây một lần,
rồi trở về điểm xuất phát được không?
Vào thế kỷ 18, Euler đã giải quyết với đề này bằng
cách sử dụng lý thuyết đồ thị
64
A B
C
D
Phương pháp Euler đưa ra đểgiải quyết vấn đề đó là sửdụng đồ thị
4 khu vực được thể hiệnbởi 4 điểm: A, B, C, D
Mỗi cây cầu thể hiện bởi
1 cạnh nối
BC
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
Ví dụ về đường đi Euler
Đồ thị G trên có chu trình Euler ageabdhbcdefa nên G
là một đồ thị Euler
Trang 12Điều kiện cần và đủ
i Cho G = (V,E) là đồ thị vô hướng liên
thông G là đồ thị Euler Mọi đỉnh của G
đều có bậc chẵn.
Nếu G có hai đỉnh bậc lẻ còn mọi đỉnh
khác đều có bậc chẵn thì G có đường đi
Đồ thị Euller Có đường đi Euller
(nhưng không có chu trình Euller)
Ví dụ
69
Ví dụ Chỉ ra đường đi Euller và chu trình Euller
(nếu có) trong các đồ thị sau đây?
1 Bắt đầu từ một đỉnh bất kỳ của G và tuân theo qui tắc sau: Mỗi khi đi qua một cạnh nào đó thì xoá nó đi, sau đó xoá đỉnh cô lập nếu có.
2 Không bao giờ đi qua một cầu trừ phi không còn cách đi nào khác.
gh
Ví dụ
72
Ví dụ
Nếu đồ thị có đúng hai đỉnh bậc lẻ (có đường đi Euler) thì xuất phát từ một đỉnh bậc lẻ
Trang 13Cho đồ thị G có n đỉnh Nếu deg(i)+deg(j) n
3 với i và j là hai đỉnh không kề nhau tuỳ ý
Qui tắc 3 Khi chu trình Hamilton mà ta đang xâydựng đi qua đỉnh u thì xoá tất cả các cạnh kề với u cònlại mà ta chưa dùng (vì không được dùng đến nữa)
Điều này lại có thể cho ta một số đỉnh bậc 2 và ta lạidùng qui tắc 1
Qui tắc 4 Không có đỉnh cô lập hay cạnh treo nàođược tạo nên sau khi áp dụng qui tắc 3
Trang 14Điều kiện Meyniel:
ij và jiE deg(i) + deg(j) 2n-1 với i, j tùy ý
Định lý Meyniel (1973):
Nếu G là đơn đồ thị, liên thông mạnh và thoả điều
kiện Meyniel thì G là đồ thị Hamilton
Định lý Camion(1959):
Nếu G là đơn đồ thị đủ, liên thông mạnh thì G
Hamilton
79
Đ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)
Định lý Ghouila-Houri (1960) Nếu G là đơn đồ thị liên thông mạnh sao cho mọi đỉnh đều có bậc không nhỏ hơn n thì G Hamilton.
Định lý Woodall (1972) Cho G là đơn đồ thị thoả mãn ij E
deg+(i) + deg-(j) n, với mọi i,j thì G Hamilton
Giả sử G có chu trình Hamilton H Theo qui tắc1, tất
cả các cạnh kề với đỉnh bậc 2 đều ở trong H:12, 14,
Ta thêm vào đồ thị G một đỉnh z và nối z với mỗi đỉnh của
G bởi một cạnh, ta thu được đồ thị G’ có n+1 đỉnh Bậccủa mọi đỉnh trong G’ đều lớn hơn bậc cũ của nó một đơn
vị (trừ đỉnh z), còn bậc của z bằng n
Do đó trong G’ thì:
deg’(i)+deg’(j)=deg(i)+1+deg(j) +1 n-1+1+1 = n+1, khi
i và j khác z deg’(i) + deg’(z) = deg (i) + 1 + n n+1 ,với i khác zTheo định lý Ore thì G’ là đồ thị Hamilton, suy ra G cóđường đi Hamilton
Bài toán đường đi ngắn nhất
1 Đồ thị G = (V,E) gọi là đồ thị có trọng số (hay
chiều dài, trọng lượng) nếu mỗi cạnh (cung) e
được gán với một số thực w(e) Ta gọi w(e) là
trọng lượng của e
2 Độ dài của đường đi từ u đến v bằng tổng độ dài
các cạnh mà đường đi qua
3 Khoảng cách giữa 2 đỉnh u,v là độ dài ngắn nhất
của các đường đi từ u đến v
Đường đi ngắn nhất là đường đi có trọng số nhỏ
nhất
83
Đồ thị có trọng số
Trong đồ thị có trọng số, có thể có nhiều con đường
đi giữa hai đỉnh u, v bất kỳ
Trong thực tế ta thường muốn tìm phương án tối ưu,tức là tìm đường đi ngắn nhất
Trang 15Cho G = (V, E), V = {v1,v2,…,vn} là đơn đồ
thị có trọng số Ma trận khoảng cách của G là
ma trận D= (dij) xác định như sau:
( ) khikhi
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
1 Trước tiên đỉnh có khoảng cách nhỏ nhất đến u0là u0
2 Trong V\{u0} tìm đỉnh có khoảng cách đến u0nhỏnhất (đỉnh này phải là một trong các đỉnh kề với u0)giả sử đó là u1
3 Trong V\{u0,u1} tìm đỉnh có khoảng cách đến u0nhỏnhất (đỉnh này phải là một trong các đỉnh kề với u0hoặc u1) giả sử đó là u2
4 Tiếp tục như trên cho đến bao giờ tìm được khoảngcách từ u0đến mọi đỉnh Nếu G có n đỉnh thì:
0 = d(u0,u0) < d(u0,u1) d(u0,u2) … d(u0,un-1) 88
Bước 1 i:=0, S:=V\{u0}, L(u0):=0, L(v):= với mọi v
S và đánh dấu đỉnh v bởi (,-) Nếu n=1 thì xuất
d(u0,u0)=0=L(u0)
Bước 2.Với mọi v S và kề với ui(nếu đồ thị có
hướng thì v là đỉnh sau của ui), đặt L(v):= min{L(v),
L(ui)+w(ui v)}
Xác định k = min L(v) ,vS
Nếu k= L(vj) thì xuất d(u0,vj) = k và đánh dấu vjbởi
(L(vj), ui); ui+1:= vjS:=S\{ui+1}
Bước 3i:=i+1
Nếu i = n-1 thì kết thúc
Thuật toán Dijkstra
Bài tập 1 Tìm đường đi ngắn nhất từ u đến các đỉnh còn lại
4
7
1 3 5 3
1 2
1 4 u
x
w z
Trang 162
1 4 u
r
x
w z
1 2
1 4 u
r
x
w z
1
2
1 4 u
r
x
w z
1 2
1 4 u
r
x
w z
y t s
95
s 1
5 3
1
2
3
1 u
r
x
w z
Trang 173 1 g
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 )
0 (4.a) (3.a) (6.c) (7.d) (11.d) (12,e ) (16,g )
Trang 18Ví dụ Tìm đường đi ngắn nhất từ 1 trên đồ thị
32
Thuật toán Floyd Tìm đường đi ngắn nhất giữa tất cả các cặp đỉnh hoặc chỉ ra đồ thị có mạch âm Ngoài ma trận khoảng cách D ta còn dùng ma trận Q = (Qij), trong đó
• Bước 3 Nếu k = n thì dừng Nếu k < n thì trở
lại Bước 2 với k := k + 1
Trang 21Sắc số của đồ thị
Sắc số của đồ thị là số màu tối thiểu cần dùng
để tô màu các đỉnh của đồ thị sao cho hai đỉnh
kề nhau phải có màu khác nhau.
2 Đồ thị không có chu trình độ dài lẻ: Giả sử G =(V, E) là đồ thị vô hướng, s(G) = 2 khi và chỉkhi trong G không có chu trình độ dài lẻ
3 Đồ thị có chu trình: một chu trình có độ dài lẻ(chẵn) luôn có sắc số bằng 3 (sắc số bằng 2)
4 Đồ thị phân đôi: s(G) = 2 khi và chỉ khi G là
đồ thị phân đôi và liên thông
deg(𝑣 )≥ deg(𝑣 ) ≥ deg(𝑣 )… ≥ deg(𝑣 )
B2: Tô màu 1 cho đỉnh 𝑣 và các đỉnh không kề
Thuật toán dừng khi đã tô màu hết các đỉnh 123
Bài toán tô màu bản đồ Một bản đồ trên mặt phẳng có thể biểu diễn bởi một đồ thị theo quy tắc sau:
- Mỗi miền được biểu diễn bởi 1 đỉnh
- Hai đỉnh nối với nhau bởi 1 cạnh nếu hai miền tương ứng có đường biên giới chung
- Hai miền chỉ có chung 1 điểm không được xem là có biên giới chung
89