a/ Lai ghép một điểm
Giả sử với hai cá thể cha và mẹ đã được chọn P1, P2:
P1= (1110001010), P2= (0101100111), độ dài L 10.
Toán tử này cần sinh ngẫu nhiên một vị trí k (1 k L), sau đó hai cá thể con được tạo thành bằng cách tráo đổi các gen của cặp cha mẹ tính từ điểm cắt.
Giả sử điểm cắt đã chọn k 8, hai con được sinh ra như sau: C1= (1110001011), C2= (0101100110) Thủ tục lai ghép một điểm
Procedure lai1diem(k, P1, P2: var C1,C2); Begin For i:=1 to k do Begin C1[i]:=P1[i]; C2[i]:=P2[i]; End; For i:=k+1 to L do Begin C1[i]:=P1[i]; C2[i]:=P2[i]; End; End;
b/ Lai ghép nhiều điểm
Lai ghép nhiều điểm thực hiện tương tự lai ghép một điểm. Với hai cá thể cha kmẹ đã chọn P1, P2, toán tử này cần sinh ngẫu nhiên k vị trí i1,i2,...,ik (giả thiết i1 i2 ... ik). Các điểm cắt chia các cá thể đã chọn thành các đoạn được
đánh số chẵn và lẻ. Hai cá thể con được tạo thành bằng cách tráo đổi các gen cha mẹ tùy theo đoạn chẵn hay đoạn lẻ.
Giả sử các điểm cắt đã chọn là: 2,4,6,9.
P1= 1001110101, P2= 0100111110 C1= 1000111111, C2= 0101110101
c/ Lai ghép mặt nạ
Với hai cá thể cha mẹ đã chọn P1, P2 và phát sinh một chuỗi nhị phân ngẫu nhiên cũng có độ dài L gọi là chuỗi mặt nạ.
P1= (1110001010), P2= (0101100111), U= (0110011001), độ dài L 10. Các con được tạo ra dựa trên chuỗi mặt nạ này để quyết định lấy thành phần của cá thể cha hay cá thể mẹ dựa trên nguyên tắc:
Gen thứ i của cá thể con C1 được lấy gen thứ i của P1 nếu bit mặt nạ tương ứng là 1 và lấy gen thứ i của P2 nếu bit mặt nạ là 0. C2 thì ngược lại.
C1= (0111101110), C2= (1100000011) Thủ tục lai ghép mặt nạ:
Procedure laimatna(u, P1, P2; var C1, C2); Begin
For i:=1 to L do Begin
If U[i]=1 then Begin
C1[i]:=P1[i]; C2[i]:=P2[i]; End
Else
Begin
C1[i]:=P2[i]; C2[i]:=P1[i]; End;
End; End;