a. Phương pháp tô màu đồ thị
Bài toán gán bước sóng cho mạng WDM có thể được chuyển về bài toán tô màu các nút của đồ thị tương ứng, bằng cách chuyển các luồng lưu lượng thành các nút của đồ thị tô màu. Khi các luồng có chung chặng thì ở đồ thị màu các nút tương ứng được kết nối với nhau như hình 39. Khi đó, nhiệm vụ của bài toán tô màu các nút đó là giảm thiểu số màu được tô cho các nút sao cho các nút cạnh nhau (có đường kết nối ) phải sử dụng các màu khác nhau. Bài toán này thuộc loại bài toán NP- đầy đủ. Tuy nhiên đối với mạng Ring có một số thuật toán khá hiệu quả dựa trên lời giải tối ưu của bài toán tô màu “ đồ thị của các đoạn ” tương ứng với cấu hình chuỗi và được mở rộng sang bài toán tô màu “ đồ thị các cung” tương ứng mạng Ring như
Hình 39 : Sơ đồ minh họa mối liên hệ với bài toán tô màu nút đồ thị
Trước hết ta xét “đồ thị các đoạn ” nằm dọc trên một đường như hình 40 (b),bài toán gán bước sóng (màu) cho các luồng (đoạn) này có thể sử dụng thuật toán đơn giản mà vẫn cho kết quả tối ưu như sau :
• Đánh số các bước sóng theo thứ tự tăng dần 1, 2, 3…
• Xuất phát từ phía trái của đồ thị dịch chuyển sang phía phải, khi gặp bất cứ đoạn nào thì gán nó cho bước sóng có thể còn trống giá trị thứ tự nhỏ nhất cho đến khi tất cả các luồng được gán bước sóng.
Ta nhận thấy, số bước sóng của đồ thị các đoạn sẽ bằng số các đoạn chồng nhau lớn nhất khi đi dọc theo đồ thị, do vậy thuật toán cho kết quả tối ưu bằng với tải lớn nhất của “đồ thị của các đoạn”. Bài toán gán bước sóng cho SPRing với định tuyến đã biết sẽ giải bằng cách :
• Xác định nút có luồng lưu lượng quang đi qua nhỏ nhất (không tính các luồng quang xuất phát và kết thúc – xen/rẽ tại nút này);
• Tách Ring thành một “đồ thị các đoạn ” tại nút mà có số luồng quang đi qua nhỏ nhất;(hình 40 b).
• Thực hiện gán bước sóng cho các luồng quang đi qua nút được tách.
• Sử dụng thuật toán trên để gán bước sóng cho các luồng còn lại theo cách gán “đồ thị của các đoạn” (hình 40 c, d).
Chú ý việc thực hiện gán bước sóng cho “đồ thị của các đoạn ” nên thực hiện từ hai đầu mút hoặc thực hiện gán bước sóng cho các luồng của đồ thị đoạn kể cả các luồng bị tách làm hai, sau đó ghép đồ thị đoạn thành Ring thì cố gắng gán bước sóng cho các luồng bị tách. Chẳng hạn như hình 40, nếu chỉ thực hiện tách Ring thành đồ thị các đoạn (hình 40 b) và thực hiện gán bước sóng riêng cho các luồng đi qua nút tách, thực hiện gán bước sóng cho đồ thị theo 1 chiều (hình 40
c), thì số bước sóng yêu cầu là 3. Trong khi nếu thực hiện gán bước sóng theo 2 chiều hoặc ghép cá luồng bị tách thì số bước sóng tối ưu là 2 (hinh 40 d).
Hình 40 : Gắn bước sóng cho RING sử dụng đồ thị đoạn
Trong trường hợp tại nút được tách không có luồng nào đi qua thì số bước sóng của bài toán “đồ thị của các đoạn” chính là kết quả tối ưu của bài toán gán bước sóng cho Ring. Cận trên của bài toán gán bước sóng cho Ring chính là tải lớn nhất trên các cạnh của Ring (tải của ring) cộng với số tối thiểu (luồng quang đi qua các nút). Trong trường hợp xấu nhất, thì số tối thểu của luồng quang đi qua nút bằng tải của Ring trừ đi, do đó số bước sóng tối đa sẽ là (2 nhân với tải của Ring trừ 1). Tuy nhiên trường hợp này rất ít khi xảy ra trong thực tế.
b. Phương pháp Heuristic
Một cách tiếp cận khác để giải bài toán gán bước sóng là sử dụng các thuật toán loại Heuristic. Thực tế chứng minh rằng các thuật toán tốt cần kết hợp các phần tử ngẫu nhiên với tiêu chuẩn Heuristic. Ta nhận thấy khi thực hiện gán bước sóng cho một luồng, càng nhiều bước sóng còn trống (có thể sử dụng được) mà luồng đó có thể chọn thì càng gây nhiều rủi ro cho kết quả cuối cùng. Tức là để giảm các khả năng lựa chọn bước sóng cho một luồng cần xác định thứ tự các luồng thực hiện gán bước sóng. Nếu thực hiện gán bước sóng cho những luồng mà có nhiều ảnh hưởng nhất đến các luồng khác sẽ làm giảm bớt
các khả năng lựa chọn bước sóng cho các luồng phía sau, tức là làm giảm rủi ro cho kết quả cuối cùng. Sau đây sẽ giới thiệu một số thuật toán:
+ Đánh số thứ tự của các bước sóng.
+ Sắp xếp các luồng quang theo thứ tự “mức độ ảnh hưởng” đến các luồng quang giảm dần. Mức độ ảnh hưởng được xét theo các tiêu chí sau: Luồng có mức độ ảnh hưởng lớn khi nó có sự giao nhau với nhiều luồng khác nhất trên các chặng mà luồng được định tuyến. Nếu các luồng mà có cùng độ giao nhau thì trước tiên chọn luồng có sự giao nhau nhiều hơn với các luồng có mức độ ảnh hưởng cao hơn. Trong trường hợp đơn giản nhất là chọn theo tiêu chí luồng có số chặng đi qua lớn nhất và có thể thêm điều kiện các chặng này có nhiều tải nhất hoặc đánh số ngẫu nhiên cho các luồng có mức độ ảnh hưởng như nhau. + Thực hiện tuần tự gán bước sóng có số thứ tự nhỏ nhất có thể cho các luồng lưu lượng theo danh sách trên. Khi có một số luồng có “mức độ ảnh hưởng” như nhau thì lựa chọn một cách ngẫu nhiên. Trong trường hợp kết quả không tối ưu thì lặp lại thủ tục tại các điểm đã bỏ qua.
+ Ngoài ra, có thể cải thiện kết quả trên hơn nữa bằng cách lặp lại quá trình chọn và gán ngẫu nhiên một luồng với một bước sóng khác trong số bước sóng có thể sử dụng.