.3 Các vấn đề cơ bản về thuật toán di truyền

Một phần của tài liệu (LUẬN văn THẠC sĩ) định tuyến multicast trong mạng cáp quang (Trang 37 - 44)

Thuật toán di truyền là một kỹ thuật của khoa học máy tính nhằm tìm kiếm các giải pháp thích hợp cho các bài tốn tối ưu tổ hợp. Giải thuật di truyền là một phân ngành của giải thuật tiến hóa vận dụng các nguyên lý của tiến hóa như di truyền, đột biến, chọn lọc tự nhiên và trao đổi chéo.

Giải thuật di truyền thường được ứng dụng nhằm sử dụng ngơn ngữ máy tính để mơ phỏng q trình tiến hóa của một tập hợp những đại diện trừu tượng (gọi là nhiễm sắc thể) của các giải pháp có thể (gọi là những cá thể) cho bài tốn tối ưu hóa vấn đề. Tập hợp này sẽ tiến triển theo hướng chọn lọc những giải pháp tốt hơn.

Liên quan đến giải thuật di truyền có các khai niệm sau: - Sự diểu diễn của cá thể (encoding mechanism)

Để áp dụng được thuật toán di truyền thì việc đầu tiên là phải tìm được cách biểu diễn của các cá thể sao cho mỗi cá thể biểu diễn một giải pháp của bài

toán đang được quan tâm. Có rất nhiều các dạng biểu diễn khác nhau như biểu diễn nhị phân, biểu diễn nguyên, biểu diễn bằng ma trận,.... Các thuật toán di truyền ban đầu đều sử dụng biểu diễn nhị phân, trong đó một cá thể là một xâu bít 0 và 1. Tuy nhiên khi thuật toán di truyền đã được áp dụng để giải nhiều bài toán trong nhiều lĩnh vực khác nhau, cách biểu diễn nhị phân đơi khi gây những khó khăn cho các thao tác khác. Vì vậy, tùy theo các bài tốn thực tế, người giải bài tốn có thể lựa chọn các cách biểu diễn cho phù hợp nhất với chúng.

- Đánh giá độ thích nghi (fitness function)

Độ thích nghi là khả năng phù hợp của mỗi cá thể (giải pháp) đối với mơi trường (bài tốn). Việc xây dựng độ thích nghi cũng là một bước quan trọng trong thuật toán di truyền. Để đánh giá được độ thích nghi của các cá thể giải thuật di truyền sử dụng một hàm đo gọi là Fitness Function .

Hàm Fitness là hàm dùng để đánh giá độ tốt của một lời giải hoặc cá thể. Hàm Fitness nhận vào một tham số là xâu mã hóa nhị phân của một cá thể và trả ra một số thực. Tùy theo giá trị của số thực này mà ta biết độ tốt của cá thể đó (chẳng hạn với bài tốn tìm cực đại thì giá trị trả ra càng lớn thì cá thể càng tốt, và ngược lại, với bài tốn tìm cực tiểu thì giá trị trả ra càng nhỏ thì cá thể càng tốt).

- Lai ghép (crossover operator)

Là quá trình tạo ra cá thể mới dựa trên nhiều cá thể đã có, gọi là các cá thể cha-mẹ. Hai cá thể con được tạo ra bằng cách hoán đổi các gen từ cá thể cha mẹ.

+ Lai ghép đơn điểm (single-point crossover): Lai ghép đơn điểm được mô tả như sau:

1. Chọn ngẫu nhiên hai cá thể trong quần thể bằng các phương pháp chọn lọc. Giả sử cá thể của cha mẹ có m gen.

2. Tạo một số ngẫu nhiên trong khoảng từ 2 đến m-1, số này sẽ được gọi là

điểm lai. Điềm lai chia các chuỗi cá thể cha mẹ ra thành hai nhóm chuỗi con dài m1 và m2. Hai chuỗi cá thể con mới sẽ là m11+m22 và m21 và m21+m12. 3. Đưa hai cá thể mới này vào quần thể để tham gia các q trình tiến hóa tiếp theo.

Ví dụ: giả sử ta có 2 cá thể A và B như sau:

Cá thể A

Cá thể B

Giả sử điểm lai là k=5.

Cá thể A

Cá thể B

Khi đó hai cá thể con A’ và B’ sẽ có bộ gen được biểu diễn như sau: Cá thể con A’ 1 1 0 1 0 0 1 0 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 0 1 1 1 0 1 0 0 1 1 0 1 0 1 0 0

Cá thể con B’

+ Lai ghép đa điểm (multi-point crossover): Lai ghép đa điểm là dạng tổng quát của lai ghép đơn điểm và được mô tả như sau:

1. Chọn ngẫu nhiên hai cá thể trong quần thể bằng các phương pháp chọn lọc. Giả sử cá thể của cha mẹ có m gen.

2. Chọn nhiều điểm lai ghép: k1, k2, …, km, m điểm lai ghép này sẽ chia đoạn

mã gen của cha-mẹ ra thành m+1 đoạn

3. Hai các thể mới được tạo ra bằng cách ghép các đoạn của hai bộ gen cha mẹ với nhau theo quy tắc: các đoạn ở vị trí lẻ được giữ nguyên, các đoạn ở vị trí chẵn được chuyển hóa cho nhau như trong lai ghép đơn điểm .

4. Đưa hai cá thể mới này vào quần thể để tham gia các q trình tiến hóa tiếp theo.

Ví dụ: giả sử có hai cá thể A và B được chọn lọc theo một phương pháp chọn lọc

Giả sử các vị trí lai ghép l à 2, 4, 7; biểu diễn như trong hình sau: 0 1 1 1 0 0 1 0

Hai cá thể con có bộ gen được biểu diễn như sau:

+ Quá trình lai ghép:

Phép lai xảy ra với xác suất là pc (đây là tham số do người dùng tự định nghĩa). Xác suất pc này cho ta số cá thể tham gia lai ghép là pc* pop_size (pop_size là kích thước quần thể). Quá trình được tiến hành như sau:

Chọn cặp cá thể từ quần thể hiện tại

Sinh ngẫu nhiên một số hữu tỷ r trong khoảng [0..1].

Nếu r < pc chọn điểm lai ghép bằng cách tạo một số ngẫu nhiên k với 1≤ k ≤

độ dài xác định của xâu Thực hiện hiện lai ghép. - Đột biến (mutation operator)

Là quá trình tạo ra cá thể mới từ một cá thể ban đầu bằng cách thay đổi một số gen của nó. Nếu sử dụng biểu diễn nhị phân thì phép đột biết thường sử dụng là bit flipping, nghĩa là nếu gen là 1 thì được đổi thành 0 và ngược lại.

Ví dụ: ta chọn k=3 là vị trí thay đổi khi đó ta có

Cá thể A

Cá thể đột biến

+ Quá trình đột biến:

Tương tự như quá trình lai ghép, quá trình đột biến cũng được thực hiện với một xác suất đột biến pm (tham số này do người dùng tự định nghĩa). Quá trình đột biết xảy ra như sau:

1. Chọn một cá thể trong quần thể.

2. Sinh ngẫu nhiên một số hữu tỷ r trong khoảng [0..1].

3. Nếu r < pm Chọn điểm đột biến bằng cách tạo một số ngẫu nhiên k với 1≤ k ≤ độ dài xác định của xâu

4. Flipping gen thứ k

- Chọn lọc và thay thế (slection and replacement)

Chọn lọc và thay thế (cũng được biết như là reproduction) là quá trình chọn những cá thể từ quần thể hiện tại để tạo ra thế hệ sau của nó. Trong q trình này diễn ra sự đào thải những cá thể xấu chỉ giữ lại những cá thể tốt. Những cá thể có độ thích nghi lớn hơn hoặc bằng với độ thích nghi tiêu chuẩn sẽ được giữ lại và độ thích nghi của các cá thể trong quần thể sẽ hoàn thiện hơn sau nhiều thế hệ. Để cho đơn giản chúng ta thường sắp xếp độ thích nghi của các cá thể theo thứ tự giảm dần. Quá trình này được mơ tả như sau:

1 0 0 1 1 0

Tính độ thích nghi của từng cá thể trong quần thể hiện hành, lập bảng cộng dồn các giá trị thích nghi ( theo số thứ tự gán cho cá thể ). Giả sử quần thể có n các thể. Gọi độ thích nghi của cá thể thứ i là Fi, tổng dồn thứ i là Fti, tổng độ thích nghi của tồn quần thể là Fm.

Tạo một số ngẫu nhiên F trong trong đoạn từ 0 đến Fm.

Chọn cá thể thứ k đầu tiên thỏa mãn F ≥ Ftk đưa vào quần thể của thế hệ mới - Điều kiện dừng (stopping conditions)

Thuật tốn di truyền là một q trình ngẫu nhiên, nên chúng ta khơng thể đảm báo chắc chắn thuật tốn di truyền sẽ dừng sau hữu hạn bước. Vì vậy, để đảm bảo thuật toán di truyền sẽ kết thúc, người dùng thường phải định nghĩa điều kiện dừng cho thuật tốn. Ví dụ, nó sẽ dừng sau một số hữu hạn các thế hệ hoặc tối ưu toàn cục đã đạt được, hoặc giá trị trung bình của độ thích nghi trên tất cả các cá thể của quần thể khơng thay đổi...

Tóm lại, mã giả của một thuật tốn di truyền được viết như sau:

Bắt đầu t=0;

Khởi tạo p(t);

Tính độ thích nghi cho các cá thể thuộc P(t);

Khi (điều kiện dừng chưa thoả mãn) lặp

t=t+1;

Tái sinh P’(t) từ P(t); Lai Q(t) từ P(t-1); Đột biến R(t) từ P(t-1);

Hết lặp;

Kết thúc;

Một phần của tài liệu (LUẬN văn THẠC sĩ) định tuyến multicast trong mạng cáp quang (Trang 37 - 44)

Tải bản đầy đủ (PDF)

(57 trang)