Ràng buộc loại trừ (Exclusions)

Một phần của tài liệu Đồ án tốt nghiệp GMLS (Trang 32)

Nói chung, thực thể tính đường đi có thể được yêu cầu để tính đường đi giữa một hoặc nhiều cạnh, đỉnh không liên kề hoặc đường đi tốt nhất với một yêu cầu bổ sung để loại trừ một danh sách có thứ tự các liên kết và/hoặc các nút từ kết quả đường đi bất kỳ (loại trừ trên toàn bộ), một danh sách có thứ tự các liên kết và/hoặc các nút từ đường đi số một (loại trừ con đường đầu tiên), một danh sach có thứ tự các liên kết và/hoặc các nút từ con đường số hai (loại trừ con đường thứ hai)…

Vấn đề của việc tính k (k>=2) đường đi không liền kề với các thiết lập riêng của tập các loại trừ là khá phức tạp. Nó được giải quyết bằng thuật toán giả sử một số phân đoạn đường đi được trao đổi giữa các con đường. Vì những trao đổi này chỉ có tập loại trừ global có thể được chú ý tới. Các vấn đề riêng tập loại trừ có thể được giải quyết theo cùng một cách như của loại đường đi có ràng buộc , việc tính toán này rất tốn kém (vấn đề sẽ thảo luận sau). May mắn thay, trong hầu hết các trường hợp, chỉ có tập loại trừ toàn bộ cần được xử lý đó là, loại trừ khác nhau không áp dụng cho các đường đi khác nhau trong một tập tính toán, các tập loại trừ toàn bộ có thể được xử lý bằng cách cắt tỉa từ đồ thị mạng các cung và đỉnh đại diện cho các liên kết và các nút cần được loại trừ, và sau đó chạy thuật tóan tính đường đi đa dạng thích hợp trên đồ thị sửa đổi.

Ví d : tính dường đi giữa hai cạnh không liên kề nhau đi từ đỉnh S đến đỉnh Z trên đồ thị như trong hình 2 với cạnh AC được quy định như một loại trừ đối với một số chính sách có lý do. Sau khi cắt tỉa cạnh AC ra thì sẽ chaỵ thuật toán tính đường đi hai cạnh không liền kề trên đồ thị còn lại

Kết quả các đường đi là SADZ(12) và SBCEZ (4). Lưu ý rằng đường đi SADZ (12) chi phí cao hơn các đường SACDZ (4) và SBCEZ(4) có thể sẽ được tính trên đồ thị chưa sửa đổi. Cũng lưuý rằng nếu cạnh CE được quy định như một loại trừ tốt nhất, một

yêu cầu tính đường đi dẫn đến tính đường đi giữa hai cạnh không kề nhau từ đỉnh S đến đỉnh Z sẽ thất bại.

Hinh 5 :Sơ đồ mạngvới các cạnh có ràng buộc loại trừ 3.2.2. Ràng buộc liên kết

Người sử dụng có thể chỉ định các ràng buộc loại liên kết bằng việc thiết lập các hàm đánh giá liên kết, và sử dụng để tính một con đường duy nhất hoặc hai hoặc con đường có nhiều cạnh, đỉnh không liền kề hoặc con đường tốt nhất. Mỗi hàm đánh giá có đầu vào là một hoặc nhiều thuộc tính của một liên kết và trả về TRUE nếu liên kết được lựa chọn trong các đường đi được cung cấp cho dịch vụ hoặc FALSE nếu không. Ví dụ, hàm đánh giá băng thông của liên kết kiểm tra với đầu vào là mức tối đa không hạn chế thuộc tính băng thông LSP của liên kết và trả về TRUE nếu giá trị thuộc tính cho cấp độ ưu tiên quy định là lớn hơn hoặc bằng với yêu cầu cho dịch vụ mới.

Các ràng buộc loại liên kết có thể được xử lý theo một cách tương tự như ràng buộc loại trừ toàn bộ. Cụ thể, trong giai đoạn khởi tạo, một bước được bổ sung vào thông qua tất cả các cung của đồ thị phải được thực hiện. Cứ mỗi cung , tất cả các hàm đánh giá liên kết sẽ được gọi theo quy định, như là thuộc tính đầu vào của liên kết đại diện bởi các cung. Nếu hàm trả về ít nhất một giá trị FALSE, thì sẽ có cung bị loại ra khỏi đồ thị. Việc thực thi của thuật toán với k đỉnh, cạnh, đỉnh cạnh tốt nhất không liền kề nhau trên đồ thị sửa đổi sẽ mang lại đường đi tối ưu được chú ý tới chỉ rõ các ràng buộc loại liên kết.

Lưu ý rằng hoạt động này cũng có thể được thực hiện trong giai đoạn tính đường đi mà không đòi hỏi thêm một đường đi qua đồ thị, nhưng điều này sẽ không được hay lắm. Các hàm đánh giá liên kết không thật sự quan trọng, và hàm được gọi mỗi khi một liên kết được đánh giá (đặc biệt là trong nhiều đường đi) là ít thực tế hơn là việc chỉ đi qua các liên kết để loại bỏ những cái không phù hợp trước khi bắt đầu tính toán con đường thực tế. Nói cách khác, sự lựa chọn giữa việc đánh giá mỗi liên kết chỉ cần một lần bằng cách sử dụng một bước đi riêng biệt trên đồ thị để loại bỏ tất cả các liên kết không phù hợp (đề nghị), và đánh giá từng liên kết mỗi khi nó được kiểm tra bởi thuật toán.

3.2.3. Ràng buộc bao gồm (Inclusions)

Nói chung, thực thể tính đường đi có thể được yêu cầu để tính đường đi giữa một hoặc nhiều cạnh, đỉnh không liên kề hoặc đường đi tốt nhất với một yêu cầu bổ sung để bao gồm một danh sách có thứ tự các liên kết và/hoặc các nút từ đường đi số một (bao gồm con đường đầu tiên), một danh sách có thứ tự các liên kết và/hoặc các nút từ con đường số hai (bao gồm con đường thứ hai)…

Vấn đề của việc tính k (k>=2) đường đi không liền kề với thiết lập riêng của ràng buộc bao gồm đượcgiải quyết tương tự như ở phương pháp loại trừ. Cụ thể, thuật toán giả sử một số đoạn đường đi được trao đổi giữa các con đường, và, do đó, ràng buộc bao gồm có bảo đảm là một phần của kết quả đường đi chỉ khi nó được quy định trên tổng thể- đó là, nó được yêu cầu cho mỗi con đường.Trong nhiều trường hợp, người dùng chỉ muốn các dịch vụ chỉ rõ danh sách các nút lệnh có thứ tự . Đây là vấn đề tính đường đi có các ràng buộc bao gồm toàn bộ có thể được hình thành như là một yêu cầu để tính một hoặc nhiều cạnh hoặc con đường tốt nhất, mỗi đương đi tương ứng với danh sách các nút có thứ tự. Vấn đề tính đường đicác ràng buộc bao gồm toàn bộ có thể được giải quyết bằng cách sửa đổi không giới hạn tương ứng với thuật toán tính đường đi đa dạng.

Thuật toán tính đường đi đơn với ràng buộc bao gồm

Xét một đường đi duy nhất từ đỉnh nguồn S đến đỉnh đích Z qua một danh sách có thứ tự của nút A,B,C...,M. Xét cấu trúc tối ưu cho đường đi ngắn nhất, nó rất dễ dàng chứng minh rằng đường đi ngắn nhất từ S đến Z sẽ là đường đi ngắn nhất từ S đến A nối với đường đi ngắn nhất từ A đến B nối với đường đi ngắn nhất từ B đến C…và nối với đường đi ngắn nhất từ M đến Z.

Vì vậy, để cung cấp ràng buộc bao gồm trong việc tính đường đi duy nhất, chúng ta phải thay thế viêc tính đường đi ngắn nhất từ dịch vụ nguồn đến dịch vụ đích bằng cách tính nhiều đường đi ngắn nhất.

Đầu tiên, từ nguồn đến ràng buộc bao gồm đầu tiên, sau đó từ ràng buộc bao gồm đầu tiên đến ràng buộc bao gồm thứ hai, và như vậy cho đến khi đường đi ngắn nhất từ ràng buộc bao gồm cuối cùng đến đích. Bằng cách nối các đường đi đã được tính cùng nhau chúng ta sẽ có được đường đi ngắn nhất từ nguồn đến đích qua danh sách có thứ tự của đỉnh được chỉ rõ.

Có một vấn đề với việc tính đường đi với ràng buộc bao gồm, tuy nhiên, nó làm cho mọi thứ phức tạp hơn. Có thể nhận thấy rằng không có gì ngăn cản được mô tả thuật toán quay trở lại đường đi với vòng lặp. tại sao các vòng lặp có thể xuất hiện trong kết qua đường đi?

Trước hết, người sử dụng có thể chỉ định (có lẽ do nhầm lẫn) danh sách các ràng buộc bao gồm trong một cách mà có một hoặc một vài ràng buộc bao gồm xuất hiện trong danh sách nhiều hơn một lần. Trong trường hợp này, việc tính đường đi sẽ không có lựa chọn, nhưng để trở về kết quả đường đi với vòng lặp.

Thứ hai, tính đường đi để xác định các phân đoạn giữa các ràng buộc bao gồm được thực hiện độc lập, và do đó không có gì ngăn cản sự phân đoạn từ phân đoạn này dang phân đoạn khác. Điều này sẽ không xảy ra nếu các đoạn tiếp theo được tính với các ràng buộc loại trừ của tất cả các đỉnh được thực hiện bởi các đường đi của đoạn trước đó.

Cuối cùng, nếu việc tính đường đi cho một đoạn đường cụ thể được ràng buộc để loại trừ các đỉnh đã được tính với các đoạn đường trước đó, nếu việc tính đường đi cho

đoạn đường này thất bại không có nghĩa là đường đi từ nguồn đến đích không tồn tại. Nếu các đỉnh và cạnh đãđược tính trước đó thì sẽ bị loại trừ khỏi việc tính đường đi tiếp theo và việc tính sẽ có thể thành công. Như vậy, nếu việc tính đường đi trên đoạn đường i thất bại, thì sẽ nỗ lực để dùng đệ quy tính lại tất cả các đoạn đường trước bắt đầu từ đoạn đường i-1. Tại thời điểm một cung được loại bỏ từ đoạn đường i-1 thì đường đi sẽ được tính lại để xem xét các đường đi khác. Khi một con đường mới được tính cho đoạn đường i-1, các đỉnh đường đi nên được thêm vào danh sách các ràng buộc loại trừ cho việc tính đường đi cho đoạn đường i và cố gắng tính lại đường đi cho đoạn đường i. Nếu không có đường đi mới cho đoạn đường i-1 để đưa có kết quả đường đi cho đoạn đường đi i thì xem xét đường đi mới cho đoạn đường đi i-2, có thể đảm bảo tính đường đi thành công cho cả hai đoạn đường i-1 và i. Quá trình này nên tiếp tục cho đến khi việc tính đường đi thành công từ đoạn đường đang xét đến đoạn đường i hoặc không có đường đi qua đoạn đường đầu tiên cho đến đoạn đường cuối cùng và bao gồm đoạn đường i, thuật toán sẽ dừng với đoạn code “không tồn tại đương đi” .

Xem xét tất cả những quan sát này, thuật toán tính đường đi ngắn nhất từ đỉnh nguồn S đến đỉnh đích Z đi qua các đỉnh A, B,. . . , M có thể được mô tả như sau:

Bước1: Hãy chắc chắn rằng danh sách các ràng buộc bao gồm không một mục nào xuất hiện nhiều hơn hơn một lần.

Bước 2: Chạy thuật toán single-pair shortest path (ví dụ, BFS) để xác định đường đi ngắn nhất từnguồn đến ràng buộc bao gồm đầu tiên.

Bước 3: Nếu đích của việc tính đường đi cũng là đích đoạn đường cuối cùng của toàn bộ đường đi (có nghĩa là đỉnh Z), dừng thuật toán và trả lại kết quả đường đi là đoạn đường được nối lại với nhau.

Bước 4: Nếu không, thêm đỉnh thực hiện bởi các đường đi xác định cho các đoạn đường trước vào danh sách loại trừ. Chạy thuật toán single-pair shortest path xử lý loại trừ để xác định đường đi cho những đoạn đương tiếp theo.

Bước 5: Nếu việc tính đường đi ở bước 4 là thành công, quay lại bước 3.

Bước 6: Nếu không, dùng đệ quy tính lại đường đi cho tất cả các phân đoạn trước đó bắt đầu từ phân đoạn thành công gần đây nhất, do đó việc tính đường đi cho những phân đoạn hiện tại thành công.

Bước 7: Nếu bước 6 đã thành công, quay lại bước 3.

Bước 8: Nếu không, dừngthuật toán và trả lại đoạn code về” con đường không tồn tại”

3.2.4. Ràng buộc đường đi (adsbygoogle = window.adsbygoogle || []).push({});

Người sử dụng có thể chỉ định các ràng buộc loại liên kết bằng việc thiết lập các hàm đánh giá đường đi, và sử dụng để tính một con đường duy nhất hoặc hai hoặc con đường có nhiều cạnh, đỉnh không liền kề hoặc con đường tốt nhất. Mỗi hàm đánh giá có đầu vào là một hoặc nhiều thuộc tính của một đường đi và trả về TRUE nếu đường đi được lựa chọn trong các đường đi được cung cấp cho dịch vụ hoặc FALSE nếu không.

Các ràng buộc loại đường đi rất quan trọng đối với việc tính đường đi các vệt quang đi qua các mạng truyền tải. Một trong những thách thức lớn nhất trong tính đường đi trên mạng truyền tải là chất lượng tín hiệu quang học có thể thay đổi đáng kể trên đường từ một điểm phục hồi đến một điểm kế tiếp. Tuy nhiên, nếu khoảng cách giữa hai điểm phục hồi tiếp theo là đủ ngắn, thì nó có lý dođể giả sử rằng chất lượng tín hiệu vẫn

giữ nguyên trên toàn bộ đoạn mạng. Như vậy, một cách để xử lý các suy yếu quang là đưa các ràng buộc vào việc tính đường đi để đưa ra đường đi mong muốn như vậy chiều dài của mỗi đoạn đường đi giữa các điểm phục hồi tín hiệu luôn luôn thấp hơn giá trị xác định. Cho đến nay tất cả các thuật toán đã mô tả đểxử lý việc tính đường đi có nhiều ràng buộc theo cơ chế sau: đồ thị mạng trước đó không cho phép thuật toán tính đường đi không ràng buộc sử dụng các cung và/ hoăc các đỉnh nhất định ;chỉ chạy thuật toán tính đường đi không ràng buộc trên đồ thị sửa đổi để có được kết quả đường đi. Thật không may, cơ chế này không làm việc cho con đường có ràng buộc vì đầu vào của hàm đánh giá đường đi là thuộc tính con đường - không được định nghĩa trước khi đường đi được tính. Nói cách khác, chúng ta không thể loại bỏ cung ''xấu'' từ đồ thị bởi vì cung là xấu hay tốt chỉ trong bối cảnh của một con đường cụ thể mà vẫn chưa được xác định. Vì vậy, để xử lý các loại đường đi có nhiều ràng buộc, có nhiêu phương pháp hoàn toàn khác nhau để tiếp cận để thực hiện.

Có ba phươngpháp có thể xử lý loại đường đi có ràng buộc.

- Phương pháp thứ nhất : sửa đổi một thuật toán tìm các con đường ngắn nhất giữa hai đỉnh đã cho không có ràng buộc (như thuật toán Dijkstra hoặc BFS) bằng hàm đánh giá đường đi đề phê duyệthoặc loại bỏ hoặc đoạn đường đi.

- Phương pháp thứ hai :sử dụng các thuật toán KSP, có khả năng xác định nhiều con đường từ một đỉnh nguồn đến đỉnh đích với chi phí cho đường đi ngày càng tăng. Đường đi trở lại bằng các thuật toán KSP có thể được đánh giá bởi các hàm đánh giá đường đi để các đường đi ngắn nhất là các đường đi có ràng buộc. Lưu ý rằng phương pháp thứ nhất hay phương pháp thứ hai khôngdùng để tính đường đi đa dạng.

- Phương pháp thứ ba: là dựa trên thuật toán tối ưu cho Disjointedness tối đa. Thuật toán nàyđược phát triển tất cả các con đường có thể như hai con đường, ba con đường, vv, đồng thời, trong khi loại bỏ những con đường ít ràng buộc nhất trong các ràng buộc loại đường đi. Chi phí để cho đường đi này rất tốn kém, mặc dù nó tính k (k> = 2) đường đi đa dạng và có thể xử lý bất kỳ loại ràng buộc, bao gồm cảcác ràng buộc đường đi, ràng buộc loại trừ, và ràng buộc bao gồm.

CHƯƠNG IV : TỔNG QUAN VỀ OMNET++ 4.1.Omnet++ là gì

Omnet++ là một ứng dụng cung cấp cho người sử dụng môi trường để tiến hành mô phỏng hoạt động của mạng. Mục đích chính của ứng dụng là mô phỏng hoạt động mạng thông tin, tuy nhiên do tính phổ cập và linh hoạt của nó, Omnet++ còn được sử dụng trong nhiều lĩnh vực khác như mô phỏng các hệ thống thông tin phức tạp, các mạng kiểu hàng đợi hay các kiến trúc phần cứng….

Omnet++ cung cấp sẵn các thành phần tương ứng với các mô hình thực tế. Các thành phần này (còn được gọi là các module) được lập trình theo ngôn ngữ C++, sau đó được tập hợp lại thành những thành phần haynhững mô hình lớn hơn bằng một ngôn ngữ bậc cao (ned). Omnet++ hỗ trợ giao diện đồ họa, tương ứng với các mô hình cấu trúc của nó đồng thời phần nhân mô phỏng (simulation kernel) và các module của omnet++ cũng

Một phần của tài liệu Đồ án tốt nghiệp GMLS (Trang 32)