Giải thuật giá trị bé nhất: Thực tế các mạch chuyển mạch gói(PSN) sự quyết định đường của nó dựa trên một sô dạng phân loại giá trị tôi thiểu. Nếu sự phân loại theo giá trị các hops là ít nhất, mỗi đường có giá trị 1. Điển hình hơn, giá trị mỗi đường tương xứng dung lượng mỗi đường, tương xứng tức thời (current load) trên đường đi, hoặc một sô tổ hợp. Trong một sô trường hợp, sự đánh giá các giá trị đó không bao gồm giải thuật giá trị bé nhât.Với điều đó có thể nói đơn giản: Cho một mạng các Node nôi với nhau bằng những đường hai chiều, mỗi đường đó có giá trị tổng hợp chung cho mỗi hướng. Ta định nghĩa giá trị của một đường (path) giữa hai Node là tổng giá trị của những đường nó đi qua. Cho mỗi cặp Node tìm thây một con đường giá trị bé nhất. Hầu hết các giải thuật giá trị bé nhất được sử dụng trong PSN đều dựa trên hai giải thuật Dijkstra và Bellman Ford. 1. Giải thuật Dijkstra: Giải thuật Dijkstra có thể phát biểu như sau: Để tìm con đường ngắn nhât từ Node nguồn cho trước đến tất cả các Node khác bằng cách phát triển thêm vào độ dài của đường. Quá trình thực hiện giải thuật như sau: Với mức k con đường ngắn nhất đến k Node, đến Node nguồn đã cho, qua m Node, ở mức(k+l). Giải thuật được định nghĩa như sau: N = sô lượng Node trong mạng, s = Node nguồn. M = sô lượng Node hợp nhất cho giải thuật (kết hợp cho giải thuật). Dij = Giá trị đường từ Node i tới Node j. >dij = 0 dij = co nếu Node không nôi trực tiếp. Dn = Giá trị nhỏ nhất từ Node s đến Node n lúc xác lập giải thuật. Giải thuật có 3 bưđc và lập lại cho đến khi M = N. 1. Gán D(s) = 0; giả sử T là tập hợp các đỉnh. 2. Nếu s không thuộc T, ngưng. (D(s) là chiều dài đường đi ngắn nhất từ s đến z). 3. Chọn V thuộc T sao cho D(v) có giá trị nhỏ nhất. T = T{v} 4. Với mỗi X thuộc T kề với V, gán: D(x) = min{D(x), D(v) +w(v,x)}. Đến bước 2.
Chương 4: PHÂN TÍCH CÁC GIẢT THUẬT TÌM ĐƯỜNG Giải thuật giá trị bé nhất: Thực tế các mạch chuyển mạch gói(PSN) sự quyết định đường của nó dựa trên một sô" dạng phân loại giá trị tôi thiểu. Nếu sự phân loại theo giá trị các hops là ít nhất, mỗi đường có giá trị 1. Điển hình hơn, giá trị mỗi đường tương xứng dung lượng mỗi đường, tương xứng tức thời (current load) trên đường đi, hoặc một sô" tổ hợp. Trong một sô" trường hợp, sự đánh giá các giá trị đó không bao gồm giải thuật giá trị bé nhât.Với điều đó có thể nói đơn giản: Cho một mạng các Node nôi với nhau bằng những đường hai chiều, mỗi đường đó có giá trị tổng hợp chung cho mỗi hướng. Ta định nghĩa giá trị của một đường (path) giữa hai Node là tổng giá trị của những đường nó đi qua. Cho mỗi cặp Node tìm thây một con đường giá trị bé nhất. Hầu hết các giải thuật giá trị bé nhất được sử dụng trong PSN đều dựa trên hai giải thuật Dijkstra và Bellman Ford. 1. Giải thuật Dijkstra: Giải thuật Dijkstra có thể phát biểu như sau: Để tìm con đường ngắn nhâ"t từ Node nguồn cho trước đến tất cả các Node khác bằng cách phát triển thêm vào độ dài của đường. Quá trình thực hiện giải thuật như sau: Với mức k con đường ngắn nhất đến k Node, đến Node nguồn đã cho, qua m Node, ở mức(k+l). Giải thuật được định nghĩa như sau: N = sô" lượng Node trong mạng, s = Node nguồn. M = sô" lượng Node hợp nhất cho giải thuật (kết hợp cho giải thuật). Dij = Giá trị đường từ Node i tới Node j. ->dij = 0 dij = co nếu Node không nôi trực tiếp. Dn = Giá trị nhỏ nhất từ Node s đến Node n lúc xác lập giải thuật. Giải thuật có 3 bưđc và lập lại cho đến khi M = N. 1. Gán D(s) = 0; giả sử T là tập hợp các đỉnh. 2. Nếu s không thuộc T, ngưng. (D(s) là chiều dài đường đi ngắn nhất từ s đến z). 3. Chọn V thuộc T sao cho D(v) có giá trị nhỏ nhất. T = T-{v} 4. Với mỗi X thuộc T kề với V, gán: D(x) = min{D(x), D(v) +w(v,x)}. Đến bước 2. Trong chương trình ta dùng: Đôi tượng Cpoint pBegin để khởi tạo điểm nguồn của đường đi. Đôi tượng Cpoint pEnd để khởi tạo điểm đích của đường đi. Đôi tượng Cpoint d[3()][5()] để chỉ vị trí của đường đi. Mảng mp[30] chỉ sô", phân cho mỗi đường đi. Mảng tong[30] chứa chiều dài cho mỗi đường đi. Mảng ntong[30][30] chứa chiều dài từng đoạn. Biến count đếm số đường đi. * Phân tích giải thuật Dijkstra: Đây là giải thuật tìm đường đi ngắn nhất trong một đồ thị có trọng số( chiều dài) nôi hai đỉnh X và y đã cho trước với đặc tính là tổng các trọng sô" của tất cả cá cạnh là nhỏ nhâ"t trong tất cá các đường đi từ đỉnh X đến đỉnh y. Nêu tất cá các trọng sô" đều bằng 1 thì bài toán này trở thành bài toán tìm đường đi có cạnh ít nhất nôi hai đỉnh X và y. Ta có thể dùng giải thuật Breadth First Search để giải quyết bài toán trong trường hợp này. Bắt đầu từ đỉnh X ta xét tất cá các đường đi nôi từ X tới một cạnh, sau đó xét tât cá các đường đi nối từ X với hai cạnh và cứ tiếp tuc như thê" cho đến khi nào đỉnh y gặp lần đầu tiên. Như vậy đường đi ngắn nhất từ đỉnh X với đỉnh y có sô" cạnh nôi là ngắn nhất. Trong trường hợp tổng quát, đường đi từ đỉnh X đến đỉnh y có thể đi qua tất cá các đỉnh của đồ thị, vì thê ta thường xét bài toán tìm đường đi ngắn nhất nôi từ đỉnh X cho trước với tất các đỉng khác trong đồ thị. Giả sử giải thuật Dijsktra được áp dụng cho một đồ thị có n đỉnh và E cạnh. Thời gian của bước khởi tạo mảng D và p tỉ lệ với n. Sô" lần so sánh để chọn đỉnh V trong tập hợp c là n-1, n-2, 2 (sô" bước lập là n - 2). Như vậy, thời gian thực hiện giải thuật là tỉ lệ với n 2 . Nêu E « n 2 (E râ"t nhỏ so với n), tức G là một đồ thị thưa , thì ta có thể tránh được việc xét các giá trị vô cực trong ma trận chiều dài L. Vì thê" giải thuật Dijsktra thích hợp cho một đồ thị được biểu diển bằng một danh sách kề, bởi vì ta chì xét đến các đỉnh w nôi với đỉnh V. Để chọn đỉnh V trong tập hợp c với D[v] nhỏ nhất. • Lưu đồ giải thuật Dijsktra : Nhập vào đỉnh nguồn của đường đi Nhập vào đỉnh đích của đường đi Gán chiều dài của đỉnh nguồn = 0. Gán chiều dài của các đỉnh khác = 00 . * Kết quả của giải thuật Dijkstra tương ứng với hình vẽ được thể hiện như sau: (Tìm đường đi ngắn nhất từ Node 1 đến Node 6 ) • giải thuật Dijkstra thực hiện từng bước như sau: Ví dụ: Xét đồ thị: Ta dùng giải thuật Dijkstra để tìm đường ngắn nhất nôi A với các đỉnh khác. © o A B c D E F G H D D D L 0 2oo 4 00 1 6 00 V AA F A A F A © o Ớ bước thứ nhất, ta lập được bảng như sau: A B C D E F G H D D L 0 2 o o 0 3 0 0 Q O 0 0 Q O V A A A A A A A (0) o o 0 o o Chọn được đỉnh F đặt vào D và ta có bảng sau: Cứ tiếp tục như trên ta lần lược có các bảng như sau: A B C D E F G H D D D D L 0 2 4 4 4 1 6 O 0 V A B F B A F A o A B C D E F G H D D D D L 0 2 4 4 4 1 6 5 A B F B A F A V A B c D E F G H D D DD D L 0 24 4 4 1 6 5 V AB F B A F c ABCDEFGH D D D D D D L 0 2 4 4 4 16 5 V A B F B A F c A B C D E F G H D D D D D D L 0 2 4 4 4 1 6 5 V A B F B A F c A B C D E F G H D D D D D D L 0 2 4 4 4 1 6 5 V A B F B A F c Giải thuật kết thúc và bảng lập được sau cùng cho ta con đường ngắn nhất nôi từ đỉnh A đến các đĩnh khác. Ví dụ đường đi ngắn nhất nối từ đỉnh A đến H là ABCH và chiều dài đường ngắn nhất này là 5. 2. Giải thuật BELLMANFORD: Giải thuật Bellman Ford có thể phát biểu: Tìm con đường đi ngắn nhất từ Node (nguồn) đã cho X đến Node bắt buộc, con đường gồm một đoạn đường, rồi tìm đoạn đường ngắn nhất giữa hai đoạn đường nôi và tiếp tục cho đến hết. Giải thuật được thực hiện như sau: • S:Node nguồn. • dij: Giá trị đường từ i đến j. • dij = 0. • Dij = 00 cho Node không nôi trực tiếp. • D(h): Giá trị của con đường ngắn nhất từ Node s đến Node n, dưới sự bắt buộc không quá h đường nối. A B C D E F G H D D D D D D L 0 2 4 4 4 1 6 5 V A B F B A F c • h: sô" cực đại đường nôi trong đường nối trong đường nối tại thời điểm tức thời đổi về giá trị. Giải thuật có các bước sau, và chúng lập lại cho đến khi không có sự thay đổi về giá trị. Bước 1: Bắt đầu: D„ (0) = 00 cho tất cả n ^ s. Bước 2: Thực hiện kế tiếp với h > 0. D n ( h+ 1) =j m i n rD n h + dij] • Lưu đồ của giải thuật Bellman Ford : • khởi tạo đường nôi ban đầu = 0. • Giá trị đường đi ngắn nhẫt từ Node nguồn đền các Node k-hée-=-Q t = 0 Giá trị đường dẫn từ Node nguồn cho tới các Node khàc = Giá trị đường dẫn ngắn nhâ"t từ Node nguồn khi chưa tăng h + chi phí từ Node xét đến các Node lân cận nó. T Giữ nguyên bảng tìm rtưrỉnơ rtanơ • Bảng cho ta kết quả của giải thuật như sau: (tìm đường đi ngắn nhất từ đỉnh 1 đến đỉnh 6) ♦ So sánh giữa hai giải thuật Dijkstra và Bellman Ford: Từ kết quả cững như thực hiện hai giải thuật Dijktras và Bellman Ford theo từng bưđc ta thấy rằng: Giải thuật Dijkstra tương đối tốt hơn trong việc Routing tập trung còn giải thuật Bellman Ford thì cho Routing phân tán. Ta hãy xem giải thuật Bellman Ford trước. Nếu ta thực hiện đẳng thức ở bước hai của giải thuật, ta thấy rằng sự tính toán cho Node n bao gồm sự hiểu biết giá trị đường nôi đến tất cả các Node bên cạnh Node n (dij) cộng với giá trị tất cả các đường từ Node nguồn đến các Node lân cận (Dị h ). Mỗi Node có thể bao gồm một giá trị và các đường chung cho mỗi Node khác trong mạng và thông tin đó thay đổi lần lượt với Node lân cận. Mỗi Node đều có thể dùng bước hai của giải thuật chỉ dựa trên thông tin của Node lân cận và biết giá trị đường nôi cập nhật giá trị và đường. Mặt khác với đẳng thức ở bước 3 của giải thuật Dijkstra, đẳng thức đo yêu cầu, để cho giải thuật phân tán. Mỗi Node cần toàn bộ topologie về mạng, có nghĩa là nó cần biết giá trị đường nôi của tất cả các đường trong mạng. Như vậy với giải thuật này, thông tin cần trao đổi với tất cả các nốt, phức tạp hơn cho việc Routing phân tán. 3. Giải Thuật SHORTEST PATH ROUTING: Trong giải thuật này chúng ta có một trọng đồ kết nôi vô hướng có trọng sô" của các Node. Với mỗi kết nôi trực tiếp giữa hai Node có một giá trị được coi là chi phí hay là khoảng cách cần thiết để đi từ Node này đê" Node kia. Giải thuật có các bước sau: a) cho Node nguồn là Node cô" định và cho nó làm việc, hay là Node hiện hành. Bellman- Ford (đỉnh nguồn =1) h D 2 (h> Path D 3 (h) Path D 4 (h) Path D 5 (h) Path D ỏ (h) Path 0 oo oo 00 00 00 1 2 1-2 5 1-3 1 1-4 00 00 2 2 1-2 4 1-4-3 1 1-4 2 1-4-5 10 1-3-6 3 2 1-2 3 1-4-5-3 1 1-4 2 1-4-5 3 1-4-5-6 4 2 1-2 3 1-4-5-3 1 1-4 2 1 -4-5 4 1-4-5-6 [...]... giữa mọi cặp đỉnh trong đồ thị Giải thuáỊ Floyd có thể áp dụng cho đồ thị vô hướng cũng như đồ thị có hướng: ta chỉ cần thay đổi cạnh vô hướng bằng một cạnh vô hương Tuy nhiên trong trường hợp này các phần tử trên đường chéo của ma trận cần đặt bằng không 5 Giải thuật FLOODING routing( tìm đường động) : Giải thuật này chỉ ra đường đi ngắn nhất từ đỉnh X đến đỉnh y Kết hợp cả ba phương pháp Deapth First... để có lời giải tốì ưu thì phải duyệt qua hầu hết tất cả các đỉnh trong đồ thị, điều này dẫn đến thời gian tìm kiếm lâu nên không thích hợp trong mạng lưới giao thông 7 Giải thuật Breadth First Search (tìm kiếm ưu tiên bề rộng) : Phương pháp tìm kiếm theo chiều rộng đôi lập với phương pháp tìm kiếm theo chiều sâu Nó kiểm tra từng đình trong cùng một mức rồi chuyển sang đỉnh ở mức sâu hơn Tại một đỉnh... nhóm: Các đỉnh đã duyệt là các đỉnh được lấy ra khỏi hàng Những đỉnh đang xét là những đỉng trong hàng Các đình chưa được xét đến là những đĩnh chưa được duyệt và không có trong hàng Sự bất của phương pháp tìm kiếm theo chiều rộng khi đích cần tìm phân bô" rải rác trên tất cả các mức, trong trường hợp này nó phải huy động hết khả năng tìm tới đích 8.Giải thuật DISTANCE VECTOR ROUTING: • • Mỗi router gửi... Routing(tìm đường cô"định): Một trong những cách tìm đường đơn giản là tìm đường cô" định Trong trường hợp đó, một con đường được xác định cho một cặp nguồn, người nhận trong mạng Các giải thuật tìm đường nhỏ nhất có thể dùng Con đường đã được cô" định hoặc nó có thay đổi khi thay đổi protocol của mạng có nghĩa là giá trị được dùng trong đường vẽ không thể dựa trên sự thay đổi động nào Một osrectory routing... đỉnh trái nhất Trường hợp gặp đỉnh cuối, ta cần lùi lại một mức và sang phải và sau đó duyệt sang trái cho đến khi gặp lại đỉnh cuối hoặc đỉnh đích Quá trình này lặp lại cho tới khi tìm thây đích hay gặp đỉnh cuối cùng của không gian tìm kiếm Phương pháp tìm kiếm theo chiều sâu bảo đảm tìm thây đích vì trong trường hợp sâu nhất nó sẽ chuyển sang kiểu tìm vét cạn đồ thị Phương pháp t2im kiếm theo chiều... một đường • Phân tích giải thuật ta thây: Giải thuật này có ưu điểm là : Tìm đường một cách đơn giản và thực hiện tuần tự Họat động tốt trong mạng tin cậy với sự nạp từ từ Nhược điểm : Vì tìm đường cô" định nên khi trong mạng có sự thay đổi thì dẫn đến sai, giải thuật không linh động 14 Random routing(tìm đường tình cờ): Random routing đơn giản và mạnh vớin các lưu thông xa Với random routing một Node... ngừng Trong trường hợp Adaptive phân bô", mỗi Node trao đổi sự làm chậm với các Node khác Cơ sở trên thông tin đến đó, Node liệt kê để dự trù tình trạng làm chậm thông tin qua mạng và ta ứng dụng các giải thuật tôi ưu để giải quyết Trong trường hợp Adaptive tập trung, mỗi Node thông báo thông tin của nó vê" Node trung tâm và nó sẽ thuyết kê" con đường dựa trên những thông tin đó và gửi thông tin về đường... 9 gói được tạo ra Một trong những gói được tạo ra đến Node 6 Nó được giữ lại và không truyền tiếp nữa Tuy nhiên các gói còn lại phát ra 22 bản sao mới cho bước 3 và cũng là bước cuô"i Sau bước thứ 3 tất cả các gói bị bỏ, bản 6 nhận được tổng cộng 4 bản sao của gói Với Flooding ta có thể tìm được đường đi ngắn nhất giữa các điểm bâ"t kỳ trong mạng, giữa các đôi tượng chuyển động trong mạng, và đạt được... các Node khác Tính toán đường dẫn ngắn nhâ"t đến mỗi Node 1 1 Phương pháp tìm kiếm có giá thành nhỏ nhất: Giải thuật thực hiện như sau: Loại bỏ những đỉnh không liên quan không liên quan tới bài toán là những đình ít có triển vọng nằm trên đường đi ngắn nhất Sử dụng thông tin bổ sung nhằm sắp xép các đình trong tập được xây dựng trong một mảng Hàm đánh giá dựa trên cơ sở chọn đỉnh xét là đỉnh có tổng... d[i][k] + d[k][j] được gán cho d[i][j] được thỏa mản một trong hai trường hợp sau đây: 1 Tồn tại đường đi từ i đến k và đường đi từ k đến j nhưng không tồn tại đường đi từ i đến j qua các đỉnh trung gian thuộc tập hợp Vk-i(D[i,j] = 0) 2 Tồn tại đường đi từ đỉnh i đến đỉnh k, đường đi từ k đến j và đường đi từ i đến j qua các đỉnh trung gian tập hợp VK-1 nhưng d[i][j] > d[i][k] + d[k][j] ( nguyên lý tôi . đều bằng 1 thì bài toán này trở thành bài toán tìm đường đi có cạnh ít nhất nôi hai đỉnh X và y. Ta có thể dùng giải thuật Breadth First Search để giải quyết bài toán trong trường hợp này. Bắt. sô" cực đại đường nôi trong đường nối trong đường nối tại thời điểm tức thời đổi về giá trị. Giải thuật có các bước sau, và chúng lập lại cho đến khi không có sự thay đổi về giá trị. Bước 1: Bắt. của không gian tìm kiếm. Phương pháp tìm kiếm theo chiều sâu bảo đảm tìm thây đích vì trong trường hợp sâu nhất nó sẽ chuyển sang kiểu tìm vét cạn đồ thị. Phương pháp t2im kiếm theo chiều sâu để