- Thuật toán ngẫu nhiên:
Thuật toán này được đề xuất bởi Korkmaz và Krun để giải quyết vấn đề MCP. Nó gồm 2 phần: kiểm tra bước đầu và kiểm tra ngẫu nhiên. Trong bước đầu, thuật toán tính toán các đường đi tối ưu từ điểm nguồn u đến điểm đích t với mỗi số đo wi, và với những số đo tổng hợp tuyến tính.
Thông tin từ bước khởi đầu đó được sử dụng để tìm ra đường đi khả thi. Trong bước thứ 2, thuật toán sử dụng kiểm tra ngẫu nhiên breadth-first(BFS)
Trong khi thuật toán BFS phát hiện tất cả các điểm, Thì thuật toán ngẫu nhiên sẽ chọn ngẫu nhiên các điểm, cho đến khi đạt đến đích. Thuật toán ngẫu nhiên còn sử dụng tính chất look-ahead, tức ra trước khi phát hiện 1 điểm, só sử dụng thông tin của bước khởi đầu để tìm kiếm xem có khả năng đạt đến điểm đích t thông qua điểm đó không. Nếu đường đi tối ưu từ điểm đó đến đích, ứng với những số đo khác nhau, mà không thoả mãn điều kiện ràng buộc thì tất nhiên sẽ không có đường đi đồng thời thoả mãn. Nếu không có cơ hội tốt để đạt tới t, thì điểm đó sẽ bị loại. Phương pháp này giúp giảm việc tìm kiếm trong không gian.
31 trang |
Chia sẻ: lethao | Lượt xem: 1971 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Đề tài Thuật toán đường đi ngắn nhất và rộng nhất SWP, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ể đảm bảo đường đi được chọn không được sử dụng nhiều của tài nguyên mạng mà tổng thông lượng giảm xuống. Cho mỗi đường dẫn đến phân số tuân theo đã được tính toán, khi có một sự cố gắng dành riêng:
trong đó Bavaiable i là thông lượng cho phép trên đường dẫn i nơi mà tài nguyên được cố gắng để dự trữ, brequested là thông lượng yêu cầu của dòng và bcapacity i là tổng dung lượng của đường dẫn i. Việc dành riêng được xác định chỉ nếu phân số này, đưa ra băng thông cho phép trên đường dẫn nếu việc dành riêng được chấp nhận, là lớn hơn 1 dự trữ trước, hay băng thông dành riêng. Đường dẫn càng được sử dụng lâu hơn, thì băng thông dự trữ sẽ cao hơn.
II.Thuật toán định tuyến
2.1 Lời giới thiệu
Chương này thảo luận về chất lượng dịch vụ định tuyến và các thuật toán được sử dụng để giải quyết chúng. Các vấn đề định tuyến sử dụng một hoặc hai số đo, và sự phức tạp của chúng cũng sẽ được thảo luận. Chương này đưa ra các giải pháp cho các vấn đề đơn giản và hướng tiếp cận đối với các vấn đề phức tạp hơn. Các giải pháp này dựa vào thuật toán đường đi ngắn nhất, thuật toán Dijkstra và thuật toán Bellman-Ford.
Phần 2.6 thảo luận về tình huống thông thường nhất, khi mà băng thông và bước nhảy là các số đo.
Phần 2.7 giới thiệu một trường hợp đặc biệt: độ trễ ràng buộc đầu cuối. Nó có một số đo đơn là chức năng phức tạp của 1 số phần tử.
2.2 Ghi chú
Mô hình mạng được biểu thị dưới dạng một đồ thị G(N,A), trong đó N(G) thể hiện cho các nút của đồ thị, A(G) thể hiện cho các cung biểu diễn đường liên kết trong mạng. n là số lượng nút, m là số lượng các liên kết trong mạng.
Đường liên kết aЄA từ nút u đến nút v được kí hiệu bằng (u,v). Mỗi đường liên kết aЄA có tải trọng wi(a) cho tất cả các số đo i. w(u,v) là tải trọng tương đương với liên kết (u,v) trong đường đi P=(u1,u2,…,ui) và w(P) là tải trọng cho toàn bộ đường đi.
2.3 Số đo:
Để có thể tìm ra đường đi khả thi mà thoả mãn được yêu cầu chất lượng của lưu lượng thì phải có một số số đo phù hợp nhằm đo được các yêu cầu. Các số đo phải được lựa chọn sao cho các yêu cầu có thể được biểu thị bằng một số đo, hoặc tổng hợp của nhiều số đo thích hợp. Khi các số đo định nghĩa được các dạng của chất lượng dịch vụ đảm bảo, thì mạng có thể được hỗ trợ. Nếu nó không thể được sắp xếp trong sự kết hợp của các số đo thì không yêu cầu nào được hỗ trợ. Các số đo thường được sử dụng trong định tuyến QoS và định tuyến ràng buộc được chia thành 3 loại, cũng được gọi là các quy tắc cấu tạo của số đo.
Số đo bao gồm:
Tính cộng: if w(P) = w(u1; u2) + w(u2; u3) + : : : + w(ul¡1; ul)
Tính nhân: if w(P) = w(u1; u2) . w(u2; u3) ………….. w(ul¡1; ul)
Tính lõm: if w(P) = min(w(u1, u2),w(u2, u3),......;w(ul¡1, ul)).
Tính cộng bao gồm độ trễ, trễ pha, chi phí và số bước nhảy. Độ tin cậy [(1-tỉ lệ mất)], là tính nhân, trong khi đó, băng thông, đơn vị được sử dụng nhiều nhất là tính nhân. Tính cộng bằng cách thay thế các tải trọng liên kết wi và ràng buộc c. Bằng các thuật toán logwi và logC.
2.4 Các vấn đề về định tuyến:
2.4.1 Các vấn đề định tuyến số đo đơn
Trong trường hợp đơn giản nhất, các yêu cầu QoS của lưu lượng được biểu thị tốt nhất bằng 1 trong các số đo (giới thiệu trong phần 2.3). Vấn đề hoặc là tối ưu hoặc là ràng buộc. Các số đo được chia thành ràng buộc tuyến và ràng buộc liên kết. Tính lõm là ràng buộc liên kết vì số đo cho 1 đường đi phụ thuộc giá trị đoạn nút cổ chai trên liên kết. Tính cộng và tính nhân là ràng buộc tuyến, vì số đo cho 1 đường đi phụ thuộc vào toàn bộ giá trị của đường đi. Có 4 vấn đề với số đo đơn.
*) Vấn đề 1: (định tuyến tối ưu liên kết)
Cho mạng G(N,A) và 1 tính nhân đơn w(a) cho mỗi đường liên kết aЄA. Tìm đường đi P từ nút nguồn s đến nút đích t sao cho w(P) là rộng nhất.
Vấn đề định tuyến liên kết tối ưu có thể được giải quyết bằng thuật toán Dijkstras và thuật toán Bellman-Ford đã được sửa đổi. Thuật toán Dijkstras (xem phụ lục A) được chỉnh sửa bằng cách thay đổi các tiêu chuẩn về lựa chọn nút tiếp theo được thêm vào là nút M để sao cho nút đó liên kết có băng thông rộng nhất, còn trong thuật toán chuẩn của Dijstra’s nút tiếp theo được lựa chọn dựa vào hàm tích luỹ.
Ví dụ tìm một đường đi với băng thông là liên kết tối ưu. Tính nhân của băng thông này vốn là một vấn đề liên kết tối ưu ở nút cổ chai.
Vấn đề 2 (Định tuyến liên kết ràng buộc) cho mạng G(N,A) , một số đơn concave w(a) với mỗi đường liên kết aЄA và điều kiện ràng buộc C, tìm đường đi P từ điểm nguồn s đến điểm đích t sao cho w(P)≥ C
vấn đề định tuyến liên kết ràng buộc có thể được dưa về dạng định tuyến liên kết tối ưu bằng cách tìm ra đường dẫn tối ưu và kiểm tra xem ràng buộc nào đạt yêu cầu. Một cách khác là cắt bớt cấu trúc liên kết bằng cách xoá bỏ những liên kết có băng thông < C, và sau đó tìm ra đường đi ngắn nhất trên cấu trúc liên kết đã được cắt bớt đó. Từ đó định tuyến liên kết ràng buộc tìm ra được đường đi thoả mãn được yêu cầu chất lượng dịch vụ cho số đo liên kết ràng buộc. (không cần thiết phải tối ưu). Ví dụ là tìm ra đường đi có băng thông theo yêu cầu.
Vấn đề 3 (định tuyến đường đi tối ưu) cho mạng G(N,A) và một tính cộng đơn w(a) với mỗi liên kết aЄA, tìm đường đi P từ điểm nguồn s tới điểm đích t sao cho w(P) nhỏ nhất.
vấn đề định tuyến đường đi tối ưu có thể được giải quyết trực tiếp bằng thuật toán Dijstra hoặc thuật toán Bellman-Ford. Định tuyến đường đi tối ưu tìm ra đường đi tốt nhất cho một s ố đo đường đi ràng buộc. Một vấn đề điển hình có thề tìm được đường đi với số bước nhảy ít nhất, tổng chi phí thấp nhất hoặc độ trễ nhỏ nhất tất cả các giá trị đó là các số đo đường đi ràng buộc vì chúng là additive.
Vấn đề 4 (định tuyến đường đi ràng buộc) cho mạng G(N,A) và một số đo additive đơn w(a) với mỗi liên aЄA, v à điều kiện ràng buộc C tìm đường đi P từ điểm nguồn s tới điểm đích t sao cho w(P)≤C
Vấn đề định tuyến đường đi ràng buộc có thể được giải quyết trực tiếp bằng thuật toán Dijstra hoặc thuật toán bellman-Ford. Định tuyến đường đi ràng buộc tìm ra đường đi với độ trễ và chi phí thấp hơn mức yêu cầu.
cả bốn vấn đề nêu trên đều là phức tạp đa thức. Xem phụ lục B.
2.4.2 các vấn đề định tuyến với một số số đo
Thường thì một số tập hợp của nhiều số đo là cần thiết để mô tả các yêu cầu của dich vụ. Tuy nhiên một số tập hợp tính toán quá phức tạp nên chúng không thực dụng. Bất kỳ sự kết hợp nào của hai hoặc nhiều hơn số đo, hoặc là tính cộng hoặc là tính nhân, là NP-complete. Các tập hợp duy nhất cho phép tính toán đường đi với độ phức tạp đa thức là những tập hợp của số đo tính nhân như băng thông với các số đo khác, thông dụng nhất là độ trễ hoặc số bước nhảy.
Đã có nhiều nỗ lực nhằm đơn giản vấn đề này. Wang và Crowcroft đã đề xuất ra một số đo hỗn hợp đơn là kết hợp của tất cả các số đo mong muốn. Họ kết luận rằng nó được sử dụng chỉ như là một chỉ báo, chứ không chứa đựng tất cả các thông tin cần thiết để quyết định đường đi nào có thể đáp ứng được các yêu cầu chất lượng dịch vụ QoS. Tuy nhiên trong một số trường hợp, băng thông có thể được sử dụng như một số đo đơn. Trong khi một kết nối có thể có nhiều yêu cầu về QoS thì những yêu cầu này chủ yếu chuyển thành các yêu cầu về băng thông. Guerin et al đề xuất ra một phương trình cho sự sắp xếp các ràng buộc trễ trong ràng buộc băng thông.
Bảng 2.1 biểu diễn tổng hợp của 2 số đo từ 4 vấn đề đơn mô tả ở trên kết hợp 2 vấn đề tối ưu bị bỏ trống vì không hợp lí. Tất nhiên, vẫn kết hợp được 2 tối ưu, nhưng phải đưa các vấn đề phức hợp về dạng 2 số đo đơn. Tối ưu thứ 2 chỉ được sử dụng nếu có nhiều hơn một đường dẫn khả thi liên quan tới tối ưu thứ nhất. Phương pháp này được sử dụng trong các thuật toán như wsp và swp (xem phần 2.6)
Bảng 2.1 Sự phức tạp của việc kết hợp các số đo
-Sự cắt giảm:
Một kĩ thuật quan trọng nhằm giải quyết các vấn đề phức hợp đó là cắt bớt mạng. Trường hợp các ràng buộc liên kết, giá trị của số đo trên tuyến luôn luôn bằng giá trị trên đường liên kết có giá trị thấp nhất. Do vậy, 1 liên kết mà không thoả mãn yêu cầu, (ví dụ như băng thông bất kì), là không khả thi. Những liên kết này bị xoá khỏi cấu trúc liên kết. Điều này giúp cho bất kì đường đi nào trên cấu trúc liên kết cũng thoả mãn được các yêu cầu của liên kết ràng buộc.
-Các vấn đề định tuyến tổng hợp:
+ Vấn đề 5 (định tuyến liên kết tối ưu - liên kết ràng buộc).
Cho mạng G(N,A), số đot ính nhân wi(a), i = 1,2; Với mỗi liên kết a thuộc A và điều kiện ràng buộc C1. Tìm đường đi từ điểm nguồn s đến điểm đích t sao cho w2(P) lớn nhất, trong khi w1(P)≥ C1 .
Vấn đề này có thể đưa về dạng 1: vấn đề định tuyến liên kết tối ưu bằng cách cắt bớt mạng, xoá bỏ tất cả các liên kết mà ràng buộc w1(P) ≥C1 không được đáp ứng. Sự phức tạp của quá trình cắt bỏ cấu trúc liên kết tỉ lệ với m- số lượng các liên kết trong mạng, bởi vậy vấn đề liên kết ràng buộc, liên kết tối ưu là thuộc sự phức tạp đa thức.
+ Vấn đề 6 (định tuyến ràng buộc đa liên kết)
Cho mạng G(N,A), số đo concave wi(a), i=1,2; Với mỗi liên kết a thuộc A và điều kiện ràng buộc Ci , i=1,2. Tìm đường đi P từ điểm nguồn s đến điểm đích t sao cho wi(P)≥ C1 với tất cả các giá trị i. Cũng giống vấn đề 5 là đưa về dạng 1 bằng cách cắt bớt mạng, thì vấn đề 6 đưa về dạng 2: vấn đề định tuyến liên kết ràng buộc.
+ Vấn đề 7 (định tuyến liên kết ràng buộc, đường đi tối ưu)
Cho mạng G(N,A), số đo wi(a), i=1,2, trong đó w1 là concave, với mỗi liên kết a thuộc A, và một điều kiện ràng buộc C1. Tìm đường đi P từ điểm nguồn s đến điểm đích t sao cho w2(P) nhỏ nhất, w1(P)≥C1.
Vấn đề định tuyến liên kết ràng buộc, đường đi tối ưu có thể được cắt bớt mạng đề đưa về dạng 3: vấn đề định tuyến đường đi tối ưu.
+ Vấn đề 8 (định tuyến liên kết ràng buộc, đường đi ràng buộc)
Cho mạng G(N,A), số đo wi(a), i=1,2; trong đó w1 là concave, với mỗi liên kết a thuộc A , và các điều kiện ràng buộc Ci, i=1,2. Tìm đường dẫn P từ điểm nguồn s đến điểm đích t sao cho wi(P) ≥C1, w2(P)≤ C2.
Vấn đề định tuyến liên kết ràng buộc, đường đi ràng buộc có thể đưa về dạng 4: vấn đề định tuyến đường đi ràng buộc, bằng cách cắt bớt mạng.
4 vấn đề phức hợp nêu trên đều có thể dễ dàng giải quyết bởi vì một trong các số đo là ràng buộc liên kết. Cắt bớt mạng bằng cách bỏ qua các liên kết có giá trị không thoả mãn điều kiện, đưa các vấn đề phức hợp về vấn đề số đo đơn.
Như đã thấy trong bảng 2.1, bên cạnh 4 liên kết ràng buộc phức hợp, có 1 vấn đề phức hợp tổng có thể giải quyết được qua nhiều lần.
+ Vấn đề 9 (định tuyến liên kết tối ưu, đường đi ràng buộc)
Cho mạng G(N,A), số đo wi(a); i=1,2 trong đó wi là tính nhân, với mỗi liên kết a thuộc A và 1 điều kiện ràng buộc C2, tìm đường đi P từ điểm nguồn s đến điểm đích t sao cho w1(P) lớn nhất, w2(P)≤C2.
Vấn đề này được giải quyết bằng cách sử dụng thuật toán đường đi ngắn nhất đã được chỉnh sửa. Trên mạng, có m liên kết, các liên kết này có một số giá trị là số đo liên kết tối ưu. Gọi k là biểu thị cho số lượng các gía trị khác nhau của số đo. Rõ ràng k≤m vì một số liên kết có thể có những giá trị xác định. Các giá trị này có thể được dùng như các giới hạn giả thấp hơn C11, C12, …, C1k sao cho các số đo liên kết ràng buộc được tối ưu. Điều này giúp đưa vấn đề 9 về dạng 8 như đã nêu ở trên. Bắt đầu từ giá trị lớn nhất C1k và cắt bớt mạng bằng cách xoá bỏ những liên kết a có w1(a) < C1k, đường đi P khả thi chính là đường đi đầu trên thoả mãn w2(P) ≤C2.
Nếu số đo liên kết ràng bưộc w1 là băng thông, thì trước hết tất cả các liên kết, trừ những liên kết có băng thông rộng nhất C1k sẽ bị xoá bỏ. Nếu có thể tìm được một đường đi thoả mãn ràng buộc tuyến trên cấu trúc liên kết đã được cắt bỏ, thì đó là đường đi với băng thông lớn nhất. Còn nếu không tìm được đường đi đó, thì liên kết với băng thông C1k-1 sẽ được thêm vào cấu trúc liên kết, và việc tìm kiếm sẽ được lặp lại. Nếu vân không tìm được đường đi khả thi, các liên kết với băng thông C1k-2 sẽ lại tiếp tục được thêm vào cấu trúc liên kết. Việc này sẽ tiếp diễn cho đến khi tìm được 1 đường đi khả thi, vấn đề này phức tạp hơn các vấn đề từ 5 đến 8 nhưng vẫn có thể giải quyết được qua nhiều lần.
Hai vấn đề phức tạp hơn còn tồn tại là MCP (vấn đề định tuyến ràng buộc đa tuyến) và MCOP(vấn đề định tuyến đường đi ràng buộc, đường đi tối ưu hay còn gọi là vấn đề tối ưu đa ràng buộc). Những số đo trong các vấn đề này không phải là concave, bởi vậy đây là những vấn đề NP-complete chúng không thể giải quyết qua nhiều lần, nếu sử dụng tập hợp các số đo này thì cần phải có những cách giải quyết khác.
+ Vấn đề 10 (Định tuyến ràng buộc đa thức)
Cho mạng G(N,A), số đo additive wi, i=1,2, với mỗi đường liên kêt a thuộc A, và điều kiện ràng buộc Ci, i=1,2. Tìm đường dẫn P từ điểm nguồn s đến điểm đích t sao cho wi(P)≤ Ci với tất cả các giá trị i.
Vấn đề định tuyến ràng buộc đa tuyến là NP - Complete. Vấn đề này được biết đến rất nhiều, nó chỉ ra rằng: vấn đề số đo patition và additive dùng để chứng minh NP-Complete bằng cách này hay cách khác, có thể đưa các vấn đề đa thức nêu trên về các vấn đề số đo đơn để dùng các thuật toán đường đi ngắn nhất để giải quyết chúng. Ví dụ có thể thực hiện việc này bằng cách cắt bỏ những liên kết có năng suất không hiệu quả để giải thích cho 1 ràng buộc liên kết. Ở đây, cả 2 số đo đều là ràng buộc tuyến nên việc cắt giảm đơn giản là không thể. Chính vì vậy vấn đề không thể giải quyết qua nhiều lần được.
+ Vấn đề 11 (định tuyến tuyến ràng buộc, tuyến tối ưu)
Cho mạng G(N,A), số đo additive wi(a), i=1,2, với mỗi đường liên kết a thuộc A và 1 điều kiện ràng buộc C1 cho số đo w1, tìm đường đi từ điểm nguồn s đến điểm đích t, sao cho w2(P) nhỏ nhất, w1(P)≤ C1.
Vấn đề này cũng là NP-Complete . Vấn đề MCOP (vấn đề tối ưu đa ràng buộc) thỉnh thoảng được dùng như dạng của định tuyến tuyến ràng buộc. Tuyến tối ưu, nhưng cũng có thể được hiểu như là vấn đề multi-contrained với chức năng chi phí, và có thể hoặc không là một trong các số đo tuyến ràng buộc.
Lí do nêu trên là dựa vào giả thuyết: các số đo là độc lập với nhau. Tuy nhiên, điều này không cần thiết. Trong các mạng sử dụng các thuật toán rate-proportional scheduling, đặc biệt là WFQ-Scheduling, thì các vấn đề về độ trễ, dung pha có thể giải quyết qua nhiều lần bằng thuật toán Bellman-Ford. Nó dựa vào thực tế là trong một môi trường như vậy , bước nhảy chỉ là một thông số nếu như ràng buộc dung pha có thể đạt yêu cầu. Bởi vậy có thể giải quyết vấn đề này bằng cách giải quyết ràng buộc độ trễ, kiểm soát tính toán bước nhảy sao cho đảm bảo các yêu cầu về độ dung. Nếu tất cả các số đo cho phép nhận các giá trị nguyên trong giới hạn thì vấn đề cũng có thể được giải quyết qua nhiều lần.
Ví dụ, bước nhảy vốn là một số đo có giá trị nguyên và được giới hạn bằng đường kính của đồ thị.
2.5 Các hướng tiếp cận từ nghiệm suy đôi với các vấn đề phức tạp NP-Complete:
Như đã nói trong phần 2.4.2, sự phức tạp trong tính toán của các vấn đề MCP, MCOP, vấn đề 10,11 là NP-Complete. Để giải quyết các vấn đề này, thì cần tính gần đúng từ nghiệm suy nhiều lần. Các vấn đề được đưa về dạng đơn giản để giải quyết bằng thuật toán đường đi ngắn nhất.
Hình 2.1: Vấn đề định tuyến ràng buộc đa tuyến. Vùng khả thi với mỗi i, wi(P)≤ Ci, được biểu thị bằng 1 hình chữ nhật góc dưới bên trái. Các chấm đen biểu thị các tuyến.
Xem hình 2.1 mỗi đường đi P có một số giá trị cho mỗi số đo wi(P). Hình này mô phỏng tình huống với hai ràng buộc. Các tuyến là các chấm đen trong đồ thị theo giá trị của các số đo. Các phần tiếp theo xem lại một số phép tính gần đúng từ nghiệm suy nhiều lần. Các thuật toán cho các vấn đề MCOP, cũng như MCP dễ dàng được giải quyết chỉ bằng cách kiểm tra đường đi khả thi đối với các ràng buộc hay không.
+ Thuật toán Chen và Nahrstedt
Chen Và Nahrstedt đã đề xuất 1 kĩ thuật để giải quyết vấn đề MCP. Tại đó giá trị số đo thứ 2 bị giới hạn bởi các giá trị nguyên, các vấn đề có thể giải quyết được qua nhiều lần. Thay tải trọng liên kết w2 bằng một hàm tải trọng mới
(2.2)
Dựa MCP (G,s,t, w1, w2, C1, C2) về dạng đơn giản hơn MCP (G, s, t, w1, w2’, C1, x) trong đó x là số nguyên xác định trước. Vấn đề 10 như sau:
+ Hướng nghiệm suy 1:
Cho mạng G(N,A), số đo w1(a) và w2’(a) với liên kết a thuộc A, điều kiện ràng buộc C1 và x. Tìm đường đi P từ điểm nguồn s đến điểm đích t, sao cho w1(P)≤C và w2’(P)≤ x. Chen và Nahrstedt đã mở rộng thuật toán Dijkstra và Bellman-Ford để giải quyết vấn đề này.
Mệnh đề 1: giải pháp cho vấn đề nghiệm suy gần đúng cũng là giải pháp cho vấn đề gốc
Chứng minh: từ phương trình 2.2
Suy ra
Đường đi P là giải pháp cho vấn đề đơn giản, phương trình
W2’(P)≤x (2.3) phải được đảm bảo
Có thể dễ thấy là P cũng là giải pháp cho vấn đề gốc
Do đó w2(P) ≤ C2
Giải pháp cho vấn đề gốc là giải pháp cho vấn đề đơn giản.
Vd: Nếu đường đi P có 3 bước nhẩy với tải trọng liên kết 4,5 và 6, nó là giải pháp cho vấn đề gốc khi C2=15. Chọn x=5, (2.1) sinh ra tải trọng mới là 2,2 và 2. Cộng lại chúng ta có tải trọng tuyến w’(P)=6 và w’(P)<=x không được đảm bảo. Nếu đường đi P, với chiều dài l(P) là giải pháp cho vấn đề gốc, thì 1 điều kiện hiệu quả cũng là giải pháp cho vấn đề đơn giản là
Wi(P)≤(1-) (2.4)
Điều này có nghĩa là đường đi cần phải vượt quá khả năng bằng 1 hệ số phụ thuộc vào chiều dài l(P) của nó và giá trị của x. Điều kiện 2.4 là hiệu quả nhưng không cần thiết. Trong ví dụ trên tải trọng là 6,6 và 3, tải trọng mới sẽ là 2,2 và 1. Điều kiện w’(P)<=x được đảm bảo, dù (2.4) không được thoả mãn. Cách nghiệm suy có thể áp dụng cho chỉ 1 số đo nếu không có giải pháp nào cho vấn đề đơn giản MCP (G, s, t, w1, w2’, C1, x), thì vấn đề MCP (G, s, t, w1’, w2, x2, C2) nên thử bằng cách khác. Còn nếu có giải pháp, thì cách nghiệm suy chính là 1 giải pháp.
+ Thuật toán Jaffe
Jaffe đề xuất hàm chiều dài đường đi không thuộc đường thẳng
f(P) = max{w1(P), C1} + max {w2(P), C2} (2.5)
Trong đó, giá trị nhỏ nhất đảm bảo giải quyết vấn đề MCP bằng cách tìm ra tuyến khả thi nếu có. Tuy nhiên, nó không được giải quyết bằng thuật toán đường đi ngắn nhất, vì hàm chiều dài này không thuộc đường thẳng. Bởi vậy ông dùng 1 thuật toán tương tự sử dụng đường nối của các tải trọng:
W(u,v) = d1.w1(u,v) + d2.w2(u,v) (2.6)
Như vậy vấn đề trở thành: tải trọng hợp là 1 số đo và có thể giải quyết bằng thuật toán đường đi ngắn nhất. Sau đó giải pháp là kiểm tra với điều kiện ràng buộc.
+ Hướng nghiệm suy 2:
Cho mạng G(N,A), số đo wi(a), i= 1, 2 với liên kết a thuộc A, điều kiện ràng buộc C1 và số nguyên dương di, i= 1, 2, tính hàm tải trọng mới
w(u,v) = d1. w1(u,v) + d2. w2(u,v)
và tìm ra đường đi P từ điểm nguồn s đến điểm đích t sao cho w(P) nhỏ nhất. Kiểm tra nếu đường đi P thoả mãn ràng buộc wi≤Ci.
Hình 2.2: các đường thẳng tương đương trong thuật toán của Jaffe giải pháp khả thi có thể được tìm thấy với 1 giá trị cụ thể di.
Hình 2.3 biểu diễn các đường cong của hàm tải trọng kết hợp thậm chí nếu có 1 giải pháp khả thi, thì thuật toán cũng có thể không tìm ra nó, là trường hợp bên phải.Nếu giải pháp mà thuật toán tìm ra không khả thi, thì ta có thể bằng cách thay đổi giá trị của di để tìm ra giải pháp khả thi. Nhưng vì các đường cong tương đương thuộc đường thẳng, nên có thể xuất hiện tình huống là có giải pháp khả thi nhưng không phải tìm được bằng bất cứ giá trị nào của di.
Thuật toán
Thuật toán này thay vì sử dụng đường nối tải trọng, thì sử dụng hàm non-lineat (làm cong các đường thẳng tương đương) để giải quyết vấn đề MCP
Tải trọng đường được nối là:
(2.7)
Khi q -> ∞ phương trình (2.7) sẽ biến đổi thành
(2.8)
Phương trình này đảm bảo tất cả các điều kiện ràng buộc được thoả mãn nếu w(P)≤1.
Hình 2.3 không có tuyến nhưng đường cong đang tồn tại tương tự.
Giá trị q làm tăng thêm khả năng của thuật toán.
Hình 2.3 biểu diễn tình huống tương tự như hình 2.2. Số đo đã tìm được chính xác đường khả thi.
Vấn đề trong (2.6) đó là số đo đó không phải là tính cộng, do vậy mà khi tính toán tải trọng của đường đi. Kết quả là TAMCRA phải sử dụng thuật toán Dijkstra. Nó không dừng lại khi đã tìm ra đường đi khả thi đến đích, mà tiếp tục tìm ra k đường dẫn khác nữa. Sau đó với mỗi đường dẫn, tải trọng của đường đi được tính toán bằng phương trình (2.7).
Trong TAMCRA, k được lựa chọn trước, trong khi đó, ở các phiên bản khác của thuật toán này đó là thuật toán SAMCRA, lại kiểm soát giá trị của k sáo cho tự thích nghi. Điều này có nghĩa TAMCRA là đa thức phức tạp, trong khi SAMCRA là một thuật toán chính xác và sự phức tạp của nó là số mũ. Sự lựa chọn k trong TAMCRA là sự thoả hiệp giữa việc thực thi và tính phức tạp. Còn SAMCRA đảm bảo tìm được một đường dẫn khả thi nếu như nó tồn tại.
Để làm giảm sự phức tạp của các thuật toán, chỉ quan tâm đến đường dẫn không trội. Đường dẫn P là trội nếu wi(Q)<= wi(P) với tất cả các giá trị i, với 1 sự không cân bằng cho ít nhất 1 giá trị i. Điều này giúp giới hạn việc tìm kiếm trong không gian.
+ Hướng nghiệm suy 3 (TAMCRA)
Cho mạng G (N,A), số đo wi(a), i=1,2 với mỗi đường liên kết a A, điều kiện rằng buộc ci,số nguyên dương di, i=1,2 và k.Tính toán hàm tải trong mới được xác định bằng pt 3,6 và tìm ra đường đi ngắn nhất từ điểm nguồn điểm & đến nguồn đích t.Với những đường đi đó, tính tải trọng đường đi,và lựa chọn đường đi P sao cho w(P) nhỏ nhất.Kiểm tra giải pháp đường đi P thoả mãn đk ràng buộc wi ≤ ci với mỗi I hay không.
Thuật toán Iwata.
Iwata đề xuất giải pháp trực tiếp đối với vấn đề MCP,thuật toán tìm ra đường đi ngắn nhất ,hoặc các tuyến phụ thuộc vào 1 số đo và sau đó kiểm tra ràng buộc có được đảm bảo không.Nếu không,nó tìm ra tuyến ngắn nhất với số đo khác và kiểm tra lại các điều kiện ràng buộc.Vấn đề là các tuyến khả thi không cần phải là ngắn nhất đối với bất kì số đo nào.Trong hình 2.4, tuyến khả thi là đường thứ 2 liên quan đến tải trọng 1.
+ Hướng nghiệm suy 4 (thuật toán IWATA)
Cho mạng G(N,A), số đo
Hình (2.4) Quy trình tìm kiếm của thuật toán Iwata
wi(a), i=1,2 với mỗi liên kết a Є A, điều kiện ràng buộc Ci, i=1,2. Tìm đường đi P sao cho wi(P) nhỏ nhất với mỗi giá trị cụ thể i, hoặc một số đường đi nhẹ nhất với wi(OP). Kiểm tra đường đi P thoả mãn điều kiện ràng bưộc wi ≤ Ci với mỗi i không, nếu không thì tím i khác.
- Thuật toán ngẫu nhiên:
Thuật toán này được đề xuất bởi Korkmaz và Krun để giải quyết vấn đề MCP. Nó gồm 2 phần: kiểm tra bước đầu và kiểm tra ngẫu nhiên. Trong bước đầu, thuật toán tính toán các đường đi tối ưu từ điểm nguồn u đến điểm đích t với mỗi số đo wi, và với những số đo tổng hợp tuyến tính.
Thông tin từ bước khởi đầu đó được sử dụng để tìm ra đường đi khả thi. Trong bước thứ 2, thuật toán sử dụng kiểm tra ngẫu nhiên breadth-first(BFS)
Trong khi thuật toán BFS phát hiện tất cả các điểm, Thì thuật toán ngẫu nhiên sẽ chọn ngẫu nhiên các điểm, cho đến khi đạt đến đích. Thuật toán ngẫu nhiên còn sử dụng tính chất look-ahead, tức ra trước khi phát hiện 1 điểm, só sử dụng thông tin của bước khởi đầu để tìm kiếm xem có khả năng đạt đến điểm đích t thông qua điểm đó không. Nếu đường đi tối ưu từ điểm đó đến đích, ứng với những số đo khác nhau, mà không thoả mãn điều kiện ràng buộc thì tất nhiên sẽ không có đường đi đồng thời thoả mãn. Nếu không có cơ hội tốt để đạt tới t, thì điểm đó sẽ bị loại. Phương pháp này giúp giảm việc tìm kiếm trong không gian.
+ Hướng nghiệm suy 5(thuật toán ngẫu nhiên)
Cho mạng G(N,A), số đo wi(a), i=1,2 với mỗi liên kết a Є A, điều kiện ràng buộc Ci và tải trọng di, i=1,2. Bước khởi đầu tính đường đi ngắn nhất từ điểm nguồn u đến điểm đích t, ứng với mỗi số đo wi, và số đo tổng hợp tuyến tính (2.5). Sử dụng kiểm tra ngẫu nhiên breadth-first tìm đường dẫn P từ điểm nguồn s đến điểm đích t sao cho wi(P) ≤ Ci với tất cả i. Để giảm việc tìm kiếm trong không gian, Khi tìm được 1 điểm thì dùng thông tin khởi đầu kiểm tra xem có thể tìm được đường đi khả thi thông qua điểm đó hay không. Nếu không có thì loại bỏ nó.
H-MCOP
Thuật toán này được đề xuất bởi Korkmaz và Krunz để giải quyết vấn đề MCOP. Nó trở về đường đi khả thi, cũng là làm nhỏ nhất hàm chi phí đã được lựa chọn, dựa vào chi phí 1 đường liên kết C(u,v) ứng với mỗi đường liên kết là một ràng buộc QoS wi(u,v) hoặc 1 số hàm chi phí tương tự. Trong bước đầu tiên, thuật toán tính tuyến khả dụng từ một điểm u đến điểm đích t ứng với số đo tổng hợp tuyến tính (2.5) thiết lập bước này trở lại tuyến khả thi với số đo tổng hợp tuyến tính.
Sau đó, thuật toán sử dụng hàm chiều dài tuyến không thẳng của phương trình (2.6) để tính toán các đường đi từ điểm nguồn đến điểm s. Nó phát hiện ra mỗi điểm u dựa vào giá trị nhỏ nhất của hàm chiều dài tuyến không thẳng hàng. Với mỗi điểm u, thuật toán chọn ra đường đi ngắn nhất từ s đến t để xác định chiều dài từ điểm s đến t. Nếu các tuyến đi qua u mà khả thi, thuật toán sẽ lựa chọn điểm mà có đường dẫn có hàm chi phí cơ sở nhỏ nhất. Nếu không có tuyến khả dụng nào, thì thuật toán lựa chọn điểm có đường dẫn có số đo không tuyến tính nhỏ nhất, để đường dẫn này có thể trở thành khả thi. Sau đó, thuật toán tiếp tục từ điểm chọn u, tìm những điểm v tiếp theo bằng cách tương tự. Cuối cùng kết qủa nó trở về tuyến khả dụng.
- Hướng nghiệm suy 6 (H-MCOP)
Cho mạng G(N,A), số đo wi(a), i=1,2 và (a) với mỗi liên kết a Є A, điều kiện ràng buộc Ci, i=1,2 với số đo wi, bước đầu tìm đường dẫn ngắn nhất từ mỗi điểm u
Các file đính kèm theo tài liệu này:
- Thuật toán đường đi ngắn nhất và rộng nhất SWP.doc