Các thuật toán tìm đường đi ngắn nhất trong đồ thị lý thuyết thuật toán và ứng dụng

76 30 0
Các thuật toán tìm đường đi ngắn nhất trong đồ thị lý thuyết thuật toán và ứng dụng

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THƠNG TIN VÀ TRUYỀN THƠNG ĐỒN HỒNG HẢI LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Thái Nguyên - 2015 Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THƠNG ĐỒN HỒNG HẢI CÁC THUẬT TỐN TÌM ĐƢỜNG ĐI NGẮN NHẤT TRONG ĐỒ THỊ: LÝ THUYẾT, THUẬT TOÁN VÀ ỨNG DỤNG Chuyên ngành: KHOA HỌC MÁY TÍNH Mã số chuyên ngành: 60 48 0101 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH NGƯỜI HƯỚNG DẪN KHOA HỌC GS-TS ĐẶNG QUANG Á Thái Nguyên - 2015 Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ MỤC LỤC LỜI NÓI ĐẦU Chƣơng I: MỘT SỐ KIẾN THỨC CƠ BẢN TRONG LÝ THUYẾT ĐỒ THỊ 1.1 Các khái niệm lý thuyết đồ thị .2 1.1.1 Định nghĩa đồ thị 1.1.2 Các thuật ngữ 1.1.3 Định nghĩa đường đi, chu trình, đồ thị liên thơng 1.2 Đường ngắn 11 1.2.1 Đường ngắn xuất phát từ đỉnh .11 1.2.2 Đường đồ thị chu trình 11 1.2.3 Đường ngắn hai cặp đỉnh 14 1.3 Một số tốn dẫn đến tốn tìm đường ngắn đồ thị 15 1.3.1 Tìm đường ngắn từ điểm A đến điểm B thành phố .15 1.3.2 Tối ưu hệ thống mạng truyền dẫn 18 Chƣơng II: ĐƢỜNG ĐI NGẮN NHẤT TỪ MỘT ĐỈNH 21 2.1.Thuật toán Bellman-Ford 27 2.2 Thuật toán Dijkstra .31 2.3 Thuật tốn tìm kiếm A* .37 Chƣơng III : ĐƢỜNG ĐI NGẮN NHẤT GIỮA TẤT CẢ CÁC CẶP ĐỈNH 40 3.1 Thuật toán Floyd-Warshall .48 3.2 Thuật toán Johnson 55 Chƣơng IV: ỨNG DỤNG THUẬT TOÁN TÌM ĐƢỜNG ĐI NGẮN NHẤT VÀO MƠ HÌNH HỆ THỐNG ROUTING TĨNH 60 4.1 Nguyên lý hoạt động Router hệ thống mạng 60 4.2 Ứng dụng thuật toán (Dijkstra) 69 4.3 Thiết kế chương trình áp dụng thuật toán (Floyd-Warshall) .71 4.4 Kết thử nghiệm 71 TÀI LIỆU THAM KHẢO 73 Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ LỜI NÓI ĐẦU Lý thuyết đồ thị lĩnh vực nghiên cứu có từ lâu đời có nhiều ứng dụng đại.Những tư tưởng lý thuyết đồ thị đươc đề xuất từ năm đầu kỷ 18 nhà toán học lỗi lạc người Thụy Sĩ Leonhard Euler Đồ thị sử dụng để giải toán nhiều lĩnh vực khác Chẳng hạn, đồ thị sử dụng để xác định mạch vòng vấn đề giải tích mạch điện Chúng ta phân biệt hợp chất hoá học hữu khác với công thức phân tử khác cấu trúc phân tử nhờ đồ thị Chúng ta xác định xem hai máy tính mạng trao đổi thông tin với hay không nhờ mơ hình đồ thị mạng máy tính Đồ thị có trọng số cạnh sử dụng để giải tốn : tìm đường ngắn hai thành phố mạng giao thơng Chúng ta cịn sử dụng đồ thị để giải toán lập lịch, thời khoá biểu phân bố tần số cho trạm phát truyền hình Trong đời sống, thường gặp tình sau: để từ điểm A đến điểm B thành phố, có nhiều đường đi, nhiều cách đi; có lúc ta chọn đường ngắn (theo nghĩa cự ly), có lúc lại cần trọn đường nhanh (theo nghĩa thời gian),v.v… Mục đích đề tài tìm hiểu, nghiên cứu thuật tốn tìm đường ngắn đồ thị phục vụ việc nghiên cứu khoa học ứng dụng vào thực tiễn Củng cố rèn luyện kỹ lập trình, nhớ lại thuật toán Chƣơng I : Một số kiến thức lý thuyết đồ thị Chƣơng II : Đường ngắn từ đỉnh Chƣơng III : Đường ngắn tất cặp đỉnh Chƣơng IV : Ứng dụng thuật tốn tìm đường ngắn vào mơ hình hệ thống routing tĩnh Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ Chƣơng I: MỘT SỐ KIẾN THỨC CƠ BẢN TRONG LÝ THUYẾT ĐỒ THỊ 1.1 Các khái niệm lý thuyết đồ thị 1.1.1 Định nghĩa đồ thị Đồ thị cấu trúc rời rạc bao gồm đỉnh cạnh nối đỉnh Chúng ta phân biệt loại đồ thị khác kiểu số lượng cạnh nối hai đỉnh đồ thị Để hình dung lại cần đến loại đồ thị khác nhau, nêu ví dụ sử dụng chúng để mơ tả mạng máy tính Giả sử ta có mạng gồm máy tính kênh điện thoại (gọi tắt tên thoại) nối máy tính Chúng ta biểu diễn vị trí đặt máy tính điểm kênh thoại nối chúng đoạn nối, xem hình 1.1 Hà Tây Đồng Nai Huế Hà Nội An Giang Bình Định TPHCM Qng Ngãi Phú n Khánh Hịa Hình 1.1 Sơ đồ mạng máy tính Nhận thấy mạng hình 1, hai máy tính cho phép nhiều kênh thoại nối chúng, kênh thoại cho phép liên lạc hai chiều khơng có máy tính lại nối với Sơ đồ mạng máy tính cho hình gọi đơn đồ thị vô hướng ta đến định nghĩa sau: Định nghĩa Đơn đồ thị vô hướng G=(V,E) bao gồm V tập đỉnh E tập cặp khơng có thứ tự gồm hai phần tử khác V gọi cạnh Trong trường hợp hai máy tính thường xun phải truyền tải nhiều thông tin người ta phải nối hai máy nhiều kênh thoại Mạng với đa kênh thoại máy tính cho hình 1.2 Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ Đồng Nai Hà Tây An Giang Huế Hà Nội Bình Định TPHCM Khánh Hịa Quảng Ngãi Phú n Hình 1.2 Sơ đồ mạng máy tính với đa kênh thoại Định nghĩa Đa đồ thị vô hướng G=(V,E) bao gồm V tập đỉnh, E họ cặp khơng có thứ tự gồm hai phần tử khác V gọi cạnh Hai cạnh e1 e2 gọi cạnh lặp chúng tương ứng với cặp đỉnh Đồng Nai Hà Tây An Giang Huế Hà Nội Bình Định TPHCM Khánh Hịa Quảng Ngãi Phú n Hình 1.3 Sơ đồ mạng máy tính với kênh thơng báo Rõ ràng đơn đồ thị đa đồ thị, đa đồ thị đơn đồ thị, đa đồ thị có hai hay nhiều cạnh nối cặp đỉnh Trong mạng máy tính có kênh thoại nối máy tính với Mạng cho hình 1.3 Như đa đồ thị khơng thể mơ Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ tả mạng vậy, có khun (cạnh nối đỉnh vói nó) Trong trường hợp cần sử dụng đến khái niệm giả đồ thị vô hướng, định nghĩa sau: Định nghĩa Giả đồ thị vô hướng G=(V,E) bao gồm V tập đỉnh, E họ cặp khơng có thứ tự gồm hai phần tử (không thiết phải khác nhau) V gọi cạnh Cạnh e gọi khuyến có dạng e=(u,u) Các kênh thoại mạng máy tính cho phép truyền tin theo chiều Chẳng hạn hình 1.4 máy chủ Hà Nội nhận tin từ máy địa phương, có số máy gửi tin đi, kênh thoại cho phép truyền tin theo hai chiều thay hai cạnh có hướng ngược chiều Hà Tây Đồng Nai Hà Nội Huế An Giang TPHCM Phú Yên Bình Định Khánh Hịa Hình 1.4 Mạng máy tính với kênh thoại chiều Định nghĩa Đơn đồ thị có hướng G=(V,E) bao gồm V tập đỉnh, E tập cặp có thứ tự gồm hai phần tử khác V gọi cung Nếu mạng có đa kênh thoại chiều, ta phải sử dụng đến khái niệm đa đồ thị có hướng: Định nghĩa Đa đồ thị có hướng G=(V,E) bao gồm V tập đỉnh,và E họ cặp có thứ tự gồm hai phần tử khác V gọi cung Hai cung e1 e2 tương ứng với cặp đỉnh gọi cung lặp Trong phần chủ yếu làm việc với đơn đồ thị vơ hướng đơn đồ thị có hướng Vì vậy, ngắn gọn, ta bỏ qua tính từ đơn nhắc đến chúng Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ 1.1.2 Các thuật ngữ Trong mục trình bày số thuật ngữ lý thuyết đồ thị Trước tiên, ta xét thuật ngữ mô tả đỉnh cạnh đồ thị vô hướng Định nghĩa Hai đỉnh u v đồ thị có hướng G gọi kề (u,v) cạnh đồ thị G Nếu e=(u,v) cạnh đồ thị ta nói cạnh cạnh liên thuộc với hai đỉnh u v, nói cạnh e nối đỉnh u đỉnh v, đồng thời đỉnh u v gọi đỉnh đầu cạnh (u,v) Để biết có cạnh liên thuộc với đỉnh, ta đưa vào định nghĩa sau Định nghĩa Ta gọi bậc đỉnh v đồ thị vơ hướng số cạnh liên thuộc với ta kí hiệu deg(v) b a c f e d g Hình 1.5 Đồ thị vơ hướng Thí dụ Xét đồ thị cho hình 1.5, ta có deg(a)=1, deg(b)=4 , deg(c)=4 , deg(f)=3, deg(d)=1 , deg(e)=3 , deg(g)=0 Đỉnh bậc gọi đỉnh cô lập, đỉnh bậc gọi đỉnh treo Trong ví dụ đỉnh g đỉnh cô lập, a d đỉnh treo Bậc đỉnh có tính chất sau : Định lý Giả sử G=(V,E) đồ thị vơ hướng với m cạnh Khi 2m=  deg(v) vV Chứng minh Rõ ràng cạnh e=(u,v) tính lần deg(u) lần deg(v) Từ suy tổng tất bậc đỉnh hai lần số cạnh Thí dụ Đồ thị với n đỉnh đỉnh có bậc có cạnh ? Giải: Theo định lý 1, ta có 2m=6n Từ suy số cạnh đồ thị 3n Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ Hệ Trong đồ thị vô hướng, số đỉnh bậc lẻ (nghĩa có bậc số lẻ) số chẵn Chứng minh Thực vậy, gọi O U tương ứng tập đỉnh bậc lẻ tập đỉnh bậc chẵn đồ thị,ta có 2m=  deg(v) +  deg(v) +  deg(v) vV vO vU Do deg(v) chẵn với v đỉnh U nên tổng thứ hai vế phải số chẵn Từ suy tổng thứ (chính tổng bậc đỉnh bậc lẻ) phải số chẵn, tất số hạng số lẻ, nên tổng phải gồm số chẵn số hạng Vì vậy, số đỉnh bậc lẻ phải số chẵn Ta xét thuật ngữ tương tự cho đồ thị có hướng Định nghĩa Nếu e=(u,v) cung đồ thị có hướng G ta nói hai đỉnh u v kề nhau, nói cung(u,v) nối đỉnh u với đỉnh v nói cung khỏi đỉnh u vào đỉnh v Đinh u (v) gọi đỉnh đầu (cuối) cung (u,v) Tương tự khái niệm bậc, đồ thị có hướng ta có khái niệm bán bậc (vào) đỉnh Định nghĩa Ta gọi bán bậc (vào) đỉnh v đồ thị có hướng số cung đồ thị khỏi (đi vào nó) kí hiệu deg+(v)(deg-(v)) a e b c d Hình 1.6 Đồ thị có hướng G Thí dụ Xét đồ thị cho hình 1.6 Ta có deg-(a)=1, deg-(b)=2, deg-(c)=2, deg-(d)=2, deg-(e)=2 deg+(a)=3, deg+(b)=1 deg+(c)=1, deg+(d)=2, deg+(e)=2 Do cung (u,v) tính lần bán bậc vào đỉnh v lần bán bậc đỉnh u nên ta có Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ Định lý Giả sử G=(V,E) đồ thị có hướng,  deg  vV (v)   deg  (v) | E | vV Rất nhiều tính chất đồ thị có hướng khơng phụ thuộc vào hướng cung Vì vậy, nhiều trường hợp thuận tiện ta bỏ qua hướng cung đồ thị Đồ thị vô hướng thu cách bỏ qua hướng cung gọi đồ thị vô hướng tương ứng với đồ thị có hướng cho 1.1.3 Định nghĩa đƣờng đi, chu trình, đồ thị liên thơng Định nghĩa Đường độ dài n từ đỉnh u đến đỉnh v, n số ngun dương, đồ thị vơ hướng G=(V,E) dãy xo, x1 , , xn-1 , xn u= xo , v= xn , (xi , xi+1) ∈ E , i=0,1,2, ,n-1 Đường nói cịn biểu diễn dạng cạnh: (xo, x1) , (xo, x2), , (xn-1 , xn) Đỉnh u gọi đỉnh đầu, đỉnh v gọi đỉnh cuối đường Đường có đỉnh đầu trùng với đỉnh cuối (tức u=v) gọi chu trình Đường hay chu trình gọi đơn khơng có cạnh bị lặp lại Thí dụ Trên đồ thị vơ hướng cho hình 1.7: a,d,c,f,e đường đơn độ dài Cịn d,e,c,a khơng đường (e,c) cạnh đồ thị Dãy b,c,f,e,b chu trình độ dài Đường a,b,e,d,a,b có độ dài là đường đơn, cạnh (a,b) có mặt hai lần a d b e c a b f d e Hình 1.7 Đường đồ thị Số hóa Trung tâm Học liệu - ĐHTN c f http://www.lrc-tnu.edu.vn/ 59 đặt h(v) = (s,v) tính thuật tốn Bellman-Ford for cạnh (u,v)  E[G’] dow(u,v) w(u,v) + h(u) – h(v)_ for đỉnh u V[G] chạy DIJKSTRA(G, w ,u) để tính  (u,v) với v  V[G] for đỉnh v  V[G] 10  d u ,v   (u, v)  h(v)  h(u) 11 12 return D Đoạn mã đơn giản thực hành động mà trước Dịng sinh G’ Dịng chạy thuật tốn Bellman-Ford G’ với hàm trọng số w đỉnh nguồn s Nếu G’, G, chứa chu trình trọng số âm, dịng thơng báo điều Các dịng 4-11 giả sử G khơng chứa chu trình trọng số âm Dòng 4-5 đặt h(v) giá trị trọng số đường ngắn (s,v) tính thuật toán Bellman-Ford với đỉnh v  V’ Dịng 6-7 tính hàm trọng số w Với cặp đỉnh u,v  V, vòng lặp for dịng 8-11 tính trọng số đường ngắn  (u,v) cách gọi thuật toán Dijkstra lần cho đỉnh V Dòng 11 lưu lại ma trận 𝑑𝑢,𝑣 trọng số đường ngắn (u,v), tính phương trình (3.10) Cuối cùng, dịng 1-2 trả ma trận D đầy đủ Hình 3.6 minh hoạ việc thực thuật toán Johnson Nếu hàng đợi ưu tiên thuật toán Dijkstra cài đặt dựa heap Fibonaci, thời gian chạy thuật toán Johnson O(V2lgV + VE) Cài đặt đơn giản heap nhị phân cho ta thuật toán chạy thời gian O(VElgV), thuật toán mặt tiệm cận chạy nhanh thuật toán Floyd-Warshall đồ thị thưa Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ 60 Chƣơng IV: ỨNG DỤNG THUẬT TỐN TÌM ĐƢỜNG ĐI NGẮN NHẤT VÀO MƠ HÌNH HỆ THỐNG ROUTING TĨNH 4.1 Nguyên lý hoạt động Router hệ thống mạng Giao thức định tuyến động khơng thực chức tự tìm đường cập nhật bảng định tuyến, cịn xác định tuyến đường tốt thay tuyến đường tốt sử dụng Khả thích ứng nhanh với thay đổi mạng lợi rõ rệt giao thức định tuyến động so với giao thức định tuyến tĩnh Yếu tố q trình truyền thơng thực thể truyền thơng phải nói ngôn ngữ Đối với giao thức định tuyến IP vậy, có giao thức định tuyến IP động chọn lựa; router sử dụng giao thức RIP router khác sử dụng giao thức OSPF, chúng chia sẻ thơng tin định tuyến chúng khơng nói loại ngơn ngữ Chúng ta tìm hiểu giao thức định tuyến động sử dụng, chí xem xét cách router nói nhiều loại ngôn ngữ, trước hết khám phá đặc tính vấn đề phát sinh thường gặp giao thức định tuyến Cơ giao thức định tuyến Tất giao thức định tuyến động xây dựng dựa giải thuật Một cách tổng quan, giải thuật tiến trình (procedure) nhằm giải vấn đề Một giải thuật định tuyến tối thiểu phải xử lý tiến trình sau : Tiến trình chuyển thơng tin định tuyến cho router khác Tiến trình nhận thơng tin định tuyến từ router khác Tiến trình xác định tuyến đường tốt dựa thông tin nhận từ router khác Tiến trình để router phản ứng với thay đổi hệ thống mạng Một số vấn đề thường gặp giao thức định tuyến : trình xác định đường đi, metrics, hội tụ khả phân tải (load balancing) Quá trình xác định đƣờng Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ 61 Trên hình topo mạng đơn giản với router Router A nhận mạng 192.168.1.0, 192.168.2.0, 192.168.3.0 có interfaces nằm mạng Router B nhận mạng 192.168.3.0, 192.168.4.0, 192.168.5.0 192.168.6.0 Router C nhận mạng 192.168.6.0, 192.168.7.0, 192.168.1.0 Nhìn lướt qua tiến trình chia sẻ thơng tin router đơn giản Chúng ta xem xét Router A: Router A kiểm tra địa IP subnetmask tương ứng phát mạng gắn trực tiếp : 192.168.1.0; 192.168.2.0; 192.168.3.0 Router A đưa thông tin mạng bảng định tuyến nó, đia kèm theo trường Flag dùng để mạng mạng nối trực tiếp Router A tạo gói tin với nội dung sau: “Những mạng nối trực tiếp với 192.168.1.0; 192.168.2.0; 192.168.3.0” Router A truyền thơng tin đó, hay cịn gọi tin định tuyến cập nhật, tới Router B Router C Router B C thực bước tương tự, gửi tin cập nhật mạng nối trực tiếp chúng tới Router A Router A nhận thơng tin đưa vào bảng định tuyến với địa Router gửi tin Lúc Router A nhận tất subnets mạng địa router mà subnets gắn vào Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ 62 Tiến trình xem q đơn giản Vậy lại có nhiều giao thức định tuyến giao thức định tuyến lại phức tạp Chúng ta xem lại ví dụ : Sau đưa thông tin vào bảng định tuyến, Router A làm tiếp với tin cập nhật nhận từ B C Ví dụ, liệu Router A có gửi thơng tin định tuyến nhận từ B tới C thông tin định tuyến nhận từ C đến B không ? Nếu Router A không chuyển tiếp thông tin cập nhật trên, việc chia sẻ thơng tin định tuyến khơng thành cơng Ví dụ, kết nối B C không tồn tại, hai Router phát subnets Do đó, Router A phải chuyển tiếp thơng tin cập nhật, lại tạo số vấn đề Nếu Router A nhận biết mạng 192.168.4.0 từ B C, chọn Router để tới mạng Cả tuyến đường liệu có hay ko ? Tuyến đường tốt Cơ chế sử dụng để đảm bảo tất router nhận thơng tin định tuyến mà khơng làm cho gói tin định tuyến bị loop mạng Metrics Khi có nhiều tuyến đường để đến mạng đích, Router phải có chế để tính tốn tìm đường tốt Metric biến số gán cho routes, có ý nghĩa xếp hạng routes từ tốt đến dở Chúng ta quay lại ví dụ để giải thích cần thiết Metrics Trong ví dụ trên, bảng định tuyến Router A có dạng đơn giản nhƣ sau : Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ 63 Trong bảng định tuyến này, với mạng đích cùng, Router A tới chúng thơng qua Router B Router C Nhưng ví dụ mạng 192.168.7.0 tới thông qua B C, tuyến đường tuyến đường ưa thích Các giao thức định tuyến khác sử dụng loại metric khác Ví dụ, RIP xác định tuyến đường tốt tuyến đường có số lượng hop (router) EIGRP xác định tuyến đường tốt dựa kết hợp băng thông tổng độ trễ tuyến đường Các metric sử dụng : Hop count, bandwidth, load, delay, reliability, cost Sự hội tụ mạng (convergence) Một đặc tính quan trọng giao thức định tuyến thơng tin định tuyến bảng định tuyến tất router mạng phải xác Nếu Router A ví dụ xác định tuyến đường tốt đến mạng 192.168.6.0 qua Router C Router C lại xác định tuyến đường tốt để đến mạng 192.168.6.0 qua Router A Khi Router A gửi gói tin có địa đích 192.168.5.0 tới Router C, Router C liền gửi lại cho Router A, Router A lại gửi cho Router C, trình tiếp diễn tạo routing loop Tiến trình đưa tất bảng định tuyến router vào trạng thái đồng xác gọi hội tụ Thời gian cần thiết để chia sẻ thông tin qua mạng tất router tính tốn tuyến đường tốt gọi thời gian hội tụ Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ 64 Ví dụ thể mạng hội tụ, thời điểm to xuất thay đổi mạng Kết nối router bên trái bị đứt, router phát cố lớp physical datalink bắt đầu tiến trình thơng báo cho router kế cận cố Các router kế cận cập nhật bảng định tuyến chúng đồng thời thông báo cho router kế cận chúng, tiến trình tiếp diễn tất router biết thay đổi Chú ý thời điểm t2, router bên trái phát thay đổi mạng router bên phải chưa phát cố Chúng giữ thơng tin cũ tiếp tục chun gói tin tới mạng Trong khoảng thời gian ngắn này, mạng chưa hội tụ, thông tin định tuyến lỗi xảy Do thời gian hội tụ phần quan trọng giao thức định tuyến Mạng hội tụ nhanh tốt Load balancing Mục đích load balancing để sử dụng băng thông mạng cách hiệu hơn, sử dụng để làm backup tuyến đường bị ngắt Distance vector routing protocols Hầu hết giao thức định tuyến động thuộc loại : distance vector link-state Hầu hết giải thuật giao thức định tuyến động distance vector Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ 65 phục thuộc vào công trình nghiên cứu Bellman, Ford, Fulkerson, lý chúng thường gọi giải thuật Bellman Ford Ford Fulkerson Lưu ý có trường hợp đặc biệt giao thức EIGRP, dựa giải thuật phát triển Garcia Luna Aceves Cái tên distance vector bắt nguồn từ chất loại giao thức này, tuyến đường quảng bá dạng vector bao gồm cặp thông số (khoảng cách, hướng) khoảng cách tính metric hướng định nghĩa next-hop router Ví dụ, ta nói “Mạng đích A cách hop có theo hướng next-hop router X” Mỗi router học tuyến đường từ cách nhìn router hàng xóm sau đến lượt lại quảng bá tuyến đường từ cách nhìn Bởi router phụ thuộc vào router hàng xóm để lấy thơng tên, router hàng xóm phụ thuộc vào router hàng xóm để lấy thơng tin, đơi giao thức định tuyến distance vector gọi “routing by rumor” Các giao thức định tuyến distance vector bao gồm : RIP for IP Xerox Networking Systems RIP Novell’s IPX RIP IGRP & EIGRP DEC’s DNA Phase IV AppleTalk’s Routing Table Maintenance Protocol (RTMP) Đặc điểm chung: Một giao thức định tuyến distance vector điển hình sử dụng giải thuật định tuyến mà router định kỳ gửi thơng tin cập nhật tới tất neighbor cách quảng bá tồn bảng định tuyến Cập nhật định kỳ: Cập nhật định kỳ có nghĩa hết chu kỳ thời gian thơng tin cập nhật truyền Khoảng chu kỳ từ 10 giây với AppleTalk’s RTMP tới 90 giây với IGRP Một vấn đề thơng tin cập nhật gửi Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ 66 thường xun xung đột CPU Overload có thê xảy ra; cịn thơng tin gửi q ko thường xun thời gian hội tụ lớn q mức cho phép Neighrbor Trong cách nhìn router, neighbors có nghĩa routers chia sẻ chung datalink Một giao thức distance vector gửi tin cập nhật tới router neighbor dựa vào chúng để chuyển thông tin cập nhật tới router neighbor chúng Vì lý này, distance vector coi sử dụng thông tin cập nhật hop-by-hop Cập nhật toàn bảng định tuyến Hầu hết giao thức distance vector sử dụng chế đơn giản nói cho neighbor tất biết cách quảng bá toàn bảng định tuyến Routing by Rumor Hình miêu tả hoạt động giải thuật distance vector Trong ví dụ này, metric sử dụng hop count Hệ thống mạng hội tụ thời điểm t3+ Tất router biết tất mạng, địa next-hop router cho mạng Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ 67 khoảng cách để tới mạng Chúng ta sử dụng phương pháp so sánh tương tự Giả sử bị lạc đường mị mẫm đề tìm đường Rồi bơng nhiên nhìn thấy biển báo ghi “Đến Hà Nội, 20km” Chúng ta khơng có lựa chọn khác phải tin vào dẫn Chúng ta khơng có chút thơng tin để kiểm tra xem liệu có đến Hà Nội cịn 20km khơng, chí khơng biết hướng hay sai Giao thức distance vector tương tự vâu Các giải thuật distance vector cấp tín hiệu dẫn cho mạng Chúng cung cấp hướng khoảng cách, khơng có thêm thơng tin chi tiết khó khăn lừa dối tuyến đường Và giống dấu hiệu đường ta trên, chúng ko có khả phát nạn sử đường sai Sau số khó khăn trở ngại với giao thức distance vector: Split Horizon Có loại split horizon : split horizon đơn giản split horizon kết hợp poisoned reverse Couting to Infinity Triggered Updates : Nếu metric cho tuyến đường thay đổi, router gửi tin cập nhật mà không cần chờ cho khoảng thời gian update timer expire Khẳ khôi phục hội tụ nhanh hơn, ngăn việc sử dụng couting to infinity nhiều Việc update định kỳ xảy với triggered update Theo cách vậy, router nhận thơng tin khơng xác từ router chưa hội tụ sau có thơng tin xác từ tin triggered update Những tình nhu xảy trình xác lập lại họi tụ, dù triggered update giảm thiếu tình Holddown Timers Triggered Updates tăng khả phản ứng cho mạng hội tụ Holddown timers giúp giảm thiểu khả nhận tin định tuyến sai Nếu khoảng cách tới mạng đích tăng (ví dụ, hop count tăng từ lên 4), router set holddown timer Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ 68 cho mạng đích Cho đến khoảng thời gian expires, router không chấp nhận thêm tin cập nhật tuyến đường Chúng ta thấy rõ ràng bất lợi tính Chúng ta ngăn chặn thơng tin khơng xác phải trả giá tăng lên thời gian hội tụ Cũng giống thông số thời gian khác, holddown timers cần phải cấu hình cẩn thận Nếu holddown timer ngắn, ko hiệu quả, dài, khả định tuyến thông thường bị ảnh hưởng Asynchronous Updates Link-State Routing Protocols Thơng tin có ích distance vector giống biển đường Cịn thơng tin sử dụng link-state lại giống đồ Một router link-state dễ dàng thực định định tuyến sai lầm, có nhìn tổng thể tồn hệ thống mạng Lý là, không giống cách tiếp cận routing-by-rumor distance vector, router linkstate nhận thông tin trực tiếp từ peer router (peer router router chạy giao thức định tuyến) Mỗi router tạo thơng tin thân nó, kết nối trực tiếp đến (directly connected links), trạng thái đường link router neighbors trực tiếp Thơng tin sau chuyển tới router khác, router tạo copy thông tin này, không thay đổi thông tin Mục tiêu cuối để tất router có nhìn thơng tồn mạng, sau chúng tính tốn độc lập để tìm đường tốt Giao thức link state, đơi lúc cịn gọi giao thức shortest path first distributed database, xây dựng dựa giải thuật tiếng _ giải thuật Dijkstra Một số giao thức link state là: Open Shortest Path First (OSPF) for IP IS-IS for CLNS IP DEC’s NLSP Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ 69 Mặc dù giao thức link state phúc tạp so với distance vector, chứng cở đơn giản : Mỗi router tạo quan hệ adjacency với neighbor Mỗi router gửi đơn vị liệu có tên LSA (Link state advertisements) tới neighbor LSA liệt kê kết nối router, với kết nối, xác định tên kết nối, trạng thái kết nối, metric router interface gắn với kết nối, neighbor tham gia vào kết nối Mỗi neighbor nhận LSA đó, đến lượt nó, chuyển tiếp LSA đến neighbor Mỗi router lưu copy tất LSA nhận sở liệu Nếu tất hoạt động tốt, sở liệu tất router đồng Cơ sở liệu này, hay gọi topologi database linkstate database, sử dụng giải thuật Dijkstra để tính toán đồ thị mạng, xác định tuyến đường ngắn đến router Giao thức link state sau dựa vào link state database để tìm subnets gắn với router, đưa thông tin vào bảng định tuyến 4.2 Ứng dụng thuật tốn (Dijkstra) Hình 4.1 Giao diện ứng dụng tìm kiếm đường ngắn Router mạng máy tính xây dựng ngơn ngữ Java Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ 70 Hình 4.2 Xây dựng mơ hình gồm 50 Router với chi phí Hình 4.3 Chạy chương trình tìm kiếm đường từ Router số 35 đến 30, kết thu đường ngắn với chi phí 60 đường hình Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ 71 4.3 Thiết kế chƣơng trình áp dụng thuật tốn (Floyd-Warshall) Hình 4.4 Giao diện chương trình ngơn ngữ C# 4.4 Kết thử nghiệm Bài toán: Một hệ thống mạng gồm 11 nút mạng thông số tuyến đường hình 4.4 a Tìm đường ngắn từ Router G đến Router T b Tìm đường ngắn từ Router G đến Router W Hình 4.5 Thơng số tốn  Chạy chƣơng trình ta thu đƣợc: a Tìm đường ngắn từ Router G đến Router T Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ 72 Ta thu quãng đường sau GKCHEIT Tổng quãng đường 106 (như hình 4.6) Hình 4.6 Kết chương trình quãng đường màu xanh b Tìm đường ngắn từ Router G đến Router W Ta thu quãng đường sau GKADLNW Tổng quãng đường 98 (như hình 4.7) Hình 4.7 Kết chương trình qng đường màu xanh Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ 73 TÀI LIỆU THAM KHẢO Trần Quốc Chiến, Giáo trình lý thuyết đồ thị, Đại học Sư phạm Đà Nẵng Trần Quốc Chiến, “Thuật tốn hốn chuyển nguồn đích có trọng số tìm luồng cực đại” Tạp chí Khoa học & Công nghệ, Đại học Sư phạm Đà Nẵng, 4(21)/2007,1-6 Brian Schwab, AI Game Engine Programming (bản điện tử) http://books.google.com.vn/books?id=UbMLAAAAQBAJ&printsec=frontcov er&hl=vi#v=onepage&q&f=false Dijkstra.E, A note on two problems in connection with graphs, Numerische Mathematik, Vol.1, 1959 Glenn Seeman, AI for Game Developers – David M.Bourg (bản điện tử) http://books.google.com.vn/books?id=Sz-SqvmhSYC&printsec=frontcover&hl=vi#v=onepage&q&f=false H.Rosen Kenneth, Toán rời rạc ứng dụng tin học (bản dịch tiếng Việt) Nxb KHKT, Hà Nội, 1997 H.Cormen Thomas, Charles E.Leiserson, Ronald L.Rivest, Introduction To Algorithms, The MIT Press, 1999 H Cormen Thomas , Charles E Leiserson, Ronald L Rivest, and Clifford Stein Introduction to Algorithms, Second Edition MIT Press and McGrawHill, 2001 Section 24.1: The Bellman-Ford algorithm, pp 588–592 H Cormen Thomas , Charles E Leiserson, Ronald L Rivest, and Clifford Stein Introduction to Algorithms, Second Edition MIT Press and McGrawHill, 2001 10 J Misra K M Chandy, Distributed Computation on Graphs, Shortest Path Algorithms, University of Texax at Autin, November 1982 11 Richard Bellman: On a Routing Problem, Quarterly of Applied Mathematics, 16(1), pp 87–90, 1958 12 Wikipedia - http://en.wikipedia.org/wiki/Main_Page Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ ... NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THƠNG ĐỒN HỒNG HẢI CÁC THUẬT TỐN TÌM ĐƢỜNG ĐI NGẮN NHẤT TRONG ĐỒ THỊ: LÝ THUYẾT, THUẬT TOÁN VÀ ỨNG DỤNG Chuyên ngành: KHOA HỌC MÁY TÍNH Mã số... THỨC CƠ BẢN TRONG LÝ THUYẾT ĐỒ THỊ 1.1 Các khái niệm lý thuyết đồ thị .2 1.1.1 Định nghĩa đồ thị 1.1.2 Các thuật ngữ 1.1.3 Định nghĩa đường đi, chu trình, đồ thị liên... 1.1.2 Các thuật ngữ Trong mục trình bày số thuật ngữ lý thuyết đồ thị Trước tiên, ta xét thuật ngữ mô tả đỉnh cạnh đồ thị vô hướng Định nghĩa Hai đỉnh u v đồ thị có hướng G gọi kề (u,v) cạnh đồ thị

Ngày đăng: 26/03/2021, 07:36

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan