QUANG
II.1 Các khái niệm và định nghĩa
Để hỗ trợ kiểu truyền thông multicast được hiệu quả, các nút mạng cần có khả năng phân chia ánh sáng (light splitting) đó là: một nút với khả năng phân chia ánh sáng có thể chuyển một tín hiệu đến một cổng vào tới nhiều cổng ra trên cùng một bước sóng. Một nút với khả năng như vậy gọi là nút MC (mutlicast-Capable). Vì việc xây dựng các nút MC là đắt nên thường chỉ một số nút chiến lược trong mạng là MC và các nút cịn lại khơng có khả năng phân chia ánh sáng (nút MI – Multicast – Incapable). Một mạng cáp quang như vậy được gọi là mạng quang với khả năng phân chia bước sóng thưa (optical network with sparse light splitting).
Một nút MI có thể là ToC (Tap – or - Continue) hoặc TaC (Tap – and - Continue). Trong đó, nút ToC chỉ có khả năng trích (lấy để sử dụng) hoặc chuyển tiếp tín hiệu đến một cổng ra. Nút TaC có cả hai khả năng này.
Một nút MC được trang bị thêm khả năng chuyển đổi bước sóng (wavelength convert) thì có thể chuyển tín hiệu từ một đầu vào đến bất kỳ đầu ra nào trên bất kỳ bước sóng nào, do vậy nó được gọi là nút nguồn ảo VS (Virtual Source).
Rõ ràng, khi phân chia một tín hiệu quang thành nhiều tín hiệu thì hiệu năng của nó sẽ bị suy giảm. Vì vậy, việc phân chia (splitting) tín hiệu quang phải có giới hạn. Điều này được biết như là Drop-off, nghĩa là một tín hiệu quang chỉ được phân chia thành k tín hiệu nào đó (k được xác định trước).
II.2 Bài tốn
Với các khái niệm đã trình bày như trên, bài toán định tuyến và gán bước sóng đáp ứng yêu cầu multicast có thể phát biểu như sau:
Topo mạng: Một mạng cáp quang có thê biểu diễn như một đồ thị G(V, E),
trong đó V là số nút trong mạng và E là tập các kết nối. Giả sử các kết nối là
hai chiều, vì vậy G là đồ thị vô hướng. Hơn nữa, mạng chỉ có một số nút là
MC, VS tại các nút chiến lược, các nút còn lại là MI với khả năng TaC.
Kiểu truyền thông: Mutlicast, nút nguồn s cần gửi các gói tin đến một tập các D các nút đích (D là tập con của V).
Yêu cầu truyền thông: Các yêu cầu truyền thơng là dynamic và tn theo q
trình Poisson. Nghĩa là, các yều cầu đến mạng một cách ngẫu nhiên và xác suất của một nút là nút nguồn hoặc đích là như nhau. Thời gian nắm giữ đường truyền theo phân bố mũ.
Mục tiêu: Thiết lập các light-tree (hoặc light-forest) cho các yêu cầu kết nối
multicast này xác suất tắc nghẽn là ít nhất.
Gọi N là số các yêu cầu kết nối đến trong khoảng thời gian T nào đó, với mỗi
một yêu cầu kết nối i, gọi di là tổng số các nút đích. Bởi vì trong truyền thơng multicast, chỉ cần một tập con các nút đích được kết nối thì truyền thông vẫn xảy ra. Gọi ri là số các nút đích không được phục vụ trong yêu cầu kết nối i. Khi đó, xác suất tắc nghẽn p của mạng được tính theo cơng thức sau:
) 1 ( 1 1 N i i N i i d r p
II.3 Các cách tiếp cận giải bài tốn
Để tối ưu hóa xác suất tắc nghẽn của mạng, một cách tự nhiên, chúng ta nên tiết kiệm tài nguyên mạng cho mỗi kết nối. Vì vậy, các cách tiếp cận để giải bài toán thường tìm các cây steiner-tree (còn gọi là cây multicast) nhỏ nhất (có tổng số các liên kết ít nhất) để thiết lập light-tree (hoặc light-forest) [1, 2, 3]. Có nhiều cách để xây dựng các steiner-tree khác nhau, trong mục này chúng tơi sẽ trình bày thuật tốn Member-Only [1, 2, 3] được đánh giá là hiệu quả nhất về thời gian thực hiện và có xác suất tắc nghẽn chấp nhận được cho việc định tuyến multicast và gán bước sóng trong mạng quang. Từ đó chúng tơi cũng chỉ ra những thiếu sót có thể cải tiến của của thuật toán này.
II.3.1 Thuật toán Member-Only
Các ký hiệu và định nghĩa:
F(s, D): là tập các cây multicast (rừng –forest) cho một yêu cầu kết nối
multicast với nút nguồn s và tập các nút đích D.
V: Là tập các nút được dùng cho việc mở rộng (phát triển) cây. V’: Là tập các nút không được dùng cho việc mở rộng cây. Z: Tập các nút nguồn ảo VS.
UV: Tập các nút đích chưa được thêm vào cây F(s, D)
T: Tập các nút trong cây multicast.
P (x, y): là đường đi ngắn nhất giữa nút x và y.
d(x, y): là giá của đường đi P (x, y) được tính dựa trên số hop.
Hơn nữa, các nút trong mạng được ấn định các độ ưu tiên khác nhau như sau: Nút VS có độ ưu tiên cao nhất, theo sau là các nút MC và mức thấp nhất là các nút MI.
Với các ký hiệu và định nghĩa như trên, mã giả của thuật tốn Member-Only có thể tóm tắt như sau:
{
1: F (s, D) = ø, UV = D; UV được sắp xếp theo thứ tự không giảm theo khoảng cách của chúng đến nguồn s.
2: V = s, V’ = ø, Z = ø, T = ø
3: Xét các nút đích trong UV lần lượt. Giả sử rằng, chúng ta đang xét nút u. 4: Tìm P (v, u): v ∈V, x ∈ P (v, u): x V’
5: If tồn tại một tập các nút v: lựa chọn nút v với độ ưu tiên cao nhất 6: duv = d(u, v); dus = d (u, s)
7: IF ( P (v, u)) {
8: if (dus ≥duv )
9: Thêm mọi link e ∈ P (v, u) tới 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) to T; 15: else
16: Thêm mọi link e ∈ P (s, u) to T;
}
17: if (v = MI node) chuyển v từ V sang V’ 18: for x ∈ P (v, u) or P(s, u) or P (w, u):
19: if (x ≠ v (or x ≠ s or x ≠ w) && x ≠ u){ 20: if (x = MI node) chuyển x tới V’;
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 sang V 24: if (UV = ø) 26: STOP. 27: else 28: Go to (3) } 29:ELSE (! P (v, u))
30: Chuyển các nhánh từ T tới F (s, D) và chuyển về bước (2)
}
Mặc dù thuật tốn này có thể tìm được light-forest trong phần lớn các trường hợp, nhưng nó vẫn có lỗi trong một số trường hợp được mơ tả dưới đây.
II.3.2 Những thiếu sót của thuật tốn Member-Only
Để 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 tố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
III.1 Giải thuật di truyền
III.1.1 Giới thiệu
Trong thời đại máy tính điện tử hiện nay thì việc giải quyết các bài toán tối ưu là mối quan tâm hàng đầu của các nhà khoa học trong mọi lĩnh vực đời sống xã hội. Trong nhiều thập kỷ qua, các nhà khoa học đã không ngừng nghiên cứu và đưa ra rất nhiều giải pháp cho bài toán tối ưu, đặc biệt là các bài toán tìm kiếm tối ưu. Tuy nhiên, giải pháp nào cũng tồn tại những khó khăn nhất định và lời giải của bài tốn khơng phải lúc nào cũng là tối ưu nhất. Thuật toán di truyền xuất hiện vào khoảng năm 1975 đã khắc phục được những nhược điểm lớn của những thuật toán trước đó. Thuật tốn di truyền được coi là một công cụ tốt nhất để giải quyết những vấn đề trong lĩnh vực tìm kiếm và tối ưu tổ hợp.
Sự tìm kiếm đã bắt đầu được sử dụng rộng rãi và phổ biến trong các chương trình tiến hóa. Giữa năm 1980, thuật tốn di truyền đã bắt đầu được ứng dụng trong hàng loạt những vấn đề lớn từ những ý tưởng toán học trừu tượng đến những kết quả khoa học như sự điều khiển dịng chảy, những khn mẫu, sự phân lớp và sự tối ưu cấu trúc. Ban đầu những ứng dụng này phần lớn chỉ mang tính chất lý thuyết. Tuy nhiên, khi khối lượng tìm kiếm liên tục được tăng lên, thì thuật tốn di truyền càng hướng tới những khu vực tốt hơn. Khối lượng của sự tìm kiếm được cung cấp bởi sự phát triển nhanh theo hàm mũ của máy tính và sự phát triển của Internet. Ngày nay, các chương trình tiến hóa là một lĩnh vực rất được ưa chuộng và thuật toán di truyền đã giải quyết được những vấn đề thường quan tâm trong lĩnh vực nghiên cứu có sự thay đổi
như sự dự báo trước của thị trường chứng khoán, trong việc lập kế hoạch, lĩnh vực hóa sinh, sinh học phân tử...và sức mạnh của nó đã được chứng minh bằng các thành quả mà các lĩnh vực ứng dụng đã đạt được.
III.1.2 Ý tưởng của thuật toán di truyền
Thuật toán di truyền được xây dựng dựa trên quy luật tiến hóa sinh học hay phát triển tự nhiên của một quần thể sống. Các cá thể trải qua một quá trình phát triển và sinh sản để tạo ra những cá thể mới cho thế hệ tiếp theo. Trong quá trình tăng trưởng và phát triển những cá thể xấu (theo một tiêu chuẩn nào đó hay cịn gọi là độ thích nghi với mơi trường) sẽ bị đào thải, ngược lại, những cá thể tốt sẽ được giữ lại (đây chính là quá trình chọn lọc) và được lai ghép (quá trình lai ghép) để tạo ra những cá thể mới cho thế hệ sau. Những cá thể mới được sinh ra mang những tính trạng của cá thể cha-mẹ (còn gọi là hiện tượng di truyền). Những cá thể được giữ lại có độ thích nghi khác nhau và quá trình lai ghép được thực hiện hoàn toàn ngẫu nhiên giữa các cá thể trong quần thể. Các cá thể được tạo ra trong q trình lai ghép có thể sẽ xảy ra hiện tượng đột biến và tạo ra những cá thể khác với cá thể cha-mẹ. Cá thể này có thể tốt hơn hoặc xấu hơn cá thể cha-mẹ. Di truyền và đột biến là hai cơ chế có vai trị như nhau trong quá trình tiến hóa, mặc dù hiện tượng đột biến xảy ra với xác suất nhỏ hơn nhiều so với xác suất của hiện tượng di truyền. Và quá trình lai ghép và chọn lọc là hai quá trình cơ bản xun suốt q trình tiến hóa tự nhiên.
Thuật toán di truyền cũng như các thuật toán tiến hóa nói chung được hình thành trên quan niệm cho rằng, q trình tiến hóa là q trình hồn hảo nhất vì tự nó đã mang tính tối ưu [5]. Thể hiện ở chỗ, cá thể sau được sinh ra bao giờ cũng tốt hơn, hoàn hảo hơn cá thể cha-mẹ, chúng có khả năng thích nghi với sự thay đổi của môi trường cao hơn cá thể cha-mẹ. Tuy nhiên, khơng phải
là tất cả, vẫn có một hoặc một số cá thể của thế hệ trước tốt hơn các cá thể ở thế hệ sau. Vì vậy, trong khi sử dụng thuật toán di truyền, chúng ta cần phải lưu lại những cá thể tốt nhất của mỗi thế hệ, trải qua một số thế hệ (lần lặp) nhất định chúng ta đem so sánh những cá thể tốt nhất của những thế hệ với