Upload
khangminh22
View
1
Download
0
Embed Size (px)
Citation preview
BÀI 9
BÀI TOÁN ĐƯỜNG ĐI NGẮN NHẤT TRÊN ĐỒ THỊ
1
Giáo viên: TS. Nguyễn Văn Hiệu
Email: [email protected]
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Nội dung
q Giới thiệuq Bài toánq Thuật toán Dijkstraq Thuật toán Bellman-Fordq Thuật toán Floyd – Warshallq Ứng dụng
Nguyễn Văn Hiệu, 2014, Discrete Mathematics 2CuuDuongThanCong.com https://fb.com/tailieudientucntt
Giới thiệu
qĐồ thị trọng số (weighted graph) là đồ thịcó gắn một số (số nguyên hay số thực) chomỗi cạnh hoặc mỗi cung
qSố nguyên hay số thực cho mỗi cạnh:ü cự ly,ü thời gianü chi phí, ü tốc độ.
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 3CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bài toán
q Cho đồ thị trọng số G =(V,E,W). Ký hiệuw(u,v) là trọng số của cạnh (u,v)
q Độ dài đường đid=𝑣$ → 𝑣& →…. → 𝑣'($ → 𝑣'
là tổng trọng số𝐿 𝑑 = ∑ 𝑤(𝑣/, 𝑣/1$)'($
/3$
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 4CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bài toán
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 5
Bài toán 1:Tìm đường đi ngắn nhất từ đỉnha và đỉnh z
Bài toán 2: Tìm đường đi ngắn nhất từđỉnh a đến tất cả các đỉnh còn lại
Bài toán 3: Tìm đường đi ngắn nhất giữamọi cặp đỉnh
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bài toán
q Để chắc chắn tìm được đường đi ngắnnhất thì điều kiệnq Phải tồn tại đường đi
q Đồ thị vô hướng liên thông, đồ thị có hướng liênthông mạnh
q Không tồn tại chu trình âm:q Đồ thị vô hướng không tồn tại cạnh âm
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 6CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bài toán
qĐường đi ngắn nhất từ Etna đến Oldtown là:Etna – Bangor – Orono – OldTown
qĐường đi ngắn nhất từ Hermae đến Etna là:Hermae – Hampdea – Bangor - Etna
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 7CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bài toán
If ( d[v] > d[u] + c[u,v]) {d[v] = d[u] + c[u,v];T[v] = u;
}CuuDuongThanCong.com https://fb.com/tailieudientucntt
Thuật toán Dijkstra
q Mục tiêu: Tìm đường đi ngắn nhất từđỉnh a đến đỉnh z
q Điều kiện: Trọng số của cạnh w(u,v)>0 với mọi cạnh (u,v)
q L(u) - chiều dài ngắn nhất từ a đến u.q Thuật toán kết thúc thì L(z) – chiều dài
ngắn nhất từ a đến z.
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 9CuuDuongThanCong.com https://fb.com/tailieudientucntt
Thuật toán Dijkstra
q Input: G = (V,E,W), w(i,j)>0,∀(𝑖, 𝑗) ∈E,𝑎, 𝑧 ∈ V,
qOutput: L(z),đường đi từ a đến z (nếu có)
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 10CuuDuongThanCong.com https://fb.com/tailieudientucntt
Thuật toán Dijkstra
Step 1L(a)=0, L(x)=∞,∀𝑥 ≠ 𝑎,T=V, P(x) =∅.
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 11
Step 2m = min {L(u),u∈ 𝑇}
§ Nếu m=+∞ → 𝐾𝑇, ∄đườ𝑛𝑔đ𝑖𝑡ừ𝑎đê𝑛𝑧§ Nếu m<+∞ →
- chọn v ∈ 𝑇: 𝐿 𝑣 = 𝑚,- T = T- {v}- step 3
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Thuật toán Dijkstra
Step 3§ Nếu v = z → 𝐾𝑇và L(z), P(z)
(𝑧$ = 𝑃 𝑧 , 𝑧& = 𝑃 𝑧$ ,…., 𝑧' = 𝑃 𝑧'($ , 𝑎 = 𝑃(𝑧'))
§ Nếu v ≠ z → Step 4
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 12
Step 4: ∀𝑢 ∈ 𝑇, 𝑘ề 𝑘ề𝑠𝑎𝑢 𝑣𝑁ế𝑢𝐿 𝑢 > 𝐿 𝑣 + 𝑤 𝑣, 𝑢 , 𝑡ℎì
𝐿 𝑢 = 𝐿 𝑣 + 𝑤 𝑣, 𝑢P(u) = v
→ Step 2.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Thuật toán Dijkstra
G – đồ thị liên thông có trọng số với n đỉnhf(n) – số lần thuật toán Dijkstra khảo sát mộtcạnh của G:
f(n) = 0(n*n)
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 13
Thuật toán Dijkstra là tối ưuKn - có số cạnh là n(n-1)/2Tìm đường đi ngắn nhất từ a đến z phải khảo sátqua mỗi cạnh một lần.Thuật giải khảo sát ít nhất 0(n*n)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
a
b c
z
d e
41
2
56
32
10
8 a
b c
z
d e
41
2
56
32
10
80,∅
∞,∅ ∞,∅
∞,∅ ∞,∅
∞,∅
Ví dụ thuật toán Dijkstra (1)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
a
b c
z
d e
41
2
56
32
10
80,∅
∞,∅ ∞,∅
∞,∅ ∞,∅
∞,∅ a
b c
z
d e
41
2
56
32
10
80,∅
4,a ∞,∅
2,a ∞,∅
∞,∅
Ví dụ thuật toán Dijkstra(2)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
a
b c
z
d e
41
2
56
32
10
80,∅
4,a ∞,∅
2,a ∞,∅
∞,∅ a
b c
z
d e
41
2
56
32
10
80,∅
3,d 10,d
2,a 12,d
∞,∅
Ví dụ thuật toán Dijkstra (3)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
a
b c
z
d e
41
2
56
32
10
80,∅
3,d 8,b
2,a 12,d
∞,∅a
b c
z
d e
41
2
56
32
10
80,∅
3,a 10,d
2,a 12,d
∞,∅
Ví dụ thuật toán Dijkstra (4)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
a
b c
z
d e
41
2
56
32
10
80,∅
3,d 8,b
2,a 10,𝑐
14, 𝑐a
b c
z
d e
41
2
56
32
10
80,∅
3,a 8,b
2,a 12,d
∞,∅
Ví dụ thuật toán Dijkstra(5)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
a
b c
z
d e
41
2
56
32
10
80,∅
3,d 8,b
2,a 10,𝑐
13, 𝑒a
b c
z
d e
41
2
56
32
10
80,∅
3,a 8,b
2,a 10,c
14, 𝑐
Ví dụ thuật toán Dijkstra (6)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Phương pháp lập bảng ghi nhãn
q Bản chất là thuât toán Dijkstraq Các cột tương ứng với các đỉnhq Các hàng tương ứng với số lần tính nhãn
(bước 4)q Các nhãn “gạch dưới” tương ứng với
nhãn nhỏ nhất ở (bước 2)q Số đỉnh được cố định chính là số đỉnh
loại ra (bước 2)
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 20CuuDuongThanCong.com https://fb.com/tailieudientucntt
a
b c
z
d e
41
2
56
32
10
8
Ví dụ lập bảng tính nhãn (1)
a b c d e z
𝟎, ∅ ∞, ∅ ∞, ∅ ∞, ∅ ∞, ∅ ∞, ∅ a
𝟒, 𝒂 ∞, ∅ 𝟐, 𝒂 ∞, ∅ ∞, ∅ d
- 3,d 10,d - 12,d ∞, ∅ b
- - 8,b - 12,d ∞, ∅ c
- - - - 10.c 14,c e
- - - - - 13,e z
- - - - - -
CuuDuongThanCong.com https://fb.com/tailieudientucntt
k 1 2 3 4 5 6
0,o oo,o oo,o oo,o oo,o oo,o
1 - 1,1 oo,o 2,1 oo,o oo,o
2 - 6,2 2,1 oo,o 8,2
3 3,4 - 6,4 8,2
4 - 6,4 4,3
6,4 -
Ví dụ lập bảng tính nhãn (2)
1
2 3
6
4 5
1
1
2
5
3
12
4
7
2
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ví dụ lập bảng tính nhãn (3)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Thuật toán Bellman-Ford
q Dijkstra cho kết quả sai nếu đồ thị có trọng sốâm
q Bellman-Ford khắc phục kết quả trênq Belman-Ford giúp xác định đồ thị có chu trình
âm hay không
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 24
s
b
z
3
2
-2
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Thuật toán Bellman-Ford
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 25
q Input: G = (V,E,W), s ∈ V,
qOutput: L(v),P(v) – đỉnh kề trước v (s---v)Đồ thị có chu trình âm qua đỉnh khảnối với s
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Step 1L(s)=0, L(v)=+∞,∀𝑣 ≠ 𝑠,P(v) = nil, ∀𝑣 ∈ 𝑉,
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 26
Step 2For i:=1 to n do // |V| = n
For (u,v) ∈ 𝐸𝑑𝑜if L(v)>L(u)+w(u,v) then {
L(v)=L(u)+w(u,v);P(v)= u;
}
Thuật toán Bellman-Ford
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Step 3If ∃ 𝑢, 𝑣 ∈ 𝐸: 𝐿 𝑣 > 𝐿 𝑢 + 𝑤 𝑢, 𝑣 𝑡ℎ𝑒𝑛
→ 𝐾𝐿(1)Else {
L(v); P(v);}
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 27
Thuật toán Bellman-Ford
Độ phức tạp của thuật toán Bellman – Ford0(n*m)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Thuật toán Bellman-Ford
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 28
s
b
z
3
2
-2
Bước s b z1 0 +∞,nil +¥ ,nil
2 0 3,s 2 ,s
0 3,s 1,b3 ∄ 𝑢, 𝑣 ∈ 𝐸: 𝐿 𝑣 > 𝐿 𝑢 + 𝑤 𝑢, 𝑣
CuuDuongThanCong.com https://fb.com/tailieudientucntt
k 1 2 3 4 51 0,1 1,1 ¥ ,0 ¥ ,0 3,1
2 0,1 1,1 4,2 4,2 3,1
3 0,1 1,1 4,2 4,2 -1,3
5 0,1 1,1 4,2 3,5 -1,3
Ví dụ thuật toán Bellman-Ford
1
2 3
4
1 2
3
3
4
-58 31
5
CuuDuongThanCong.com https://fb.com/tailieudientucntt
k 1 2 3 4 5 6
0,1 1,1 ¥ ,1 ¥ ,1 ¥,1 ¥,1
1 0,1 1,1 6 ,2 3 ,2 7,4 7,3
2 0,1 1,1 4 ,4 3 ,2 7,4 5,3
3 0,1 1,1 4 ,4 3 ,2 6,6 5,3
4 0,1 1,1 4 ,4 3 ,2 6,6 5,3S = 1
Ví dụ thuật toán Bellman-Ford
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Thuật toán Floyd- Warshall
q Mục tiêu: Tìm đường đi ngắn nhất giữamọi cặp đỉnh của đồ thị (có hướng) cótrọng số
q Giải pháp– Dijkstra nhiều lần– Floyd- Warshall
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 31CuuDuongThanCong.com https://fb.com/tailieudientucntt
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 32
q Input: G = (V, E, W), V = {1,2,…,n}
qOutput: D = {d[i,j]}nxn,
d[i,j] độ dài đường đi ngắn nhất từ i đến j
P = {p[i,j]}nxn,,p[i,j] – đỉnh đi trước j trên đường đi
ngắn nhất từ i đến j
Thuật toán Floyd- Warshall
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Step 1
D0 = {d0 [i,j]} , d0 [i,j] = p𝑤 𝑖, 𝑗 , ∃(𝑖, 𝑗) ∈ 𝐸+∞, 𝑖, 𝑗 ∉ 𝐸
P0 = {p0 [i,j]}, p0 [i,j] = p𝑗, ∃(𝑖, 𝑗) ∈ 𝐸∄, 𝑖, 𝑗 ∉ 𝐸
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 33
Thuật toán Floyd- Warshall
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 34
Step 2For k:=1 to n do // |V| = n
// Tính Dk và Pk theo Dk-1, Pk-1For n:=1 to n do
For m:=1 to n do if dk -1[i,j]> dk -1[i,k]+ dk -1[k,j] then {
dk[i,j]=dk -1[i,k]+dk -1[k,j];pk[i,j]= pk -1[i,k];
}else {
dk[i,j]=dk -1[i,j]; pk[i,j]= pk -1[i,j];}
Thuật toán Floyd- Warshall
//∀ i, j ∈ 𝐸
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 35
Step 3D = DnP = Pn
// Phương pháp xác định đường đi ngắn nhất từ i đến j// Đường đi ngắn nhất từ i đến j là các đỉnh:
i→ 𝑖$ → 𝑖& → ⋯ → 𝑖v → 𝑖v1$ → 𝑖' → 𝑗 :𝑖$ = 𝑝 𝑖, 𝑗 , 𝑖& = p(𝑖$, j),…., 𝑖v1$ = p(𝑖v, j),
𝑗 = p(𝑖v1$, j),
Thuật toán Floyd- Warshall
Độ phức tạp của thuật Floyd Warshall0(n*n*n)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 36
Ví dụ thuật toán Floyd- Warshall (1)
1
2 4
3
7
117
4
5
6
1
7 57 611
4 1
¥ ¥é ùê ú¥ ¥ê úê ú¥ ¥ ¥ê ú¥ ¥ë û
1 2 3 4
1
2
34
2 33 4
41 2
¥ ¥é ùê ú¥ ¥ê úê ú¥ ¥ ¥ê ú¥ ¥ë û
1 2 3 4
1
2
34
Ma trận D0 Ma trận P0CuuDuongThanCong.com https://fb.com/tailieudientucntt
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 37
Ví dụ thuật toán Floyd- Warshall (2)
1
2 4
3
7
117
4
5
6
1
7 57 611
4 1 9
¥ ¥é ùê ú¥ ¥ê úê ú¥ ¥ ¥ê ú¥ë û
1 2 3 4
1
2
34
2 33 4
41 2 1
¥ ¥é ùê ú¥ ¥ê úê ú¥ ¥ ¥ê ú¥ë û
1 2 3 4
1
2
34
Cập nhật qua đỉnh 1
Ma trận D1 Ma trận P1CuuDuongThanCong.com https://fb.com/tailieudientucntt
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 38
Ví dụ thuật toán Floyd- Warshall(3)
1
2 4
3
7
117
4
5
6
1
7 5 137 611
4 1 8 7
¥é ùê ú¥ ¥ê úê ú¥ ¥ ¥ê úë û
1 2 3 4
1
2
34
2 3 23 44
1 2 2 2
¥é ùê ú¥ ¥ê úê ú¥ ¥ ¥ê úë û
1 2 3 4
1
2
34
Cập nhật qua đỉnh 2
Ma trận D2 Ma trận P2CuuDuongThanCong.com https://fb.com/tailieudientucntt
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 39
Ví dụ thuật toán Floyd- Warshall (4)
1
2 4
3
7
117
4
5
6
1
7 5 137 611
4 1 8 7
¥é ùê ú¥ ¥ê úê ú¥ ¥ ¥ê úë û
1 2 3 4
1
2
34
2 3 23 44
1 2 2 2
¥é ùê ú¥ ¥ê úê ú¥ ¥ ¥ê úë û
1 2 3 4
1
2
34
Cập nhật qua đỉnh 3
Ma trận D3 Ma trận P3CuuDuongThanCong.com https://fb.com/tailieudientucntt
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 40
Ví dụ thuật toán Floyd- Warshall (5)
1
2 4
3
7
117
4
5
6
1
17 7 5 1310 7 7 615 12 19 114 1 8 7
é ùê úê úê úê úë û
1 2 3 4
1
2
34
2 2 3 24 4 3 44 4 4 41 2 2 2
é ùê úê úê úê úë û
1 2 3 4
1
2
34
Cập nhật qua đỉnh 4
Ma trận D4 Ma trận P4CuuDuongThanCong.com https://fb.com/tailieudientucntt
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 41
Ví dụ thuật toán Floyd- Warshall (6)
1
2 4
3
7
117
4
5
6
1
17 7 5 1310 7 7 615 12 19 114 1 8 7
é ùê úê úê úê úë û
1 2 3 4
1
2
34
2 2 3 24 4 3 44 4 4 41 2 2 2
é ùê úê úê úê úë û
1 2 3 4
1
2
34
Kết quả: 4 → 3+ 8+ 4 –2 --3p(4,3) = 2p(2,3) = 3
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 42
10
2
1
563
10 6 210 5 36 5 12 3 1
¥é ùê ú¥ê úê ú¥ê ú¥ë û
2 3 41 3 41 2 41 2 3
¥é ùê ú¥ê úê ú¥ê ú¥ë û
Ma trận D0
Ví dụ thuật toán Floyd- Warshall (2.1)
Ma trận P0
1 2
34
1 2 3 4
1
2
3
4
1 2 3 4
1
2
3
4
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 43
10
2
1
563
10 6 210 5 36 5 12 3 1
¥é ùê ú¥ê úê ú¥ê ú¥ë û
2 3 41 3 41 2 41 2 3
¥é ùê ú¥ê úê ú¥ê ú¥ë û
Ví dụ thuật toán Floyd- Warshall (2.2)
1 2
34
1 2 3 4
1
2
3
4
1 2 3 4
1
2
3
4
Ma trận D1 Ma trận P1
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 44
10
2
1
563
10 6 210 5 36 5 12 3 1
¥é ùê ú¥ê úê ú¥ê ú¥ë û
2 3 41 3 41 2 41 2 3
¥é ùê ú¥ê úê ú¥ê ú¥ë û
Ví dụ thuật toán Floyd- Warshall(2.3)
1 2
34
1 2 3 4
1
2
3
4
1 2 3 4
1
2
3
4
Ma trận D2 Ma trận P2
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 45
10
2
1
563
10 6 210 5 36 5 12 3 1
¥é ùê ú¥ê úê ú¥ê ú¥ë û
2 3 41 3 41 2 41 2 3
¥é ùê ú¥ê úê ú¥ê ú¥ë û
Ví dụ thuật toán Floyd- Warshall(2.4)
1 2
34
1 2 3 4
1
2
3
4
1 2 3 4
1
2
3
4
Ma trận D3 Ma trận P3
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 46
10
2
1
563
5 3 25 4 33 4 12 3 1
¥é ùê ú¥ê úê ú¥ê ú¥ë û
4 4 44 4 44 4 41 2 3
¥é ùê ú¥ê úê ú¥ê ú¥ë û
Ví dụ thuật toán Floyd- Warshall(2.5)
1 2
34
1 2 3 4
1
2
3
4
1 2 3 41
2
3
4
Ma trận D4 Ma trận P4
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 47
10
2
1
563
5 3 25 4 33 4 12 3 1
¥é ùê ú¥ê úê ú¥ê ú¥ë û
4 4 44 4 44 4 41 2 3
¥é ùê ú¥ê úê ú¥ê ú¥ë û
Ví dụ thuật toán Floyd- Warshall(2.6)
1 2
34
1 2 3 4
1
2
3
4
1 2 3 41
2
3
4
Ma trận D4 Ma trận P4
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ứng dụng
qBài toán chọn địa điểm đặt cơ sở dịch vụ, sao chohiệu quả nhất về mặt kinh tếqBài toán cực tiểu tổng
§ Tìm vị trí để đặt cơ sở sao cho khoảng cách giữa các vùng đếncơ sở là nhỏ nhất
§ Vị trí đặt trường học, bưu điện, bệnh viện.
qBài toán cực tiểu trị lớn nhất§ Tìm vị trí đặt cơ sở sao cho khoảng cách từ cơ sở đến điểm xa
nhất của cộng đồng là nhỏ nhất§ Vị trí đặt cơ quan phòng cháy chữa cháy.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ứng dụng
qBài toán cực tiểu tổngG=(V, E, W), V={1,2,…,n},w(i,j)>0,∀(𝑖, 𝑗) ∈ 𝐸D={d[i,j]} là ma trận khoảng cách ngắn nhất của G (Floyd-Warshall)∀𝑖 ∈ 𝑉, 𝑠 𝑖 − 𝑡ổ𝑛𝑔𝑐á𝑐𝑝ℎầ𝑛𝑡ử𝑡𝑟ê𝑛 hàng i của ma trận DĐỉnh j gọi là cực tiểu tổng nếu 𝑠 𝑗 ≤ 𝑠 𝑖 , ∀𝑖 ∈ 𝑉.q Tập tất cả các đỉnh tâm gọi là tâm đồ thị
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ứng dụng
qBài toán cực tiểu trị lớn nhấtG=(V, E, W), V={1,2,…,n},w(i,j)>0,∀(𝑖, 𝑗) ∈ 𝐸D={d[i,j]} là ma trận khoảng cách nhỏ nhất của G (Floyd-Warshall)∀𝑖 ∈ 𝑉, 𝑒 𝑖 − 𝑝ℎầ𝑛𝑡ử𝑙ớ𝑛𝑛ℎấ𝑡(độ𝑙ệ𝑐ℎ𝑡â𝑚)𝑡𝑟ê𝑛ℎà𝑛𝑔i của ma trận DĐỉnh j gọi là đỉnh tâm tổng nếu e 𝑗 ≤ 𝑒 𝑖 , ∀𝑖 ∈ 𝑉
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Ứng dụng
1 1
1
11 2 431 5
6
70 1 2 3 4 4 41 0 1 2 3 3 32 1 0 1 2 2 23 2 1 0 1 1 14 3 2 1 0 2 24 3 2 1 2 0 24 3 2 1 2 2 0
é ùê úê úê úê úê úê úê úê úê úë û
1 2 3 4 5 6 7
1
2
3
4
5
6
7
- Đỉnh 4 là đỉnh cực tiểu- Đỉnh 3 là tâm đồ thị
CuuDuongThanCong.com https://fb.com/tailieudientucntt
q Lập trình thực hiện các thuật toán mô tả:q Thuật toán Dijkstraq Thuật toán Floyd-Warshallq Thuật toán Bellman-Ford
q Xác định độ phức tạp của 3 thuật toán trên
Nguyễn Văn Hiệu, 2012, Discrete Mathematics 52
Bài tập
CuuDuongThanCong.com https://fb.com/tailieudientucntt
THAT’S ALL; THANK YOU
What NEXT?
CuuDuongThanCong.com https://fb.com/tailieudientucntt