Chương 5: Đồ th
1. Các khái nim
1.1. Định nghĩa đồ th
Đồ th G(V,E) bao gm mt tp hu hn V các đỉnh
(hay nút) và mt tp hu hn E các cp đỉnh ta
gi là cung ( hay cnh).
Ví d 1: Mt mng gm các y tính và các kênh đin
thoi ni các y tính này là mt đồ th.
Ví d 2: Mt mng gm các thành ph, th xã và các
đường b ni các thành ph, th xã là mt đồ th.
1.2. Định nghĩa đồ th vô hướng
Đồ th vô hướng G=(V,E) bao gm V là tp các đỉnh
E là tp các cp đỉnh không có th t gi là các cung.
* Nếu (v1, v2) mt cung trong tp E(G) thì v1 và v2 gi lân
cn ca nhau.
Ví d trên 1,2 lân cân, 1,3 lân cn.
* Mt đường đi t đỉnh u đến đỉnh v trong đồ th mt y các
đỉnh
u=x0, x1, ..., xn-1, xn=v mà y các cnh (x0, x1), (x1, x2), ...,
(xn-1, xn) các cung thuc E(G) .
* S lượng cung trên đường đi gi độ dài ca đường đi.
Ví d đường đi t 1 đến 4 có độ dài 2.
* Đường đi đơn: Là đường đi mà mi đỉnh trên đó, tr đỉnh đầu
đỉnh cui đều kc nhau.
* Mt chu trình mt đường đi đơn mà đỉnh đầu và đỉnh cui
trùng nhau.
Ví d: 1 3 5 41
3. Phép duyt đồ th
* Xét đồ th vô hướng G(V,E) và mt đỉnh vV. Ta cn thăm tt c các
đỉnh ca G mà th vi ti” t đỉnh v ( nghĩa là đồ th liên thông).
2 cách duyt đồ th:
-Phép m kiếm theo chiu sâu ( Depth first search )
-Phép m kiếm theo chiu rng (Breadth first search )
3.1. Phép m kiếm theo chiu sâu ( Depth first search )
Xét đồ th vô hướng. Phép m kiếm theo chiu sâu th hin như sau:
-Đỉnh xut phát v được thăm.
-Tiếp theo đó ta thăm đỉnh w là đỉnh chưa được thăm và là lân cn ca
v. Phép m kiếm theo chiu sâu xut phát t w li được thc hin.
Trong trường hp đỉnh u đã được thăm mà mi đỉnh lân cn ca đã
được thăm ri thì ta quay li đỉnh cui cùng va được thăm (
đỉnh y còn đỉnh w là lân cn ca chưa được thăm) và phép tìm
kiếm theo chiu sâu xut phát t w li được thc hin.
Phép duyt theo chiu sâu đi theo trình t sau:
v1 v2 v4 v8 v5 v6 v3 v7
* Th tc phép duyt theo chiu sâu như sau:
Cho mt đồ th G(V,E) vô hướng có n đỉnh và véc tơ Visited(n) gm n phn t,
ban đầu véc tơ y có giá tr =0. Thut gii y thc hin thăm mi đỉnh
vi ti được t đỉnh v.
Procedure DFS(v)
1. Visited(v):=1 { đánh du v được thăm }
2. FOR mi đỉnh w lân cn vi v DO
If Visited(w) = 0 then CALL DFS(w);
Return
* Đánh giá thut toán:
+ Trường hp biu din đồ th dùng danh sách móc ni: G có e cung, mi
t vi ti 1 ln, nên thi gian m kiếm là O(e).
+ Trường hp biu din đồ th dùng ma trn lân cn : thì thi gian xác
định mi đim lân cn ca v là O(n). n đỉnh nên thi gianm kiếm
O(n2).
3.2. Phép tìm kiếm theo chiu rng (Breadth first search )
Xét đồ th vô hướng. Phép m kiếm theo chiu rng th hin
như sau:
-Đỉnh xut phát v được thăm.
-Tiếp theo các đỉnh chưa được thăm mà lân cn ca v s
được thăm, ri đến các đỉnh chưa được thăm lân cn làn
lượt ca các đỉnh y và c tương t như vy.
Ví d 1 trên: Phép duyt theo chiu rông đi theo trình t sau:
v1 v2 v3 v4 v5 v6 v7 v8
* Th tc phép duyt theo chiu rong như sau:
Cho mt đồ th G(V,E) vô hướng có n đỉnh và véc tơ Visited(n)
gm n phn t, ban đầu véc tơ y có giá tr =0. Thut gii này
thc hin thăm mi đỉnh vi ti được t đỉnh v. Bt đầu t
đỉnh v. Mi đỉnh i được thăm đánh du bng Visited(i):=1.
Dùng hàng đợi Q có kích thước n; F, R li trước và li sau ca
hàng đợi. Khi thăm 1 đình thì loi b khi hàng đợi; khi chưa
thăm thì b sung vào hàng đợi
Procedure BFS(v)
1. Khi to hàng đợi Q vi v được đưa vào.
2. Visited(v):=1 { đánh du v được thăm }
3. While Q không rng DO
Begin
Call CQDELETE(v,Q) { loi b v ra khi Q}
FOR mi đỉnh w lân cn vi v DO
Begin
If Visited(w)=0 then
Begin
CALL CQINSERT(w,Q); { B sung w vào Q}
Visited(w):=1
End
End
End
4. Return
* Đánh giá gii thut:Vòng lp While lp li n ln .
-Nếu biu din đồ th bng ma trn lân cn thì thi gian thc
hin O(n2).
-Nếu biu din đồ th bng danh sách lân cn thì thi gian thc
hin O(e).
4. y khung và y khung vi giá tr cc tiu
4.1. y khung
* Nếu G đồ th liên thông thì phép m kiếm theo chiu sâu hoc
theo chiu rng xut phát t 1 đỉnh thăm mi đỉnh. Như vy các
cung trong G phân thành 2 tp:
-Tp T cha các cung đã được duyt qua.
-Tp b gm các cung còn li.
* Tt c các cung và các đỉnh trong T s to thành mt cây con
bao gm mi đỉnh ca G. y con như vy gi cây khung
ca G.