Chương VI. ĐỒ TH
I. ĐỊNH NGHĨA VÀ MT S KHÁI NIM
Mt đồ th G(V,E) là 1 tp bao gm 2 tp con :
- Tp hu hn V, kng rng, ca các phân t ta gi là đỉnh (vertices).
- Tp hu hn E, ca các cp đỉnh, mà mi cp ta gi là 1 cung (edge).
Bn đồ đưng b gia các thành ph trong 1 khu vc là 1 đồ th vi thành
ph đỉnh, đường li trong thi gian đó là cung.
Mngynh ca 1 công ty, sơ đồ mch đin ca 1 khu chung cư, cu trúc
phân t ca các hp cht hu cơ v.v…tt c đều có dng đồ th.
Nếu u và v là 2 đỉnh trên đồ thth t được phân bit trong tng cp,
nghĩa v là (u, v) khác vi (v, u) thì đồ th được gi là đồ th hướng (directed
graph).
Lúc đó (u, v)được gi là cung t u ti v còn (v, u) được gi là cung t v ti
u.
Nếu th t 2 đỉnh ca 1 cung không được coi trng thì đồ th đưc gi là đồ
th hướng (undirected grap) và (u, v)được gi là cung gia u và v hoc cung
gia v u.
Trên hình v cunghướng đưc biu din bng mũi n còn cung
hướng thì bng 1 đon thng.
Hình 6.1 minh ho 1 s đồ th :G1, G2c đồ th có hướng ; G3, G4 là các
đồ th hướng. đây ta quy ước : các đỉnh được đánh s t 1 ti n (nếu đồ th
có n đỉnh).
Nếu trên đồ th G (V,E) có 1 cung đi t u ti v thì tai : v là đỉnh lân cn
ca u hay đỉnh k (adjacent) ca u. Tt nhiên vi đồ th hướng, khi có cung
gia 2 đỉnh, thì ta nói đỉnhy là lân cn ca đỉnh kia.
1
2
3
G
1
1
2
4
3
Mt đường đi (path) t đỉnh u ti đỉnh v là 1 dãyc đỉnh :
x0, x1,…,xn-1, xn (n là s nguyên dương), trong đó : u = x0, v = xn (xi, xi+1)
vi i = 0, 1, 2, …, n-1 là các cung thuc E , u gi là đỉnh đầu, v gi là đỉnh cui.
S lượngc cung trên 1 đưng đi được gi là đội ca đường đi (path length).
Mt đường đi đơn (simple path) là đường đi mà mi đỉnh trên đó, tr đỉnh
đầu và đỉnh cui đều khác nhau.
Trường hp đỉnh đầu trùng vi đỉnh cui ta gi là chu trình (cycle).
Ví d : vi đồ th G2 (nh 6.1),ta có :
Đường đi 1, 2, 3, 4 đường đi đơn có độ dài bng 3.
Đường đi 1, 4, 2, 3, 1 1 chu trình có độ dài bng 4.
Mt đồ th gi là liên thông(cennected) nếu luôn đưng đi gia 2 đỉnh bt
kì ca nó. Đối vi đồ th có hướng thì trường hp đó người ta gi là liên thông
mnh (strengly connected).
Ví d : trong hình 6.1 :
- Các đồ th G2 và G3 là liên thông.
- Các đồ th G1 G4 là không liên thông (vì G1 kng có đưng đi, chng
hn, t đỉnh 1 đến đỉnh 2 ; G4 không có đường đi t đỉnh 4 dến đỉnh 3 v.v…).
Có khi mi cung ca đồ th người ta gn vào đấy 1 giá tr th hin 1 thông
tin nào đó có ln quan ti cung, giá tr đó được gi là trng s, và đồ th đưc gi
đồ th trng s (weighted graph).
1
2
3
4
5
G3
1
2
3
4
5
G4
a) Đồ th hướng
b) Đồ th hướng
Hình 6.
1
Ví d : đồ th trên hình 6.2 th hin các đưng đi ni gia6 tnh A, B, C, D,
E, F vi các trng sđộ dài tính theo km, ca các tuyến đường.
II. BIU DIN TRONG MÁY CA ĐỒ TH
Cũng như các cu trúc d liu nói các chương trước, đối vi đồ th, ta cũng
t ti 2 cách biu din thông dng sau đây :
1. Biu din bng ma trn lân cn (lưu tr kế tiếp)
Xét 1 đồ th hướng G (V, E) vi V có n đỉnh (n1). Gi s các đỉnh đã
được đánh s t 1 đến n.
Đồ th G có th được biu din trong máy bi 1 ma trn vuông A, kích thước
n × n, mà các phn t Aij ca nó s nhn giá tr 1 hoc 0 :
Aij = 1 nếu trên G tn ti 1 cung đi t đỉnh i ti đỉnh j.
Aij = 0 nếu không có cung gia đỉnh i và j.
Dĩ nhiên vi đồ th hướng, nếu tn ti 1 cung (i, j) thì ta có th hiu là tn
ti 1 cung đi t i đến j, và ngược li, cũng tn ti 1 cung đi t j ti i, nghĩa là Aij
=1thì Aji = 1.
Như vy vi đồ th hướng thì ma trn A biu din nó có các phân t đối
xng vi nhau qua đưng chéo chính.
Ma trn A được gi là ma trn lân cn hay ma trn k (adjacency matrix)
ca đồ th G.
Ví d : vi đồ th G2 hình 6.1 tma trn lân cn có dng
A
B
C
D
E
F
nh 6.2
83 55
47 60
26
150
A =
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
Vi đồ th G3 nh 6.1 thì ma trn lân cn có dng :
Do ma trn được lưu tr kế tiếp (đã nêu mc 2.2.2 chương 2)n vic truy
cp vào các phn t ca ma trn lân cn được thc hin trc tiếp vi tc độ nhanh.
Nhưng cách lưu tr này rõ ràng tn không gian nh khi n ln.
2. Biu din bng danh sách lân cn (lưu trc ni)
Vi cách biu din này mi đỉnh s ng vi 1 danh ch móc ni đưc gi là
danhch lân cn hay danhch k (adjacency list). Mi nút trong danhch đó
quy ch :
Trường VERTEX cha s j ng vi đỉnh j là lân cn ca đỉnh i (1 i n)
trong danh sách lân cn ca i.
Trường LINK cha con tr, tr ti nút tiếp theo trong danh sách.
Danh sách có m nút (ngưi ta còn gi là “nút danh sách”) ; nếu đỉnh i m
đỉnh lân cn.
Mi danh sách như vy li có “nút đầu danh sách” (list head node). Thường
các “ nút đầu danh sách” làc phn t ca 1 vectơ V, có kích thước bng n, phn
t V[i] ca V(1 i n), ng vi danh sách lân cn ca nút th i, nó cha địa ch
nút đầu tiên ca danhch lân cn này.
Hình nh danh sách lân cn biu din đồ th G2 G3 s như sau :
VERTEX LINK
0
0
1
1
0
A =
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
V[ 1 ]
V[ 2 ]
V[ 3 ]
V[ 4 ]
2
1
4
3
3
4
2
a) Danh ch lân cn biu din G2
( đây ta quy ước : Các s trường VERTEX ca các nút được sp xếp theo th
t tăng dn )
Ta thy nếu đồ th hướng G (V, E) có n đỉnh, e cung thì s nút cn thiết s
là : nt đầu danh sách” và enút danh sách”. Nhưng vi đồ th vô hướng thì li
cn n + 2et.
III. ÁP DNG
1.Bài toán đi tìm đưng đi
Xét 1 đồ th G(V, E) vi n đỉnh được đánh s t 1 ti n.
Mt câu hi có th được đặt ra là :
“có hay không đưng đi t đỉnh i ti đỉnh j ?”(1)
Nếu đồ thy biu din 1 mng lưới đường b gia các thành ph thuc 1
vùng nào đó tđối vi 1 người đi du lch bng xe đạp, mun đi t i đến j, câu hi
này h s phi đặt ra đầu tiên. Hành trình ca h ch th tiếp tc được nếu câu
tr li là “”. Mà “có” thì cn phi hiu là : có th nhiu đường nhưng ít nht
thì cũng phi có 1 đường.
Vy để tr li cho câu hi (1) đặt ra trên ta phi da vào đâu?
Ta biết rng : đồ th G(V, E) được biu din trong máy bi ma trn lân cn
A. Nếu Aij = 1 thì nghĩa là có 1 cung đi t i ti j hay có thi : có đường đi độ
dài 1 (bng 1 cung) t i ti j.
b) Danh sách lân cn biu din G3
Hình 6.3
V[1 ]
V[2 ]
V[3 ]
V[4 ]
V[5 ]
24
1
3
2
5
1
3
4
4
2
5