Thuật toán di truyền cho bài toán định tuyến multicast được đưa ra trong [6, 7]. Các tác giả trong [6] đưa ra thuật toán di truyền cho việc định tuyến multicast trong mạng điện tử truyền thống, và các tác giả trong [7] đưa ra thuật toán cho bài toán định tuyến trong mạng quang. Vì sự biểu diễn của các cá thể trong [7] chỉ là sự biến đổi của cách biểu diễn trong [6], và cách tiếp cận trong [6] là sáng sủa với người sử dụng hơn trong [7]. Vì vậy, chúng tơi sẽ sử dụng cách tiếp cận trong [6] để biểu diễn các cá thể của thuật toán di truyền cho việc định tuyến.
Để tìm được cây steiner-tree dựa trên thuật toán GA, các đường dẫn từ nút nguồn tới tất cả cá nút đích là được tìm trước. Sau đó, thuật tốn Prim’s MSpT (Minimum Spanning Tree) trong [13] được áp dụng tới đồ thị (được tạo thành từ việc kết hợp các đường dẫn đã tìm trước đó) để tìm cây MSpT với giá
truyền thông là nhỏ nhất bằng việc cắt và xóa tất cả các nhánh khơng dẫn tới bất kỳ một nút đích nào. Ý tưởng chính của thuật tốn là tìm nhiều cây MSpTs và cây MSpT với giá nhỏ nhất trong chúng được chọn để thiết lập light-forest. Để áp dụng thuật toán GA cho bài toán định tuyến multicast, các nút mạng cần được trang bị một bảng định tuyến, trong đó chứa K đường (K là tham số thiết kế trong thuật toán) cho mỗi cặp nguồn-đích, như được mơ tả trong hình
3.1 dưới đây. v1
Hình 3.1. Ví dụ của bảng định tuyến
Các bước chính của thuật toán định tuyến multicast dựa trên thuật tốn di truyền được mơ tả như sau
1) Sự biểu diễn của các cá thể
Đưa ra một nút nguồn s, và một tập các nút đích D ={d1, d2, …, dn}, một cá
thể có thể được biểu diễn bởi một xâu của các số nguyên với độ dài n. Một gi, 1 ≤ i ≤ n, của một cá thể là một số nguyên trong khoảng {0,1, …, K-1} tương ứng với đường đi giữa nút s và di trong bảng định tuyến (di ∈D). Sự quan hệ
giữa cá thể, các gen và bảng định tuyến được mơ tả trong hình 3.2 dưới đây
Hình 3.2: Sự quan hệ giữa cá thể, gen và bảng định tuyến
2) Khởi tạo quần thể
Quá trình khởi tạo sinh ra P cá thể khác nhau, trong đó P là tham số thiết kế.
Một cá thể được tạo bằng cách kết hợp n số nguyên (n là số các nút đích)
V0-V4 V0-V5-V4 ….. V0-V5-V1-V2-V3-V4 0 1 … K-1 Route list Route no. Route table of V0->V4 gi =1 gn …… gi ……… . g2 g1 s-di s-….-di ….. s-…………. -di 0 1 … K-1 Route list Route no.
được sinh ngẫu nhiên trong khoảng [0, K-1], với K là số các đườ ng đi cho mỗi cặp nguồn- đích trong bảng định tuyến. Các cá thể này hình thành quần thể ban đầu. Chú ý rằng, K đường cho mỗi cặp nguồn – đích là được tính tốn
off-line trước khi quá trình khởi tạo xảy ra. Thông thường, các đường này được tính tốn dựa trên thuật tốn tìm k đường ngắn nhất cho mỗi cặp nguồn - đích.
3) Hàm đo đợ thích nghi (Fitness Function)
Việc định nghĩa hàm đo độ thích nghi là tối quan trọng đối với một thuật tốn di truyền, bởi vì nó xác định cá thể nào nên được chọn trong q trình tiến hóa. Trong [6] và [7], mục tiêu là để tối ưu giá của light-forest. Giá được định nghĩa là số bước sóng sử dụng, do vậy hàm đo độ thích nghi được định nghĩa như sau:
Gọi C(i) là số các liên kết của light-forest được xây dựng từ các đường biểu
diễn bởi cá thể i, và L là số các link của mạng. Giá trị thích nghi F(i) của cá
thể i được định nghĩa là F(i) = 1- C(i)/L.
Dễ dàng để nhìn thấy với sự định nghĩa trên của hàm đo độ thích nghi, mục tiêu của thuật toán di truyền là để tối ưu số liên kết của light-forest trong khi sự sẵn sàng (có thể dùng được) của bước sóng trên các liên kết này không được xem xét. Điều này có thể dẫn tới một light-forest có giá nhỏ hơn nhưng khó để thực hiện, bởi vì light-forest này có vài nút đích trên các nhánh khơng với bước sóng rỗi. Do vậy, để đảm bảo sự thỏa hiệp (trade-off) giữa giá của light-forest và sự thực hiện, chúng tôi định nghĩa hàm đo độ thích nghi mới như sau:
Gọi d(i) là số các nút đích của một yêu cầu multicast, l(i) là số bước sóng, r(i) là số các đích thuộc các nhánh khơng có bước sóng rỗi của light-forest f(i)
Nếu r(i) = d(i), C = +∞;
Ngược lại C(i) = l(i) + α r(i), trong đó α >0 là tham số thiết kế.
Với cách định nghĩa này, chúng tôi hàm ý rằng, một light-forest bị block chỉ nếu tất cả các đích của nó là khơng có bước sóng rỗi để thực hiện. Rõ ràng,
C(i) tăng khi r(i) tăng. Hàm đo độ thích nghi mới chỉ ra rằng, nếu hai forests
có cùng số bước sóng, thì forest nào có số các đích khơng với tới được (khơng tồn tại các bước sóng rỗi) bé hơn sẽ có giá nhỏ hơn. Xét hai forests f1 và f2 ( ở đây chúng tôi bỏ tham số i cho dễ nhìn, vì tham số i chỉ là hình thức) đối với một yêu cầu multicast, và chúng ta sử dụng l1, r1 (1 ≤ r1 ≤ d-1) và l2, r2 (1≤ r2 ≤ d-1) là số bước sóng và số các nút đích khơng với tới được đối với forests f1 và f2, tương ứng. Giả sử rằng, r1 nhỏ hơn r2, vì vậy r2 ≥ r1 + 1. Vì mục tiêu
của chúng ta là tối ưu xác suất tắc nghẽn, vì vậy forest với số các đích không với tới được bé hơn nên có giá nhỏ hơn. Do vậy, tham số α nên được chọn sao cho bất phương trình sau đây được thỏa mãn với bất kỳ giá trị nào của l1 và l2:
l1 + α r1 < l2 + α r2
Trường hợp xấu nhất xảy ra khi l1 đạt tới giá trị cực đại, , l2 đạt giá trị cự tiểu, và f1 có ít hơn một đích không với tới được so với f2. Gọi L là số hops của
đường đi dài nhất trong mạng, chúng ta có:
d L + α r1< d 1 + α (r1 + 1)
tương đương với:
α > d (L-1)
Chú ý rằng, số đích tối đa của một yêu cầu multicast là N-1 (với N là số nút
mạng) vì vậy, so α nên thỏa mãn điều kiện:
Trong sự thực hiện của chúng tôi, chúng tôi chọn α = (N-1) L (thỏa mãn điều kiện (*)) và giá trị thích nghi F(i) của cá thể i được định nghĩa như là nghịch đảo giá trị của C(i), tức là: F(i) = 1/ C(i).
4) Thao tác lai ghép
Thao tác này bắt trước quá trình giao hợp trong tự nhiên. Để thực hiện lai ghép, hai cá thể được chọn (cá thể cha mẹ) đầu tiên, và một số nguyên (điểm lai ghép) được sinh ngẫu nhiên trong khoảng [2, n-1] ( trong đó n là số nút
đích của yêu cầu multicast). Sau đó, các cá thể mới (con) được sinh ra bằng cách bằng cách thay đổi phần thứ hai của các cá thể cha mẹ của nó như được mơ tả trong hình 3.3 dưới đây.
Trong quá trình lai ghép, thuật toán sẽ xem xét tất cả các cả của các cá thể. Các cặp có độ thích nghi cao hơn sẽ được ưu tiên để lai ghép trước và quá trình sẽ dừng lại khi kích thước của quần thể tăng lên gấp đơi.
Hình 3.3: Sự lai ghép
5) Thao tác đột biến
Thao tác đột biết là một kiểu thay đổi ngẫu nhiên trong một cá thể. Trong thuật toán này, đột biến một điểm được sử dụng. Đó là, một gen của cá thể được thay đổi với một xác suất nào đó (được hiểu như là xác suất đột biến).
Children Parents
Crossover pointer
g1 g2 ….. gi-1 gi g’i+1 ….. g’n-1 g’n g'1 g’2 ….. g’i-1 g’i gi+1 ….. gn-1 gn g1 g2 ….. gi-1 gi gi+1 ….. gn-1 gn g'1 g’2 ….. g’i-1 g’i g’i+1 ….. g’n-1 g’n
Quá trình này cũng được thực hiện khi kích thước quần thể tăng gấp đôi hoặc tất cả các cá thể trong quần thể hiện thời được xem xét.
Hình 3.4: Thao tác đột biến
6) Quá trình chọn lọc
Sau khi áp dụng các thao tác lai ghép và đột biến. Quá trình chọn lọc sẽ lựa chọn P có độ thích nghi cao nhất từ cả các cá thể cha mẹ và cá thể con cho thế hệ tiếp theo. Quá trình này được lặp lại cho đến khi điều kiện dừng được thỏa mãn.
7) Điều kiện dừng
Sự thực hiện của thuật tốn di truyền có thể dừng khi hoặc giá trị trung bình hoặc giá trị cao nhất của độ đo thích nghi không thay đổi hoặc số thế hệ đã vượt quá G (G là tham số thiết kế).