Các phƣơng thức biến hóa của giải thuật di truyền

Một phần của tài liệu Một số thuật toán giải bài toán phân công nhiệm vụ trong hệ thống tính toán không đồng nhất (Trang 38 - 42)

2.4.3.1. Chọn lọc(Selection):

Chọn lọc là các thao tác xử lý mà dựa vào giá trị phù hợp của mỗi cá thể để đánh giá xem cá thể đó có đƣợc bảo lƣu trong vòng sinh sản tiếp theo hay không. Đây chính là một phiên bản nhân tạo mô phỏng chọn lọc trong tự nhiên.

Khởi tạo quần thể các cá thể

Xác định giá trị phù hợp của từng cá thể

Sao chép các cá thể theo giá trị phù hợp của chúng và tạo các cá thể mới dựa vào các toán tử (lai ghép, đột biến, chọn lọc)

Xoá các cá thể không tốt ra khỏi quần thể dựa vào giá trị phù hợp của nó.

Đƣa quần thể mới thay thế quần thể cũ Lặp cho đến khi thoả điều kiện

Trong một quần thể, mỗi cá thể đƣợc xác định bởi một giá trị phù hợp fit[i], giá trị này càng lớn thì nó đƣợc coi là hợp lý.

Chọn lọc có thể đƣợc thực hiện theo nhiều cách, nhƣng có một phƣơng pháp đơn giản và hiệu quả đó là phƣơng pháp quay trên vòng tròn có hƣớng, vòng quay của chúng có kích cỡ khác nhau ứng với từng giá trị phù hợp của cá thể.

Việc quay vòng tròn là để lựa chọn các ứng cử viên cho vòng sinh sản tiếp theo đƣợc thực hiện nhƣ sau.

* Tính tổng phù hợp của tất cả các thành viên trong quần thể.

* Phát sinh một số ngẫu nhiên S trong khoảng từ 0 đến tổng phù hợp. * Cá thể đầu tiên trong quần thể có tổng chạy  S sẽ đƣợc chọn.

.

Nhập vào quần thể cũ, giá trị phù hợp từng cá thể fit[i], tổng

phù hợp fitnness

Phát sinh P0 ngẫu nhiên  (0,1)

Tính S: = P0 t ot alfit nness

j:=1, runtotal:=0

Tính runtot al: = runtotal + fit[j].

Vị trí lựa chọn j

j:= j+1 Runtotal > S

2.4.3.2. Lai ghép (Crossover):

Quá trình chọn lọc thực hiện nhằm tìm ra các cá thể tồn tại tốt nhất, nhƣng lại không thể tạo ra các cá thể mới. Trong tự nhiên mỗi cá thể con khi sinh ra đều đƣợc thừa hƣởng gen của cả Bố và Mẹ. Quá trình lai ghép tác động lên các cá thể cha mẹ để tạo ra các con lai tốt. Điều này đƣợc thực hiện bằng cách ghép một hoặc nhiều đoạn của hai nhiễm sắc thể cha và mẹ với nhau. Phép toán lai ghép xảy ra với xác suất Pcross và đƣợc thực hiện nhƣ sau:

- Hai chuỗi trong quần thể đƣợc chọn để ghép đôi một cách ngẫu nhiên. - Phát sinh một số ngẫu nhiên k  [0,1]. Hai chuỗi đƣợc tạo ra bằng việc sao chép các ký tự từ 1 đến k và tráo đổi các ký tự k + 1 đến 1.

- Đƣa hai cá thể vào quần thể để tham gia các quá trình tiến hoá tiếp theo. Giả sử ta có hai chuỗi

a1a2...akak+1...an b1b2...bkbk+1...bn

sau khi lai ghép ta đƣợc hai chuỗi con là: a1a2...akbk+1...bn

b1b2...bkak+1...an

Nhƣ vậy, hai chuỗi con sinh ra đều đƣợc thừa hƣởng các đặc tính của cả cha và mẹ. Lựa chọn và lai ghép cá thể cho phép giải thuật từ chỗ thông tin đã biết để tìm đến vùng tốt hơn. Hình (2.7) mô tả quá trình lai ghép.

Hình 2.7: Lưu đồ thuật toán quá trình lai ghép.

2.4.3.3. Đột biến (mutation): (adsbygoogle = window.adsbygoogle || []).push({});

Nhƣ đã biết quá tình chọn lọc và lai ghép tạo ra các chuỗi mới, song chúng không tạo ra các thông tin ở mức bit (gen), vì vậy quá trình đột biến đƣợc đƣa vào và đƣợc áp dụng cho các bit với một xác suất nhỏ Pmu. Xác suất nhỏ vì thực chất quá trình đột biến là quá trình tìm kiếm ngẫu nhiên, nếu Pmu lớn thì giải thuật di truyền trở thành giải thuật tìm kiếm ngẫu nhiên.

Nếu Pmu là xác suất đột biến thì có Pmu*1*size (size – số lƣợng cá thể trong quần thể) bít bị đột biến. Xác suất đột biến tại mỗi bít là nhƣ nhau. Bit 0 thay bằng 1 và ngƣợc lại. Quá trình đột biến đƣợc thực hiện nhƣ sau:

Chọn ngẫu nhiên một cá thể (cá thể mới đƣợc tạo ra từ quá trình lai ghép) trong quần thể.

Phát sinh một số ngẫu nhiên P0 trong khoảng [ 0,1 ]. Nếu P0 PMu tiến hành đột biến tại nút đó.

Phát sinh P0 ngẫu nhiên  (0,1)

Thực hiện tráo đổi các bít tại vị trí k

Chỉ số của hai chuỗi bố mẹ trong quần thể

k: = 1

Phát sinh k ngẫu nhiên  (1,1)

Hai chuỗi con mới

Hình 2.8: Lưu đồ thuật toán của quá trình đột biến.

Một phần của tài liệu Một số thuật toán giải bài toán phân công nhiệm vụ trong hệ thống tính toán không đồng nhất (Trang 38 - 42)