SlideShare a Scribd company logo
CÁC BÀI TOÁN ĐƯỜNG ĐI ntsonptnk@gmail.com
NỘI DUNG Đường đi ngắn nhất Bài toán Nguyên lý Bellman Thuật toán Dijkstra Thuật toán Floyd Thuật toán Ford-Bellman Đồ thị Euler Đồ thị Hamilton Lý thuyết đồ thị , chương 3 - Nguyễn Thanh Sơn  2
ĐƯỜNG ĐI NGẮN NHẤT Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 3 0 A 4 8 2 3 2 8 7 1 C B D 3 9 5 8 2 5 E F
Cho đồ thị có hướng có trọng G=(X, E) và hai đỉnh s, tX, gọi P là một đường đi từ đỉnh s đến đỉnh t, trọng lượng (hay giá) của đường đi P được định nghĩa là: 		L(P) = (eP)L(e) Bài toán: tìm đường đi từ s đến t có trọng lượng nhỏ nhất BÀI TOÁN 4 Lý thuyết đồ thị - Nguyễn Thanh Sơn
Bài toán được phát biểu cho đồ thị có hướng có trọng, nhưng các thuật toán sẽ trình bày đều có thể áp dụng cho các đồ thị vô hướng có trọng bằng cách xem mỗi cạnh của đồ thị vô hướng như hai cạnh có cùng trọng lượng nối cùng một cặp đỉnh nhưng có chiều ngược nhau. Khi tìm đường đi ngắn nhất có thể bỏ bớt đi các cạnh song song và chỉ chừa lại một cạnh có trọng lượng nhỏ nhất. Đối với các khuyên có trọng lượng không âm thì cũng có thể bỏ đi mà không làm ảnh hưởng đến kết quả của bài toán. Đối với các khuyên có trọng lượng âm thì có thể đưa đến bài toán đường đi ngắn nhất không có lời giải. NHẬN XÉT 5 Lý thuyết đồ thị - Nguyễn Thanh Sơn
ĐIỀU KIỆN TỒN TẠI LỜI GiẢI P là một đường đi từ s đến t, giả sử P có chứa một mạch .  Nếu L()0 thì có thể cải tiến đường đi P bằng cách bỏ đi mạch .  Nếu L()<0 thì không tồn tại đường đi ngắn nhất từ đỉnh s đến đỉnh t vì nếu quay vòng tại  càng nhiều vòng thì trọng lượng đường đi P càng nhỏ đi, tức là L(P) -. 6 Lý thuyết đồ thị - Nguyễn Thanh Sơn k t s 
Ma trận trọng lượng LNxN được định nghĩa: Lij = trọng lượng cạnh nhỏ nhất nối i đến j nếu có, Lij =  nếu không có cạnh nối i đến j. Khi cài đặt thuật toán có thể dùng 0 thay cho  bằng cách đưa thêm một số kiểm tra thích hợp. DỮ LIỆU NHẬP 7 Lý thuyết đồ thị - Nguyễn Thanh Sơn B 12 A 16 7 5 15 14 D C
NGUYÊN LÝ BELLMAN Lý thuyết đồ thị - Nguyễn Thanh Sơn 8 k P1 P2 t s P1’
Gọi P là đường đi ngắn nhất từ đỉnh s đến đỉnh t; k  P. Giả sử P=P1P2 với P1 là đường đi con của P từ s đến k và P2 là đường đi con của P từ k đến t. Khi đó P1 cũng là đường đi ngắn nhất từ s đến k. NGUYÊN LÝ BELLMAN 9 Lý thuyết đồ thị - Nguyễn Thanh Sơn k P1 P2 t s P1’ L(P1’) < L(P1)    L(P1’P2) < L(P1P2)=L(P)
THUẬT TOÁN DiJKSTRA Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 10 0 A 4 8 2 3 2 8 7 1 C B D 3 9 5 8 2 5 E F TÌM ĐƯỜNG ĐI NGẮN NHẤT TRÊN ĐỒ THỊ CÓ TRỌNG SỐ DƯƠNG
Input: N, L, s, t – sốđỉnh, ma trậntrọnglượng, đỉnhxuấtphát, đỉnhkếtthúc Output: D, Labels – D[k]: trọnglượngĐĐNN sk, Labels[k]: đỉnhngaytrước k trong ĐĐNN sk V=X; D[s]=0;D[k]=,kXs}; Labels[k]=-1, kX. Trongkhi tV: Chọn đỉnh vVvới D[v] nhỏ nhất; V := Vv}; Với mọi đỉnh kV và có cạnh nối từ v đến k, Nếu D[k]>D[v]+Lvk thì 				D[k]=D[v]+Lvk và Labels[k]=v THUẬT TOÁN DIJKSTRA 11 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn
VÍ DỤ Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 12 d(u) = 50 d(z) = 75 10 u z s d(u) = 50 d(z) = 60 10 u z s Cập nhật độ dài ĐĐ từ s đến đỉnh z: 75  60
VÍ DỤ Đồ thị G gồm 7 đỉnh, 12 cạnh như hình bên. Tìm đường đi ngắn nhất từ đỉnh 1 đến đỉnh 5 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 13 2 9 8 4 3 1 1 3 4 6 8 5 2 4 5 7 12 17 6
VÍ DỤ V: đỉnh chưa bị tô màu; D[k]: số có màu đỏ; Labels[k]: số có màu xanh lá Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 14 2 9 8 4 0     3 1 1 -1 -1 -1 -1 -1 3 4 6 5 8 2 4 5 7 12 17 6   -1 -1
VÍ DỤ Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 15 V: đỉnh chưa bị tô màu; D[k]: số có màu đỏ; Labels[k]: số có màu xanh lá 2 9 8 4 0 9   6 3 1 1 -1 1 -1 -1 1 3 4 6 5 8 2 4 5 7 12 17 6  3 -1 1
VÍ DỤ Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 16 V: đỉnh chưa bị tô màu; D[k]: số có màu đỏ; Labels[k]: số có màu xanh lá 2 9 8 4 0 7 4 11 6 3 1 1 -1 4 4 4 1 3 4 6 5 8 2 4 5 7 12 17 6  3 -1 1
VÍ DỤ Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 17 V: đỉnh chưa bị tô màu; D[k]: số có màu đỏ; Labels[k]: số có màu xanh lá 2 9 8 4 0 7 4 9 6 3 1 1 -1 4 4 3 1 3 4 6 5 8 2 4 5 7 12 17 6  3 -1 1
VÍ DỤ Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 18 V: đỉnh chưa bị tô màu; D[k]: số có màu đỏ; Labels[k]: số có màu xanh lá 2 9 8 4 0 7 4 9 6 3 1 1 -1 4 4 3 1 3 4 6 5 8 2 4 5 7 12 17 6  3 -1 1
VÍ DỤ ĐĐNN từ 1 đến 5 có trọng lượng D[5]=9: 5  3  4  1 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 19 2 9 8 4 0 7 4 9 6 3 1 1 -1 4 4 3 1 3 4 6 5 8 2 4 5 7 12 17 6 26 3 5 1
GIÁ TRỊ CÁC BIẾN D, Labels 20 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn D Labels
VÍ DỤ Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 21 0 A 4 8 2 3 2 8 7 1 C B D 3 9 5 8 2 5 E F 0 A 4 8 2 4 2 8 7 1 C B D 3 9   2 5 E F 0 0 A A 4 4 8 8 2 2 3 2 8 3 2 7 7 1 7 1 C B D C B D 3 9 3 9 5 11 5 8 2 5 2 5 E F E F
VÍ DỤ Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 22 0 A 4 8 2 3 2 7 7 1 C B D 3 9 5 8 2 5 E F 0 A 4 8 2 3 2 7 7 1 C B D 3 9 5 8 2 5 E F
Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 23 THUẬT TOÁN DIJKSTRA – CÀI ĐẶT Graph Graph::Dijkstra(int s, int t) { //Tìm đường đi ngắn nhất từ s đến t }
Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 24 THUẬT TOÁN DIJKSTRA – CÀI ĐẶT Graph Graph::PrintPath(int s, int t) { 	int temp[MAX]; 	int dem = 0; //In đường đi ngắn nhất từ s đến t dựa vào Labels while(Labels[t] != -1) 	{ 		temp[dem++]=t; 		t=Labels[t]; 	} 	temp[dem++]=s; 	while (dem > 0) 		printf(“%d “, temp[--dem]); }
THUẬT TOÁN FLOYD TÌM ĐƯỜNG ĐI NGẮN NHẤT GIỮA CÁC CẶP ĐỈNH TRÊN ĐỒ THỊ Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 25
Input: N, L – sốđỉnh, ma trậntrọnglượngcủa G(X, E) Output: L, Nexts – L[u, v]: trọnglượngĐĐNN uv, Nexts[u, v]: đỉnhngaysau u trong ĐĐNN uv Nếu L[u, v]: Nexts[u, v]=v Ngượclại: Nexts[u, v]=-1 , (u, v)X2. Vớimọi t  X Vớimọi u  X có L[u, t] Vớimọi v  X có L[t, v] Nếu L[u, v] > L[u, t] + L[t, v] thì L[u, v] = L[u, t] + L[t, v] Nexts[u, v] = Nexts[u, t] THUẬT TOÁN FLOYD 26 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn
Xác định đường đi ngắn nhất giữa các cặp đỉnh trên đồ thị gồm 4 đỉnh 6 cạnh VÍ DỤ 27 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn 2 8 4 9 4 1 3 3 1 5
VÍ DỤ 28 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn 2 9  4  8  3  1   -1 5 1 2 -1 2 -1 3 -1 4 -1 3 -1 4 1 3
VÍ DỤ 29 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn t = 1 u = 3 v = 2 2 9  4  8  14 3  1   -1 5 1 2 -1 2 -1 3 -1 4 -1 3 -1 1 4 1 3
VÍ DỤ 30 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn t = 1 u = 3 v = 4 2 9  4  8 14 3  1   -1 5 1 8 2 -1 2 -1 3 4 -1 3 -1 1 1 4 1 3
VÍ DỤ 31 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn t = 2 u = 1 v = 3 2 9  4  8 14 3  1  -1 5 1 8 17 2 2 -1 2 -1 3 4 -1 3 1 1 4 1 3
VÍ DỤ 32 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn t = 2 u = 3 v = x 2 9  4  8 14 3  1 5 1 8 17 2 2 -1 2 -1 3 4 -1 3 1 1 4 1 3
VÍ DỤ 33 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn t = 2 u = 4 v = 3 2 9  4  8 14 3  1 5 1 8 17 2 2 -1 2 -1 3 4 -1 3 1 1 4 1 3
VÍ DỤ 34 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn t = 3 u = 1 v = 2 2 9  4  8 14 3  1 5 1 8 17 2 2 -1 2 -1 3 4 -1 3 1 1 4 1 3
VÍ DỤ 35 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn t = 3 u = 1 v = 4 2 9  4  8 14 3  1 5 1 8 17 2 2 -1 2 -1 3 4 -1 3 1 1 4 1 3
VÍ DỤ 36 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn t = 3 u = 2 v = 1, 4 2 9 13 4 16 8 14 3  1 5 1 8 17 2 2 3 2 3 3 4 -1 3 1 1 4 1 3
VÍ DỤ 37 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn t = 3 u = 4 v = 1, 2 2 9 13 4 16 8 14 3 6 1 5 1 8 17 2 2 3 2 3 3 4 3 3 1 1 4 1 3
VÍ DỤ 38 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn t = 4 u = 1 v = 2, 3 2 7 13 4 16 8 14 3 6 1 5 1 8 4 4 4 3 2 3 3 4 3 3 1 1 4 1 3
VÍ DỤ 39 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn t = 4 u = 2 v = 1, 3 2 7 13 4 16 8 14 3 6 1 5 1 8 4 4 4 3 2 3 3 4 3 3 1 1 4 1 3
VÍ DỤ 40 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn t = 4 u = 3 v = 1, 2 2 7 13 4 16 8 12 3 6 1 5 1 8 4 4 4 3 2 3 3 4 3 3 1 1 4 1 3
THUẬT TOÁN BELLMAN Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 41 ? 0 k t s  TÌM ĐƯỜNG ĐI NGẮN NHẤT TRÊN ĐỒ THỊ CÓ CẠNH ÂM
Input: N, L, u – sốđỉnh, ma trậntrọnglượngcủa G(X, E), đỉnhxuấtphát Output: , Labels – (k, v): trọnglượngĐĐNN uvsau k bướclặp, Labels[v]: đỉnhngaytrước v trong ĐĐNN uv (0, u)=0; (0, v)= vXu}; Labels[v] = -1 vX; Lặpvới k = 1, 2, N-1 iX,chọn jXsaocho(k-1, j)+Ljiđạtnhỏnhất; nếuji: (k, i)=(k-1, j)+Lji Labels[i] = j  Nếu(k) = (k-1): (k, v) làđườngđingắnnhất u  v Nếuvẫncònthayđổisaubướclặp N-1: từ u đãđiđếnmạchâm THUẬT TOÁN BELLMAN 42 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn
VÍ DỤ 43 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn Tìm đường đi ngắn nhất từ đỉnh 3 đến các đỉnh còn lại 1 1 2 -2 8 2 3 5 4 4 1 -1 2 6 5
VÍ DỤ 44 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn k = 0 1 1 2 -2 8 2 0      -1 -1 -1 -1 -1 -1 3 5 4 4 1 -1 2 6 5
VÍ DỤ 45 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn k = 1 1 1 2 -2 8 2 0      5 4 -1 -1 -1 -1 -1 -1 -1 3 3 3 3 5 4 4 1 -1 2 6 5
VÍ DỤ 46 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn k = 2 1 1 2 -2 8 2 0   5 4 -1 1 -1 -1 -1 3 3 3 5 3 5 4 4 1 -1 2 6 5
VÍ DỤ 47 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn k = 3 1 1 2 -2 8 2 0   5 -1 1 2 -1 -1 -1 3 3 5 6 3 5 4 4 1 -1 2 6 5
VÍ DỤ 48 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn k = 4 1 1 2 DỪNG -2 8 2 0   -1 1 2 -1 -1 -1 3 5 6 3 5 4 4 1 -1 2 6 5
GIÁ TRỊ CÁC BIẾN , Labels 49 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn  Labels
VÍ DỤ 50 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn Tìm đường đi ngắn nhất từ đỉnh 1 đến các đỉnh còn lại 1 1 2 -2 8 2 3 5 4 4 1 -1 2 6 5
VÍ DỤ 51 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn k = 0 1 1 2 -2 8 2  0     -1 -1 -1 -1 -1 -1 3 5 4 4 1 -1 2 6 5
VÍ DỤ 52 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn k = 1 1 1 2 -2 8 2 2 0 1    1 -1 1 -1 -1 -1 3 5 4 4 1 -1 2 6 5
VÍ DỤ 53 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn k = 2 1 1 2 -2 8 2 2 -1 1 7 6 1 1 2 1 3 3 3 3 5 4 4 1 -1 2 6 5
VÍ DỤ 54 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn k = 3 1 1 2 -2 8 2 1 -1 0 7 3 1 1 2 1 3 5 3 3 5 4 4 1 -1 2 6 5
VÍ DỤ 55 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn k = 4 1 1 2 -2 8 2 1 -2 0 6 3 0 1 2 1 3 5 3 3 5 4 4 1 -1 2 6 5
VÍ DỤ 56 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn k = 5 1 DỪNG – CÓ MẠCH ÂM 1 2 -2 8 2 0 -2 -1 4 2 0 1 2 1 6 5 3 3 5 4 4 1 -1 2 6 5
ĐỒ THỊ EULER Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 57 Konigsberg, Hmmm Leonhard Euler (1707 – 1783)
Thành phố Konigsberg (Đức) bị chia thành 4 vùng do 2 nhánh của 1 dòng sông. Có 7 chiếc cầu nối những vùng nầy với nhau.  Bài toán: xuất phát từ một vùng đi dạo qua mỗi chiếc cầu đúng một lần và trở về nơi xuất phát. Năm 1736, nhà toán học Euler đã mô hình bài toán nầy bằng một đồ thị vô hướng với mỗi đỉnh ứng với một vùng, mỗi cạnh ứng với một chiếc cầu BÀI TOÁN 7 CHIẾC CẦU 58 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn
BÀI TOÁN 7 CHIẾC CẦU 59 A C D B A C D B Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn
DÂY CHUYỀN EULER: dây chuyền đi qua tất cả các cạnh trong đồ thị, mỗi cạnh đúng một lần. CHU TRÌNH EULER: dây chuyền Euler có đỉnh đầu trùng với đỉnh cuối. ĐƯỜNG ĐI EULER: đường đi qua tất cả các cạnh của đồ thị, mỗi cạnh đúng một lần. MẠCH EULER: đường đi Euler có đỉnh đầu trùng với đỉnh cuối. ĐỒ THỊ EULER VÔ HƯỚNG: đồ thị vô hướng có chứa một chu trình Euler. ĐỒ THỊ EULER CÓ HƯỚNG: đồ thị có hướng có chứa một mạch Euler. ĐỊNH NGHĨA 60 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn
Đồ thị vô hướng G=(X, E) G là đồ thị Euler  G liên thông và d(x) chẵn xX. G có chứa dây chuyền Euler và không chứa chu trình chu trình Euler  G liên thông có chứa đúng hai đỉnh bậc lẻ. Đồ thị có hướng G=(X, E) G là đồ thị Euler  G liên thông và d+(x)=d-(x) x  X. ĐỊNH LÝ EULER 61 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn
VÍ DỤ 62 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn a e e a c a d d b d b c b c (G2) (G1) (G3) Liên thông và có 2 đỉnh bậc lẻ  có dây chuyền Euler: bacdaedbc Liên thông và các đỉnh đều có bậc chẵn  có chu trình Euler: bacdaedbcb có đường đi Euler: bacbd
Cạnh e của đồ thị G được gọi là CẦU nếu xóa e khỏi đồ thị thì làm tăng số thành phần liên thông của G. Giải thuật Gọi chu trình cần tìm là C Khởi tạo: Chọn một đỉnh bất kỳ cho vào C. Lặp trong khi G vẫn còn cạnh Chọn cạnh e nối đỉnh vừa chọn với một đỉnh kề với nó theo nguyên tắc: chỉ chọn cầu nếu không còn cạnh nào khác để chọn.  Bổ sung e và đỉnh cuối của nó vào C. Xóa e khỏi G.  GIẢI THUẬT FLEURY 63 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn
VÍ DỤ Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 64 1 2 3 4 5 3 1 2 4 3 1 5
GiẢI THUẬT XÁC ĐỊNH CÁC CHU TRÌNH THÀNH PHẦN Input: đồ thị Euler G(X, E) Output: chu trình Euler C của G Chọn đỉnh v  X; C = {v} Lặp trong khi G còn cạnh Chọn đỉnh v  C còn cạnh trong G Tìm chu trình C’ xuất phát từ v. Ghép C’ vào C Loại bỏ các cạnh của C’ khỏi G 65 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn
VÍ DỤ Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 66 1 2 3 1 4 5 3 3 2 4 3 1 5
ĐỒ THỊ HAMILTON Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 67 Sir William Rowan Hamilton (1805-1865)
“Xuất phát từ một đỉnh của khối thập nhị diện đều, hãy đi dọc theo các cạnh của khối đó sao cho đi qua tất cả các đỉnh khác, mỗi đỉnh qua đúng một lần, sau đó trở về đỉnh xuất phát”.  Bài toán nầy được nhà toán học Hamilton đưa ra vào năm 1859 BÀI TOÁN KHỞI ĐIỂM 68 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn
Đồ thị vô hướng G(X, E) DÂY CHUYỀN HAMILTON: dây chuyền đi qua tất cả các đỉnh của đồ thị mỗi đỉnh đúng một lần. CHU TRÌNH HAMILTON: dây chuyền Hamilton và một cạnh trong đồ thị nối đỉnh đầu của dây chuyền với đỉnh cuối của nó. ĐỒ THỊ HAMILTON: đồ thị có chứa một chu trình Hamilton. ĐỊNH NGHĨA 69 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn
Đồ thị đủ luôn là đồ thị Hamilton. Với n lẻ  3 thì Kn có (n-1)/2 chu trình Hamilton đôi một không có cạnh chung. ĐồthịlưỡngphânG với hai tập đỉnh X1, X2 và X1=X2=n. Nếu d(x)n/2 x của G thì G là đồ thị Hamilton. ĐồthịvôhướngđơnG gồm n đỉnh và m cạnh. Nếu m(n2-3n+6)/2 thì G là đồ thị Hamilton. MỘT SỐ KẾT QUẢ 70 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn
Đồ thị vô hướng đơn G gồm n đỉnh với n3 Nếu d(x)n/2 x của G thì G là đồ thị Hamilton. Nếu d(x)(n-1)/2 x của G thì G có dây chuyền Hamilton. Nếu d(x)+d(y)n với mọi cặp đỉnh x, y không kề nhau của G thì G là đồ thị Hamilton. 71 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn
Nếu G có đỉnh bậc < 2 thì G không có chu trình Hamilton Nếu đỉnh có bậc 2 thì 2 cạnh kề với nó phải nằm trong chu trình Hamilton Các cạnh thừa (ngoài 2 cạnh đã chọn trong chu trình Hamilton) phải được bỏ đi trong quá trình xác định chu trình Nếu quá trình xây dựng tạo nên một chu trình con thì đồ thị không có chu trình Hamilton QUI TẮC XÁC ĐỊNH 72 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn
VÍ DỤ 73 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn 4 2 3 5 1
Chứng minh nguyên lý Bellman Chứng minh tính đúng đắn của các thuật toán Dijkstra, Floyd, Bellman Cài đặt thuật toán xác định chu trình Euler Xác định các “nét” của Đồ thị K nét. BÀI TẬP 74 Lý thuyết đồ thị  - chương 3 - Nguyễn Thanh Sơn

More Related Content

What's hot

Thi thử toán quỳnh lưu 2 na 2012 lần 1 k ab
Thi thử toán quỳnh lưu 2 na 2012 lần 1 k abThi thử toán quỳnh lưu 2 na 2012 lần 1 k ab
Thi thử toán quỳnh lưu 2 na 2012 lần 1 k ab
Thế Giới Tinh Hoa
 
08 bai toan lap pt mat phang p1
08 bai toan lap pt mat phang p108 bai toan lap pt mat phang p1
08 bai toan lap pt mat phang p1
Huynh ICT
 
[Vnmath.com] de thi va dap an chuyen d ai hoc vinh 2015
[Vnmath.com]  de thi va dap an chuyen d ai hoc vinh 2015[Vnmath.com]  de thi va dap an chuyen d ai hoc vinh 2015
[Vnmath.com] de thi va dap an chuyen d ai hoc vinh 2015
Marco Reus Le
 
Các chuyên đề hình học giải tích 12 dạy thêm
Các chuyên đề hình học giải tích 12 dạy thêmCác chuyên đề hình học giải tích 12 dạy thêm
Các chuyên đề hình học giải tích 12 dạy thêm
Thế Giới Tinh Hoa
 
Phương trình đường thẳng trong không gian
Phương trình đường thẳng trong không gianPhương trình đường thẳng trong không gian
Phương trình đường thẳng trong không gian
Nguyễn Đông
 
Cac dang toan thi vao lop 10
Cac dang toan thi vao lop 10Cac dang toan thi vao lop 10
Cac dang toan thi vao lop 10
Quyen Le
 
[Vnmath.com] 200-cau-hh-toa-do-kg-tran-si-tung
[Vnmath.com] 200-cau-hh-toa-do-kg-tran-si-tung[Vnmath.com] 200-cau-hh-toa-do-kg-tran-si-tung
[Vnmath.com] 200-cau-hh-toa-do-kg-tran-si-tung
Huynh ICT
 
Thi thử toán hậu lộc 4 th 2012 lần 1 k a
Thi thử toán hậu lộc 4 th 2012 lần 1 k aThi thử toán hậu lộc 4 th 2012 lần 1 k a
Thi thử toán hậu lộc 4 th 2012 lần 1 k a
Thế Giới Tinh Hoa
 
Thiết lập phương trình mặt phẳng
Thiết lập phương trình mặt phẳngThiết lập phương trình mặt phẳng
Thiết lập phương trình mặt phẳng
Thế Giới Tinh Hoa
 

What's hot (18)

Thi thử toán quỳnh lưu 2 na 2012 lần 1 k ab
Thi thử toán quỳnh lưu 2 na 2012 lần 1 k abThi thử toán quỳnh lưu 2 na 2012 lần 1 k ab
Thi thử toán quỳnh lưu 2 na 2012 lần 1 k ab
 
08 bai toan lap pt mat phang p1
08 bai toan lap pt mat phang p108 bai toan lap pt mat phang p1
08 bai toan lap pt mat phang p1
 
[Vnmath.com] de thi va dap an chuyen d ai hoc vinh 2015
[Vnmath.com]  de thi va dap an chuyen d ai hoc vinh 2015[Vnmath.com]  de thi va dap an chuyen d ai hoc vinh 2015
[Vnmath.com] de thi va dap an chuyen d ai hoc vinh 2015
 
Untitled 2
Untitled 2Untitled 2
Untitled 2
 
Các chuyên đề hình học giải tích 12 dạy thêm
Các chuyên đề hình học giải tích 12 dạy thêmCác chuyên đề hình học giải tích 12 dạy thêm
Các chuyên đề hình học giải tích 12 dạy thêm
 
Phương trình đường thẳng trong không gian
Phương trình đường thẳng trong không gianPhương trình đường thẳng trong không gian
Phương trình đường thẳng trong không gian
 
Cac dang toan thi vao lop 10
Cac dang toan thi vao lop 10Cac dang toan thi vao lop 10
Cac dang toan thi vao lop 10
 
200 Bài toán hình học tọa độ không gian
200 Bài toán hình học tọa độ không gian200 Bài toán hình học tọa độ không gian
200 Bài toán hình học tọa độ không gian
 
[Vnmath.com] 200-cau-hh-toa-do-kg-tran-si-tung
[Vnmath.com] 200-cau-hh-toa-do-kg-tran-si-tung[Vnmath.com] 200-cau-hh-toa-do-kg-tran-si-tung
[Vnmath.com] 200-cau-hh-toa-do-kg-tran-si-tung
 
Thi thử toán hậu lộc 4 th 2012 lần 1 k a
Thi thử toán hậu lộc 4 th 2012 lần 1 k aThi thử toán hậu lộc 4 th 2012 lần 1 k a
Thi thử toán hậu lộc 4 th 2012 lần 1 k a
 
Thiết lập phương trình mặt phẳng
Thiết lập phương trình mặt phẳngThiết lập phương trình mặt phẳng
Thiết lập phương trình mặt phẳng
 
Đề thi môn Toán THPT Quốc Gia năm 2017 mã đề 115
Đề thi môn Toán THPT Quốc Gia năm 2017 mã đề 115Đề thi môn Toán THPT Quốc Gia năm 2017 mã đề 115
Đề thi môn Toán THPT Quốc Gia năm 2017 mã đề 115
 
Giasudhsphn.com.baitap hh10
Giasudhsphn.com.baitap hh10Giasudhsphn.com.baitap hh10
Giasudhsphn.com.baitap hh10
 
Đề thi môn Toán THPT Quốc Gia năm 2017 mã đề 109
Đề thi môn Toán THPT Quốc Gia năm 2017 mã đề 109Đề thi môn Toán THPT Quốc Gia năm 2017 mã đề 109
Đề thi môn Toán THPT Quốc Gia năm 2017 mã đề 109
 
Đề Toán 2017 THPT Quốc Gia
Đề Toán 2017 THPT Quốc GiaĐề Toán 2017 THPT Quốc Gia
Đề Toán 2017 THPT Quốc Gia
 
Đề thi môn Toán THPT Quốc Gia năm 2017 mã đề 117
Đề thi môn Toán THPT Quốc Gia năm 2017 mã đề 117Đề thi môn Toán THPT Quốc Gia năm 2017 mã đề 117
Đề thi môn Toán THPT Quốc Gia năm 2017 mã đề 117
 
Bai tap he toan 7
Bai tap he toan 7Bai tap he toan 7
Bai tap he toan 7
 
Tuyển tập đề thi vào lớp 10 môn toán tại Hà Nội từ năm 1988 - 2013 có đáp án
Tuyển tập đề thi vào lớp 10 môn toán tại Hà Nội từ năm 1988 - 2013 có đáp ánTuyển tập đề thi vào lớp 10 môn toán tại Hà Nội từ năm 1988 - 2013 có đáp án
Tuyển tập đề thi vào lớp 10 môn toán tại Hà Nội từ năm 1988 - 2013 có đáp án
 

Viewers also liked

Báo cáo thực tập (slide power point)
Báo cáo thực tập (slide power point)Báo cáo thực tập (slide power point)
Báo cáo thực tập (slide power point)
Hai Te
 
An overview of The European Library. Olaf Janssen presenting during DRH 2005,...
An overview of The European Library. Olaf Janssen presenting during DRH 2005,...An overview of The European Library. Olaf Janssen presenting during DRH 2005,...
An overview of The European Library. Olaf Janssen presenting during DRH 2005,...
Olaf Janssen
 
E Tqf Open Source Lms
E Tqf Open Source LmsE Tqf Open Source Lms
E Tqf Open Source Lms
FIT Ltd
 

Viewers also liked (20)

Ltdt
LtdtLtdt
Ltdt
 
Dijkstra & flooding ppt(Routing algorithm)
Dijkstra & flooding ppt(Routing algorithm)Dijkstra & flooding ppt(Routing algorithm)
Dijkstra & flooding ppt(Routing algorithm)
 
Dijkstra’S Algorithm
Dijkstra’S AlgorithmDijkstra’S Algorithm
Dijkstra’S Algorithm
 
K33103223 tin5 cbt-nguyenthithanhhang
K33103223 tin5 cbt-nguyenthithanhhangK33103223 tin5 cbt-nguyenthithanhhang
K33103223 tin5 cbt-nguyenthithanhhang
 
Kbdh bai 4 lop 12
Kbdh  bai 4 lop 12Kbdh  bai 4 lop 12
Kbdh bai 4 lop 12
 
Muoi van de li thuyet ltdh vd3 phi kim
Muoi van de li thuyet ltdh vd3 phi kimMuoi van de li thuyet ltdh vd3 phi kim
Muoi van de li thuyet ltdh vd3 phi kim
 
Phân tích bài mảnh trăng cuối rừng của Nguyễn Minh Châu,
Phân tích bài mảnh trăng cuối rừng của Nguyễn Minh Châu, Phân tích bài mảnh trăng cuối rừng của Nguyễn Minh Châu,
Phân tích bài mảnh trăng cuối rừng của Nguyễn Minh Châu,
 
Chu trinh Haminton de quy
Chu trinh Haminton de quyChu trinh Haminton de quy
Chu trinh Haminton de quy
 
Lý Thuyết Đồ Thị_Lê Minh Hoàng
Lý Thuyết Đồ Thị_Lê Minh HoàngLý Thuyết Đồ Thị_Lê Minh Hoàng
Lý Thuyết Đồ Thị_Lê Minh Hoàng
 
Slide báo cáo tốt nghiệp
Slide báo cáo tốt nghiệpSlide báo cáo tốt nghiệp
Slide báo cáo tốt nghiệp
 
Tổng hợp các bài văn mẫu lớp 4
Tổng hợp các bài văn mẫu lớp 4 Tổng hợp các bài văn mẫu lớp 4
Tổng hợp các bài văn mẫu lớp 4
 
Slide bảo vệ đề cương luận văn Cao học
Slide bảo vệ đề cương luận văn Cao họcSlide bảo vệ đề cương luận văn Cao học
Slide bảo vệ đề cương luận văn Cao học
 
Báo cáo thực tập (slide power point)
Báo cáo thực tập (slide power point)Báo cáo thực tập (slide power point)
Báo cáo thực tập (slide power point)
 
CÁCH TRÌNH BÀY BÀI BÁO CÁO BẰNG POWERPOINT
CÁCH TRÌNH BÀY BÀI BÁO CÁO BẰNG POWERPOINTCÁCH TRÌNH BÀY BÀI BÁO CÁO BẰNG POWERPOINT
CÁCH TRÌNH BÀY BÀI BÁO CÁO BẰNG POWERPOINT
 
Beehive001
Beehive001Beehive001
Beehive001
 
Coke Live Fresh Noise 2007
Coke Live Fresh Noise 2007Coke Live Fresh Noise 2007
Coke Live Fresh Noise 2007
 
An overview of The European Library. Olaf Janssen presenting during DRH 2005,...
An overview of The European Library. Olaf Janssen presenting during DRH 2005,...An overview of The European Library. Olaf Janssen presenting during DRH 2005,...
An overview of The European Library. Olaf Janssen presenting during DRH 2005,...
 
Ignite - selfhosting WordPress - tips and tricks
Ignite - selfhosting WordPress - tips and tricksIgnite - selfhosting WordPress - tips and tricks
Ignite - selfhosting WordPress - tips and tricks
 
E Tqf Open Source Lms
E Tqf Open Source LmsE Tqf Open Source Lms
E Tqf Open Source Lms
 
How to Measure Inbound Markerting
How to Measure Inbound MarkertingHow to Measure Inbound Markerting
How to Measure Inbound Markerting
 

Similar to Ltdt chuong 3

DepressionPredictaiushdihiwqhdiwqqqwdqw.ppt
DepressionPredictaiushdihiwqhdiwqqqwdqw.pptDepressionPredictaiushdihiwqhdiwqqqwdqw.ppt
DepressionPredictaiushdihiwqhdiwqqqwdqw.ppt
linhly42
 
Bai 02 dabttl_pt_duong_thang
Bai 02 dabttl_pt_duong_thangBai 02 dabttl_pt_duong_thang
Bai 02 dabttl_pt_duong_thang
Huynh ICT
 
Chuyen de 6. to hop, xac suat, nhi thuc newotn
Chuyen de 6. to hop, xac suat, nhi thuc newotnChuyen de 6. to hop, xac suat, nhi thuc newotn
Chuyen de 6. to hop, xac suat, nhi thuc newotn
thuong hoai
 
Bài toán cực trị trong hình học giải tích
Bài toán cực trị trong hình học giải tíchBài toán cực trị trong hình học giải tích
Bài toán cực trị trong hình học giải tích
Minh Thắng Trần
 
Chương 3.7. Bài toán luồng cực đại trong mạng v2.pdf
Chương 3.7. Bài toán luồng cực đại trong mạng v2.pdfChương 3.7. Bài toán luồng cực đại trong mạng v2.pdf
Chương 3.7. Bài toán luồng cực đại trong mạng v2.pdf
duybui207
 
Tcca2.TranThiTuyetLan
Tcca2.TranThiTuyetLanTcca2.TranThiTuyetLan
Tcca2.TranThiTuyetLan
Long Tran Huy
 
Khao sat ham so
Khao sat ham soKhao sat ham so
Khao sat ham so
Huynh ICT
 

Similar to Ltdt chuong 3 (20)

DepressionPredictaiushdihiwqhdiwqqqwdqw.ppt
DepressionPredictaiushdihiwqhdiwqqqwdqw.pptDepressionPredictaiushdihiwqhdiwqqqwdqw.ppt
DepressionPredictaiushdihiwqhdiwqqqwdqw.ppt
 
Bai 02 dabttl_pt_duong_thang
Bai 02 dabttl_pt_duong_thangBai 02 dabttl_pt_duong_thang
Bai 02 dabttl_pt_duong_thang
 
Phân tích một số thuật toán
Phân tích một số thuật toánPhân tích một số thuật toán
Phân tích một số thuật toán
 
Pt to-hop-nhi-thuc-newton
Pt to-hop-nhi-thuc-newtonPt to-hop-nhi-thuc-newton
Pt to-hop-nhi-thuc-newton
 
1 2
1 21 2
1 2
 
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
 
Chuyen de 6. to hop, xac suat, nhi thuc newotn
Chuyen de 6. to hop, xac suat, nhi thuc newotnChuyen de 6. to hop, xac suat, nhi thuc newotn
Chuyen de 6. to hop, xac suat, nhi thuc newotn
 
chuyen-de-day-so-cap-so-cong-va-cap-so-nhan-toan-11-canh-dieu.pdf
chuyen-de-day-so-cap-so-cong-va-cap-so-nhan-toan-11-canh-dieu.pdfchuyen-de-day-so-cap-so-cong-va-cap-so-nhan-toan-11-canh-dieu.pdf
chuyen-de-day-so-cap-so-cong-va-cap-so-nhan-toan-11-canh-dieu.pdf
 
ỨNG DỤNG đạo hàm GIẢI bài TOÁN cực TRỊ TRONG HÌNH học GIẢI TÍCH OXYZ
ỨNG DỤNG đạo hàm GIẢI bài TOÁN cực TRỊ TRONG HÌNH học GIẢI TÍCH OXYZỨNG DỤNG đạo hàm GIẢI bài TOÁN cực TRỊ TRONG HÌNH học GIẢI TÍCH OXYZ
ỨNG DỤNG đạo hàm GIẢI bài TOÁN cực TRỊ TRONG HÌNH học GIẢI TÍCH OXYZ
 
Bài toán cực trị trong hình học giải tích
Bài toán cực trị trong hình học giải tíchBài toán cực trị trong hình học giải tích
Bài toán cực trị trong hình học giải tích
 
Ds10.ham so.nls
Ds10.ham so.nlsDs10.ham so.nls
Ds10.ham so.nls
 
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
 
Chap3 new
Chap3 newChap3 new
Chap3 new
 
bài tập cấu trúc dữ liệu 7
bài tập cấu trúc dữ liệu 7bài tập cấu trúc dữ liệu 7
bài tập cấu trúc dữ liệu 7
 
Caunangcao toan2017
Caunangcao toan2017Caunangcao toan2017
Caunangcao toan2017
 
Chương 3.7. Bài toán luồng cực đại trong mạng v2.pdf
Chương 3.7. Bài toán luồng cực đại trong mạng v2.pdfChương 3.7. Bài toán luồng cực đại trong mạng v2.pdf
Chương 3.7. Bài toán luồng cực đại trong mạng v2.pdf
 
Dap an de thi dai hocmon toan khoi a a1 v nam 2013
Dap an de thi dai hocmon toan khoi a a1 v nam 2013Dap an de thi dai hocmon toan khoi a a1 v nam 2013
Dap an de thi dai hocmon toan khoi a a1 v nam 2013
 
Tcca2.TranThiTuyetLan
Tcca2.TranThiTuyetLanTcca2.TranThiTuyetLan
Tcca2.TranThiTuyetLan
 
Về Phương Trình Diophantine Dạng Ax2 - By2 = C.docx
Về Phương Trình Diophantine Dạng Ax2 - By2 = C.docxVề Phương Trình Diophantine Dạng Ax2 - By2 = C.docx
Về Phương Trình Diophantine Dạng Ax2 - By2 = C.docx
 
Khao sat ham so
Khao sat ham soKhao sat ham so
Khao sat ham so
 

Ltdt chuong 3

  • 1. CÁC BÀI TOÁN ĐƯỜNG ĐI ntsonptnk@gmail.com
  • 2. NỘI DUNG Đường đi ngắn nhất Bài toán Nguyên lý Bellman Thuật toán Dijkstra Thuật toán Floyd Thuật toán Ford-Bellman Đồ thị Euler Đồ thị Hamilton Lý thuyết đồ thị , chương 3 - Nguyễn Thanh Sơn 2
  • 3. ĐƯỜNG ĐI NGẮN NHẤT Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 3 0 A 4 8 2 3 2 8 7 1 C B D 3 9 5 8 2 5 E F
  • 4. Cho đồ thị có hướng có trọng G=(X, E) và hai đỉnh s, tX, gọi P là một đường đi từ đỉnh s đến đỉnh t, trọng lượng (hay giá) của đường đi P được định nghĩa là: L(P) = (eP)L(e) Bài toán: tìm đường đi từ s đến t có trọng lượng nhỏ nhất BÀI TOÁN 4 Lý thuyết đồ thị - Nguyễn Thanh Sơn
  • 5. Bài toán được phát biểu cho đồ thị có hướng có trọng, nhưng các thuật toán sẽ trình bày đều có thể áp dụng cho các đồ thị vô hướng có trọng bằng cách xem mỗi cạnh của đồ thị vô hướng như hai cạnh có cùng trọng lượng nối cùng một cặp đỉnh nhưng có chiều ngược nhau. Khi tìm đường đi ngắn nhất có thể bỏ bớt đi các cạnh song song và chỉ chừa lại một cạnh có trọng lượng nhỏ nhất. Đối với các khuyên có trọng lượng không âm thì cũng có thể bỏ đi mà không làm ảnh hưởng đến kết quả của bài toán. Đối với các khuyên có trọng lượng âm thì có thể đưa đến bài toán đường đi ngắn nhất không có lời giải. NHẬN XÉT 5 Lý thuyết đồ thị - Nguyễn Thanh Sơn
  • 6. ĐIỀU KIỆN TỒN TẠI LỜI GiẢI P là một đường đi từ s đến t, giả sử P có chứa một mạch . Nếu L()0 thì có thể cải tiến đường đi P bằng cách bỏ đi mạch . Nếu L()<0 thì không tồn tại đường đi ngắn nhất từ đỉnh s đến đỉnh t vì nếu quay vòng tại  càng nhiều vòng thì trọng lượng đường đi P càng nhỏ đi, tức là L(P) -. 6 Lý thuyết đồ thị - Nguyễn Thanh Sơn k t s 
  • 7. Ma trận trọng lượng LNxN được định nghĩa: Lij = trọng lượng cạnh nhỏ nhất nối i đến j nếu có, Lij =  nếu không có cạnh nối i đến j. Khi cài đặt thuật toán có thể dùng 0 thay cho  bằng cách đưa thêm một số kiểm tra thích hợp. DỮ LIỆU NHẬP 7 Lý thuyết đồ thị - Nguyễn Thanh Sơn B 12 A 16 7 5 15 14 D C
  • 8. NGUYÊN LÝ BELLMAN Lý thuyết đồ thị - Nguyễn Thanh Sơn 8 k P1 P2 t s P1’
  • 9. Gọi P là đường đi ngắn nhất từ đỉnh s đến đỉnh t; k  P. Giả sử P=P1P2 với P1 là đường đi con của P từ s đến k và P2 là đường đi con của P từ k đến t. Khi đó P1 cũng là đường đi ngắn nhất từ s đến k. NGUYÊN LÝ BELLMAN 9 Lý thuyết đồ thị - Nguyễn Thanh Sơn k P1 P2 t s P1’ L(P1’) < L(P1)  L(P1’P2) < L(P1P2)=L(P)
  • 10. THUẬT TOÁN DiJKSTRA Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 10 0 A 4 8 2 3 2 8 7 1 C B D 3 9 5 8 2 5 E F TÌM ĐƯỜNG ĐI NGẮN NHẤT TRÊN ĐỒ THỊ CÓ TRỌNG SỐ DƯƠNG
  • 11. Input: N, L, s, t – sốđỉnh, ma trậntrọnglượng, đỉnhxuấtphát, đỉnhkếtthúc Output: D, Labels – D[k]: trọnglượngĐĐNN sk, Labels[k]: đỉnhngaytrước k trong ĐĐNN sk V=X; D[s]=0;D[k]=,kXs}; Labels[k]=-1, kX. Trongkhi tV: Chọn đỉnh vVvới D[v] nhỏ nhất; V := Vv}; Với mọi đỉnh kV và có cạnh nối từ v đến k, Nếu D[k]>D[v]+Lvk thì D[k]=D[v]+Lvk và Labels[k]=v THUẬT TOÁN DIJKSTRA 11 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn
  • 12. VÍ DỤ Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 12 d(u) = 50 d(z) = 75 10 u z s d(u) = 50 d(z) = 60 10 u z s Cập nhật độ dài ĐĐ từ s đến đỉnh z: 75  60
  • 13. VÍ DỤ Đồ thị G gồm 7 đỉnh, 12 cạnh như hình bên. Tìm đường đi ngắn nhất từ đỉnh 1 đến đỉnh 5 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 13 2 9 8 4 3 1 1 3 4 6 8 5 2 4 5 7 12 17 6
  • 14. VÍ DỤ V: đỉnh chưa bị tô màu; D[k]: số có màu đỏ; Labels[k]: số có màu xanh lá Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 14 2 9 8 4 0     3 1 1 -1 -1 -1 -1 -1 3 4 6 5 8 2 4 5 7 12 17 6   -1 -1
  • 15. VÍ DỤ Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 15 V: đỉnh chưa bị tô màu; D[k]: số có màu đỏ; Labels[k]: số có màu xanh lá 2 9 8 4 0 9   6 3 1 1 -1 1 -1 -1 1 3 4 6 5 8 2 4 5 7 12 17 6  3 -1 1
  • 16. VÍ DỤ Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 16 V: đỉnh chưa bị tô màu; D[k]: số có màu đỏ; Labels[k]: số có màu xanh lá 2 9 8 4 0 7 4 11 6 3 1 1 -1 4 4 4 1 3 4 6 5 8 2 4 5 7 12 17 6  3 -1 1
  • 17. VÍ DỤ Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 17 V: đỉnh chưa bị tô màu; D[k]: số có màu đỏ; Labels[k]: số có màu xanh lá 2 9 8 4 0 7 4 9 6 3 1 1 -1 4 4 3 1 3 4 6 5 8 2 4 5 7 12 17 6  3 -1 1
  • 18. VÍ DỤ Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 18 V: đỉnh chưa bị tô màu; D[k]: số có màu đỏ; Labels[k]: số có màu xanh lá 2 9 8 4 0 7 4 9 6 3 1 1 -1 4 4 3 1 3 4 6 5 8 2 4 5 7 12 17 6  3 -1 1
  • 19. VÍ DỤ ĐĐNN từ 1 đến 5 có trọng lượng D[5]=9: 5  3  4  1 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 19 2 9 8 4 0 7 4 9 6 3 1 1 -1 4 4 3 1 3 4 6 5 8 2 4 5 7 12 17 6 26 3 5 1
  • 20. GIÁ TRỊ CÁC BIẾN D, Labels 20 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn D Labels
  • 21. VÍ DỤ Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 21 0 A 4 8 2 3 2 8 7 1 C B D 3 9 5 8 2 5 E F 0 A 4 8 2 4 2 8 7 1 C B D 3 9   2 5 E F 0 0 A A 4 4 8 8 2 2 3 2 8 3 2 7 7 1 7 1 C B D C B D 3 9 3 9 5 11 5 8 2 5 2 5 E F E F
  • 22. VÍ DỤ Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 22 0 A 4 8 2 3 2 7 7 1 C B D 3 9 5 8 2 5 E F 0 A 4 8 2 3 2 7 7 1 C B D 3 9 5 8 2 5 E F
  • 23. Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 23 THUẬT TOÁN DIJKSTRA – CÀI ĐẶT Graph Graph::Dijkstra(int s, int t) { //Tìm đường đi ngắn nhất từ s đến t }
  • 24. Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 24 THUẬT TOÁN DIJKSTRA – CÀI ĐẶT Graph Graph::PrintPath(int s, int t) { int temp[MAX]; int dem = 0; //In đường đi ngắn nhất từ s đến t dựa vào Labels while(Labels[t] != -1) { temp[dem++]=t; t=Labels[t]; } temp[dem++]=s; while (dem > 0) printf(“%d “, temp[--dem]); }
  • 25. THUẬT TOÁN FLOYD TÌM ĐƯỜNG ĐI NGẮN NHẤT GIỮA CÁC CẶP ĐỈNH TRÊN ĐỒ THỊ Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 25
  • 26. Input: N, L – sốđỉnh, ma trậntrọnglượngcủa G(X, E) Output: L, Nexts – L[u, v]: trọnglượngĐĐNN uv, Nexts[u, v]: đỉnhngaysau u trong ĐĐNN uv Nếu L[u, v]: Nexts[u, v]=v Ngượclại: Nexts[u, v]=-1 , (u, v)X2. Vớimọi t  X Vớimọi u  X có L[u, t] Vớimọi v  X có L[t, v] Nếu L[u, v] > L[u, t] + L[t, v] thì L[u, v] = L[u, t] + L[t, v] Nexts[u, v] = Nexts[u, t] THUẬT TOÁN FLOYD 26 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn
  • 27. Xác định đường đi ngắn nhất giữa các cặp đỉnh trên đồ thị gồm 4 đỉnh 6 cạnh VÍ DỤ 27 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 2 8 4 9 4 1 3 3 1 5
  • 28. VÍ DỤ 28 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 2 9  4  8  3  1   -1 5 1 2 -1 2 -1 3 -1 4 -1 3 -1 4 1 3
  • 29. VÍ DỤ 29 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn t = 1 u = 3 v = 2 2 9  4  8  14 3  1   -1 5 1 2 -1 2 -1 3 -1 4 -1 3 -1 1 4 1 3
  • 30. VÍ DỤ 30 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn t = 1 u = 3 v = 4 2 9  4  8 14 3  1   -1 5 1 8 2 -1 2 -1 3 4 -1 3 -1 1 1 4 1 3
  • 31. VÍ DỤ 31 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn t = 2 u = 1 v = 3 2 9  4  8 14 3  1  -1 5 1 8 17 2 2 -1 2 -1 3 4 -1 3 1 1 4 1 3
  • 32. VÍ DỤ 32 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn t = 2 u = 3 v = x 2 9  4  8 14 3  1 5 1 8 17 2 2 -1 2 -1 3 4 -1 3 1 1 4 1 3
  • 33. VÍ DỤ 33 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn t = 2 u = 4 v = 3 2 9  4  8 14 3  1 5 1 8 17 2 2 -1 2 -1 3 4 -1 3 1 1 4 1 3
  • 34. VÍ DỤ 34 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn t = 3 u = 1 v = 2 2 9  4  8 14 3  1 5 1 8 17 2 2 -1 2 -1 3 4 -1 3 1 1 4 1 3
  • 35. VÍ DỤ 35 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn t = 3 u = 1 v = 4 2 9  4  8 14 3  1 5 1 8 17 2 2 -1 2 -1 3 4 -1 3 1 1 4 1 3
  • 36. VÍ DỤ 36 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn t = 3 u = 2 v = 1, 4 2 9 13 4 16 8 14 3  1 5 1 8 17 2 2 3 2 3 3 4 -1 3 1 1 4 1 3
  • 37. VÍ DỤ 37 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn t = 3 u = 4 v = 1, 2 2 9 13 4 16 8 14 3 6 1 5 1 8 17 2 2 3 2 3 3 4 3 3 1 1 4 1 3
  • 38. VÍ DỤ 38 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn t = 4 u = 1 v = 2, 3 2 7 13 4 16 8 14 3 6 1 5 1 8 4 4 4 3 2 3 3 4 3 3 1 1 4 1 3
  • 39. VÍ DỤ 39 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn t = 4 u = 2 v = 1, 3 2 7 13 4 16 8 14 3 6 1 5 1 8 4 4 4 3 2 3 3 4 3 3 1 1 4 1 3
  • 40. VÍ DỤ 40 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn t = 4 u = 3 v = 1, 2 2 7 13 4 16 8 12 3 6 1 5 1 8 4 4 4 3 2 3 3 4 3 3 1 1 4 1 3
  • 41. THUẬT TOÁN BELLMAN Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 41 ? 0 k t s  TÌM ĐƯỜNG ĐI NGẮN NHẤT TRÊN ĐỒ THỊ CÓ CẠNH ÂM
  • 42. Input: N, L, u – sốđỉnh, ma trậntrọnglượngcủa G(X, E), đỉnhxuấtphát Output: , Labels – (k, v): trọnglượngĐĐNN uvsau k bướclặp, Labels[v]: đỉnhngaytrước v trong ĐĐNN uv (0, u)=0; (0, v)= vXu}; Labels[v] = -1 vX; Lặpvới k = 1, 2, N-1 iX,chọn jXsaocho(k-1, j)+Ljiđạtnhỏnhất; nếuji: (k, i)=(k-1, j)+Lji Labels[i] = j Nếu(k) = (k-1): (k, v) làđườngđingắnnhất u  v Nếuvẫncònthayđổisaubướclặp N-1: từ u đãđiđếnmạchâm THUẬT TOÁN BELLMAN 42 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn
  • 43. VÍ DỤ 43 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn Tìm đường đi ngắn nhất từ đỉnh 3 đến các đỉnh còn lại 1 1 2 -2 8 2 3 5 4 4 1 -1 2 6 5
  • 44. VÍ DỤ 44 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn k = 0 1 1 2 -2 8 2 0      -1 -1 -1 -1 -1 -1 3 5 4 4 1 -1 2 6 5
  • 45. VÍ DỤ 45 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn k = 1 1 1 2 -2 8 2 0      5 4 -1 -1 -1 -1 -1 -1 -1 3 3 3 3 5 4 4 1 -1 2 6 5
  • 46. VÍ DỤ 46 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn k = 2 1 1 2 -2 8 2 0   5 4 -1 1 -1 -1 -1 3 3 3 5 3 5 4 4 1 -1 2 6 5
  • 47. VÍ DỤ 47 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn k = 3 1 1 2 -2 8 2 0   5 -1 1 2 -1 -1 -1 3 3 5 6 3 5 4 4 1 -1 2 6 5
  • 48. VÍ DỤ 48 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn k = 4 1 1 2 DỪNG -2 8 2 0   -1 1 2 -1 -1 -1 3 5 6 3 5 4 4 1 -1 2 6 5
  • 49. GIÁ TRỊ CÁC BIẾN , Labels 49 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn  Labels
  • 50. VÍ DỤ 50 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn Tìm đường đi ngắn nhất từ đỉnh 1 đến các đỉnh còn lại 1 1 2 -2 8 2 3 5 4 4 1 -1 2 6 5
  • 51. VÍ DỤ 51 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn k = 0 1 1 2 -2 8 2  0     -1 -1 -1 -1 -1 -1 3 5 4 4 1 -1 2 6 5
  • 52. VÍ DỤ 52 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn k = 1 1 1 2 -2 8 2 2 0 1    1 -1 1 -1 -1 -1 3 5 4 4 1 -1 2 6 5
  • 53. VÍ DỤ 53 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn k = 2 1 1 2 -2 8 2 2 -1 1 7 6 1 1 2 1 3 3 3 3 5 4 4 1 -1 2 6 5
  • 54. VÍ DỤ 54 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn k = 3 1 1 2 -2 8 2 1 -1 0 7 3 1 1 2 1 3 5 3 3 5 4 4 1 -1 2 6 5
  • 55. VÍ DỤ 55 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn k = 4 1 1 2 -2 8 2 1 -2 0 6 3 0 1 2 1 3 5 3 3 5 4 4 1 -1 2 6 5
  • 56. VÍ DỤ 56 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn k = 5 1 DỪNG – CÓ MẠCH ÂM 1 2 -2 8 2 0 -2 -1 4 2 0 1 2 1 6 5 3 3 5 4 4 1 -1 2 6 5
  • 57. ĐỒ THỊ EULER Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 57 Konigsberg, Hmmm Leonhard Euler (1707 – 1783)
  • 58. Thành phố Konigsberg (Đức) bị chia thành 4 vùng do 2 nhánh của 1 dòng sông. Có 7 chiếc cầu nối những vùng nầy với nhau. Bài toán: xuất phát từ một vùng đi dạo qua mỗi chiếc cầu đúng một lần và trở về nơi xuất phát. Năm 1736, nhà toán học Euler đã mô hình bài toán nầy bằng một đồ thị vô hướng với mỗi đỉnh ứng với một vùng, mỗi cạnh ứng với một chiếc cầu BÀI TOÁN 7 CHIẾC CẦU 58 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn
  • 59. BÀI TOÁN 7 CHIẾC CẦU 59 A C D B A C D B Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn
  • 60. DÂY CHUYỀN EULER: dây chuyền đi qua tất cả các cạnh trong đồ thị, mỗi cạnh đúng một lần. CHU TRÌNH EULER: dây chuyền Euler có đỉnh đầu trùng với đỉnh cuối. ĐƯỜNG ĐI EULER: đường đi qua tất cả các cạnh của đồ thị, mỗi cạnh đúng một lần. MẠCH EULER: đường đi Euler có đỉnh đầu trùng với đỉnh cuối. ĐỒ THỊ EULER VÔ HƯỚNG: đồ thị vô hướng có chứa một chu trình Euler. ĐỒ THỊ EULER CÓ HƯỚNG: đồ thị có hướng có chứa một mạch Euler. ĐỊNH NGHĨA 60 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn
  • 61. Đồ thị vô hướng G=(X, E) G là đồ thị Euler  G liên thông và d(x) chẵn xX. G có chứa dây chuyền Euler và không chứa chu trình chu trình Euler  G liên thông có chứa đúng hai đỉnh bậc lẻ. Đồ thị có hướng G=(X, E) G là đồ thị Euler  G liên thông và d+(x)=d-(x) x  X. ĐỊNH LÝ EULER 61 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn
  • 62. VÍ DỤ 62 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn a e e a c a d d b d b c b c (G2) (G1) (G3) Liên thông và có 2 đỉnh bậc lẻ  có dây chuyền Euler: bacdaedbc Liên thông và các đỉnh đều có bậc chẵn  có chu trình Euler: bacdaedbcb có đường đi Euler: bacbd
  • 63. Cạnh e của đồ thị G được gọi là CẦU nếu xóa e khỏi đồ thị thì làm tăng số thành phần liên thông của G. Giải thuật Gọi chu trình cần tìm là C Khởi tạo: Chọn một đỉnh bất kỳ cho vào C. Lặp trong khi G vẫn còn cạnh Chọn cạnh e nối đỉnh vừa chọn với một đỉnh kề với nó theo nguyên tắc: chỉ chọn cầu nếu không còn cạnh nào khác để chọn. Bổ sung e và đỉnh cuối của nó vào C. Xóa e khỏi G. GIẢI THUẬT FLEURY 63 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn
  • 64. VÍ DỤ Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 64 1 2 3 4 5 3 1 2 4 3 1 5
  • 65. GiẢI THUẬT XÁC ĐỊNH CÁC CHU TRÌNH THÀNH PHẦN Input: đồ thị Euler G(X, E) Output: chu trình Euler C của G Chọn đỉnh v  X; C = {v} Lặp trong khi G còn cạnh Chọn đỉnh v  C còn cạnh trong G Tìm chu trình C’ xuất phát từ v. Ghép C’ vào C Loại bỏ các cạnh của C’ khỏi G 65 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn
  • 66. VÍ DỤ Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 66 1 2 3 1 4 5 3 3 2 4 3 1 5
  • 67. ĐỒ THỊ HAMILTON Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 67 Sir William Rowan Hamilton (1805-1865)
  • 68. “Xuất phát từ một đỉnh của khối thập nhị diện đều, hãy đi dọc theo các cạnh của khối đó sao cho đi qua tất cả các đỉnh khác, mỗi đỉnh qua đúng một lần, sau đó trở về đỉnh xuất phát”. Bài toán nầy được nhà toán học Hamilton đưa ra vào năm 1859 BÀI TOÁN KHỞI ĐIỂM 68 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn
  • 69. Đồ thị vô hướng G(X, E) DÂY CHUYỀN HAMILTON: dây chuyền đi qua tất cả các đỉnh của đồ thị mỗi đỉnh đúng một lần. CHU TRÌNH HAMILTON: dây chuyền Hamilton và một cạnh trong đồ thị nối đỉnh đầu của dây chuyền với đỉnh cuối của nó. ĐỒ THỊ HAMILTON: đồ thị có chứa một chu trình Hamilton. ĐỊNH NGHĨA 69 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn
  • 70. Đồ thị đủ luôn là đồ thị Hamilton. Với n lẻ  3 thì Kn có (n-1)/2 chu trình Hamilton đôi một không có cạnh chung. ĐồthịlưỡngphânG với hai tập đỉnh X1, X2 và X1=X2=n. Nếu d(x)n/2 x của G thì G là đồ thị Hamilton. ĐồthịvôhướngđơnG gồm n đỉnh và m cạnh. Nếu m(n2-3n+6)/2 thì G là đồ thị Hamilton. MỘT SỐ KẾT QUẢ 70 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn
  • 71. Đồ thị vô hướng đơn G gồm n đỉnh với n3 Nếu d(x)n/2 x của G thì G là đồ thị Hamilton. Nếu d(x)(n-1)/2 x của G thì G có dây chuyền Hamilton. Nếu d(x)+d(y)n với mọi cặp đỉnh x, y không kề nhau của G thì G là đồ thị Hamilton. 71 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn
  • 72. Nếu G có đỉnh bậc < 2 thì G không có chu trình Hamilton Nếu đỉnh có bậc 2 thì 2 cạnh kề với nó phải nằm trong chu trình Hamilton Các cạnh thừa (ngoài 2 cạnh đã chọn trong chu trình Hamilton) phải được bỏ đi trong quá trình xác định chu trình Nếu quá trình xây dựng tạo nên một chu trình con thì đồ thị không có chu trình Hamilton QUI TẮC XÁC ĐỊNH 72 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn
  • 73. VÍ DỤ 73 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 4 2 3 5 1
  • 74. Chứng minh nguyên lý Bellman Chứng minh tính đúng đắn của các thuật toán Dijkstra, Floyd, Bellman Cài đặt thuật toán xác định chu trình Euler Xác định các “nét” của Đồ thị K nét. BÀI TẬP 74 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn