Các toán tử di truyền

Một phần của tài liệu (LUẬN văn THẠC sĩ) bài toán đối sánh mẫu sử dụng giải thuật di truyền (Trang 28 - 33)

2.2.2.1. Mã hoá NST

Các lời giải x của bài toán đƣợc mã hoá bằng các chuỗi nhị phân có độ dài bằng nhau. Ta sử dụng vectơ nhị phân v để biễu diễn các giá trị nguyên của biến x. Giả sử ta đặt p chữ số sau dấu phẩy là độ chính xác cần thiết của các biến. Có

[1, ]

x n , vậy ta cần chia miền xác định của x thành (n 1) 10x p đoạn bằng nhau. Kí hiệu mi là số tự nhiên nhỏ nhất thoả mãn ( 1) 10p 2mi 1

n x , khi đó, một biễu diễn với mỗi xi đƣợc mã hoá bởi một chuỗi nhị phân độ dài mi có dạng: ( 1 2...b0)

i i

m m

b b )

Mỗi một lời giải đƣợc biểu diễn bằng một chuỗi nhị phân độ dài

( 1... )

i

m m i n , m1bit đầu tiên của chuỗi ứng với một giá trị x1 [ , ]a b1 1 , m2 bit tiếp theo của chuỗi ứng với một giá trị x2 [ ,a b2 2],……, mn bit cuối cùng của chuỗi ứng với một giá trị xn [a bn, n].

Nhƣ vậy, trong quá trình tiến hoá ta phải giải mã các chuỗi nhị phân thành các số nguyên xi Di.Ta thực hiện biến đổi theo công thức sau:

1 1 2 0) 2 10 0 ( ...b ) ( .2 ) i i i m j m m j j b b b = x 2.2.2.2. Toán tử chọn lọc

Toán tử chọn lọc là một quá trình loại bỏ các NST kém thích nghi trong quần thể. Có một số dạng chọn lọc nhƣ sau:

* Chọn lọc tỉ lệ:

Là toán tử đƣợc sử dụng phổ biến nhất trong GA. Xác suất lựa chọn của mỗi cá thể tỷ lệ thuận với giá trị độ thích hợp của nó, đƣợc tính theo công thức sau:

Pi = f(vi)/ F ( i = 1…pop-size – kích cỡ của quần thể) gọi là xác suất chọn cho mỗi NST vi.

Trong đó:

- f(vi) là hàm thích nghi của mỗi cá thể vi.

- F là tổng của các giá trị thích nghi của quần thể.

Việc chọn lọc cá thể nào phụ thuộc vào vị trí xác suất qi của mỗi NST vi đƣợc tính nhƣ sau: 1 i i j j q p

Tiến trình chọn lọc đƣợc thực hiện bằng cách quay bánh xe Roullet pop-size lần; mỗi lần chọn một NST từ quần thể hiện hành vào quần thể mới theo cách sau:

+ Phát sinh ngẫu nhiên một số r trong khoảng [0..1]

+ Nếu r < qi thì chọn NST đầu tiên (v1); ngƣợc lại thì chọn NST thứ i, vi (2 ≤ i ≤ pop-size) sao cho q

* Toán tử chọn lọc cạnh tranh: Mỗi lần chọn lọc ta tiến hành chọn ngẫu nhiên t cá thể từ quần thể hiện tại. Bản sao của cá thể tốt nhất trong t cá thể kể trên đƣợc sao chép vào quần thể bố mẹ. Tiến hành N lần chọn nhƣ vậy ta thu đƣợc quần thể bố mẹ. Lúc này t đƣợc gọi là “kích cỡ cạnh tranh”.

* Toán tử chọn lọc xếp hạng: Các cá thể của quần thể hiện tại đƣợc sắp xếp theo thứ tự giảm dần của giá trị độ thích nghi. Cá thể tốt nhất đƣợc xếp thứ nhất và cá thể tồi nhất xếp cuối cùng.

Đặ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, NST thứ hai có độ thích nghi là 2, .v.v., NST thứ

pop_size có độ thích nghi là pop_size.

Theo phƣơng pháp này việc một NST đƣợ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à NST có độ thích nghi cao cũng không khác mấy so với các NST khác.

2.2.2.3. Toán tử lai ghép

Toán tử lai ghép là quá trình tạo NST con dựa trên NST cha - mẹ bằng cách ghép đoạn trên NST cha - mẹ với nhau. Toán tử lai ghép đƣợc gán cho một xác suất lai ghép pc . Quá trình đƣợc mô tả nhƣ sau:

- Chọn ngẫu nhiên một cặp NST từ quần thể ban đầu để làm cha-mẹ, giả sử chúng đều có độ dài m.

- Tạo một số ngẫu nhiên trong khoảng từ 1 đến m – 1 (gọi là điểm lai ghép). - Điểm lai ghép chia NST cha mẹ thành hai chuỗi con có độ dài m1, m2.

Ví dụ: Có 2 NST cha mẹ là:

NST 1 : 1 0 1 0 1 0 0 0 NST 2 : 1 0 0 0 0 1 1 1

Sau quá trình lai ghép tại điểm thứ 2, ta đƣợc 2 NST con nhƣ sau : NST 1‟ : 1 0 0 0 0 1 1 1

* Lai ghép một điểm:

Lai ghép một điểm là loại lai ghép đơn giản nhất, đƣợc sử dụng phổ biến. Với cặp cha-mẹ X, Y là các vectơ m chiều, toán tử lai ghép 1 điểm chọn ngẫu nhiên vị trí k (1 ≤ k ≤ m) rồi sinh ra 2 cá thể con theo công thức :

X‟ = ( ,...,x1 x yk, k 1,...,ym)

Y‟ = (y ,..., y , x1 k k 1,..., x )m

* Lai ghép đa điểm:

Toán tử đƣợc mô tả nhƣ sau :

Chọn ngẫu nhiên k điểm j ,...,1 jk (1 j1 j2 ... jk m), lai ghép đa điểm tạo ra cặp con (X‟,Y‟) bằng cách đánh số các đoạn [ j jt, t 1] từ 0 trở đi, sau đó :

+ '

xi lấy bằng xi tại những đoạn có số hiệu chẵn và bằng yi tại những đoạn có số hiệu lẻ.

+ '

i

y lấy bằng xi tại những đoạn có số hiệu lẻ và bằng yi tại những đoạn có số hiệu chẵn.

* Lai ghép đều hay lai ghép mặt nạ:

Trong lai ghép đều, ta chọn ngẫu nhiên k vị trí 1 < i1 < i2 < … < ik < m. Các cá thể con X‟, Y‟ đƣợc tạo nhƣ sau :

2.2.2.4. Toán tử đột biến

Đột biến là hiện tƣợng NST con mang một số đặc tính không có trong mã di truyền của cha-mẹ. Giống nhƣ toán tử lai ghép, toán tử đột biến cũng đƣợc gán một xác suất đột biến pm (thƣờng nhỏ hơn nhiều so với xác suất lai ghép pc). Điều này là

đúng bởi trong tự nhiên, hiện tƣợng đột biến gen thƣờng xảy ra với xác suất rất nhỏ. Phép đột biến đƣợc mô tả nhƣ sau:

- Chọn ngẫu nhiên một NST trong quần thể. - Sinh ngẫu nhiên một số k, 1 ≤ k ≤ m.

- Thay đổi bit thứ k, nếu là bit “0” thì đổi thành “1” và ngƣợc lại. Đƣa NST này tham gia vào quá trình tiến hoá tiếp theo.

2.2.2.5. Hàm phù hợp

* Biến đổi hàm mục tiêu thành hàm phù hợp:

Do giá trị phù hợp trong giải thuật di truyền là không âm, nên để áp dụng GA cho bài toán tối ƣu ta cần phải chuyển giá trị hàm mục tiêu thành hàm phù hợp.

Nếu bài toán tối ƣu là cực tiểu hàm mục tiêu g(x) thì ta chuyển sang hàm phù hợp nhƣ sau: lai nguoc C x g x g C x f 0 ) ( ) ( ) ( max max

Trong đó, Cmax là tham số vào do ngƣời sử dụng chọn, thƣờng chọn Cmax là giá trị lớn nhất của hàm mục tiêu trong tập hiện tại.

Nếu bài toán tối ƣu là cực đại hàm mục tiêu g(x), ta có thể chuyển sang hàm phù hợp nhƣ sau: lai nguoc C x g x g C x f 0 0 ) ( ) ( ) ( min min

Trong đó Cmin là tham số đầu vào, Cmin có thể là giá trị tuyệt đối bé nhất của các hàm mục tiêu trong tập hiện tại hoặc trong k vòng lặp cuối.

* Thang đo giá trị phù hợp:

Việc điều chỉnh số lƣợng con cháu cho mỗi cá thể trong quần thể là rất quan trọng. Điều này thể hiện ở chỗ: lúc bắt đầu hoặc sau vài vòng lặp đầu tiên, các quần thể thƣờng có một số cá thể “siêu khoẻ” có khả năng chiếm lĩnh phần lớn quần thể và có thể dẫn đến hội tụ sớm không mong muốn vì các cá thể này sẽ có thể có rất

phần sẽ tiến gần đến giá trị phù hợp của cá thể tốt nhất. Và nhƣ vậy sau nhiều lần lặp các cá thể trung bình cũng có con số tƣơng đƣơng với các cá thể tốt nhất trong thế hệ tiếp theo. Khi đó giải thuật di truyền trở thành tìm kiếm ngẫu nhiên giữa các cá thể thành phần. Thang đo giá trị phù hợp sẽ giải quyết vấn đề này.

Một trong các thủ tục xác định thang đo đơn giản và hiệu quả là thang đo tuyến tính sau:

Nếu gọi f là giá trị phù hợp ban đầu và f là giá trị phù hợp sau khi biến đổi: Ta có: f = a*f + b (1)

Trong đó: a và b đƣợc chọn sao cho: f avg = favg (2) f max = Cmult*favg (3)

Với Cmult là bản sao cần thiết đối với thành viên tốt nhất. Đối với các quần thể kích cỡ nhỏ (50 - 100 cá thể), Cmult = 1.2 2 là khá hiệu quả.

favg: giá trị phù hợp trung bình ban đầu.

f avg: giá trị phù hợp trung bình sau khi biến đổi.

Nhƣ vậy, biểu thức (2) bảo đảm cho các cá thể có giá trị phù hợp trung bình cũng đƣợc tham gia sản sinh ra con cháu. Biểu thức (3) kiểm soát số con cháu tham gia vào quần thể mới của cá thể có độ phù hợp ban đầu cực đại.

Tuy nhiên vào giai đoạn cuối của GA khi giá trị phù hợp trung bình của quần thể gần với giá trị phù hợp của cá thể tốt nhất thì thang đo tuyến tính trên có thể làm cho giá trị phù hợp bị âm. Để khắc phục ngƣời ta đƣa ra biểu thức f min= 0 để thay thế cho biểu thức (3).

Một phần của tài liệu (LUẬN văn THẠC sĩ) bài toán đối sánh mẫu sử dụng giải thuật di truyền (Trang 28 - 33)

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

(71 trang)