1. Trang chủ
  2. » Giáo Dục - Đào Tạo

THUẬT TOÁN BELLMAN-FORD CẢI BIÊN TÌM ĐƯỜNG ĐI NGẮN NHẤT TRÊN MẠNG MỞ RỘNG

4 9 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 4
Dung lượng 245,35 KB

Nội dung

84 Trần Quốc Chiến THUẬT TOÁN BELLMAN FORD CẢI BIÊN TÌM ĐƯỜNG ĐI NGẮN NHẤT TRÊN MẠNG MỞ RỘNG REVISED BELLMAN FORD ALGORITHM FINDING SHORTEST PATH ON EXTENDED NETWORKS Trần Quốc Chiến Trường Đại học Sư[.] THUẬT TOÁN BELLMAN-FORD CẢI BIÊN TÌM ĐƯỜNG ĐI NGẮN NHẤT TRÊN MẠNG MỞ RỘNG

84 Trần Quốc Chiến THUẬT TỐN BELLMAN-FORD CẢI BIÊN TÌM ĐƯỜNG ĐI NGẮN NHẤT TRÊN MẠNG MỞ RỘNG REVISED BELLMAN-FORD ALGORITHM FINDING SHORTEST PATH ON EXTENDED NETWORKS Trần Quốc Chiến Trường Đại học Sư phạm, Đại học Đà Nẵng; tqchien@dce.udn.vn Tóm tắt - Đồ thị cơng cụ tốn học hữu ích ứng dụng nhiều lĩnh vực giao thông, truyền thông, công nghệ thông tin, kinh tế, … Cho đến nay, đồ thị xét đến trọng số cạnh, đỉnh cách độc lập, độ dài đường đơn tổng trọng số cạnh đỉnh đường Tuy nhiên, nhiều tốn thực tế, trọng số đỉnh không giống với đường qua đỉnh đó, mà cịn phụ thuộc vào cạnh đến cạnh khỏi đỉnh Trong báo, mơ hình đồ thị mở rộng định nghĩa Bài tốn tìm đường ngắn toán quan trọng lý thuyết đồ thị có nhiều ý nghĩa khoa học ứng dụng Thuật tốn Bellman-Ford thuật tốn tìm đường ngắn từ đỉnh đến đỉnh khác, trọng số cạnh âm Trên sở thuật tốn Bellman-Ford tìm đường ngắn đồ thị truyền thống, tác giả xây dựng chứng minh thuật tốn Bellman-Ford cải biên tìm đường ngắn từ đỉnh đến đỉnh khác mạng đồ thị mở rộng Abstract - Graph is a powerful mathematical tool applied in many fields such as transportation, communication, informatics, economy, … So far, in ordinary graph the weights of edges and vertexes are considered independently and the length of a path is simply the sum of weights of the edges and the vertexes on this path However, in many practical problems, weights at a vertex are not the same for all paths passing this vertex, but depend on coming and leaving edges Therefore, a more general type of graphs, called extended graph, is defined in this work The shortest path problem is one of the most important problems having great scientific and practical meaning On the basis of the Bellman-Ford algorithm which finds shortest paths from a vertex to other verteces, this paper develops a revised Bellman-Ford algorithm finding the shortest path from a vertex to other verteces on extended networks Từ khóa - đồ thị; đồ thị mở rộng; đường ngắn nhất; thuật toán Dijkstra; thuật toán Bellman-Ford Key words - graph; extended graph; shortest path; Dijkstra algorithm; Bellman-Ford algorithm Đặt vấn đề Đồ thị cơng cụ tốn học hữu ích ứng dụng nhiều lĩnh vực giao thông, truyền thông, công nghệ thông tin, kinh tế, … Cho đến đồ thị xét đến trọng số cạnh, đỉnh cách độc lập, độ dài đường đơn tổng trọng số cạnh đỉnh đường Tuy nhiên, nhiều toán thực tế, trọng số đỉnh khơng giống với đường qua đỉnh đó, mà phụ thuộc vào cạnh đến cạnh khỏi đỉnh Ví dụ, thời gian qua ngã tư mạng giao thông phụ thuộc vào hướng di chuyển phương tiện giao thông: rẽ phải, thẳng hay rẽ trái Vì vậy, cần xây dựng mơ hình đồ thị tổng qt để áp dụng mơ hình hóa tốn thực tế xác hiệu Thuật tốn tìm đường ngắn thuật toán sở quan trọng, sử dụng nhiều toán tối ưu đồ thị mạng Thuật tốn Dijkstra tiếng tìm đường ngắn hai đỉnh cải biên thành thuật tốn tìm đường ngắn đồ thị mở rộng [1], [2] Tuy nhiên, thuật toán có hạn chế trọng số cạnh phải dương Thuật tốn BellmanFord thuật tốn tìm đường ngắn từ đỉnh đến đỉnh khác, trọng số cạnh âm, nghiên cứu phát triển cơng trình [3]-[9] Trên sở thuật tốn Bellman-Ford tìm đường ngắn đồ thị truyền thống, tác giả xây dựng chứng minh thuật tốn Bellman-Ford cải biên tìm đường ngắn từ đỉnh đến đỉnh khác đồ thị mở rộng Thuật toán Bellman-Ford thuật toán sở cho nhiều ứng dụng mạng hỗn hợp mở rộng Đặc biệt, với tốn tìm luồng cực đại chi phí cực tiểu có nhiều ứng dụng thực tế, mạng thặng dư xuất trọng số âm Khi đó, ta phải tìm chu trình âm để hiệu chỉnh luồng giảm chi phí Đồ thị hỗn hợp mở rộng Cho đồ thị hỗn hợp G=(V, E) với tập đỉnh V tập cạnh E, cạnh có hướng vơ hướng Mỗi cạnh eE gán trọng số wE(e) Ký hiệu Ei0 tập hợp cạnh vô hướng G E1 tập hợp cạnh có hướng G, m0 = |E0|, m1 = |E1| Với đỉnh vV, ký hiệu Nv tập cạnh vô hướng liên thuộc đỉnh v, Iv tập cạnh có hướng vào đỉnh v Ov tập cạnh có hướng từ đỉnh v Mỗi đỉnh vV cặp cạnh (e,e’)(NvIv)(NvOv), ee’ gán trọng số wV(v,e,e’) Bộ (V, E, wE, wV) gọi đồ thị mở rộng Cho p đường từ đỉnh u đến đỉnh v qua cạnh ei, i = 1, …, h+1, đỉnh ui, i = 1, …, h, sau: p = [u, e1, u1, e2, u2, …, eh, uh, eh+1, v] Định nghĩa độ dài đường p, ký hiệu l(p), theo công thức sau: h 1 h i 1 i 1 l  p    wE (ei )   wV (ui , ei , ei 1 ) (1)  Bài tốn tìm đường ngắn Cho đồ thị mở rộng G = (V, E, wE, wV) đỉnh sV Tìm đường ngắn từ s đến tất đỉnh khác Thuật toán Bellman-Ford cải biên  Đầu vào Đồ thị mở rộng G = (V, E, wE, wV) đỉnh sV ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ ĐẠI HỌC ĐÀ NẴNG, SỐ 11(96).2015, QUYỂN  Đầu l(v) chiều dài đường ngắn từ s đến v, đường ngắn (nếu l(v) L(u,e) + wV(u,e,uv) + wE(u,v), kết luận đồ thị có chu trình âm khả nối với s Ngược lại, l(v)=min{L(v,e)| e NvIv} độ dài đường (có hướng) ngắn từ s đến v, danh sách P(v,e), cặp đỉnh-cạnh kề trước (v,e) đường ngắn từ s đến v, vV Chứng minh Ta xây dựng đồ thị G’=(V’,E’,w’) sau: - Tập đỉnh V’ = VE   v, e  | e  N  v + vV   v, e  | e  I  = 1+2m +m v Áp dụng thuật toán vV Bellman-Ford cho đồ thị G’ tìm đường ngắn từ đỉnh (s,) đến đỉnh khác, ta nhận kết L(v,e) độ dài đường ngắn từ (s,) đến (v,e), (v,e)V’ tồn chu trình âm khả nối với (s,) Từ suy tính đắn thuật toán Bellman-Ford cải biên  Độ phức tạp thuật toán Độ phức tạp thuật toán Bellman-Ford áp dụng cho đồ thị truyền thống O(n.m), n số đỉnh m số cạnh đồ thị [8], [9] Bảng 2a Hình 1a - Tập cạnh E’ = {[(v1,e1), (v2,e2)] | wV(e1,v1,e2)+wE(v1,v2) < +} - Trọng số w’([(v1,e1), (v2,e2)]) = wV(e1,v1,e2)+wE(v1,v2), [(v1,e1), (v2,e2)]E’ Ta có |V’| = 1+|VE0|+|VE1| = 1+ Bảng 1a Cạnh wE (1,2) (2,3) (3,4) -1 (4,2) (2,5) Đỉnh 2 2 2 Cạnh (1,2) (1,2) (4,2) (4,2) (4,2) (5,2) (5,2) (2,3) (3,4) Cạnh wV (2,3) (2,5) (2,1) (2,3) -5 (2,5) (2,1) (2,3) (3,4) (4,2) Đồ thị có đỉnh, cạnh có hướng cạnh vơ hướng, m0=3, m1=2 Trọng số cạnh wE cho Bảng 1a trọng số đỉnh wV cho Bảng 2a Áp dụng thuật toán Bellman-Ford cải biên trên, tìm đường ngắn từ đỉnh đến đỉnh cịn lại Ta có 2m0+m1 = 8, kết bước lặp thứ trùng với kết bước lặp thứ 2, nên thuật toán kết thúc qua bước lặp kết cho Bảng 3a: Bảng 3a VE 1, 1,(2,1) 2,(1,2) L0   P0 L1     P1   1, L2 P2 L3 P3 l 0   10 2,(4,2) 10 2,(4,2) 1, 1, 86 Trần Quốc Chiến 2,(4,2) 2,(5,2) 3,(2,3) 3,(4,3) 4,(3,4) 5,(2,5)   4,(3,4) 4,(3,4) 4,(3,4)         2,(1,2) 2,(1,2) 2,(1,2)             3,(2,3) 3,(2,3) 3,(2,3)   11 2,(4,2) 11 2,(4,2) 11 2,(4,2) 11 Cột VE cặp đỉnh cạnh, L0 P0 giá trị khởi tạo L P, Li Pi giá trị L P bước lặp thứ i, i =1, 2, Các cạnh xét theo thứ tự: (1,2), (2,3), (3,4), (4,2), (2,5) bước lặp kết cho Bảng 3b: Cột VE cặp đỉnh cạnh, L0 P0 giá trị khởi tạo L P, Li Pi giá trị L P bước lặp thứ i, i =1, …, Bảng 1b Cạnh wE (1,2) (2,3) (3,4) -3 Vì khơng tồn (u,v) NvIv eNuIu thỏa L(v,uv) > L(u,e) + wV(u,e,uv) + wE(u,v), nên ta suy khoảng cách ngắn từ đỉnh đến đỉnh sau: l(2) = 1, le(2) = (1,2), l(3) = 5, le(3) = (2,3), l(4) = 5, le(4) = (3,4), l(5) = 11, le(5) = (2,5) (4,2) (2,5) Hình 1b Bảng 2b Đỉnh Cạnh Cạnh 2 (1,2) (2,3) (1,2) (2,5) (4,2) (2,1) (4,2) (2,3) (4,2) (2,5) (5,2) (2,1) (5,2) (2,3) (2,3) (3,4) (3,4) (4,2) Đường ngắn từ đỉnh đến đỉnh xác định sau: (2,(4,2)) = P(5,(2,5)), (4,(3,4)) = P(2,(4,2)), (3,(2,3)) = P(4,(3,4), (2,(1,2)) = P(3,(2,3), (1,) = P(2,(1,2)) Suy đường ngắn từ đỉnh đến đỉnh là: 123425, với độ dài 11 4.2 Trường hợp có chu trình âm Cho đồ thị mở rộng Hình 1b Đồ thị có đỉnh, cạnh có hướng cạnh vô hướng, m0=3, m1=2 Trọng số cạnh wE cho Bảng 1b trọng số đỉnh wV cho Bảng 2b Áp dụng thuật toán Bellman-Ford cải biên tìm đường ngắn từ đỉnh đến đỉnh cịn lại Ta có 2m0+m1 = 8, nên thuật toán kết thúc qua wV -5 1 1 Các cạnh xét theo thứ tự: (1,2), (2,3), (3,4), (4,2), (2,5) Xét cạnh (2,3) Ta có: L(3,(2,3)) = -2 > L(2,(4,2)) + wV(2,(4,2),(2,3)) + wE(2,3) = -1 + -5 + = -3 Suy đồ thị có chu trình âm: 2342 với độ dài -1 Bảng 3b VE 1, 1,(2,1) 2,(1,2) 2,(4,2) 2,(5,2) 3,(2,3) 3,(4,3) 4,(3,4) 5,(2,5) L0 P0                  L1 P1    1, 4,(3,4) L2 P2 L3 P3 0   2,(4,2) 2,(4,2) 1, 1, 4,(3,4) 4,(3,4) L4 P4 L5 P5 L6 P6 L7 P7 L8 0 0     2,(4,2) 2,(4,2) 2,(4,2) 2,(4,2) 1, 1, 1 1, 1, 4,(3,4) 4,(3,4) 4,(3,4) 4,(3,4) -1           2,(1,2) 2,(4,2) 2,(4,2) 2,(4,2) 2,(4,2) P8  2,(4,2) 1, 4,(3,4)    2,(4,2) -1   2,(4,2) -2  2,(4,2)            3,(2,3) 3,(2,3) 3,(2,3) 3,(2,3) -1 3,(2,3) -2 2,(4,2) 2,(4,2) 2,(4,2) 2,(4,2) 2,(4,2)   3,(2,3) -3 2,(4,2)   3,(2,3) -4 2,(4,2)  3,(2,3) 2,(4,2) Kết luận Bài viết xây dựng mơ hình đồ thị hỗn hợp mở rộng để áp dụng mơ hình hóa tốn thực tế xác hiệu mơ hình đồ thị truyền thống Sau đó, sở thuật tốn Bellman-Ford tìm đường ngắn đồ thị truyền thống, tác giả xây dựng chứng minh thuật tốn Bellman-Ford cải biên tìm đường ngắn từ đỉnh đến đỉnh khác mạng đồ thị mở rộng Hai ví dụ cụ thể trình bày để minh họa thuật toán Thuật toán Bellman-Ford thuật toán sở cho nhiều ứng dụng mạng hỗn hợp mở rộng Đặc biệt, với tốn tìm luồng cực đại chi phí cực tiểu có nhiều ứng dụng thực tế, mạng thặng dư xuất trọng số âm Khi đó, ta phải tìm chu trình âm để hiệu chỉnh luồng giảm chi phí Vấn đề nghiên cứu cơng trình TÀI LIỆU THAM KHẢO [1] Trần Quốc Chiến, “Thuật tốn tìm đường ngắn đồ thị tổng qt”, Tạp chí Khoa học & Cơng nghệ, Đại học Đà Nẵng, 12(61)/2012, 16-21 [2] Trần Quốc Chiến, Nguyễn Mậu Tuệ, Trần Ngọc Việt, “Thuật tốn tìm đường ngắn đồ thị mở rộng”, Kỷ yếu Hội nghị Khoa học Quốc gia lần thứ VI “Nghiên cứu ứng dụng CNTT”, Huế, 20-21/6/2013, NXB Khoa học tự nhiên Cơng ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ ĐẠI HỌC ĐÀ NẴNG, SỐ 11(96).2015, QUYỂN [3] [4] [5] [6] [7] nghệ, Hà Nội 2013 p.522-527 Bellman, Richard: On a routing problem Quarterly of Applied Mathematics 16 (1958): 87–90 MR 0102435 Ford Jr., Lester R.: Network Flow Theory Paper P-923 Santa Monica, California: RAND Corporation (August 14, 1956) Moore, Edward F.: The shortest path through a maze, Proc Internat Sympos Switching Theory 1957, Part II Cambridge, Mass.: Harvard Univ Press pp 285–292 MR 0114710 Yen, Jin Y.: An algorithm for finding shortest routes from all source nodes to a given destination in general networks Quarterly of Applied Mathematics 27 (1970): 526–530 MR 0253822 Bannister, M J., Eppstein, D.: Randomized speedup of the 87 Bellman–Ford algorithm (PDF) Analytic Algorithmics and Combinatorics (ANALCO12), Kyoto, Japan (2012) pp 41–47 arXiv:1111.5414 [8] Bang-Jensen, Jørgen, Gutin, Gregory: Section 2.3.4: The BellmanFord-Moore algorithm Digraphs: Theory, Algorithms and Applications (First ed 2000) ISBN 978-1-84800-997-4 [9] Cormen, Thomas H.; Leiserson, Charles E., Rivest, Ronald L.: Introduction to Algorithms MIT Press and McGraw-Hill., Second Edition MIT Press and McGraw-Hill, 2001 ISBN 0-262-03293-7 Section 24.1: The Bellman–Ford algorithm, pp 588–592 Problem 241, pp 614–615 Third Edition MIT Press, 2009 ISBN 978-0-26253305-8 Section 24.1: The Bellman–Ford algorithm, pp 651–655 (BBT nhận bài: 10/08/2015, phản biện xong: 22/09/2015) ... Bellman-Ford cải biên tìm đường ngắn từ đỉnh đến đỉnh khác mạng đồ thị mở rộng Hai ví dụ cụ thể trình bày để minh họa thuật toán Thuật toán Bellman-Ford thuật toán sở cho nhiều ứng dụng mạng hỗn hợp mở rộng. .. cho Bảng 2a Áp dụng thuật toán Bellman-Ford cải biên trên, tìm đường ngắn từ đỉnh đến đỉnh cịn lại Ta có 2m0+m1 = 8, kết bước lặp thứ trùng với kết bước lặp thứ 2, nên thuật toán kết thúc qua bước... hướng đồ thị G Vì vậy, độ phức tạp thuật toán Bellman-Ford cải biên áp dụng cho đồ thị mở rộng G = (V, E, wE, wV) là: O((2m0+m1).|E’|)  Phương pháp tìm đường ngắn Cho vV có l(v)

Ngày đăng: 16/11/2022, 20:51

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w