Để dễ dàng nhận ra các thiếu sót của thuật tốn Member-Only, chúng tơi sẽ trình bày thơng qua các ví dụ dưới đây.
Ví dụ 1
Xét mạng máy tính đơn giản như trong hình 2.1, trong đó nhãn của các cạnh là giá của chúng. Giả sử rằng, chúng ta có một yêu cầu multicast (s, {d1,
d2, d3}), và chúng ta áp dụng thuật toán Member-Only ở trên. Kết quả của
nhìn thấy từ hình vẽ chúng ta có thể tìm một light-forest khác ({s-MI-d1-d3-
d2}) với giá ít hơn 2+2+3+5 =12. Lý do ở đây là , thuật tốn Member-Only
tìm light-forest với thứ tự các nút trong của tập UV là cố định trong quá trình xét các nút trong UV cho việc xây dựng cây multicast. Thực tế, như chúng ta
nhìn thấy ở đây, sau khi thêm một nút từ UV tới cây T, thứ tự của các nút còn lại trong UV có thể thay đổi theo nghĩa khoảng cách giữa chúng đến cây hiện hành. Cụ thể, trong ví dụ này, chúng ta có tập UV = {d1, d2, d3} với thứ tự d1<
d2 < d3, và do vậy thứ tự các nút được xét lần lượt trong việc xây dựng cây sẽ
là d1, d2 và d3. Tuy nhiên, sau khi thêm d1 vào cây, nút MI được thêm vào V’, và tập UV bây giờ cịn d2 và d3. Sau đó, dựa vào khoảng cách từ d2 và d3 tới
cây hiện hành, chúng ta có thứ tự d3 < d2 trong UV, vì vậy d3 nên được xét
trước nút d2 trong quá trình xây dựng cây.
Hình 2.1: Mạng đơn giản 1
Để khắc phục nhược điểm này, chúng ta cần thay đổi thuật toán bằng việc xét lần lượt các nút UV tại bước 3 sao cho mỗi lần chúng ta chọn được nút gần
với V nhất. Ví dụ 2 4 5 4 3 3 2 2 s MI d3 d2 d1
Xét mạng đơn giản được mô tả trong hình 2.2 và một yêu cầu multicast (s, {d1, d2}), light-forest được tìm thấy bởi thuật tốn Member-Only sẽ là ({s-VS-
MI-d1-d2}) với giá 3 +2+1+6 =12. Tuy nhiên, một light-forest khác ({s-VS- MI-d1}, {VS-MI-d2}) với giá 3+2+1+ 3+2 = 11 cũng đáp ứng yêu cầu kết nối này. Lý do của sự thiếu sót này đó là thuật tốn Member-Only đã sử dụng dus tại bước 6 như là một ngưỡng (threshold) cho việc tạo một nhánh mới hoặc một cây mới và ngưỡng này là cố định. Cụ thể, trong ví dụ này, sau khi thêm
d1 theo đường đi ngắn nhất (d1, MI, vs, s), tập V chứa đụng nút vs và s, tập V’
chứa đựng nút MI, và tập Z chưa đựng nút vs và s. Bây giờ, xét nút d2, đầu
tiên chúng ta tìm đường ngắn nhất từ nút d2 tới V không qua các nút trong V’ là (d2, d1) và giá của nó là 6. So sánh với giá của đường đi ngắn nhất từ d2 tới
s (trong thuật toán dus) tại bước 8, giá của đường (d2, d1) là nhỏ hơn, do vậy
thuật toán kết nối nút d2 tới nút d1 theo (d2, d1). Tuy nhiên, vì các nút trong Z là hữu dụng cho việc phát triên cây, chúng ta có thể kết nối nút d2 tới nút vs
theo đường (d2, MI, vs) với giá là 3 + 2 = 5 nhỏ hơn giá của đường (d2, d1). Hệ quả là, tổng giá của light-forest sẽ giảm. Sự thiếu sót này có thể loại bỏ bằng cách đặt giá trị của dus tại bước 6, như là khoảng cách từ nút u tới tập Z như được chỉ ra trong thuật toán cải tiến dưới đây
Hình 2.2: Mạng đơn giản.2 3 3 1 6 7 3 2 s MI vs d1 d2
Thuật toán cải tiến:
{
1: F (s, D) = ø, UV = D; 2: V = s, V’ = ø, Z = s, T = ø 3: Xét u ∈UV gần nhất với V.
4: Find P (v, u): v ∈V, x ∈ P (v, u): x V’
5: If tập v: lựa chọn nút v có độ ưu tiên cao nhất
6: duv = d(u, v); dus = min {d (u, x)} : x ∈Z; 7: IF ( P (v, u)) { 8: if (dus ≥duv ) 9: Add link e ∈ P (v, u) to T 10: else { 11: Tìm P (w, u):w ∈Z; 12: duw = d (u, w) 13: if (dus ≥duw )
14: Thêm mọi link e ∈ P (w, u) tới T; 15: else
16: Thêm mọi link link e ∈ P (s, u) to T;
}
17: if (v = MI node) chuyển v từ V tới V’ 18: for x ∈ P (v, u) or P(s, u) or P (w, u):
21: if (x = MC node) chuyển x tới V;
22: if (x = VS node) chuyển x tới Z; } 23: chuyển u từ UV tới V 24: if (UV = ø) 26: STOP. 27: else 28: Go to (3) } 29:ELSE (! P (v, u))
30: Chuyển các nhánh trong T tới F (s, D) và chuyển về bước (2)
}
Chú ý rằng, chúng ta thay đổi ở bước 3 và 6 là các bước quan trọng nhất của thuật toán. Bước 3 quyết định thứ tự các nút đích được thêm vào cây multicast. Bước 6 quyết định khi nào một nhánh mới được tạo. Thêm nữa, nó rất quan trọng để chú ý là sự thay đổi này không làm tăng thêm độ phức tạp của thuật toán ban đầu, bởi vì khoảng cách giữa các nút là được tính tốn off-line. Thêm nữa, những sự cải tiến ở trên không thế loại bỏ được hoàn toàn nhược điểm của cách tiếp cận dựa trên nút nguồn (source-based), như được chỉ ra trong ví dụ sau:
Ví dụ 3
Hình 2.3: Mạng đơn giản 3
Dựa theo chiến lược Source-based đó là xây dựng light-forest dựa trên các đường đường đi ngắn nhất, chúng ta sẽ tìm được light-forest ({s-MI-d1-MC-
d2}) đáp ứng yêu cầu multicast với giá 1+2+1+3 = 7, tròn khi một light-forest
khác ({s-MI-MC-d2}, {MC-d1}) có giá ít hơn là 1+1+3 + 1 = 6 nên được sử dụng.
Để vượt qua nhược điểm này, chương tiếp theo, chúng tơi sẽ trình bày một thuật toán dựa trên thuật toán di truyền GA với mong muốn vượt quan những thiếu sót cố hữu của các thuật tốn sử dụng các đường đi ngăn nhất trong việc xây dựng cây multicast.
3 1 1 1 2 s MI MC d1 d2
Chương III: ÁP DỤNG GIẢI THUẬT DI TRUYỀN CHO ĐỊNH TUYẾN MULTICAST