2.2. Các thành phần trong thuật toán di truyền
2.2.4. Các phép toán di truyền
Ở phần này, chúng ta sẽ tìm hiểu về các phép toán di truyền phục vụ cho bài toán sắp xếp thời khóa biểu.
2.2.4.1. Phương pháp chọn lọc
Trong tự nhiên, quá trình chọn lọc và đấu tranh sinh tồn đã làm thay đổi các cá thể trong quần thể. Những cá thể tốt, thích nghi được với điều kiện sống thì có khả năng đấu tranh lớn hơn, do đó có thể tồn tại và sinh sản. Các cá thể không thích nghi được với điều kiện sống thì dần mất đi. Dựa vào nguyên lý của quá trình chọn lọc và đấu tranh sinh tồn trong tự nhiên, chọn lựa các cá thể trong thuật toán di truyền chính là cách chọn các cá thể có độ thích nghi tốt để đưa vào thế hệ tiếp theo hoặc để cho lai ghép, với mục đích là sinh ra các cá thể mới tốt hơn. Có nhiều cách để lựa chọn nhưng cuối cùng đều nhằm đáp ứng mục tiêu là các cá thể tốt sẽ có khả năng được chọn cao hơn.
Việc chọn lọc các cá thể từ một quần thể dựa vào độ thích nghi của mỗi cá thể. Các cá thể có độ thích nghi cao có nhiều khả năng được chọn lựa (những cá thể khỏe mạnh có nhiều khả năng được phối giống). Hàm thích nghi chỉ cần là một hàm thực dương, nó có thể không tuyến tính, không liên tục, không khả vi.
Cơ chế lựa chọn được áp dụng khi quần thể P(t+1) được tạo ra từ việc chọn các cá thể từ quần thể P(t) để thực hiện việc lai ghép và đột biến. Có nhiều cách để lựa chọn các cá thể từ một quần thể. Sau đây sẽ giới thiệu một số cơ chế hay áp dụng.
Để tiện mô tả các cơ chế lựa chọn ta đưa ra một số kí hiệu sau:
- Cách biểu diễn các nhiễm sắc thể thứ i là vi.
- Hàm tính độ thích nghi của nhiễm sắc thể vi là f(vi).
- Kích thước quần thể là pop_size.
- Số nhiễm sắc thể cần chọn là N.
* Chọn lọc tỷ lệ (bánh xe Roulet)
Trước khi lựa chọn thì tính các giá trị sau :
- Tính tổng độ thích nghi của cả quần thể:
size pop
i
vi
f
F _
1
) (
- Tính xác suất chọn pi cho mỗi nhiễm sắc thể vi : pi = f(vi)/F - Tính vị trí xác suất qi của mỗi nhiễm sắc thể :
i j
j
i P
q
1
Cơ chế lựa chọn theo bánh xe Roulet được thực hiện bằng cách quay bánh xe Roulet N lần. Mỗi lần chọn một nhiễm sắc thể từ quần thể hiện hành vào quần thể mới bằng cách sau :
- Phát sinh ngẫu nhiên một số r trong khoảng [0,1].
- Nếu r < q1 (tức là r<1)thì chọn nhiễm sắc thể v1; ngược lại thì chọn nhiễm sắc thể thứ i ( 2 i pop_size=M ) sao cho qi-1 r qi
Việc chọn lọc theo cách trên có thể minh họa như sau: Ta có một bánh xe được chia thành n phần, mỗi phần ứng với độ thích nghi của một cá thể. Một mũi tên chỉ vào bánh xe. Quay bánh xe,
khi bánh xe dừng, mũi tên chỉ vào phần nào thì có thể ứng với phần đó được chọn
Với cơ chế lựa chọn như thế này thì có một số nhiếm sắc thể sẽ được chọn nhiều lần. Điều này
Hình 2.2. Minh họa cho kỹ thuật chọn lọc theo kiểu quay bánh xe
phù hợp với lý thuyết lược đồ: Các nhiễm sắc thể tốt nhất thì có nhiều bản sao, nhiễm sắc thể trung bình thì không đổi, nhiễm sắc thể kém thì chết đi.
* Chọn lọc xếp hạng
Cơ chế lựa chọn xếp hạng được mô tả như sau:
- Sắp xếp các nhiễm sắc thể trong quần thể theo độ thích nghi từ thấp đến cao.
- Đặt lại độ thích nghi cho quần thể đã sắp xếp theo kiểu: nhiễm sắc thể thứ nhất có độ thích nghi là 1, nhiễm sắc thể thứ hai có độ thích nghi là 2, .v.v., nhiễm sắc thể thứ pop_size có độ thích nghi là pop_size.
Theo phương pháp này việc một nhiễm sắc thể được chọn nhiều lần như trong lựa chọn theo kiểu bánh xe Roulet đã giảm đi. Nhưng nó có thể dẫn đến sự hội tụ chậm và nhiễm sắc thể có độ thích nghi cao cũng không khác mấy so với các nhiễm sắc thể khác.
* Chọn lọc theo cơ chế lấy mẫu ngẫu nhiên Cơ chế lựa chọn:
- Biểu diễn xác suất chọn các nhiễm sắc thể lên trên một đường thẳng.
- Đặt N điểm chọn lên đường thẳng. Các điểm chọn này cách nhau 1/N, điểm đầu tiên đặt ngẫu nhiên trong khoảng [0,1/N]
- Với một điểm chọn, nhiễm sắc thể gần với nó nhất về bên phải sẽ được chọn.
Phương pháp này có đặc điểm là các điểm chọn được phân bố đều trên trục số, do đó sẽ gần với điểm xứng đáng được chọn.
* Chọn lọc tranh đấu Cơ chế lựa chọn :
- Lấy một số nhiễm sắc thể trong quần thể, nhiễm sắc thể nào có độ thích nghi cao nhất được chọn.
Lặp lại thao tác trên N lần.
2.2.4.2. Phương pháp lai ghép
Trên các cá thể được chọn lọc (sau khi thực hiện xong phương pháp chọn lọc), ta tiến hành lai ghép. Với cỡ của quần thể là n, ta đưa ra một xác suất lai ghép là pc. Xác suất này đưa ra hy vọng là có n*pc cá thể được lai ghép.
Với mỗi cá thể, ta thực hiện hai bước sau đây:
Bước 1: Sinh ra một xác suất lai ghép là số thực r nào đó trong đoạn [0,1]
Bước 2: Nếu r < pc thì cá thể đó được chọn để lai ghép từ các cá thể được chọn để lai ghép, ta cặp đôi chúng một cách ngẫu nhiên. Trong trường hợp nhiễm sắc thể là các chuỗi nhị phân có độ dài cố định, giả sử là m, ta có thể thực hiện phép lai ghép như sau:
Với mỗi cặp, sinh ra một vị trí ngẫu nhiên làm điểm bắt đầu ghép là một số nguyên p trong đoạn [0, m-1].
Tổng quát, giả sử có hai cặp nhiễm sắc thể của hai cá thể được chọn lai ghép: a = (a[1],..., a[p], a[p+1],..., a[m]) và b =(b[1],..., b[p], b[p+1],..., b[m])
Cặp này được thay thế bởi hai đoạn con của nhau từ vị trí thứ p+1:
a’ = (a[1],..., a[p], b[p+1],..., b[m]);
và b’ = (b[1],..., b[p], a[p+1],..., a[m]).
2.2.4.3. Phương pháp đột biến
Ta thực hiện đột biến trên các cá thể sau khi đã lai ghép. Đột biến là thay đổi trạng thái của một số gen nào đó trong nhiễm sắc thể. Một gen chịu một xác suất đột biến là pm. Xác suất đột biến pm do ta xác định và là xác suất thấp.
Tổng quát, với nhiễm sắc thể là chuỗi nhị phân. Với mỗi vị trí i trong nhiễm sắc thể: a = (a[1],..., a[p], a[p+1],..., a[m])
Ta sinh ra một số thực ngẫu nhiên pi trong đoạn [0,1]. Đột biến a được biến thành a’ như sau:
a' = [a’[1],..., a’[*],..., a’[m]), trong đó:
a’[*] = a[*] nếu pi >= pm và a’[*] = 1 - a[*] nếu pi < pm.
Sau quá trình chọn lọc, lai ghép, đột biến, một thế hệ mới được sinh ra.
Công việc còn lại của thuật toán là chỉ việc lặp lại các bước trên.