SlideShare a Scribd company logo
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
MÔN HỌC: TOÁN ỨNG DỤNG
Bài 1: CƠ SỞ LOGIC
Bài 2: BÀI TOÁN ĐẾM VÀ BÀI TOÁN TỒN TẠI
Bài 3: LÝ THUYẾT ĐỒ THỊ
Bài 4: BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT
TOÁN TÌM KIẾM
Bài 5: CÂY VÀ CÁC ỨNG DỤNG
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
Bài 4: BIỂU DIỄN ĐỒ THỊ
VÀ CÁC THUẬT TOÁN TÌM KIẾM
1. BIỂU DIỄN ĐỒ THỊ
1.1 Danh sách liền kề
1.2 Ma trận kề
1.3 Ma trận trọng số
1.4 Ma trận liên thuộc
2. BÀI TOÁN ĐƯỜNG ĐI NGẮN NHẤT
2.1 Giới thiệu bài toán
2.2 Thuật toán Dijkstra
2.3 Thuật toán Floyd
3. CÁC THUẬT TOÁN TÌM KIẾM
3.1 Giới thiệu
3.2 Duyệt đồ thị theo chiều sâu
3.3 Duyệt đồ thị theo chiều rộng
1. BIỂU DIỄN ĐỒ THỊ
1.1 Danh sách liền kề
1.2 Ma trận kề
1.3 Ma trận trọng số
1.4 Ma trận liên thuộc
2. BÀI TOÁN ĐƯỜNG ĐI NGẮN NHẤT
2.1 Giới thiệu bài toán
2.2 Thuật toán Dijkstra
2.3 Thuật toán Floyd
3. CÁC THUẬT TOÁN TÌM KIẾM
3.1 Giới thiệu
3.2 Duyệt đồ thị theo chiều sâu
3.3 Duyệt đồ thị theo chiều rộng
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
1. Biểu diễn đồ thị
1.1 Danh sách liền kề
- Danh sách liền kề là một cách biểu diễn đồ thị không có
cạnh bội bằng cách liệt kê tất cả các đỉnh nối với mỗi
đỉnh của đồ thị
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
1. Biểu diễn đồ thị
1.1 Danh sách liền kề
Ví dụ: Danh sách liền kề của đồ thị vô hướng G
Đỉnh Đỉnh liền kề
1
2
3
4
5
6
3,2
1,3,5
1,2,4
3,5,6
2,4,6
4,5
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
1. Biểu diễn đồ thị
1.1 Danh sách liền kề
Ví dụ: Danh sách liền kề của đồ thị có hướng G1
Đỉnh đầu Đỉnh cuối
1
2
3
4
5
6
2,3
2
3
4,6
5
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
1. Biểu diễn đồ thị
1.2 Ma trận liền kề
Xét đơn đồ thị vô hướng G=(V,E), với tập đỉnh V={v1,
v2, ...,vn } và tập cạnh E={e1, e2, ..., em }. Ma trận liền kề AG
của đồ thị G là ma trận 0-1 vuông cấp nxn.
AG= (aij), trong đó:
1, nếu (vi,vj) là một cạnh của G
0,nếu không có cạnh nối đỉnh vi với vj
aij =
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
1. Biểu diễn đồ thị
1.2 Ma trận liền kề
Ví dụ: Ma trận liền kề của đơn đồ thị vô hướng G
0 1 1 0 1 0
1 0 1 1 0 0
1 1 0 0 1 0
0 1 0 0 1 1
1 0 1 1 0 1
0 0 0 1 1 0
1 2 3 4 5 6
1
2
3
4
5
6
1
3
6
42
5
1- Ma trận liền kề của đơn đồ thị vô hướng G có dòng, cột đối xứng qua đường chéo
2- Tổng giá trị trên một dòng (hoặc cột) bằng số bậc của đỉnh i.
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
1. Biểu diễn đồ thị
1.2 Ma trận liền kề
Ví dụ: Ma trận liền kề của đa đồ thị vô hướng G
1
3
6
42
0 1 1 0 0 0
1 0 2 2 0 0
1 2 0 0 1 0
0 2 0 0 1 1
0 0 1 1 0 3
0 0 0 1 3 0
1 2 3 4 5 6
1
2
3
4
5
6
5
aij = k - tổng số cạnh nối hai đỉnh
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
1. Biểu diễn đồ thị
1.2 Ma trận liền kề
Ví dụ: Ma trận liền kề của đơn đồ thị có hướng G*
1 2
543
0 1 1 0 0
0 0 0 1 1
0 0 0 1 0
0 0 0 0 0
1 0 0 0 0
1 2 3 4 5
1
2
3
4
5
Ma trận liền kề của đơn đồ thị có hướng G không có dòng, cột đối xứng
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
1. Biểu diễn đồ thị
1.2 Ma trận trọng số
- Trong thực tế chúng ta thường giải quyết những tình
huống như sau: từ địa điểm A đến địa điểm B trong thành
phố, chúng ta chọn đường đi ngắn nhất (xét đến độ dài),
có lúc lại cần chọn đường đi nhanh nhất (xét đến thời
gian) và có lúc phải cân nhắc để chọn đường đi có chi phí
thấp nhất, v.v...
- Khi chúng ta gán một giá trị số thực dương cho mỗi cạnh
của đồ thị G thì chúng ta có đồ thị có trọng số.
- Chúng ta có thể xem đồ thị G bất kỳ là đồ thị có trọng số
mà tất cả các cạnh có trọng số bằng 1.
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
1. Biểu diễn đồ thị
1.2 Ma trận trọng số
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
1. Biểu diễn đồ thị
1.2 Ma trận trọng số
- Đồ thị G = (V,E) gọi là đồ thị có trọng số nếu mỗi cạnh
(hay cung) e được gán với một số thực w(e), gọi là trọng
số của e (hay chiều dài, trọng lượng của cạnh e).
v1
v2
v6
v5v3
v4
3
7
3
9
5
86
6
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
1. Biểu diễn đồ thị
1.2 Ma trận trọng số
- Mỗi đường đi m(u,v) từ đỉnh u đến đỉnh v, có trọng
số bằng tổng trọng số các cạnh mà nó đi qua.
- Khoảng cách d(u,v) giữa hai đỉnh u và v là đường
đi có trọng số nhỏ nhất trong các đường đi từ u đến v.
d(u,v)=min(m(u,v))
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
1. Biểu diễn đồ thị
1.2 Ma trận trọng số
Ma trận trọng số D= d(ij), xác định như sau:
0, khi đỉnh trùng
w(i,j), trọng số của cạnh nối giữa hai đỉnh
∞, nếu không có cạnh nối giữa hai đỉnh
dij =
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
1. Biểu diễn đồ thị
1.3 Ma trận trọng số
Ví dụ: Vẽ ma trận trọng số biểu diễn đồ thị vô hướng G
0 3 7 ∞ ∞ ∞
3 0 6 6 ∞ ∞
7 6 0 ∞ 3 ∞
∞ 6 ∞ 0 8 5
∞ ∞ 3 8 0 9
∞ ∞ ∞ 5 9 0
v1 v2 v3 v4 v5 v6
v1
v2
v3
v4
v5
v6
v1
v2
v6
v5v3
v4
3
7
3
9
5
86
6
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
1. Biểu diễn đồ thị
1.2 Ma trận trọng số
Ví dụ:
Lập ma trận
trọng số
biểu diễn
đồ thị
có hướng G
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
1. Biểu diễn đồ thị
1.2 Ma trận trọng số
Ví dụ:
0 5 31 40
0 27 73
26 0 8 49 25 38
0 16
70 0 9
23 0 12
10 0
D
∞ ∞ ∞ 
 ÷
∞ ∞ ∞ ∞ ÷
 ÷∞
 ÷
= ∞ ∞ ∞ ∞ ∞ ÷
 ÷∞ ∞ ∞ ∞
 ÷
∞ ∞ ∞ ∞ ÷
 ÷∞ ∞ ∞ ∞ ∞ 
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
1. Biểu diễn đồ thị
1.3 Ma trận liên thuộc
Ma trận liên thuộc biểu diễn quan hệ giữa cạnh liên thuộc
và đỉnh kề.
Ma trận M= (mij), xác định như sau:
1 nếu cạnh ej nối với đỉnh vi
0 nếu cạnh ej không nối với đỉnh vi
mij =
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
1. Biểu diễn đồ thị
1.3 Ma trận liên thuộc
Ví dụ: Xây dựng ma trận liên thuộc cho đồ thị G dưới đây
e1 e2 e3 e4 e5 e6
v1
v2
v3
v4
v5
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
2. Bài toán đường đi ngắn nhất
2.1 Giới thiệu bài toán
Cho đơn đồ thị liên thông, có trọng số dương G=(V,E).
Bài toán 1:
Tìm đường đi ngắn nhất từ một đỉnh u đến mỗi đỉnh v của đồ thị G.
Bài toán 2:
Tìm đường đi ngắn nhất giữa mỗi cặp đỉnh của đồ thị G.
1
5
3
DB
C E
A Z
2
1 28
6
10
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
2.2 Thuật toán Dijkstra
Thuật toán tìm đường đi ngắn nhất từ đỉnh u đến mỗi đỉnh v
của đồ thị G, được nhà toán học người Hà Lan E. Dijkstra
đề xuất vào năm 1959.
Thuật toán thực hiện theo cách gán nhãn tại mỗi đỉnh.
Thuật ngữ:
w(x,y) : trọng số dương của cạnh (x,y);
w(x,y) là ∞ (vô cùng lớn) nếu hai đỉnh không kề nhau.
d(v) : độ dài đường đi từ đỉnh xuất phát tới đỉnh v.
p(v) : đỉnh đứng ngay trước đỉnh v trên đường đi từ đỉnh
xuất phát đến đỉnh v.
Nhãn của đỉnh v : gồm cặp (d(v), p(v))
T : Tập các nút mà đường đi ngắn nhất đã được xác định.
2. Bài toán đường đi ngắn nhất
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
2.2 Thuật toán Dijkstra
Gán T = ø; p(v) = NULL với mọi đỉnh v
d(a)=0; /* a là đỉnh xuất phát
Với mỗi đỉnh v còn lại thì d(v) = ∞;
Repeat
u =(u∉T | d(u) là bé nhất);
T = T {u};∪
for ((v là đỉnh kề của u) và v∉T)
if d(v) > d(u) + w(u,v) then
d(v) = d(u) + w(u,v)
p(v) = u
Until (T=V)
2. Bài toán đường đi ngắn nhất
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
2. Bài toán đường đi ngắn nhất
2.2 Thuật toán Dijkstra
Ví dụ 1:
Tìm đường đi ngắn nhất từ A đến mỗi đỉnh khác của đồ thị
G dưới đây
1
5
3
10
DB
C E
A Z
6
2
1 28
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
2. Bài toán đường đi ngắn nhất
2.2 Thuật toán Dijkstra
Ví dụ 1:
1 5
3
10
DB
C E
A Z
6
2
1 2
8
1 5
3
10
DB
C E
A Z
6
2
1 2
8
(0,-)
(∞,-) (∞,-)
(∞,-) (∞,-)
(∞,-)
(0,-)*
(∞,-)
(2,a)
(∞,-)
(∞,-)
(∞,-)
(1,a)
(∞,-)
d(D) =∞ = d(A)+w(A,D)=0+∞=∞
d(E) =∞ = d(A)+w(A,E)=0+∞=∞
d(Z) =∞ = d(A)+w(A,Z)=0+∞=∞
d(B) =∞ > d(A)+w(A,B)=0+1=1
d(C) =∞ > d(A)+w(A,C)=0+2=2
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
2. Bài toán đường đi ngắn nhất
2.2 Thuật toán Dijkstra
Ví dụ 1:
1 5
3
10
D
E
A Z
6
2
1 2
8
C
B
(0,-)*
(1,a)*
(2,a)
(6,b)
(∞,-)
(∞,-)
1 5
3
10
D
E
A Z
6
2
1 2
8
B
C
(0,-)*
(1,a)*
(2,a)*
(6,b)
(∞,-)
(12,c)
d(C) =2 = d(B)+w(B,C)=1+1=2
d(D) =∞ > d(B)+w(B,D)=1+5=6
d(E) =∞ = d(B)+w(B,E)=0+∞=∞
d(Z) =∞ = d(B)+w(B,Z)=0+∞=∞
d(D) =6 > d(C)+w(C,D)=2+8=10
d(E) =∞ > d(C)+w(C,E)=2+10=12
d(Z) =∞ = d(C)+w(C,Z)=0+∞=∞
(∞,-)
(∞,-)
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
2. Bài toán đường đi ngắn nhất
2.2 Thuật toán Dijkstra
Ví dụ 1:
1 5
3
10
E
A Z
6
2
1 2
8
B
C
D
(0,-)*
(1,a)*
(2,a)*
(6,b)*
(12,d)
(8,d) (12,c)
d(E) =12 > d(D)+w(D,E)=6+2=8
d(Z) =∞ = d(D)+w(D,Z)=6+6=12 d(Z) =12 >d(E)+w(E,Z)=8+3=11
1 5
3
10
A Z6
2
1
2
8
B
C
D
E
(0,-)*
(1,a)*
(2,a)*
(6,b)* (12,d)
(8,d)*
(11,e)
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
2. Bài toán đường đi ngắn nhất
2.2 Thuật toán Dijkstra
Ví dụ 1:
1 5
3
10
A
6
2
1 2
8
B
C
D
E
Z
(0,-)*
(1,a)*
(2,a)*
(6,b)*
(8,d)*
(11,e)*
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
2. Bài toán đường đi ngắn nhất
2.2 Thuật toán Dijkstra
Ví dụ 1: Lập bảng để giải bài toán tìm đường đi ngắn nhất
Bước Tập T a b d c e z
0 ø (0,-) (∞,-) (∞,-) (∞,-) (∞,-) (∞,-)
1 a (0,-)* (1,a) (∞,-) (2,a) (∞,-) (∞,-)
2 ba - (1,a)* (6,b) (2,a) (∞,-) (∞,-)
3 cba - - (6,b) (2,a) * (12,c) (∞,-)
4 dcba - - (6,b)* - (8,d) (12,d)
5 edcba - - - - (8,d)* (11,e)
6 zedcba - - - - - (11,e)*
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
2. Bài toán đường đi ngắn nhất
2.2 Thuật toán Dijkstra
Ví dụ 1: Nhận xét bảng kết quả đã thu được.
1/. Độ dài đường đi ngắn nhất từ A đến các đỉnh là
->B: 1
->C: 2
->D: 6
->E: 8
->Z: 11
2/. Để vẽ đường đi ngắn nhất từ A đến đỉnh Z, chúng ta sử
dụng cách đi ngược từ Z về A. Cụ thể là Z <- E <- D <- B <-
A. 3/. Đường đi ngắn nhất từ A đến Z không đi qua C. Vậy
đường đi ngắn nhất không đi qua tất cả các đỉnh của đồ thị.
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
2.2 Thuật toán Dijkstra
Ví dụ 2:
Tìm đường đi ngắn nhất giữa A và W trong đồ thị G
dưới đây
a
yx
wv
z
2
2
1
3
1
1
2
5
3
5
2. Bài toán đường đi ngắn nhất
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
2.2 Thuật toán Dijkstra
Ví dụ 2:
Do bài toán chỉ cần tìm đường đi ngắn nhất từ A đến W trong
đồ thị G nên chúng ta đổi điều kiện kết thúc thuật toán Dijkstra
như sau:
...
Repeat
u =(u∉T | d(u) là bé nhất);
T = T ∪ {u};
for ((v là đỉnh kề của u) và v∉T)
if d(v) > d(u) + w(u,v) then
d(v) = d(u) + w(u,v)
p(v) = u
Until ( đỉnh đích chứa trong tập T)
2. Bài toán đường đi ngắn nhất
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
2.2 Thuật toán Dijkstra
Ví dụ 2:
Tìm đường đi ngắn nhất giữa A và W trong đồ thị G
2. Bài toán đường đi ngắn nhất
Bước Tập T a v x y w z
0 ø (0.-) (∞,-) (∞,-) (∞,-) (∞,-) (∞,-)
1 a (0,-)* (2,a) (1,a) (∞,-) (5,a) (∞,-)
2 xa - (2,a) (1,a)* (2,x) (4,x) (∞,-)
3 yxa - (2,a) - (2,x)* (3,y) (4,y)
4 vyxa - (2,a)* - - (3,y) (4,y)
5 wvyxa - - - - (3,y)* (4,y)
6 Kết thúc vì đỉnh đến w chứa trong tập T
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
2. Bài toán đường đi ngắn nhất
2.2 Thuật toán Dijkstra
Ví dụ 3:
Cho đồ thị có trọng số G.
Tìm đường đi
ngắn nhất từ
A đến mỗi đỉnh
của đồ thị. 12
10
9
9
5
4
9
9
9
9
6 4
A
B
D
C
E
F
G
H
K
Z
2
2
8
4
1
3
3
8
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
2. Bài toán đường đi ngắn nhất
2.2 Thuật toán Dijkstra
Ví dụ 4:
Cho đồ thị có trọng số G = (V, E), tìm đường đi ngắn nhất
giữa A và H.
6
A
GD
E
b
B
K
3
2
3
5
4
3
2
2
4
C
4
H
4
4
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
2. Bài toán đường đi ngắn nhất
2.2 Thuật toán Dijkstra
Ví dụ 5:
v1 v2 v3 v4 v5 v6 v7
v1 0 5 30 40 ∞ ∞ ∞
v2 ∞ 0 27 ∞ 73 ∞ ∞
v3 ∞ 26 0 8 40 25 38
v4 ∞ ∞ ∞ 0 ∞ 16 20
v5 ∞ 70 ∞ ∞ 0 20 12
v6 ∞ ∞ 22 ∞ 22 12 ∞
v7 50 ∞ ∞ ∞ 10 ∞ ∞
Tìm đường đi
ngắn nhất từ v1
đến các đỉnh
khác của
đồ thị
có trọng số
được biểu diễn
trong
ma trận M
hình bên.
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
2.3 Thuật toán Floyd
Giới thiệu
Để tìm đường đi ngắn nhất giữa tất cả các cặp đỉnh của đồ
thị G=(V,E), chúng ta sử dụng thuật toán Floyd được công
bố năm 1962.
Việc tìm đường đi ngắn nhất dựa trên nguyên tắc sau:
" Nếu k là đỉnh nằm trên đường đi ngắn nhất từ i đến j thì
đoạn đường từ i đến k và từ k đến j cũng ngắn nhất"
Ak[i,j]=min(Ak-1[i,j], Ak-1[i,k]+Ak-1[k,j])
2. Bài toán đường đi ngắn nhất
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
2.3 Thuật toán Floyd
BEGIN
for i := 1 to n do
for j := 1 to n do
begin D[i,j] := C[i,j] ; P[i,j] := 0 end ;
for k := 1 to n do
for i := 1 to n do
for j := 1 to n do
if D[i,k] + D[k,j] < D[i,j] then
begin
D[i,j] := D[i,k] + D[k,j] ;
P[i,j] := k
end
END.
2. Bài toán đường đi ngắn nhất
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
2.3 Thuật toán Floyd
Ví dụ:
2. Bài toán đường đi ngắn nhất
W = D0
=
40 5
2 0 ∞
∞ 3 0
1 2 3
1
2
3
00 0
0 0 0
0 0 0
1 2 3
1
2
3
P =
1
2
3
5
3
24
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
2. Bài toán đường đi ngắn nhất
D1
=
40 5
2 0 7
∞ 3 0
1 2 3
1
2
3
00 0
0 0 1
0 0 0
1 2 3
1
2
3
P =
1
2
3
5
3
24
D1
[2,3] = min( D0
[2,3], D0
[2,1]+D0
[1,3] )
= min (∝, 7)
= 7
P[2,3]=1
D1
[3,2] = min( D0
[3,2], D0
[3,1]+D0
[1,2] )
= min (3,∝)
= 3
40 5
2 0 ∞
∞ 3 0
1 2 3
1
2
3
D0
=
k = 1
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
2. Bài toán đường đi ngắn nhất
D2
[1,3] = min( D1
[1,3], D1
[1,2]+D1
[2,3] )
= min (5, 4+7)
= 5
D2
[3,1] = min( D1
[3,1], D1
[3,2]+D1
[2,1] )
= min (∝, 3+2)
= 5
P[3,1] = 2
D2
=
40 5
2 0 7
5 3 0
1 2 3
1
2
3
00 0
0 0 1
2 0 0
1 2 3
1
2
3
P =
1
2
3
5
3
24
D1
= 40 5
2 0 7
∞ 3 0
1 2 3
1
2
3
k = 23
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM
D3
=
40 5
2 0 7
5 3 0
1 2 3
1
2
3
00 0
0 0 1
2 0 0
1 2 3
1
2
3
P =
D3
[1,2] = min(D2
[1,2], D2
[1,3]+D2
[3,2] )
= min (4, 5+3))
= 4
D3
[2,1] = min(D2
[2,1], D2
[2,3]+D2
[3,1] )
= min (2, 7+ 5)
= 2
D2
=
40 5
2 0 7
5 3 0
1 2 3
1
2
3
1
2
3
5
3
24 k = 3
2. Bài toán đường đi ngắn nhất
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
3.1 Giới thiệu
Với một đồ thị có nhiều nút, việc kiểm tra tính liên thông của
đồ thị là bài toán lớn, cần có cách thức để thực hiện
nhanh, chính xác.
Hai cách duyệt đồ thị phổ biến được áp dụng:
1. Duyệt đồ thị theo chiều sâu (Depth First Search - DFS)
2. Duyệt đồ thị theo chiều rộng (Breadth First Search - BFS)
3. Duyệt đồ thị
BFSDFS
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
3.2 Duyệt đồ thị theo chiều sâu
Xuất từ một đỉnh v bất kỳ của đồ thị G, chúng ta thực hiện
như sau:
Bước 1: đánh dấu v đã được duyệt.
Bước 2: thực hiện đánh dấu đã duyệt với mỗi đỉnh w chưa
duyệt kề với v,
Bước 3: làm lại bước 2 cho đến khi tất cả các đỉnh được
duyệt.
3. Duyệt đồ thị
DFS
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
3.2 Duyệt đồ thị theo chiều sâu
Ví dụ:
Thực hiện duyệt đồ thị theo chiều sâu trên đồ thị G dưới
đây:
3. Duyệt đồ thị
v1 v2
v6
v3 v4
v7 v8v5
Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8
v1 v2 v6 v3 v4 v8 v7 v5Bảng duyệt
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
3.3 Duyệt đồ thị theo chiều rộng
Xuất từ một đỉnh v bất kỳ của đồ thị G, chúng ta thực hiện
như sau:
Bước 1: đánh dấu đã duyệt cho một đỉnh v bất kỳ.
Bước 2: chọn đỉnh v đã được duyệt nhưng có đỉnh kề chưa
được duyệt. Việc chọn đỉnh v được xét ưu tiên cho các đỉnh
được đánh dấu duyệt sớm.
Bước 3: thực hiện đánh dấu đã duyệt với tất cả các đỉnh w
kề với v,
Bước 4: làm lại bước 2 cho đến khi tất cả các đỉnh được
duyệt.
3. Duyệt đồ thị
BFS
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
3.3 Duyệt đồ thị theo chiều rộng
3. Duyệt đồ thị
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
3.3 Duyệt đồ thị theo chiều rộng
Ví dụ:
Thực hiện duyệt đồ thị theo chiều rộng trên đồ thị G dưới
đây:
3. Duyệt đồ thị
v1 v2
v6
v3 v4
v7 v8v5
Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8
v1 v2 v5 v6 v3 v7 v4 v8Bảng duyệt
TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website:
http://www.ispace.edu.vn
3.3 Duyệt đồ thị theo chiều rộng
Ví dụ:
Thực hiện duyệt đồ thị theo chiều rộng trên đồ thị G dưới
đây:
3. Duyệt đồ thị
Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9

More Related Content

What's hot

Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đĐề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
Dịch vụ viết bài trọn gói ZALO 0917193864
 
Bai tap va loi giai sql
Bai tap va loi giai sqlBai tap va loi giai sql
Bai tap va loi giai sql. .
 
Toán cao-cấp-1
Toán cao-cấp-1Toán cao-cấp-1
Toán cao-cấp-1
Gia_Bang
 
56 câu hỏi tự luận và đáp án môn Tư tưởng Hồ Chí Minh
56 câu hỏi tự luận và đáp án môn Tư tưởng Hồ Chí Minh 56 câu hỏi tự luận và đáp án môn Tư tưởng Hồ Chí Minh
56 câu hỏi tự luận và đáp án môn Tư tưởng Hồ Chí Minh
Phước Nguyễn
 
Bài toán liên quan về Phân số tối giản trong Toán lớp 6
Bài toán liên quan về Phân số tối giản trong Toán lớp 6Bài toán liên quan về Phân số tối giản trong Toán lớp 6
Bài toán liên quan về Phân số tối giản trong Toán lớp 6
Bồi dưỡng Toán lớp 6
 
Tom tat cong thuc xstk
Tom tat cong thuc xstkTom tat cong thuc xstk
Tom tat cong thuc xstkBích Anna
 
Tính toán khoa học - Chương 6: Bài toán giá trị ban đầu với phương trình vi p...
Tính toán khoa học - Chương 6: Bài toán giá trị ban đầu với phương trình vi p...Tính toán khoa học - Chương 6: Bài toán giá trị ban đầu với phương trình vi p...
Tính toán khoa học - Chương 6: Bài toán giá trị ban đầu với phương trình vi p...Chien Dang
 
Biến ngẫu nhiên liên tục - Xác suất thống kê
Biến ngẫu nhiên liên tục - Xác suất thống kêBiến ngẫu nhiên liên tục - Xác suất thống kê
Biến ngẫu nhiên liên tục - Xác suất thống kê
VuKirikou
 
CHUYÊN ĐỀ GIỚI HẠN VÀ TÍNH LIÊN TỤC HÀM SỐ & ĐỀ KIỂM TRA - CHƯƠNG 4 ĐẠI SỐ 11...
CHUYÊN ĐỀ GIỚI HẠN VÀ TÍNH LIÊN TỤC HÀM SỐ & ĐỀ KIỂM TRA - CHƯƠNG 4 ĐẠI SỐ 11...CHUYÊN ĐỀ GIỚI HẠN VÀ TÍNH LIÊN TỤC HÀM SỐ & ĐỀ KIỂM TRA - CHƯƠNG 4 ĐẠI SỐ 11...
CHUYÊN ĐỀ GIỚI HẠN VÀ TÍNH LIÊN TỤC HÀM SỐ & ĐỀ KIỂM TRA - CHƯƠNG 4 ĐẠI SỐ 11...
Hoàng Thái Việt
 
Bảng giá trị hàm Laplace
Bảng giá trị hàm LaplaceBảng giá trị hàm Laplace
Bảng giá trị hàm Laplace
hiendoanht
 
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thịđồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
Thanh Hoa
 
Chuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệChuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệ
Hưởng Nguyễn
 
Bai tap co loi giai dao hamieng_va_vi_phan
Bai tap co loi giai dao hamieng_va_vi_phanBai tap co loi giai dao hamieng_va_vi_phan
Bai tap co loi giai dao hamieng_va_vi_phandiemthic3
 
Phương pháp nhánh cận
Phương pháp nhánh cậnPhương pháp nhánh cận
Phương pháp nhánh cận
Diên Vĩ
 
Phụ thuộc hàm và các dạng chuẩn - dhcntt
Phụ thuộc hàm và các dạng chuẩn - dhcnttPhụ thuộc hàm và các dạng chuẩn - dhcntt
Phụ thuộc hàm và các dạng chuẩn - dhcntt
anhhuycan83
 
Đại số boolean và mạch logic
Đại số boolean và mạch logicĐại số boolean và mạch logic
Đại số boolean và mạch logic
www. mientayvn.com
 
Dãy số và giới hạn
Dãy số và giới hạnDãy số và giới hạn
Dãy số và giới hạn
Chàng Trai Cô Đơn
 
Công thức Vật lý đại cương II
Công thức Vật lý đại cương IICông thức Vật lý đại cương II
Công thức Vật lý đại cương II
Vũ Lâm
 
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Nguyễn Công Hoàng
 

What's hot (20)

Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đĐề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
 
Bai tap va loi giai sql
Bai tap va loi giai sqlBai tap va loi giai sql
Bai tap va loi giai sql
 
Toán cao-cấp-1
Toán cao-cấp-1Toán cao-cấp-1
Toán cao-cấp-1
 
56 câu hỏi tự luận và đáp án môn Tư tưởng Hồ Chí Minh
56 câu hỏi tự luận và đáp án môn Tư tưởng Hồ Chí Minh 56 câu hỏi tự luận và đáp án môn Tư tưởng Hồ Chí Minh
56 câu hỏi tự luận và đáp án môn Tư tưởng Hồ Chí Minh
 
Bài toán liên quan về Phân số tối giản trong Toán lớp 6
Bài toán liên quan về Phân số tối giản trong Toán lớp 6Bài toán liên quan về Phân số tối giản trong Toán lớp 6
Bài toán liên quan về Phân số tối giản trong Toán lớp 6
 
Tom tat cong thuc xstk
Tom tat cong thuc xstkTom tat cong thuc xstk
Tom tat cong thuc xstk
 
Tính toán khoa học - Chương 6: Bài toán giá trị ban đầu với phương trình vi p...
Tính toán khoa học - Chương 6: Bài toán giá trị ban đầu với phương trình vi p...Tính toán khoa học - Chương 6: Bài toán giá trị ban đầu với phương trình vi p...
Tính toán khoa học - Chương 6: Bài toán giá trị ban đầu với phương trình vi p...
 
Biến ngẫu nhiên liên tục - Xác suất thống kê
Biến ngẫu nhiên liên tục - Xác suất thống kêBiến ngẫu nhiên liên tục - Xác suất thống kê
Biến ngẫu nhiên liên tục - Xác suất thống kê
 
CHUYÊN ĐỀ GIỚI HẠN VÀ TÍNH LIÊN TỤC HÀM SỐ & ĐỀ KIỂM TRA - CHƯƠNG 4 ĐẠI SỐ 11...
CHUYÊN ĐỀ GIỚI HẠN VÀ TÍNH LIÊN TỤC HÀM SỐ & ĐỀ KIỂM TRA - CHƯƠNG 4 ĐẠI SỐ 11...CHUYÊN ĐỀ GIỚI HẠN VÀ TÍNH LIÊN TỤC HÀM SỐ & ĐỀ KIỂM TRA - CHƯƠNG 4 ĐẠI SỐ 11...
CHUYÊN ĐỀ GIỚI HẠN VÀ TÍNH LIÊN TỤC HÀM SỐ & ĐỀ KIỂM TRA - CHƯƠNG 4 ĐẠI SỐ 11...
 
Bảng giá trị hàm Laplace
Bảng giá trị hàm LaplaceBảng giá trị hàm Laplace
Bảng giá trị hàm Laplace
 
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thịđồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
 
Chuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệChuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệ
 
Bai tap co loi giai dao hamieng_va_vi_phan
Bai tap co loi giai dao hamieng_va_vi_phanBai tap co loi giai dao hamieng_va_vi_phan
Bai tap co loi giai dao hamieng_va_vi_phan
 
Đệ Quy, Quay Lui, Nhánh Cận
Đệ Quy, Quay Lui, Nhánh CậnĐệ Quy, Quay Lui, Nhánh Cận
Đệ Quy, Quay Lui, Nhánh Cận
 
Phương pháp nhánh cận
Phương pháp nhánh cậnPhương pháp nhánh cận
Phương pháp nhánh cận
 
Phụ thuộc hàm và các dạng chuẩn - dhcntt
Phụ thuộc hàm và các dạng chuẩn - dhcnttPhụ thuộc hàm và các dạng chuẩn - dhcntt
Phụ thuộc hàm và các dạng chuẩn - dhcntt
 
Đại số boolean và mạch logic
Đại số boolean và mạch logicĐại số boolean và mạch logic
Đại số boolean và mạch logic
 
Dãy số và giới hạn
Dãy số và giới hạnDãy số và giới hạn
Dãy số và giới hạn
 
Công thức Vật lý đại cương II
Công thức Vật lý đại cương IICông thức Vật lý đại cương II
Công thức Vật lý đại cương II
 
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
 

Similar to Bai 4 bieu dien do thi va thuat toan tim kiem

Bài Toán Phân Luồng Giao Thông Và Ứng Dụng.doc
Bài Toán Phân Luồng Giao Thông Và Ứng Dụng.docBài Toán Phân Luồng Giao Thông Và Ứng Dụng.doc
Bài Toán Phân Luồng Giao Thông Và Ứng Dụng.doc
Dịch vụ viết đề tài trọn gói 0934.573.149
 
Ly thuyet-do-thi-va-ung-dung - [cuuduongthancong.com]
Ly thuyet-do-thi-va-ung-dung - [cuuduongthancong.com]Ly thuyet-do-thi-va-ung-dung - [cuuduongthancong.com]
Ly thuyet-do-thi-va-ung-dung - [cuuduongthancong.com]
sieubebu
 
báo cáo môn dạy học lập trình
báo cáo môn dạy học lập trìnhbáo cáo môn dạy học lập trình
báo cáo môn dạy học lập trình
kimngan2203
 
Luận văn: Mô hình đồ thị luồng và mối quan hệ với đồ thị, HAY
Luận văn: Mô hình đồ thị luồng và mối quan hệ với đồ thị, HAYLuận văn: Mô hình đồ thị luồng và mối quan hệ với đồ thị, HAY
Luận văn: Mô hình đồ thị luồng và mối quan hệ với đồ thị, HAY
Dịch vụ viết bài trọn gói ZALO 0917193864
 
Ctdlgt
CtdlgtCtdlgt
Ctdlgt
Lạnh BK
 
Ứng dụng hình học để xác định một miền chứa điểm cho trước
Ứng dụng hình học để xác định một miền chứa điểm cho trướcỨng dụng hình học để xác định một miền chứa điểm cho trước
Ứng dụng hình học để xác định một miền chứa điểm cho trước
Dịch vụ viết bài trọn gói ZALO: 0909232620
 
CHƯƠNG 6.pdf
CHƯƠNG 6.pdfCHƯƠNG 6.pdf
CHƯƠNG 6.pdf
D20CQVT01NTRANHAMY
 
Ứng Dụng Hình Học Tính Toán Để Xác Định Một Miền Chứa Điểm Cho Trƣớc.doc
Ứng Dụng Hình Học Tính Toán Để Xác Định Một Miền Chứa Điểm Cho Trƣớc.docỨng Dụng Hình Học Tính Toán Để Xác Định Một Miền Chứa Điểm Cho Trƣớc.doc
Ứng Dụng Hình Học Tính Toán Để Xác Định Một Miền Chứa Điểm Cho Trƣớc.doc
Dịch vụ viết thuê Luận Văn - ZALO 0932091562
 
Hàm Đơn Đi›U, Tựa Đơn Đi›U Và Một Số Ứng Dụng Của Phép Đơn Đi›U Hóa Hàm Số.docx
Hàm Đơn Đi›U, Tựa Đơn Đi›U Và Một Số Ứng Dụng Của Phép Đơn Đi›U Hóa Hàm Số.docxHàm Đơn Đi›U, Tựa Đơn Đi›U Và Một Số Ứng Dụng Của Phép Đơn Đi›U Hóa Hàm Số.docx
Hàm Đơn Đi›U, Tựa Đơn Đi›U Và Một Số Ứng Dụng Của Phép Đơn Đi›U Hóa Hàm Số.docx
DV Viết Luận văn luanvanmaster.com ZALO 0973287149
 
Tiểu luận đường đi HAMILTON
Tiểu luận đường đi HAMILTON Tiểu luận đường đi HAMILTON
Tiểu luận đường đi HAMILTON
nataliej4
 
Skkn2011 tran xuan mai truong dtnt
Skkn2011 tran xuan mai  truong dtntSkkn2011 tran xuan mai  truong dtnt
Skkn2011 tran xuan mai truong dtntNhư Trinh Phan
 
Tom tat bai giang ly thuyet do thi - nguyen ngoc trung
Tom tat bai giang   ly thuyet do thi - nguyen ngoc trungTom tat bai giang   ly thuyet do thi - nguyen ngoc trung
Tom tat bai giang ly thuyet do thi - nguyen ngoc trung
kikihoho
 
Tom tat bai giang ly thuyet do thi - nguyen ngoc trung
Tom tat bai giang   ly thuyet do thi - nguyen ngoc trungTom tat bai giang   ly thuyet do thi - nguyen ngoc trung
Tom tat bai giang ly thuyet do thi - nguyen ngoc trung
Phi Phi
 
[Math educare.com] giai tich ham nhieu bien-phep tinh vi phan ham nhieu bien_...
[Math educare.com] giai tich ham nhieu bien-phep tinh vi phan ham nhieu bien_...[Math educare.com] giai tich ham nhieu bien-phep tinh vi phan ham nhieu bien_...
[Math educare.com] giai tich ham nhieu bien-phep tinh vi phan ham nhieu bien_...
Nguyen Vietnam
 
Hàm Đơn Đi U, Tựa Đơn Đi U Và M T So Ứng Dụng Của Phép Đơn Đi U Hóa Hàm So.docx
Hàm Đơn Đi U, Tựa Đơn Đi U Và M T So Ứng Dụng Của Phép Đơn Đi U Hóa Hàm So.docxHàm Đơn Đi U, Tựa Đơn Đi U Và M T So Ứng Dụng Của Phép Đơn Đi U Hóa Hàm So.docx
Hàm Đơn Đi U, Tựa Đơn Đi U Và M T So Ứng Dụng Của Phép Đơn Đi U Hóa Hàm So.docx
DV Viết Luận văn luanvanmaster.com ZALO 0973287149
 
Tìm thành phần liên thông mạnh và bài toán 2-SAT
Tìm thành phần liên thông mạnh và bài toán 2-SATTìm thành phần liên thông mạnh và bài toán 2-SAT
Tìm thành phần liên thông mạnh và bài toán 2-SAT
Tam Pham Minh
 

Similar to Bai 4 bieu dien do thi va thuat toan tim kiem (20)

Bài Toán Phân Luồng Giao Thông Và Ứng Dụng.doc
Bài Toán Phân Luồng Giao Thông Và Ứng Dụng.docBài Toán Phân Luồng Giao Thông Và Ứng Dụng.doc
Bài Toán Phân Luồng Giao Thông Và Ứng Dụng.doc
 
Phu luca ham
Phu luca hamPhu luca ham
Phu luca ham
 
Ly thuyet-do-thi-va-ung-dung - [cuuduongthancong.com]
Ly thuyet-do-thi-va-ung-dung - [cuuduongthancong.com]Ly thuyet-do-thi-va-ung-dung - [cuuduongthancong.com]
Ly thuyet-do-thi-va-ung-dung - [cuuduongthancong.com]
 
báo cáo môn dạy học lập trình
báo cáo môn dạy học lập trìnhbáo cáo môn dạy học lập trình
báo cáo môn dạy học lập trình
 
Luận văn: Mô hình đồ thị luồng và mối quan hệ với đồ thị, HAY
Luận văn: Mô hình đồ thị luồng và mối quan hệ với đồ thị, HAYLuận văn: Mô hình đồ thị luồng và mối quan hệ với đồ thị, HAY
Luận văn: Mô hình đồ thị luồng và mối quan hệ với đồ thị, HAY
 
Ctdlgt
CtdlgtCtdlgt
Ctdlgt
 
Ctdlgt
CtdlgtCtdlgt
Ctdlgt
 
Ứng dụng hình học để xác định một miền chứa điểm cho trước
Ứng dụng hình học để xác định một miền chứa điểm cho trướcỨng dụng hình học để xác định một miền chứa điểm cho trước
Ứng dụng hình học để xác định một miền chứa điểm cho trước
 
Ltdt
LtdtLtdt
Ltdt
 
CHƯƠNG 6.pdf
CHƯƠNG 6.pdfCHƯƠNG 6.pdf
CHƯƠNG 6.pdf
 
Bai 14
Bai 14Bai 14
Bai 14
 
Ứng Dụng Hình Học Tính Toán Để Xác Định Một Miền Chứa Điểm Cho Trƣớc.doc
Ứng Dụng Hình Học Tính Toán Để Xác Định Một Miền Chứa Điểm Cho Trƣớc.docỨng Dụng Hình Học Tính Toán Để Xác Định Một Miền Chứa Điểm Cho Trƣớc.doc
Ứng Dụng Hình Học Tính Toán Để Xác Định Một Miền Chứa Điểm Cho Trƣớc.doc
 
Hàm Đơn Đi›U, Tựa Đơn Đi›U Và Một Số Ứng Dụng Của Phép Đơn Đi›U Hóa Hàm Số.docx
Hàm Đơn Đi›U, Tựa Đơn Đi›U Và Một Số Ứng Dụng Của Phép Đơn Đi›U Hóa Hàm Số.docxHàm Đơn Đi›U, Tựa Đơn Đi›U Và Một Số Ứng Dụng Của Phép Đơn Đi›U Hóa Hàm Số.docx
Hàm Đơn Đi›U, Tựa Đơn Đi›U Và Một Số Ứng Dụng Của Phép Đơn Đi›U Hóa Hàm Số.docx
 
Tiểu luận đường đi HAMILTON
Tiểu luận đường đi HAMILTON Tiểu luận đường đi HAMILTON
Tiểu luận đường đi HAMILTON
 
Skkn2011 tran xuan mai truong dtnt
Skkn2011 tran xuan mai  truong dtntSkkn2011 tran xuan mai  truong dtnt
Skkn2011 tran xuan mai truong dtnt
 
Tom tat bai giang ly thuyet do thi - nguyen ngoc trung
Tom tat bai giang   ly thuyet do thi - nguyen ngoc trungTom tat bai giang   ly thuyet do thi - nguyen ngoc trung
Tom tat bai giang ly thuyet do thi - nguyen ngoc trung
 
Tom tat bai giang ly thuyet do thi - nguyen ngoc trung
Tom tat bai giang   ly thuyet do thi - nguyen ngoc trungTom tat bai giang   ly thuyet do thi - nguyen ngoc trung
Tom tat bai giang ly thuyet do thi - nguyen ngoc trung
 
[Math educare.com] giai tich ham nhieu bien-phep tinh vi phan ham nhieu bien_...
[Math educare.com] giai tich ham nhieu bien-phep tinh vi phan ham nhieu bien_...[Math educare.com] giai tich ham nhieu bien-phep tinh vi phan ham nhieu bien_...
[Math educare.com] giai tich ham nhieu bien-phep tinh vi phan ham nhieu bien_...
 
Hàm Đơn Đi U, Tựa Đơn Đi U Và M T So Ứng Dụng Của Phép Đơn Đi U Hóa Hàm So.docx
Hàm Đơn Đi U, Tựa Đơn Đi U Và M T So Ứng Dụng Của Phép Đơn Đi U Hóa Hàm So.docxHàm Đơn Đi U, Tựa Đơn Đi U Và M T So Ứng Dụng Của Phép Đơn Đi U Hóa Hàm So.docx
Hàm Đơn Đi U, Tựa Đơn Đi U Và M T So Ứng Dụng Của Phép Đơn Đi U Hóa Hàm So.docx
 
Tìm thành phần liên thông mạnh và bài toán 2-SAT
Tìm thành phần liên thông mạnh và bài toán 2-SATTìm thành phần liên thông mạnh và bài toán 2-SAT
Tìm thành phần liên thông mạnh và bài toán 2-SAT
 

More from Duy Vọng

Dia+ly+co+so
Dia+ly+co+so  Dia+ly+co+so
Dia+ly+co+so
Duy Vọng
 
Cnsh thay tam
Cnsh thay tamCnsh thay tam
Cnsh thay tam
Duy Vọng
 
Cn sinh hoc_dai_cuong_es30z
Cn sinh hoc_dai_cuong_es30zCn sinh hoc_dai_cuong_es30z
Cn sinh hoc_dai_cuong_es30z
Duy Vọng
 
C05143 tech and app - cnsh
C05143 tech and app - cnshC05143 tech and app - cnsh
C05143 tech and app - cnsh
Duy Vọng
 
2010 khoa cnsh
2010 khoa cnsh2010 khoa cnsh
2010 khoa cnsh
Duy Vọng
 
3 l1q08ssfkcnsh bvtv
3 l1q08ssfkcnsh bvtv3 l1q08ssfkcnsh bvtv
3 l1q08ssfkcnsh bvtv
Duy Vọng
 
Bg quan tri chat luong
Bg quan tri chat luongBg quan tri chat luong
Bg quan tri chat luong
Duy Vọng
 
He thong phan loai dnnvn
He thong phan loai dnnvnHe thong phan loai dnnvn
He thong phan loai dnnvn
Duy Vọng
 
File goc 771908
File goc 771908File goc 771908
File goc 771908
Duy Vọng
 
Erca fg 20130730_p1-18
Erca fg 20130730_p1-18Erca fg 20130730_p1-18
Erca fg 20130730_p1-18
Duy Vọng
 
Dung sai kỹ thuật đo lường
Dung sai   kỹ thuật đo lườngDung sai   kỹ thuật đo lường
Dung sai kỹ thuật đo lường
Duy Vọng
 
Dm -chapter_4_-_classification
Dm  -chapter_4_-_classificationDm  -chapter_4_-_classification
Dm -chapter_4_-_classification
Duy Vọng
 
Co xuong khop
Co xuong khopCo xuong khop
Co xuong khop
Duy Vọng
 
Chuong 12 khai quat ve phan loai dong vat
Chuong 12  khai quat ve phan loai dong vatChuong 12  khai quat ve phan loai dong vat
Chuong 12 khai quat ve phan loai dong vat
Duy Vọng
 
Chiến lược toàn cầu trong chẩn đoán, quản lý và dự phòng bệnh phổi tắc nghẽn ...
Chiến lược toàn cầu trong chẩn đoán, quản lý và dự phòng bệnh phổi tắc nghẽn ...Chiến lược toàn cầu trong chẩn đoán, quản lý và dự phòng bệnh phổi tắc nghẽn ...
Chiến lược toàn cầu trong chẩn đoán, quản lý và dự phòng bệnh phổi tắc nghẽn ...
Duy Vọng
 
Cau truc may tinh
Cau truc may tinhCau truc may tinh
Cau truc may tinh
Duy Vọng
 
Cau tao bao duong oto
Cau tao   bao duong otoCau tao   bao duong oto
Cau tao bao duong oto
Duy Vọng
 
Bxd 10 2013-tt-bxd-25072013_pl1
Bxd 10 2013-tt-bxd-25072013_pl1Bxd 10 2013-tt-bxd-25072013_pl1
Bxd 10 2013-tt-bxd-25072013_pl1
Duy Vọng
 
Bang phan loai cac nganh dich vu wto
Bang phan loai cac nganh dich vu wtoBang phan loai cac nganh dich vu wto
Bang phan loai cac nganh dich vu wto
Duy Vọng
 
A35 afluf agl_09_phanloailinhvuc
A35 afluf agl_09_phanloailinhvucA35 afluf agl_09_phanloailinhvuc
A35 afluf agl_09_phanloailinhvuc
Duy Vọng
 

More from Duy Vọng (20)

Dia+ly+co+so
Dia+ly+co+so  Dia+ly+co+so
Dia+ly+co+so
 
Cnsh thay tam
Cnsh thay tamCnsh thay tam
Cnsh thay tam
 
Cn sinh hoc_dai_cuong_es30z
Cn sinh hoc_dai_cuong_es30zCn sinh hoc_dai_cuong_es30z
Cn sinh hoc_dai_cuong_es30z
 
C05143 tech and app - cnsh
C05143 tech and app - cnshC05143 tech and app - cnsh
C05143 tech and app - cnsh
 
2010 khoa cnsh
2010 khoa cnsh2010 khoa cnsh
2010 khoa cnsh
 
3 l1q08ssfkcnsh bvtv
3 l1q08ssfkcnsh bvtv3 l1q08ssfkcnsh bvtv
3 l1q08ssfkcnsh bvtv
 
Bg quan tri chat luong
Bg quan tri chat luongBg quan tri chat luong
Bg quan tri chat luong
 
He thong phan loai dnnvn
He thong phan loai dnnvnHe thong phan loai dnnvn
He thong phan loai dnnvn
 
File goc 771908
File goc 771908File goc 771908
File goc 771908
 
Erca fg 20130730_p1-18
Erca fg 20130730_p1-18Erca fg 20130730_p1-18
Erca fg 20130730_p1-18
 
Dung sai kỹ thuật đo lường
Dung sai   kỹ thuật đo lườngDung sai   kỹ thuật đo lường
Dung sai kỹ thuật đo lường
 
Dm -chapter_4_-_classification
Dm  -chapter_4_-_classificationDm  -chapter_4_-_classification
Dm -chapter_4_-_classification
 
Co xuong khop
Co xuong khopCo xuong khop
Co xuong khop
 
Chuong 12 khai quat ve phan loai dong vat
Chuong 12  khai quat ve phan loai dong vatChuong 12  khai quat ve phan loai dong vat
Chuong 12 khai quat ve phan loai dong vat
 
Chiến lược toàn cầu trong chẩn đoán, quản lý và dự phòng bệnh phổi tắc nghẽn ...
Chiến lược toàn cầu trong chẩn đoán, quản lý và dự phòng bệnh phổi tắc nghẽn ...Chiến lược toàn cầu trong chẩn đoán, quản lý và dự phòng bệnh phổi tắc nghẽn ...
Chiến lược toàn cầu trong chẩn đoán, quản lý và dự phòng bệnh phổi tắc nghẽn ...
 
Cau truc may tinh
Cau truc may tinhCau truc may tinh
Cau truc may tinh
 
Cau tao bao duong oto
Cau tao   bao duong otoCau tao   bao duong oto
Cau tao bao duong oto
 
Bxd 10 2013-tt-bxd-25072013_pl1
Bxd 10 2013-tt-bxd-25072013_pl1Bxd 10 2013-tt-bxd-25072013_pl1
Bxd 10 2013-tt-bxd-25072013_pl1
 
Bang phan loai cac nganh dich vu wto
Bang phan loai cac nganh dich vu wtoBang phan loai cac nganh dich vu wto
Bang phan loai cac nganh dich vu wto
 
A35 afluf agl_09_phanloailinhvuc
A35 afluf agl_09_phanloailinhvucA35 afluf agl_09_phanloailinhvuc
A35 afluf agl_09_phanloailinhvuc
 

Bai 4 bieu dien do thi va thuat toan tim kiem

  • 1. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM MÔN HỌC: TOÁN ỨNG DỤNG Bài 1: CƠ SỞ LOGIC Bài 2: BÀI TOÁN ĐẾM VÀ BÀI TOÁN TỒN TẠI Bài 3: LÝ THUYẾT ĐỒ THỊ Bài 4: BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM Bài 5: CÂY VÀ CÁC ỨNG DỤNG
  • 2. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM Bài 4: BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 1. BIỂU DIỄN ĐỒ THỊ 1.1 Danh sách liền kề 1.2 Ma trận kề 1.3 Ma trận trọng số 1.4 Ma trận liên thuộc 2. BÀI TOÁN ĐƯỜNG ĐI NGẮN NHẤT 2.1 Giới thiệu bài toán 2.2 Thuật toán Dijkstra 2.3 Thuật toán Floyd 3. CÁC THUẬT TOÁN TÌM KIẾM 3.1 Giới thiệu 3.2 Duyệt đồ thị theo chiều sâu 3.3 Duyệt đồ thị theo chiều rộng 1. BIỂU DIỄN ĐỒ THỊ 1.1 Danh sách liền kề 1.2 Ma trận kề 1.3 Ma trận trọng số 1.4 Ma trận liên thuộc 2. BÀI TOÁN ĐƯỜNG ĐI NGẮN NHẤT 2.1 Giới thiệu bài toán 2.2 Thuật toán Dijkstra 2.3 Thuật toán Floyd 3. CÁC THUẬT TOÁN TÌM KIẾM 3.1 Giới thiệu 3.2 Duyệt đồ thị theo chiều sâu 3.3 Duyệt đồ thị theo chiều rộng
  • 3. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 1. Biểu diễn đồ thị 1.1 Danh sách liền kề - Danh sách liền kề là một cách biểu diễn đồ thị không có cạnh bội bằng cách liệt kê tất cả các đỉnh nối với mỗi đỉnh của đồ thị
  • 4. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 1. Biểu diễn đồ thị 1.1 Danh sách liền kề Ví dụ: Danh sách liền kề của đồ thị vô hướng G Đỉnh Đỉnh liền kề 1 2 3 4 5 6 3,2 1,3,5 1,2,4 3,5,6 2,4,6 4,5
  • 5. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 1. Biểu diễn đồ thị 1.1 Danh sách liền kề Ví dụ: Danh sách liền kề của đồ thị có hướng G1 Đỉnh đầu Đỉnh cuối 1 2 3 4 5 6 2,3 2 3 4,6 5
  • 6. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 1. Biểu diễn đồ thị 1.2 Ma trận liền kề Xét đơn đồ thị vô hướng G=(V,E), với tập đỉnh V={v1, v2, ...,vn } và tập cạnh E={e1, e2, ..., em }. Ma trận liền kề AG của đồ thị G là ma trận 0-1 vuông cấp nxn. AG= (aij), trong đó: 1, nếu (vi,vj) là một cạnh của G 0,nếu không có cạnh nối đỉnh vi với vj aij =
  • 7. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 1. Biểu diễn đồ thị 1.2 Ma trận liền kề Ví dụ: Ma trận liền kề của đơn đồ thị vô hướng G 0 1 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 0 0 1 0 0 1 1 1 0 1 1 0 1 0 0 0 1 1 0 1 2 3 4 5 6 1 2 3 4 5 6 1 3 6 42 5 1- Ma trận liền kề của đơn đồ thị vô hướng G có dòng, cột đối xứng qua đường chéo 2- Tổng giá trị trên một dòng (hoặc cột) bằng số bậc của đỉnh i.
  • 8. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 1. Biểu diễn đồ thị 1.2 Ma trận liền kề Ví dụ: Ma trận liền kề của đa đồ thị vô hướng G 1 3 6 42 0 1 1 0 0 0 1 0 2 2 0 0 1 2 0 0 1 0 0 2 0 0 1 1 0 0 1 1 0 3 0 0 0 1 3 0 1 2 3 4 5 6 1 2 3 4 5 6 5 aij = k - tổng số cạnh nối hai đỉnh
  • 9. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 1. Biểu diễn đồ thị 1.2 Ma trận liền kề Ví dụ: Ma trận liền kề của đơn đồ thị có hướng G* 1 2 543 0 1 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 2 3 4 5 1 2 3 4 5 Ma trận liền kề của đơn đồ thị có hướng G không có dòng, cột đối xứng
  • 10. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 1. Biểu diễn đồ thị 1.2 Ma trận trọng số - Trong thực tế chúng ta thường giải quyết những tình huống như sau: từ địa điểm A đến địa điểm B trong thành phố, chúng ta chọn đường đi ngắn nhất (xét đến độ dài), có lúc lại cần chọn đường đi nhanh nhất (xét đến thời gian) và có lúc phải cân nhắc để chọn đường đi có chi phí thấp nhất, v.v... - Khi chúng ta gán một giá trị số thực dương cho mỗi cạnh của đồ thị G thì chúng ta có đồ thị có trọng số. - Chúng ta có thể xem đồ thị G bất kỳ là đồ thị có trọng số mà tất cả các cạnh có trọng số bằng 1.
  • 11. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 1. Biểu diễn đồ thị 1.2 Ma trận trọng số
  • 12. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 1. Biểu diễn đồ thị 1.2 Ma trận trọng số - Đồ thị G = (V,E) gọi là đồ thị có trọng số nếu mỗi cạnh (hay cung) e được gán với một số thực w(e), gọi là trọng số của e (hay chiều dài, trọng lượng của cạnh e). v1 v2 v6 v5v3 v4 3 7 3 9 5 86 6
  • 13. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 1. Biểu diễn đồ thị 1.2 Ma trận trọng số - Mỗi đường đi m(u,v) từ đỉnh u đến đỉnh v, có trọng số bằng tổng trọng số các cạnh mà nó đi qua. - Khoảng cách d(u,v) giữa hai đỉnh u và v là đường đi có trọng số nhỏ nhất trong các đường đi từ u đến v. d(u,v)=min(m(u,v))
  • 14. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 1. Biểu diễn đồ thị 1.2 Ma trận trọng số Ma trận trọng số D= d(ij), xác định như sau: 0, khi đỉnh trùng w(i,j), trọng số của cạnh nối giữa hai đỉnh ∞, nếu không có cạnh nối giữa hai đỉnh dij =
  • 15. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 1. Biểu diễn đồ thị 1.3 Ma trận trọng số Ví dụ: Vẽ ma trận trọng số biểu diễn đồ thị vô hướng G 0 3 7 ∞ ∞ ∞ 3 0 6 6 ∞ ∞ 7 6 0 ∞ 3 ∞ ∞ 6 ∞ 0 8 5 ∞ ∞ 3 8 0 9 ∞ ∞ ∞ 5 9 0 v1 v2 v3 v4 v5 v6 v1 v2 v3 v4 v5 v6 v1 v2 v6 v5v3 v4 3 7 3 9 5 86 6
  • 16. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 1. Biểu diễn đồ thị 1.2 Ma trận trọng số Ví dụ: Lập ma trận trọng số biểu diễn đồ thị có hướng G
  • 17. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 1. Biểu diễn đồ thị 1.2 Ma trận trọng số Ví dụ: 0 5 31 40 0 27 73 26 0 8 49 25 38 0 16 70 0 9 23 0 12 10 0 D ∞ ∞ ∞   ÷ ∞ ∞ ∞ ∞ ÷  ÷∞  ÷ = ∞ ∞ ∞ ∞ ∞ ÷  ÷∞ ∞ ∞ ∞  ÷ ∞ ∞ ∞ ∞ ÷  ÷∞ ∞ ∞ ∞ ∞ 
  • 18. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 1. Biểu diễn đồ thị 1.3 Ma trận liên thuộc Ma trận liên thuộc biểu diễn quan hệ giữa cạnh liên thuộc và đỉnh kề. Ma trận M= (mij), xác định như sau: 1 nếu cạnh ej nối với đỉnh vi 0 nếu cạnh ej không nối với đỉnh vi mij =
  • 19. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 1. Biểu diễn đồ thị 1.3 Ma trận liên thuộc Ví dụ: Xây dựng ma trận liên thuộc cho đồ thị G dưới đây e1 e2 e3 e4 e5 e6 v1 v2 v3 v4 v5
  • 20. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 2. Bài toán đường đi ngắn nhất 2.1 Giới thiệu bài toán Cho đơn đồ thị liên thông, có trọng số dương G=(V,E). Bài toán 1: Tìm đường đi ngắn nhất từ một đỉnh u đến mỗi đỉnh v của đồ thị G. Bài toán 2: Tìm đường đi ngắn nhất giữa mỗi cặp đỉnh của đồ thị G. 1 5 3 DB C E A Z 2 1 28 6 10
  • 21. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 2.2 Thuật toán Dijkstra Thuật toán tìm đường đi ngắn nhất từ đỉnh u đến mỗi đỉnh v của đồ thị G, được nhà toán học người Hà Lan E. Dijkstra đề xuất vào năm 1959. Thuật toán thực hiện theo cách gán nhãn tại mỗi đỉnh. Thuật ngữ: w(x,y) : trọng số dương của cạnh (x,y); w(x,y) là ∞ (vô cùng lớn) nếu hai đỉnh không kề nhau. d(v) : độ dài đường đi từ đỉnh xuất phát tới đỉnh v. p(v) : đỉnh đứng ngay trước đỉnh v trên đường đi từ đỉnh xuất phát đến đỉnh v. Nhãn của đỉnh v : gồm cặp (d(v), p(v)) T : Tập các nút mà đường đi ngắn nhất đã được xác định. 2. Bài toán đường đi ngắn nhất
  • 22. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 2.2 Thuật toán Dijkstra Gán T = ø; p(v) = NULL với mọi đỉnh v d(a)=0; /* a là đỉnh xuất phát Với mỗi đỉnh v còn lại thì d(v) = ∞; Repeat u =(u∉T | d(u) là bé nhất); T = T {u};∪ for ((v là đỉnh kề của u) và v∉T) if d(v) > d(u) + w(u,v) then d(v) = d(u) + w(u,v) p(v) = u Until (T=V) 2. Bài toán đường đi ngắn nhất
  • 23. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 2. Bài toán đường đi ngắn nhất 2.2 Thuật toán Dijkstra Ví dụ 1: Tìm đường đi ngắn nhất từ A đến mỗi đỉnh khác của đồ thị G dưới đây 1 5 3 10 DB C E A Z 6 2 1 28
  • 24. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 2. Bài toán đường đi ngắn nhất 2.2 Thuật toán Dijkstra Ví dụ 1: 1 5 3 10 DB C E A Z 6 2 1 2 8 1 5 3 10 DB C E A Z 6 2 1 2 8 (0,-) (∞,-) (∞,-) (∞,-) (∞,-) (∞,-) (0,-)* (∞,-) (2,a) (∞,-) (∞,-) (∞,-) (1,a) (∞,-) d(D) =∞ = d(A)+w(A,D)=0+∞=∞ d(E) =∞ = d(A)+w(A,E)=0+∞=∞ d(Z) =∞ = d(A)+w(A,Z)=0+∞=∞ d(B) =∞ > d(A)+w(A,B)=0+1=1 d(C) =∞ > d(A)+w(A,C)=0+2=2
  • 25. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 2. Bài toán đường đi ngắn nhất 2.2 Thuật toán Dijkstra Ví dụ 1: 1 5 3 10 D E A Z 6 2 1 2 8 C B (0,-)* (1,a)* (2,a) (6,b) (∞,-) (∞,-) 1 5 3 10 D E A Z 6 2 1 2 8 B C (0,-)* (1,a)* (2,a)* (6,b) (∞,-) (12,c) d(C) =2 = d(B)+w(B,C)=1+1=2 d(D) =∞ > d(B)+w(B,D)=1+5=6 d(E) =∞ = d(B)+w(B,E)=0+∞=∞ d(Z) =∞ = d(B)+w(B,Z)=0+∞=∞ d(D) =6 > d(C)+w(C,D)=2+8=10 d(E) =∞ > d(C)+w(C,E)=2+10=12 d(Z) =∞ = d(C)+w(C,Z)=0+∞=∞ (∞,-) (∞,-)
  • 26. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 2. Bài toán đường đi ngắn nhất 2.2 Thuật toán Dijkstra Ví dụ 1: 1 5 3 10 E A Z 6 2 1 2 8 B C D (0,-)* (1,a)* (2,a)* (6,b)* (12,d) (8,d) (12,c) d(E) =12 > d(D)+w(D,E)=6+2=8 d(Z) =∞ = d(D)+w(D,Z)=6+6=12 d(Z) =12 >d(E)+w(E,Z)=8+3=11 1 5 3 10 A Z6 2 1 2 8 B C D E (0,-)* (1,a)* (2,a)* (6,b)* (12,d) (8,d)* (11,e)
  • 27. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 2. Bài toán đường đi ngắn nhất 2.2 Thuật toán Dijkstra Ví dụ 1: 1 5 3 10 A 6 2 1 2 8 B C D E Z (0,-)* (1,a)* (2,a)* (6,b)* (8,d)* (11,e)*
  • 28. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 2. Bài toán đường đi ngắn nhất 2.2 Thuật toán Dijkstra Ví dụ 1: Lập bảng để giải bài toán tìm đường đi ngắn nhất Bước Tập T a b d c e z 0 ø (0,-) (∞,-) (∞,-) (∞,-) (∞,-) (∞,-) 1 a (0,-)* (1,a) (∞,-) (2,a) (∞,-) (∞,-) 2 ba - (1,a)* (6,b) (2,a) (∞,-) (∞,-) 3 cba - - (6,b) (2,a) * (12,c) (∞,-) 4 dcba - - (6,b)* - (8,d) (12,d) 5 edcba - - - - (8,d)* (11,e) 6 zedcba - - - - - (11,e)*
  • 29. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 2. Bài toán đường đi ngắn nhất 2.2 Thuật toán Dijkstra Ví dụ 1: Nhận xét bảng kết quả đã thu được. 1/. Độ dài đường đi ngắn nhất từ A đến các đỉnh là ->B: 1 ->C: 2 ->D: 6 ->E: 8 ->Z: 11 2/. Để vẽ đường đi ngắn nhất từ A đến đỉnh Z, chúng ta sử dụng cách đi ngược từ Z về A. Cụ thể là Z <- E <- D <- B <- A. 3/. Đường đi ngắn nhất từ A đến Z không đi qua C. Vậy đường đi ngắn nhất không đi qua tất cả các đỉnh của đồ thị.
  • 30. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 2.2 Thuật toán Dijkstra Ví dụ 2: Tìm đường đi ngắn nhất giữa A và W trong đồ thị G dưới đây a yx wv z 2 2 1 3 1 1 2 5 3 5 2. Bài toán đường đi ngắn nhất
  • 31. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 2.2 Thuật toán Dijkstra Ví dụ 2: Do bài toán chỉ cần tìm đường đi ngắn nhất từ A đến W trong đồ thị G nên chúng ta đổi điều kiện kết thúc thuật toán Dijkstra như sau: ... Repeat u =(u∉T | d(u) là bé nhất); T = T ∪ {u}; for ((v là đỉnh kề của u) và v∉T) if d(v) > d(u) + w(u,v) then d(v) = d(u) + w(u,v) p(v) = u Until ( đỉnh đích chứa trong tập T) 2. Bài toán đường đi ngắn nhất
  • 32. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 2.2 Thuật toán Dijkstra Ví dụ 2: Tìm đường đi ngắn nhất giữa A và W trong đồ thị G 2. Bài toán đường đi ngắn nhất Bước Tập T a v x y w z 0 ø (0.-) (∞,-) (∞,-) (∞,-) (∞,-) (∞,-) 1 a (0,-)* (2,a) (1,a) (∞,-) (5,a) (∞,-) 2 xa - (2,a) (1,a)* (2,x) (4,x) (∞,-) 3 yxa - (2,a) - (2,x)* (3,y) (4,y) 4 vyxa - (2,a)* - - (3,y) (4,y) 5 wvyxa - - - - (3,y)* (4,y) 6 Kết thúc vì đỉnh đến w chứa trong tập T
  • 33. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 2. Bài toán đường đi ngắn nhất 2.2 Thuật toán Dijkstra Ví dụ 3: Cho đồ thị có trọng số G. Tìm đường đi ngắn nhất từ A đến mỗi đỉnh của đồ thị. 12 10 9 9 5 4 9 9 9 9 6 4 A B D C E F G H K Z 2 2 8 4 1 3 3 8
  • 34. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 2. Bài toán đường đi ngắn nhất 2.2 Thuật toán Dijkstra Ví dụ 4: Cho đồ thị có trọng số G = (V, E), tìm đường đi ngắn nhất giữa A và H. 6 A GD E b B K 3 2 3 5 4 3 2 2 4 C 4 H 4 4
  • 35. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 2. Bài toán đường đi ngắn nhất 2.2 Thuật toán Dijkstra Ví dụ 5: v1 v2 v3 v4 v5 v6 v7 v1 0 5 30 40 ∞ ∞ ∞ v2 ∞ 0 27 ∞ 73 ∞ ∞ v3 ∞ 26 0 8 40 25 38 v4 ∞ ∞ ∞ 0 ∞ 16 20 v5 ∞ 70 ∞ ∞ 0 20 12 v6 ∞ ∞ 22 ∞ 22 12 ∞ v7 50 ∞ ∞ ∞ 10 ∞ ∞ Tìm đường đi ngắn nhất từ v1 đến các đỉnh khác của đồ thị có trọng số được biểu diễn trong ma trận M hình bên.
  • 36. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 2.3 Thuật toán Floyd Giới thiệu Để tìm đường đi ngắn nhất giữa tất cả các cặp đỉnh của đồ thị G=(V,E), chúng ta sử dụng thuật toán Floyd được công bố năm 1962. Việc tìm đường đi ngắn nhất dựa trên nguyên tắc sau: " Nếu k là đỉnh nằm trên đường đi ngắn nhất từ i đến j thì đoạn đường từ i đến k và từ k đến j cũng ngắn nhất" Ak[i,j]=min(Ak-1[i,j], Ak-1[i,k]+Ak-1[k,j]) 2. Bài toán đường đi ngắn nhất
  • 37. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM 2.3 Thuật toán Floyd BEGIN for i := 1 to n do for j := 1 to n do begin D[i,j] := C[i,j] ; P[i,j] := 0 end ; for k := 1 to n do for i := 1 to n do for j := 1 to n do if D[i,k] + D[k,j] < D[i,j] then begin D[i,j] := D[i,k] + D[k,j] ; P[i,j] := k end END. 2. Bài toán đường đi ngắn nhất
  • 38. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn 2.3 Thuật toán Floyd Ví dụ: 2. Bài toán đường đi ngắn nhất W = D0 = 40 5 2 0 ∞ ∞ 3 0 1 2 3 1 2 3 00 0 0 0 0 0 0 0 1 2 3 1 2 3 P = 1 2 3 5 3 24
  • 39. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn 2. Bài toán đường đi ngắn nhất D1 = 40 5 2 0 7 ∞ 3 0 1 2 3 1 2 3 00 0 0 0 1 0 0 0 1 2 3 1 2 3 P = 1 2 3 5 3 24 D1 [2,3] = min( D0 [2,3], D0 [2,1]+D0 [1,3] ) = min (∝, 7) = 7 P[2,3]=1 D1 [3,2] = min( D0 [3,2], D0 [3,1]+D0 [1,2] ) = min (3,∝) = 3 40 5 2 0 ∞ ∞ 3 0 1 2 3 1 2 3 D0 = k = 1
  • 40. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn 2. Bài toán đường đi ngắn nhất D2 [1,3] = min( D1 [1,3], D1 [1,2]+D1 [2,3] ) = min (5, 4+7) = 5 D2 [3,1] = min( D1 [3,1], D1 [3,2]+D1 [2,1] ) = min (∝, 3+2) = 5 P[3,1] = 2 D2 = 40 5 2 0 7 5 3 0 1 2 3 1 2 3 00 0 0 0 1 2 0 0 1 2 3 1 2 3 P = 1 2 3 5 3 24 D1 = 40 5 2 0 7 ∞ 3 0 1 2 3 1 2 3 k = 23
  • 41. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn BIỂU DIỄN ĐỒ THỊ VÀ CÁC THUẬT TOÁN TÌM KIẾM D3 = 40 5 2 0 7 5 3 0 1 2 3 1 2 3 00 0 0 0 1 2 0 0 1 2 3 1 2 3 P = D3 [1,2] = min(D2 [1,2], D2 [1,3]+D2 [3,2] ) = min (4, 5+3)) = 4 D3 [2,1] = min(D2 [2,1], D2 [2,3]+D2 [3,1] ) = min (2, 7+ 5) = 2 D2 = 40 5 2 0 7 5 3 0 1 2 3 1 2 3 1 2 3 5 3 24 k = 3 2. Bài toán đường đi ngắn nhất
  • 42. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn 3.1 Giới thiệu Với một đồ thị có nhiều nút, việc kiểm tra tính liên thông của đồ thị là bài toán lớn, cần có cách thức để thực hiện nhanh, chính xác. Hai cách duyệt đồ thị phổ biến được áp dụng: 1. Duyệt đồ thị theo chiều sâu (Depth First Search - DFS) 2. Duyệt đồ thị theo chiều rộng (Breadth First Search - BFS) 3. Duyệt đồ thị BFSDFS
  • 43. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn 3.2 Duyệt đồ thị theo chiều sâu Xuất từ một đỉnh v bất kỳ của đồ thị G, chúng ta thực hiện như sau: Bước 1: đánh dấu v đã được duyệt. Bước 2: thực hiện đánh dấu đã duyệt với mỗi đỉnh w chưa duyệt kề với v, Bước 3: làm lại bước 2 cho đến khi tất cả các đỉnh được duyệt. 3. Duyệt đồ thị DFS
  • 44. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn 3.2 Duyệt đồ thị theo chiều sâu Ví dụ: Thực hiện duyệt đồ thị theo chiều sâu trên đồ thị G dưới đây: 3. Duyệt đồ thị v1 v2 v6 v3 v4 v7 v8v5 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 v1 v2 v6 v3 v4 v8 v7 v5Bảng duyệt
  • 45. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn 3.3 Duyệt đồ thị theo chiều rộng Xuất từ một đỉnh v bất kỳ của đồ thị G, chúng ta thực hiện như sau: Bước 1: đánh dấu đã duyệt cho một đỉnh v bất kỳ. Bước 2: chọn đỉnh v đã được duyệt nhưng có đỉnh kề chưa được duyệt. Việc chọn đỉnh v được xét ưu tiên cho các đỉnh được đánh dấu duyệt sớm. Bước 3: thực hiện đánh dấu đã duyệt với tất cả các đỉnh w kề với v, Bước 4: làm lại bước 2 cho đến khi tất cả các đỉnh được duyệt. 3. Duyệt đồ thị BFS
  • 46. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn 3.3 Duyệt đồ thị theo chiều rộng 3. Duyệt đồ thị
  • 47. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn 3.3 Duyệt đồ thị theo chiều rộng Ví dụ: Thực hiện duyệt đồ thị theo chiều rộng trên đồ thị G dưới đây: 3. Duyệt đồ thị v1 v2 v6 v3 v4 v7 v8v5 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 v1 v2 v5 v6 v3 v7 v4 v8Bảng duyệt
  • 48. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE Website: http://www.ispace.edu.vn 3.3 Duyệt đồ thị theo chiều rộng Ví dụ: Thực hiện duyệt đồ thị theo chiều rộng trên đồ thị G dưới đây: 3. Duyệt đồ thị Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9