Slide bài giảng môn Giải thuật ứng dụng nội dung chương V

Slide bài giảng môn Giải thuật ứng dụng nội dung chương V của Đại học Ngân hàng Thành phố Hồ Chí Minh với những kiến thức và thông tin bổ ích giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả cao cũng như có thể vận dụng tốt những kiến thức mình đã học vào thực tiễn cuộc sống. Mời bạn đọc đón xem!

lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
1
TR
ƯỜ
NG
ĐẠ
I H
C NGÂN HÀNG TPHCM
KHOA H
TH
NG THÔNG TIN QU
N LÝ
ĐỒ TH -GRAPH
Chương 5
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Định nghĩa và các khái nim
Biu din đồ th
Duyệt đồ th
2
Nidung
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Định nghĩa
Định nghĩa
Đồ th G = (V,E)
V = tp hp hu hn các phn t nh hay nút)
H
i Phòng
Vinh
Hà N
i
TP. H
Chí Minh
Đ
à N
ng
Nha Trang
C
n Th
ơ
Hu
ế
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
E V × V, tp hu hn các cnh (cung)
Định nghĩa
a
b
c
d
e
Cung
Đỉnh
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
BIU DIN MẠCH ĐIỆN
Định nghĩa
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
YÊU CU TRÌNH T
Định nghĩa
TRUYN THÔNG MNG MÁY TÍNH
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Định nghĩa
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
LUNG GIAO THÔNG
Định nghĩa
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
SƠ ĐỒ ĐƯNG PH
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Các khái nim
Cho đồ th G = (V, E). V gi là tập các đỉnh (vertex )
và E gi là tp các cnh (Edges)
G được gi là đơn đồ th nếu giữa hai đnh u, v ca
V có nhiu nht là 1 cnh trong E ni t u ti v
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Các khái nim
G được gi là đa đ th nếu giữa hai đỉnh x, y ca V
có th có nhiu hơn 1 cạnh trong E ni t x ti y
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Các khái nim
Nếu (x,y) E
x gọi là đỉnh gc, y là ngn
Nếu x ≡ y, (x,y) gọi là khuyên
Đường đi: Mt dãy u
1
,u
2
,…,u
n
, u
i
V (i=1,n)
gi là một đường, nếu (u
i-1
,u
i
) E
(1, 2, 3, 4) là đường đi đơn độ dài bằng 3, đi từ đỉnh 1 tới đỉnh 4. Bi (1, 2) (2, 3)
và (3,
4) đều là các cnh (hay cung)
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Các khái nim
Độ dài đường: length(u
1
,u
2
,…,u
n
)=n
Đường đi đơn: (u
1
,u
2
,…,u
n
) là đường đi đơn, nếu
u
i
≠u
j
, 1<i≠j<n (là đường đi, mà các đỉnh phân
bit, ngoi tr đỉnh đầu và đỉnh cui)
B
C
D
A
Đườ
ng
đ
i
đơ
n
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Các khái nim (tt)
Đồ th hướng (directed graph): G đưc gọi là đồ th
ng nếu các cạnh trong E định hướng, th
cnh ni t đỉnh x ti đỉnh y nhưng chưa chắc đã cạnh
ni t đỉnh y ti đnh x. Cách khác:
(x,y) E : (x,y) ≠ (y,x)
Đồ th hướng: G được gọi đồ th hướng nếu các
cạnh trong E không định hướng, tc cnh nối hai đỉnh
x, y bt k cũng là cạnh nối hai đỉnh y, x. Cách khác:
(x,y) E : (y,x) E
(x,y) ≡ (y,x)
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Các khái nim (tt)
Đồ th vô hướng Đồ th có hướng Các khái nim (tt)
Chu trình (cycle) : đường đi khép kín, tc là
đỉnh đầu trùng với đỉnh cui:
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
(cycle) = (u
1
,u
2
,…,u
n
), u
1
≡ u
n
B
C
D
A
Chu trình
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Các khái nim (tt)
Các khái nim (tt)
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Bc của đnh
Giả sử G là đồ thị vô hướng, vV là một đỉnh nào đó
Bậc của đỉnh v, deg(v), là số cạnh kề với nó.
Đỉnh bậc 0 được gọi là đỉnh cô lập (isolated).
Đỉnh bậc 1 được gọi là đỉnh treo (pendant).
Các khái nim (tt)
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Tính liên thông (connectivity)
Trong đồ th G, hai đỉnh x, y gi là liên thông
(connected), nếu có một đường t x đến y
Đồ th vô hướng được gi là liên thông nếu luôn
tìm được đường đi giữa hai đỉnh bt k ca nó.
G liên thông, nếu x, y V, đường đi từ x
đến y
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Các khái nim (tt)
Đồ thị liên thông Đồ thị không liên thông
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Các khái nim (tt)
Đồ th có trng s: Đồ th G gi là có trng s,
nếu mỗi cung được gán mt giá tr s đc
trưng
0
1
3
2
20
10
1
5
4
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Biu diễn đồ th
Biu din bng ma trn k
Adjacency matrice
Biu din bng danh sách k
Adjacency list
Biu din bng ma trn k
Xét G=(V,E) vi V={x
1
,…,x
n
}
Biu din G bng ma trn A=(a
ij
), i,j=1..n
a
ij
=1, nếu Ǝ (x
i
,x
j
) E
a
ij
=0, nếu !Ǝ (x
i
,x
j
) E
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Biu din bng ma trn k (tt)
0 1 2 3
1 0 1 1
A =
1 1 0 1
0 1 1 0
0
1
3
2
2
3
A[i][j]
0
1
0
0
1
1
0
1
1
0
1
1
2
1
1
0
1
0
3
0
1
1
0
0
1 1
0
1
2
3
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Biu din bng ma trn k (tt)
0 1
1 1
A = 0 0 0 1
0 0 0
1
0 0 0 0
A[i][j]
0
1
2
3
0
0
1
1
1
1
0
0
0
1
2
0
0
0
1
3
0
0
0
0
0
1
3
2
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Biu din bng ma trn k (tt)
0 1 1 0 0
0 0 0 0 1
0 1 0 0 0
0 0 1 0 0
1 0 0 1 0
x
1
x
2
x
3
x
4
x
5
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Biu din bng ma trn k (tt)
0 1 1 0 0
0 0 0 1 1
0 1 0 0 0
0 1 1 0 0
1 0 0 1 1
x
1
x
2
x
3
x
4
x
5
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Biu din bng
ma trn k (tt)
0 20 10
1 20 0 0
5
A =
10 0 0 4
1 5 4 0
A[i][j]
0
1
2
3
0
0
20
10
1
1
20
0
0
5
2
10
0
0
4
3
1
5
4
0
0
1
3
2
10
20
1
4
5
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Biu din bng ma trn k (tt)
Chú ý
Đối với đồ th không định hưng, ma trn k
ma trận đối xng
Đối với đồ th định hướng, s ng phn t 0
khá ln
Đối với đồ th có trng s, thay thế giá tr 1 bng
giá tr trng s
Biu din bng danh sách k
Là mt mng các danh sách
đây, n hàng của ma trn k thay thế bng
n danh sách liên kết động
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Mỗi đỉnh ca G có mt danh sách, mi nút
trong danh sách th hiện các đỉnh lân cn
ca nút này Cu trúc mi nút
id: tên đỉnh (ch s, danh hiu)
next: con tr đến nút kế tiếp
Biu din bng danh sách k (tt)
0
1
3
2
0
1
2
3
1
2
3
3
3
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Biu din bng danh sách k (tt)
x
1
x
2
x
3
x
4
x
5
x[1]
2
3
x[2]
5
x[3]
2
x[4]
3
x[5]
1
4
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Biu din bng danh sách k (tt)
Chú ý
Các nút đầu danh sách được lưu vào mt mng
(truy cp nhanh)
0
1
3
2
20
10
1
5
4
0
1
2
3
1
10
2
20
3
1
0
10
3
4
0
20
3
5
0
1
1
4
2
5
Biu din bng danh sách k (tt)
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Vi đồ th không định hướng có n đỉnh và e
cnh, thì cn n nút đầu và 2e nút ‘trong’ danh
sách
Vi đồ th định hướng có n đỉnh và e cnh, thì
ch cần e nút ‘trong’ danh sách
Th t các nút không quan trng
Phép duyệt đồ th
T một đỉnh, lit kê tt c các đỉnh ca
đồ th
Phép tìm kiếm theo chiu sâu
Depth First Search - DFS
Phép tìm kiếm theo chiu rng
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Breadth First Search - BFS
Phép tìm kiếm theo chiu sâu - DFS
Ý tưởng
Tư tưởng cơ bn ca thut toán tìm kiếm
theo chiu sâu là bắt đầu ti một đỉnh v
0
nào
đó, chọn mt đỉnh u bt k k vi v
0
và ly
nó làm đỉnh duyt tiếp theo.
Cách duyt tiếp theo được thc hiện tương
t như đối với đỉnh v
0
với đỉnh bắt đầu là u
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Phép tìm kiếm theo chiu sâu (tt)
x
1
x
2
x
3
x
4
x
5
1
3
x
2
2 5
x
1
4
x
3
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Phép tìm kiếm theo chiu sâu (tt)
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Phép tìm kiếm theo chiu sâu (tt)
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Phép tìm kiếm theo chiu sâu (tt)
Nhnxét
Thi gian thc hin gii thut ~ (n+e), nếu G
đưc biu din bng danh sách k
Thi gian thc hin gii thut ~ n
2
, nếu G
đưc biu din bng ma trn k
Gii thut này s dụng để chng minh một đồ
th có liên thông hay không
Vi thut toán tìm kiếm theo chiều sâu, đỉnh
thăm càng muộn s tr thành đỉnh sớm được
duyệt xong. Đó là kết qu tt yếu vì các đỉnh
thăm được np vào stack trong th tc đ quy.
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Phép tìm kiếm theo chiu rng - BFS
Tại điểm v bt k, duyệt đỉnh v, thu được tp hp
W gồm các đỉnh w xut phát t v
Lp lại thao tác trên đối vi tt c các đỉnh w
trong W, thu được tp hợp đỉnh Z
Lp lại thao tác trên đối vi tt c các đỉnh z trong
Z
Lp lại cho đến khi tt c mọi đỉnh đều đưc
duyt qua ít nht mt ln
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Phép tìm kiếm theo chiu rng (tt)
Tại điểm v bt k, duyệt đỉnh v, thu đưc tp hp
W gồm các đỉnh w xut phát t v
Lp lại thao tác trên đối vi tt c các đnh w trong
W, thu được tp hợp đỉnh Z
Lp lại thao tác trên đối vi tt c các đnh z trong
Z
Tham kho
Lp lại cho đến khi tt c mọi đỉnh đều được duyt
qua ít nht mt ln
x
1
x
2
x
3
x
4
x
5
x
1
x
2
x
3
x
5
x
2
x
1
x
4
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Phép tìm kiếm theo chiu rng (tt)
Nhn xét
Phép tìm kiếm theo chiu rng (tt)
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Thi gian thc hin gii thut ~ (n+e), nếu G
đưc biu din bng danh sách k
Thi gian thc hin gii thut ~ n
2
, nếu G
đưc biu din bng ma trn k
Cây khung (Spanning tree)
T=(V,E’) G=(V,E), vi E E’ bao gồm
các cung thuc mt phép duyt t mt
đỉnh đến các đỉnh còn li trong V
Giá ca cây khung T = tng trng s ca
các cung thuộc E’
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Cây khung
T
Đồ th Gcủa đồ th G
Cây khung
(Spanning tree)
Chú ý
Một đồ th G có th có nhiu cây khung
Cây khung theo chiu rng, theo chiu sâu
Các cung trong cây khung không to nên chu
trình
Giữa hai đỉnh trong mt cây khung ch tn ti duy
nht một đường đi từ đỉnh này đến đỉnh kia
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Nếu đồ th có n đỉnh, thì cây khung có n-1 cnh
Cây khung cc tiu
Là cây khung vi tng các trng s là cc
tiu
6
7
1
5
10
20
6
10
1
5
lOMoARcPSD|36667950
KhoaHThngThôngTin Qunlý
Q&A
| 1/44

Preview text:

lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý
TR ƯỜ NG ĐẠ I H Ọ C NGÂN HÀNG TPHCM
KHOA H Ệ TH Ố NG THÔNG TIN QU Ả N LÝ Chương 5 ĐỒ THỊ -GRAPH 1 lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý Nộidung
Định nghĩa và các khái niệm Biểu diễn đồ thị Duyệt đồ thị 2 lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý Định nghĩa Vinh
Đ à N ng
C n Th ơ
Hà N i
TP. H Chí Minh
H i Phòng Hu ế Nha Trang Định nghĩa • Đồ thị G = (V,E)
– V = tập hợp hữu hạn các phần tử (đỉnh hay nút) lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý
– E ⊆ V × V, tập hữu hạn các cạnh (cung) a b Đỉnh c Cung d e Định nghĩa lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý
• BIỂU DIỄN MẠCH ĐIỆN Định nghĩa lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý • YÊU CẦU TRÌNH TỰ Định nghĩa
• TRUYỀN THÔNG MẠNG MÁY TÍNH lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý Định nghĩa lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý • LUỒNG GIAO THÔNG Định nghĩa lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý • SƠ ĐỒ ĐƯỜNG PHỐ lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý Các khái niệm
• Cho đồ thị G = (V, E). V gọi là tập các đỉnh (vertex )
và E gọi là tập các cạnh (Edges)
G được gọi là đơn đồ thị nếu giữa hai đỉnh u, v của
V có nhiều nhất là 1 cạnh trong E nối từ u tới v lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý Các khái niệm
• G được gọi là đa đồ thị nếu giữa hai đỉnh x, y của V
có thể có nhiều hơn 1 cạnh trong E nối từ x tới y lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý Các khái niệm • Nếu (x,y) ∈ E
• x gọi là đỉnh gốc, y là ngọn
• Nếu x ≡ y, (x,y) gọi là khuyên
Đường đi: Một dãy u1,u2,…,un, ∀ui ∈ V (i=1,n)
gọi là một đường, nếu (ui-1,ui) ∈ E
(1, 2, 3, 4) là đường đi đơn độ dài bằng 3, đi từ đỉnh 1 tới đỉnh 4. Bởi (1, 2) (2, 3) và (3,
4) đều là các cạnh (hay cung) lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý Các khái niệm
Độ dài đường: length(u1,u2,…,un)=n
Đường đi đơn: (u1,u2,…,un) là đường đi đơn, nếu
ui≠uj, 1<∀i≠jbiệt, ngoại trừ đỉnh đầu và đỉnh cuối) B C A Đườ ng đ đơ i n D lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý Các khái niệm (tt)
Đồ thị có hướng (directed graph): G được gọi là đồ thị có
hướng nếu các cạnh trong E là có định hướng, có thể có
cạnh nối từ đỉnh x tới đỉnh y nhưng chưa chắc đã có cạnh
nối từ đỉnh y tới đỉnh x. Cách khác:
– ∀(x,y) ∈ E : (x,y) ≠ (y,x)
Đồ thị vô hướng: G được gọi là đồ thị vô hướng nếu các
cạnh trong E là không định hướng, tức là cạnh nối hai đỉnh
x, y bất kỳ cũng là cạnh nối hai đỉnh y, x. Cách khác:
– ∀(x,y) ∈ E : (y,x) ∈ E – (x,y) ≡ (y,x) lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý Các khái niệm (tt)
Đồ thị vô hướng Đồ thị có hướng Các khái niệm (tt)
Chu trình (cycle) : Là đường đi khép kín, tức là có
đỉnh đầu trùng với đỉnh cuối: lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý
– (cycle) = (u1,u2,…,un), u1≡ un B C A D Chu trì nh lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý Các khái niệm (tt) Các khái niệm (tt) lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý Bậc của đỉnh
Giả sử G là đồ thị vô hướng, v∈V là một đỉnh nào đó
Bậc của đỉnh v, deg(v), là số cạnh kề với nó.
• Đỉnh bậc 0 được gọi là đỉnh cô lập (isolated).
• Đỉnh bậc 1 được gọi là đỉnh treo (pendant). Các khái niệm (tt) lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý
Tính liên thông (connectivity)
– Trong đồ thị G, hai đỉnh x, y gọi là liên thông
(connected), nếu có một đường từ x đến y
Đồ thị vô hướng được gọi là liên thông nếu luôn
tìm được đường đi giữa hai đỉnh bất kỳ của nó.
G liên thông, nếu ∀x, y ∈ V, ∃ đường đi từ x đến y lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý Các khái niệm (tt) Đồ thị liên thông
Đồ thị không liên thông lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý Các khái niệm (tt)
Đồ thị có trọng số: Đồ thị G gọi là có trọng số,
nếu mỗi cung được gán một giá trị số đặc trưng 0 10 20 1 1 2 4 5 3 lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý
Biểu diễn đồ thị
• Biểu diễn bằng ma trận kề – Adjacency matrice
• Biểu diễn bằng danh sách kề – Adjacency list
Biểu diễn bằng ma trận kề
• Xét G=(V,E) với V={x1,…,xn}
• Biểu diễn G bằng ma trận A=(aij), i,j=1..n
– aij=1, nếu Ǝ (xi,xj) ∈ E
– aij=0, nếu !Ǝ (xi,xj) ∈ E lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý
Biểu diễn bằng ma trận kề (tt) 0 1 2 3 A[i][j] 0 1 2 3 0 1 0 1 0 0 0 1 1 1 0 1 1 1 2 1 1 0 1 2 2 3 0 1 1 0 3 3 0 1 1 0 1 0 1 1 A = 1 1 0 1 0 1 1 0 lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý
Biểu diễn bằng ma trận kề (tt) A[i][j] 0 1 2 3 0 0 1 1 1 0 1 0 0 0 1 2 0 0 0 1 1 2 3 0 0 0 0 3 0 1 1 1 A = 0 0 0 1 0 0 0 1 0 0 0 0 lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý
Biểu diễn bằng ma trận kề (tt) x 2 0 1 1 0 0 x x 1 3 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 x x 4 5 1 0 0 1 0 lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý
Biểu diễn bằng ma trận kề (tt) x 2 0 1 1 0 0 x x 1 3 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 x x 4 5 1 0 0 1 1 lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý 0 20 A[i][j] 0 1 2 3 10 0 0 20 10 1 1 1 2 1 20 0 0 5 5 4 2 10 0 0 4 3 Biểu diễn bằng 3 1 5 4 0 ma trận kề (tt) 0 20 10 1 20 0 0 5 A = 10 0 0 4 1 5 4 0 lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý
Biểu diễn bằng ma trận kề (tt) • Chú ý
– Đối với đồ thị không định hướng, ma trận kề là ma trận đối xứng
– Đối với đồ thị định hướng, số lượng phần tử 0 khá lớn
– Đối với đồ thị có trọng số, thay thế giá trị 1 bằng giá trị trọng số
Biểu diễn bằng danh sách kề
• Là một mảng các danh sách
• Ở đây, n hàng của ma trận kề thay thế bằng
n danh sách liên kết động lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý
• Mỗi đỉnh của G có một danh sách, mỗi nút
trong danh sách thể hiện các đỉnh lân cận
của nút này – Cấu trúc mỗi nút
• id: tên đỉnh (chỉ số, danh hiệu)
• next: con trỏ đến nút kế tiếp
Biểu diễn bằng danh sách kề (tt) 0 1 2 3 0 1 3 1 2 3 2 3 3 lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý
Biểu diễn bằng danh sách kề (tt) x 2 x[1] 2 3 x x 1 3 x[2] 5 x[3] 2 x[4] 3 x x 4 5 x[5] 1 4 lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý
Biểu diễn bằng danh sách kề (tt) 0 1 0 10 2 20 3 1 10 20 1 0 10 3 4 1 1 2 2 0 20 3 5 4 5 3 0 3 1 1 4 2 5
Biểu diễn bằng danh sách kề (tt)Chú ý
– Các nút đầu danh sách được lưu vào một mảng (truy cập nhanh) lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý
– Với đồ thị không định hướng có n đỉnh và e
cạnh, thì cần n nút đầu và 2e nút ‘trong’ danh sách
– Với đồ thị định hướng có n đỉnh và e cạnh, thì
chỉ cần e nút ‘trong’ danh sách
– Thứ tự các nút không quan trọng
Phép duyệt đồ thị
• Từ một đỉnh, liệt kê tất cả các đỉnh của đồ thị
– Phép tìm kiếm theo chiều sâu
Depth First Search - DFS
– Phép tìm kiếm theo chiều rộng lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý
Breadth First Search - BFS
Phép tìm kiếm theo chiều sâu - DFSÝ tưởng
– Tư tưởng cơ bản của thuật toán tìm kiếm
theo chiều sâu là bắt đầu tại một đỉnh v0 nào
đó, chọn một đỉnh u bất kỳ kề với v0 và lấy
nó làm đỉnh duyệt tiếp theo.
– Cách duyệt tiếp theo được thực hiện tương
tự như đối với đỉnh v0 với đỉnh bắt đầu là u lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý
Phép tìm kiếm theo chiều sâu (tt) x 2 x x 1 3 x4 3 x x x 4 3 2 5 1 5 x1 2 lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý
Phép tìm kiếm theo chiều sâu (tt) lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý
Phép tìm kiếm theo chiều sâu (tt) lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý
Phép tìm kiếm theo chiều sâu (tt) Nhậnxét
– Thời gian thực hiện giải thuật ~ (n+e), nếu G
được biểu diễn bằng danh sách kề
– Thời gian thực hiện giải thuật ~ n2, nếu G
được biểu diễn bằng ma trận kề
– Giải thuật này sử dụng để chứng minh một đồ
thị có liên thông hay không
– Với thuật toán tìm kiếm theo chiều sâu, đỉnh
thăm càng muộn sẽ trở thành đỉnh sớm được
duyệt xong. Đó là kết quả tất yếu vì các đỉnh
thăm được nạp vào stack trong thủ tục đệ quy. lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý
Phép tìm kiếm theo chiều rộng - BFS
• Tại điểm v bất kỳ, duyệt đỉnh v, thu được tập hợp
W gồm các đỉnh w xuất phát từ v
• Lặp lại thao tác trên đối với tất cả các đỉnh w
trong W, thu được tập hợp đỉnh Z
• Lặp lại thao tác trên đối với tất cả các đỉnh z trong Z
• Lặp lại cho đến khi tất cả mọi đỉnh đều được
duyệt qua ít nhất một lần lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý
Phép tìm kiếm theo chiều rộng (tt) x x x x x x x x 1 2 3 5 2 1 4 2 x x 1 3 x x 4 5
Tại điểm v bất kỳ, duyệt đỉnh v, thu được tập hợp
W gồm các đỉnh w xuất phát từ v
Lặp lại thao tác trên đối với tất cả các đỉnh w trong
W, thu được tập hợp đỉnh Z
Lặp lại thao tác trên đối với tất cả các đỉnh z trong Z Tham khảo
Lặp lại cho đến khi tất cả mọi đỉnh đều được duyệt qua ít nhất một lần lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý
Phép tìm kiếm theo chiều rộng (tt)
Phép tìm kiếm theo chiều rộng (tt) • Nhận xét lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý
– Thời gian thực hiện giải thuật ~ (n+e), nếu G
được biểu diễn bằng danh sách kề
– Thời gian thực hiện giải thuật ~ n2, nếu G
được biểu diễn bằng ma trận kề
Cây khung (Spanning tree)
• T=(V,E’) ⊆ G=(V,E), với E ⊇ E’ bao gồm
các cung thuộc một phép duyệt từ một
đỉnh đến các đỉnh còn lại trong V
• Giá của cây khung T = tổng trọng số của các cung thuộc E’ lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý Cây khung T
Đồ thị Gcủa đồ thị G Cây khung (Spanning tree) • Chú ý
– Một đồ thị G có thể có nhiều cây khung
– Cây khung theo chiều rộng, theo chiều sâu
– Các cung trong cây khung không tạo nên chu trình
• Giữa hai đỉnh trong một cây khung chỉ tồn tại duy
nhất một đường đi từ đỉnh này đến đỉnh kia lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý
– Nếu đồ thị có n đỉnh, thì cây khung có n-1 cạnh
Cây khung cực tiểu
• Là cây khung với tổng các trọng số là cực tiểu 6 10 6 10 1 1 7 20 5 5 lOMoARcPSD| 36667950
KhoaHệThốngThôngTin Quảnlý Q&A