Bài giảng Lý thuyết đồ thị - Chương 5: Bài toán đường đi ngắn nhất
lượt xem 44
download
Chương 5 giới thiệu về bài toán đường đi ngắn nhất với các nội dung liên quan như: Bài toán đường đi ngắn nhất; tính chất của đường đi ngắn nhất, giảm cận trên; thuật toán Bellman-Ford; thuật toán Dijkstra; đường đi ngắn nhất trong đồ thị không có chu trình; thuật toán Floyd-Warshal. Mời các bạn cùng tham khảo.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Lý thuyết đồ thị - Chương 5: Bài toán đường đi ngắn nhất
- Chương 5 BÀI TOÁN ĐƯỜNG ĐI NGẮN NHẤT Nguyễn Đức Nghĩa Bài toán đường đi ngắn nhất 1
- Nội dung 5.1. Bài toán đường đi ngắn nhất (ĐĐNN) 5.2. Tính chất của ĐĐNN, Giảm cận trên 5.3. Thuật toán Bellman-Ford 5.4. Thuật toán Dijkstra 5.5. Đường đi ngắn nhất trong đồ thị không có chu trình 5.6. Thuật toán Floyd-Warshal Nguyễn Đức Nghĩa Bài toán đường đi ngắn nhất 2
- 5.1. Bài toán đường đi ngắn nhất Cho đơn đồ thị có hướng G = (V,E) với hàm trọng số w: E R (w(e) được gọi là độ dài hay trọng số của cạnh e) Độ dài của đường đi P = v1 v2 … vk là số k 1 w( P) w(vi , vi 1 ) i 1 Đường đi ngắn nhất từ đỉnh u đến đỉnh v là đường đi có độ dài ngắn nhất trong số các đường đi nối u với v. Độ dài của đường đi ngắn nhất từ u đến v còn được gọi là khoảng cách từ u tới v và ký hiệu là (u,v). Nguyễn Đức Nghĩa Bài toán đường đi ngắn nhất 3
- Ví dụ Cho đồ thị có trọng số G = (V, E), và đỉnh nguồn sV, hãy tìm đường đi ngắn nhất từ s đến mỗi đỉnh còn lại. 3 a d 3 4 6 đỉnh nguồn 5 s 1 c 1 2 f 2 5 3 b e 2 s a b c d e f weight 0 3 4 6 6 6 9 path s s,a s,a,b s,a,b,c s,a,d s,a,b,e s,a,b,e,f Nguyễn Đức Nghĩa Bài toán đường đi ngắn nhất 4
- Các ứng dụng thực tế Giao thông (Transportation) Truyền tin trên mạng (Network routing) (cần hướng các gói tin đến đích trên mạng theo đường nào?) Truyền thông (Telecommunications) Speech interpretation (best interpretation of a spoken sentence) Điều khiển robot (Robot path planning) Medical imaging Giải các bài toán phức tạp hơn trên mạng ... Nguyễn Đức Nghĩa Bài toán đường đi ngắn nhất 5
- Các dạng bài toán ĐĐNN 1. Bài toán một nguồn một đích: Cho hai đỉnh s và t, cần tìm đường đi ngắn nhất từ s đến t. 2. Bài toán một nguồn nhiều đích: Cho s là đỉnh nguồn, cần tìm đường đi ngắn nhất từ s đến tất cả các đỉnh còn lại. 3. Bài toán mọi cặp: Tìm đường đi ngắn nhất giữa mọi cặp đỉnh của đồ thị. Đường đi ngắn nhất theo số cạnh - BFS. Nguyễn Đức Nghĩa Bài toán đường đi ngắn nhất 6
- Nhận xét Các bài toán được xếp theo thứ tự từ đơn giản đến phức tạp Hễ có thuật toán hiệu quả để giải một trong ba bài toán thì thuật toán đó cũng có thể sử dụng để giải hai bài toán còn lại Nguyễn Đức Nghĩa Bài toán đường đi ngắn nhất 7
- Giả thiết cơ bản Nếu đồ thị có chu trình âm thì độ dài đường đi giữa hai đỉnh nào đó có thể làm nhỏ tuỳ ý: -18 b c Xét đường đi từ a đến e: a 3 5 P: a (d b c d) e 2 5 w(P) = 7-10 -∞, khi + ∞ d e Giả thiết: Đồ thị không chứa chu trình độ dài âm (gọi tắt là chu trình âm) Nguyễn Đức Nghĩa Bài toán đường đi ngắn nhất 8
- Trọng số âm Độ dài của đường đi ngắn nhất có thể là hoặc – . a b -4 3 -1 h i 3 4 2 đỉnh s c 6 d g nguồn 5 8 0 5 11 - -8 3 -3 2 e 3 f - - 7 j không đạt tới được từ s -6 chu trình âm Nguyễn Đức Nghĩa Bài toán đường đi ngắn nhất 9
- 5.1. Bài toán đường đi ngắn nhất (ĐĐNN) 5.2. Tính chất của ĐĐNN, Giảm cận trên 5.3. Thuật toán Bellman-Ford 5.4. Thuật toán Dijkstra 5.5. Đường đi ngắn nhất trong đồ thị không có chu trình 5.6. Thuật toán Floyd-Warshal Nguyễn Đức Nghĩa Bài toán đường đi ngắn nhất 10
- Các tính chất của ĐĐNN Tính chất 1. Đường đi ngắn nhất luôn có thể tìm trong số các đường đi đơn. • CM: Bởi vì việc loại bỏ chu trình độ dài không âm khỏi đường đi không làm tăng độ dài của nó. u v C w(C) 0 Tính chất 2. Mọi đường đi ngắn nhất trong đồ thị G đều đi qua không quá n-1 cạnh, trong đó n là số đỉnh. • Như là hệ quả của tính chất 1 Nguyễn Đức Nghĩa Bài toán đường đi ngắn nhất 11
- Các tính chất của ĐĐNN Tính chất 3: Giả sử P = ‹v1, v2, …, vk› là đđnn từ v1 đến vk. Khi đó, Pij = ‹vi, vi+1, …, vj› là đđnn từ vi đến vj, với 1 i j k. (Bằng lời: Mọi đoạn đường con của đường đi ngắn nhất đều là đường đi ngắn nhất) CM. Phản chứng. Nếu Pij không là đđnn từ vi đến vj, thì tìm được P’ij là đường đi từ vi đến vj thoả mãn w(P’ij) < w(Pij). Khi đó gọi P’ là đường đi thu được từ P bởi việc thay đoạn Pij bởi P’ij, ta có w(P’) < w(P) ?! vi vj Pij vk v1 P’ij Nguyễn Đức Nghĩa Bài toán đường đi ngắn nhất 12
- Các tính chất của ĐĐNN Ký hiệu: δ(u, v) = độ dài đđnn từ u đến v (gọi là khoảng cách từ u đến v) Hệ quả: Giả sử P là đđnn từ s tới v, trong đó P = s p' u v. Khi đó δ(s, v) = δ(s, u) + w(u, v). Tính chất 4: Giả sử s V. Đối với mỗi cạnh (u,v) E, ta có δ(s, v) δ(s, u) + w(u,v). Nguyễn Đức Nghĩa Bài toán đường đi ngắn nhất 13
- Đường đi ngắn nhất xuất phát từ một đỉnh Single-Source Shortest Paths Nguyễn Đức Nghĩa Bài toán đường đi ngắn nhất 14
- Biểu diễn đường đi ngắn nhất Các thuật toán tìm đường đi ngắn nhất làm việc với hai mảng: d(v) = độ dài đường đi từ s đến v ngắn nhất hiện biết (cận trên cho độ dài đường đi ngắn nhất thực sự). p(v) = đỉnh đi trước v trong đường đi nói trên (sẽ sử dụng để truy ngược đường đi từ s đến v) . Khởi tạo (Initialization) for v V(G) do d[v] p[v] NIL d[s] 0 Nguyễn Đức Nghĩa Bài toán đường đi ngắn nhất 15
- Giảm cận trên (Relaxation) Sử dụng cạnh (u, v) để kiểm tra xem đường đi đến v đã tìm được có thể làm ngắn hơn nhờ đi qua u hay không. u Relax(u, v) s v if d[v] > d[u] + w(u, v) z p(v) then d[v] d[u] + w(u, v) p[v] u d[v] > d[u] + w(u, v) Các thuật toán tìm đđnn khác nhau ở số lần dùng các cạnh và trình tự duyệt u p(v) chúng để thực hiện giảm cận . s v z Nguyễn Đức Nghĩa Bài toán đường đi ngắn nhất 16
- Nhận xét chung Việc cài đặt các thuật toán được thể hiện nhờ thủ tục gán nhãn: Mỗi đỉnh v sẽ có nhãn gồm 2 thành phần (d[v], p[v]). Nhãn sẽ biến đổi trong quá trình thực hiện thuật toán Nhận thấy rằng để tính khoảng cách từ s đến t, ở đây, ta phải tính khoảng cách từ s đến tất cả các đỉnh còn lại của đồ thị. Hiện nay vẫn chưa biết thuật toán nào cho phép tìm đđnn nhất giữa hai đỉnh làm việc thực sự hiệu quả hơn những Nguyễn Đức Nghĩa thuật toán tìm đđnn từ một đỉnh đến tấtđường Bài toán cảđicác ngắn nhất 17
- Nội dung 5.1. Bài toán đường đi ngắn nhất (ĐĐNN) 5.2. Tính chất của ĐĐNN, Giảm cận trên 5.3. Thuật toán Bellman-Ford 5.4. Thuật toán Dijkstra 5.5. Đường đi ngắn nhất trong đồ thị không có chu trình 5.6. Thuật toán Floyd-Warshal Nguyễn Đức Nghĩa Bài toán đường đi ngắn nhất 18
- Thuật toán Ford-Bellman Richard Bellman 1920-1984 Lester R. Ford, Jr. 1927~ Nguyễn Đức Nghĩa Bài toán đường đi ngắn nhất 19
- Thuật toán Ford-Bellman Thuật toán Ford - Bellman tìm đường đi ngắn nhất từ đỉnh s đến tất cả các đỉnh còn lại của đồ thị. Thuật toán làm việc trong trường hợp trọng số của các cung là tuỳ ý. Giả thiết rằng trong đồ thị không có chu trình âm. Đầu vào: Đồ thị G=(V,E) với n đỉnh xác định bởi ma trận trọng số w[u,v], u,v V, đỉnh nguồn s V; Đầu ra: Với mỗi v V d[v] = (s, v); p[v] - đỉnh đi trước v trong đđnn từ s đến v. Nguyễn Đức Nghĩa Bài toán đường đi ngắn nhất 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Lý thuyết đồ thị: Chương 4 - Đồ thị phẳng – Bài toán tô màu đồ thị
21 p | 215 | 28
-
Bài giảng Lý thuyết đồ thị: Chương 1 - ThS. Nguyễn Khắc Quốc
56 p | 142 | 18
-
Bài giảng Lý thuyết đồ thị: Chương 3 - Đồ thị Euler và đồ thị Hamilton
19 p | 148 | 16
-
Bài giảng Lý thuyết đồ thị: Chương 2 - Biểu diễn đồ thị trên máy tính
32 p | 119 | 16
-
Bài giảng Lý thuyết đồ thị: Chương 4 - ThS. Nguyễn Khắc Quốc
36 p | 123 | 14
-
Bài giảng Lý thuyết đồ thị: Chương 3 - ThS. Nguyễn Khắc Quốc
67 p | 115 | 13
-
Bài giảng Lý thuyết đồ thị: Chương 5 - Cây và cây khung của đồ thị
37 p | 177 | 12
-
Bài giảng Lý thuyết đồ thị: Chương 2 - ThS. Nguyễn Khắc Quốc
37 p | 115 | 12
-
Bài giảng Lý thuyết đồ thị: Chương 5 - ThS. Nguyễn Khắc Quốc
55 p | 109 | 8
-
Bài giảng Lý thuyết đồ thị: Chương 0 - Giới thiệu môn học
12 p | 104 | 7
-
Bài giảng Lý thuyết đồ thị: Chương 1 - Nguyễn Trần Phi Phượng
26 p | 188 | 7
-
Bài giảng Lý thuyết đồ thị: Bài toán ghép cặp
43 p | 141 | 6
-
Bài giảng Lý thuyết đồ thị - ĐH Hàng Hải
35 p | 96 | 6
-
Bài giảng Lý thuyết đồ thị - Bài 1: Đại cương về đồ thị
39 p | 39 | 5
-
Bài giảng Lý thuyết đồ thị - Bài 3: Đường đi, chu trình Hamilton
34 p | 75 | 5
-
Bài giảng Lý thuyết đồ thị: Chương 0 - Nguyễn Trần Phi Phượng
6 p | 93 | 4
-
Bài giảng Lý thuyết đồ thị: Chương 4 - Nguyễn Trần Phi Phượng
13 p | 120 | 4
-
Bài giảng Lý thuyết đồ thị: Chương 0 - Tôn Quang Toại
6 p | 7 | 4
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn