Giải thuật DiJkstra cho Sortest path Routing

63 1.7K 14
Giải thuật DiJkstra cho Sortest path Routing

Đ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

Giải thuật DiJkstra cho Sortest path Routing

Ứng dụng thuật toán Dijkstra Shortest Path Routing Ứng dụng thuật toán Dijkstra Shortest Path Routing PHẦN 2: TRÌNH BÀY ĐỀ TÀI NGHIÊN CỨU ỨNG DỤNG THUẬT TỐN DIJKSTRA TRONG SHORTEST PATH ROUTING Chương Mô tả đề tài vấn đề liên quan 1.1.Định tuyến mạng thơng tin: 1.a.Định tuyến (routing): Định tuyến q trình chọn lựa đường mạng máy tính để gửi liệu qua Việc định tuyến thực cho nhiều loại mạng, có mạng điện thoại, liên mạng, Internet, mạng giao thông Định tuyến hướng, di chuyển gói (dữ liệu) đánh địa từ mạng nguồn chúng, hướng đến đích cuối thơng qua node trung gian Thiết bị phần cứng chuyên dùng gọi router (bộ định tuyến) Tiến trình định tuyến thường hướng dựa vào bảng định tuyến, bảng chứa lộ trình tốt đến đích khác mạng Vì việc xây dựng bảng định tuyến, tổ chức nhớ router, trở nên vô quan trọng cho việc định tuyến hiệu Routing khác với bridging (bắc cầu) chỗ nhiệm vụ cấu trúc địa gợi nên gần gũi địa tương tự mạng, qua cho phép nhập liệu bảng định tuyến đơn để mơ tả lộ trình đến nhóm địa Vì thế, routing làm việc tốt bridging mạng lớn, trở thành dạng chiếm ưu việc tìm đường mạng internet 1.b Các lớp thuật toán định tuyến: Thuật toán vector (distance-vector routing protocol): Thuật toán dùng thuật toán Bellman-Ford Nó định số, gọi chi phí (hay trọng số), cho liên kết node mạng Các node gửi thông tin từ điểm A đến điểm B qua đường mang lại tổng chi phí thấp (là tổng chi phí kết nối node dùng) Thuật toán hoạt động với hành động đơn giản Khi node khởi động lần đầu, biết node kề trực tiếp với nó, chi phí trực tiếp để đến Ứng dụng thuật tốn Dijkstra Shortest Path Routing (thông tin, danh sách đích, tổng chi phí node, bước để gửi liệu đến tạo nên bảng định tuyến, hay bảng khoảng cách) Mỗi node, tiến trình, gửi đến “hàng xóm” tổng chi phí để đến đích mà biết Các node “hàng xóm” phân tích thơng tin này, so sánh với thông tin mà chúng “biết”; điều cải thiện thơng tin chúng có đưa vào bảng định tuyến Đến kết thúc, tất node mạng tìm bước truyền tối ưu đến tất đích, tổng chi phí tốt Thuật toán trạng thái kết nối (Link-state routing protocols): Khi áp dụng thuật toán trạng thái kết nối, node sử dụng sở liệu đồ mạng với dạng đồ thị Để làm để làm điều này, node phát tới tổng thể mạng thông tin node khác mà kết nối được, node góp thơng tin cách độc lập vào đồ Sử dụng đồ này, router sau định tuyến đường tốt từ đến node khác Các router trao đổi gói tin LSA với router khác Đây gói tin nhỏ, chứa thơng tin router Mỗi router dựa vào LSAs để tạo topological database, sử dụng giải thuật SPF (Short Path First) để tìm đường Mỗi router xác định xác topology mạng Chính router đưa định để đưa packet đến đích tốt Mỗi router mạng báo cáo trạng thái nó, link nối trực tiếp trạng thái link Router nhân thông tin tới tất router mạng Cuối tất router mạng có nhìn giống topology mạng Thuật toán làm theo cách thuật toán Dijkstra (thuật toán mà ta tìm hiểu ứng dụng), cách xây dựng cấu trúc liệu khác, dạng cây, trng node gốc, chứa node khác mạng Bắt đầu với ban đầu chứa Sau từ tập node chưa thêm vào cây, thêm node có chi phí thấp để đến node có Tiếp tục trình đến node thêm Cây sau phục vụ để xây dựng bảng định tuyến, đưa bước truyền tối ưu,… để từ node đến node khác mạng Thuật toán định tuyến trạng thái kết nối phản ứng nhanh nhạy hơn, khoảng thời gian có hạn, thay đổi kết nối Ngồi ra, gói gửi qua mạng định tuyến trạng thái kết nối nhỏ gói dùng định tuyến vector Ứng dụng thuật toán Dijkstra Shortest Path Routing 1.2.Giao thức định tuyến: Giao thức định tuyến dùng thi hành thuật toán định tuyến để thuận tiện cho việc trao đổi thông tin mạng, cho phép router xây dựng bảng định tuyến cách linh hoạt Trong số trường hợp, giao thức định tuyến tự chạy đè lên giao thức định tuyến Danh sách giao thức định tuyến: 2.a.Giao thức định tuyến trong: Router Information Protocol (RIP) Open Shortest Path First (OSPF) Intermediate System to Intermediate System (IS-IS) Interior Gateway Routing Protocol (IGRP) (thuộc sở hữu Cisco) Enhanced IGRP (EIGRP) (thuộc sở hữu Cisco) 2.b.Giao thức định tuyến ngoài: Exterior Gateway Protocol (EGP) Border Gateway Protocol (BGP) Constrained Shortest Path First (CSPF) 1.3.Lý thuyết Graph: Một Graph G, định nghĩa tập đỉnh V tập hợp cạnh E Các đỉnh thường gọi nút (node) chúng biểu diễn vị trí (ví dụ điểm chứa lưu lượng khu vực chứa thiết bị truyền thông) Các cạnh gọi liên kết chúng diễn biến phương tiện truyền thơng Graph biểu diễn sau: G=(V,E) Ứng dụng thuật toán Dijkstra Shortest Path Routing Hình 1.Một Graph đơn giản Mặc dù theo lý thuyết, V tập hợp rỗng khơng có xác định thơng thường V tập hợp xác định khác rỗng, nghĩa biểu diễn V={v |i=1,2,…,N} Trong N số lượng nút Tương tự E biểu diễn : E={e |i=1,2,…,M} Một liên kết, e tương ứng với kết nối cặp nút Có thể biểu diễn liên kết e nút i k : e=(v,v) e=(i,k) Một liên kết gọi tới nút hai điểm cuối liên kết Nút i k gọi kề tồn liên kết (i,k) chúng Những nút xem nút “hàng xóm” Bậc nút số lượng liên kết tới nút hya số lượng nút hàng xóm Một liên kết có hai hướng Khi thứ tự nút khơng có ý nghĩa Ngược lại thứ tự nút có ý nghĩa Trong trường hợp thứ tự nút có ý nghĩa, liên kết xem cung định nghĩa : a=[v,v] a=[i,k] k gọi cận kề hướng i cung [i,k] tồn bậc hướng i số lượng cung Một graph goi mạng liên kết nút có mặt liên kết có thuộc tính (chẳng hạn độ dài, dung lượng, loại,…) Các mạng sử dụng để mô hình vấn đề cần quan tâm truyền thơng, thuộc tính riêng biệt nút liên kết liên quan đến vấn đề cụ thể truyền thơng Ứng dụng thuật tốn Dijkstra Shortest Path Routing Một graph có liên kết gọi graph vô hướng, nhiên graph vô hướng, nhiên graph có cung gọi graph hữu hướng Một graph hữu hướng có liên kết vô hướng Thông thường, graph giả sử vơ hướng, phân biệt khơng có ý nghĩa Có thể có khả xảy tượng xuất nhiều liên kết cặp nút Những liên kết gọi liên kết song song Một graph có liên kết song song gọi multigraph Cũng có khả xuất liên kết nút nút Những liên kết gọi self loop Một graph khơng có liên kết song song self loop gọi graph đơn giản Chương Lý thuyết nghiên cứu 2.1.Định tuyến đường dẫn ngắn (Shortest Path Routing): Bài tốn tìm đường ngắn tốn quan trọng q trình thiết kế phân tích mạng Hầu hết tốn định tuyến giải giải tốn tìm đường ngắn “độ dài” thích hợp gắn vào cạnh (hoặc cung) mạng Trong thuật tốn thiết kế cố gắng tìm kiếm cách tạo mạng thỏa mãn tiêu chẩn độ dài đường Bài toán đơn giản loại tốn tìm đường ngắn hai nút cho trước Loại tốn tốn tìm đường ngắn từ nút tới tất nút lại, tương đương tốn tìm đường ngắn từ tất điểm đến điểm Đơi địi hỏi phải tìm đường ngắn tất cặp nút Ta xét graph hữu hướng giả sử biết độ dài cung cặp nút i j l Các độ dài không cần phải đối xứng Khi cung khơng tồn độ dài l giả sử lớn (chẳng hạn lớn gấp n lần độ dài cung lớn mạng) Chú ý áp dụng q trình cho mạng vơ hướng cách thay cạnh hai cung có độ dài Ban đầu giả sử l dương hồn tồn; sau giả thiết thay đổi Phần lớn mạng chuyển mạch gói sử dụng thuật toán khác phương pháp chọn tuyến đường ngắn lớp mạng thực Một số mạng chọn Ứng dụng thuật toán Dijkstra Shortest Path Routing tuyến theo cách thức tập trung, thiết lập đường dẫn nút nguồn nút đích trung tâm điều hành mạng NMC (Network Management Center) hay trung tâm điều khiển chọn tuyến RCC (Routing Control Center) sau phân phối thơng tin chọn tuyến đến tất nút chuyển mạch mạng Các nút mạng khác sử dụng cách thức phi tập trung hay gọi cách thức phân bố, nút trao đổi thông tin chọn tuyến giá thành với nút khác mạng sở tương tác bảng định tuyến đáp ứng yêu cầu định tuyến ngắn 2.2.Thuật toán Dijkstra: Tất thuật tốn tìm đường ngắn dựa vào việc lồng đường ngắn nghĩa nút k thuộc đường ngắn từ i tới j đường ngắn từ i tới j đường ngắn từ i tới k kết hợp với đường ngắn từ j tới k Vì tìm đường ngắn cơng thức đệ quy sau: d = (d + d) Hình Các đường ngắn lồng Dxy độ dài đường ngắn từ x tới y Khó khăn cách tiếp cận phải có cách khởi động đệ quy khởi động với giá trị vế phải phương trình Thuật tốn Dijkstra phù hợp cho việc tìm đường ngắn từ nút i tới tất nút khác Bắt đầu cách thiết lập d = d =   i ≠ j Sau thiết lập d  l  j nút kề cận i Sau tìm nút j có d bé Tiếp lấy nút j vừa chọn để khai triển khoảng cách nút khác, nghĩa cách thiết lập d  min(d, d + l) Tại giai đoạn trình, giá trị d giá trị ước lượng có đường ngắn từ i tới k, thực độ dài đường ngắn tìm cho Ứng dụng thuật tốn Dijkstra Shortest Path Routing tới thời điểm Xem d nhãn nút k Quá trình sử dụng nút để triển khai nhãn cho nút khác gọi trình quét nút Thực tương tự, tiếp tục tìm nút chưa qt có nhãn bé qt Chú ý rằng, giả thiết tất l dương nút khơng thể gán cho nút khác nhãn bé nhãn nút Vì vậy, nút qt việc qt lại thiết khơng xảy Nếu nhãn nút thay đổi, nút phải qt lại Ví dụ : xét mạng hình sau, đường ghép nối có trọng số tương ứng với giá thành đường, để đơn giản ta coi trọng số theo hai chiều nhau, thực tế chúng khác giá trị Để chọn đường dẫn ngắn từ nguồn tới tất nút mạng, đòi hỏi phải có kiến thức cấu hình tổng thể mạng (danh sách nút ghép nối chúng) giá thành đường nối Điều dẫn tới việc tính tốn tập trung dựa thơng tin đầy đủ lưu sở liệu trung tâm (Central Database) Hình Ví dụ mạng Thuật toán thực theo bước, xây dựng mơ hình đường ngắn (Shortest Path Tree) có gốc nút nguồn (nút 1) Các đường dẫn ngắn tới k nút khác tính tốn k bước, chúng tập hợp lại tập N Ứng dụng thuật toán Dijkstra Shortest Path Routing Coi D(v) khoảng cách (tổng trọng số đường nối dọc theo đường dẫn) từ nút nguồn tới nút v Coi l(i,j) giá thành cho nút i j Thuật toán gồm bước: 1.Bước khởi đầu Đặt N={1} (tập N ban đầu gồm nút), với nút v  N đặt D(v)=l(l,v), với nút không nối trực tiếp với nút l ta coi giá thành  2.Bước lặp Tìm nút w khơng thuộc N cho D(w) tối thiểu bổ sung w vào tập N Sau thay D(v) cho tồn nút khơng thuộc N cịn lại cách tính: D(v)  min[D(v),D(w) + l(w,v)] Bước lặp lại tất nút có N Sau thực hiện, ta có bước mô tả bảng thống kê sau: Bước Tập N D(2) D(3) D(4) D(5) D(6) {1}    {1,2}   {1,2,3} 3 {1,2,3,6} {1,2,3,6,4} 5 {1,2,3,6,4,5} Mơ hình đường ngắn lấy nút làm nút nguồn mơ tả hình vẽ sau: Ứng dụng thuật tốn Dijkstra Shortest Path Routing Hình 4.Mơ hình đường dẫn ngắn Đích Nút 2 3 4 5 Hình 5.Bảng chọn tuyến cho nút Với thuật toán ta tính tuyến đường có đường dẫn ngắn cho nút, cụ thể ta coi nút nút nguồn thực bước giải thuật kể Trong trường hợp chọn tuyến theo phương thức tập trung, NMC gửi bảng chọn tuyến cho nút sau thiết lập xong, mạng sử dụng phương thức phân bố nút phải tính lấy bảng định tuyến, sử dụng thông tin tổng thể (được cung cấp nút lân cận NMC) chọn đường dẫn cho riêng Chương 3.Xây dựng thiết kế chương trình minh họa thuật tốn Dijkstra 3.1.Xây dựng chương trình tìm đường ngắn bằng thuật tốn Dijkstra: Viết ngơn C: ... chạy thực giải thuật Dijkstra Ứng dụng thuật toán Dijkstra Shortest Path Routing package Dijkstra3 ; import import import import import import import java.awt.BorderLayout; java.awt.Choice; java.awt.Event;... Ứng dụng thuật tốn Dijkstra Shortest Path Routing Hình 4.Mơ hình đường dẫn ngắn Đích Nút 2 3 4 5 Hình 5.Bảng cho? ?n tuyến cho nút Với thuật tốn ta tính tuyến đường có đường dẫn ngắn cho nút,...Ứng dụng thuật toán Dijkstra Shortest Path Routing PHẦN 2: TRÌNH BÀY ĐỀ TÀI NGHIÊN CỨU ỨNG DỤNG THUẬT TỐN DIJKSTRA TRONG SHORTEST PATH ROUTING Chương Mơ tả đề tài vấn đề

Ngày đăng: 18/08/2012, 10:57

Hình ảnh liên quan

Hình 1.Một Graph đơn giản. - Giải thuật DiJkstra cho Sortest path Routing

Hình 1..

Một Graph đơn giản Xem tại trang 5 của tài liệu.
Kết quả hiển thị lên màn hình là đồ thị đường đi ngắn nhất trong mạng với đỉnh xuất phát (màu xanh dương) và các đỉnh còn lại màu xanh lá cây - Giải thuật DiJkstra cho Sortest path Routing

t.

quả hiển thị lên màn hình là đồ thị đường đi ngắn nhất trong mạng với đỉnh xuất phát (màu xanh dương) và các đỉnh còn lại màu xanh lá cây Xem tại trang 36 của tài liệu.

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan