Tổng quan về giải thuật di truyền

Một phần của tài liệu Bài toán tìm kiếm văn bản sử dụng giải thuật di truyền (Trang 30)

4. PHƯƠNG PHÁP NGHIấN CỨU

2.1.Tổng quan về giải thuật di truyền

2.1.1 Giới thiệu

Thuật giải di truyền, cũng như cỏc thuật toỏn tiến hoỏ núi chung, hỡnh thành dựa trờn quan niệm cho rằng, quỏ trỡnh tiến hoỏ tự nhiờn là hoàn hảo nhất, hợp lý nhất, và tự nú đó mang tớnh tối ưu. Quan niệm này cú thể được xem như là một tiờn đề đỳng, khụng chứng minh được, nhưng phự hợp với thực tế khỏch quan. Quỏ trỡnh tiến hoỏ thể hiện tớnh tối ưu ở chỗ, thế hệ sau bao giờ cũng tốt hơn, phỏt triển hơn, hoàn thiện hơn thế hệ trước. Tiến hoỏ tự nhiờn được duy trỡ nhờ hai quỏ trỡnh cơ bản: sinh sản và chọn lọc tự nhiờn. Xuyờn suốt quỏ trỡnh tiến hoỏ tự nhiờn, cỏc thế hệ mới luụn được sinh ra để bổ xung thay thế thế hệ cũ. Cỏ thể nào phỏt triển hơn, thớch ứng hơn với mụi trường sẽ tồn tại, cỏ thể nào khụng thớch ứng với mụi trường sẽ bị đào thải. Sự thay đổi mụi trường là động lực thỳc đẩy quỏ trỡnh tiến hoỏ. Ngược lại, tiến hoỏ cũng tỏc động trở lại gúp phần làm thay đổi mụi trường.

Mục tiờu nghiờn cứu của giải thuật di truyền (GA) là:

- Trừu tượng húa và diễn đạt chớnh xỏc về cỏc quỏ trỡnh thớch nghi trong hệ thống tự nhiờn.

- Thiết kế những phần mềm về hệ thống nhõn tạo nhằm duy trỡ cỏc cơ chế quan trọng của hệ thống tự nhiờn.

Những mục tiờu này đó dẫn đến những khỏm phỏ quan trọng trong hệ thống khoa học tự nhiờn lẫn nhõn tạo.

GA ra đời và phỏt triển dựa trờn quỏ trỡnh tiến húa trong tự nhiờn và đó được ứng dụng thành cụng trong nhiều lĩnh vực nhất là tối ưu húa và mỏy học.

2.1.2 Sự khỏc biệt của giải thuật di truyền so với cỏc giải thuật khỏc

GA khỏc với những sự tối ưu húa thụng thường và những giải thuật tỡm kiếm khỏc bởi 4 điểm sau:

 GA làm việc với sự mó húa một bộ cỏc thụng số, chứ khụng phải bản thõn cỏc thụng số.

 GA tỡm kiếm từ một số điểm quần thể, chứ khụng phải từ một điểm.  GA sử dụng cỏc thụng tin về hàm mục tiờu chứ khụng phải đạo hàm

(derivatives) hay những tri thức phụ khỏc.

 GA sử dụng cỏc luật chuyển đổi theo xỏc suất, chứ khụng phải cỏc luật chuyển đổi tiền định.

GA đũi hỏi một tập hợp cỏc thụng số tự nhiờn của bài toỏn tối ưu để mó húa thành cỏc chuỗi cú chiều dài hữu hạn, dựa trờn một số hữu hạn cỏc ký tự.

2.1.3 Tớnh chất quan trong của giải thuật di truyền

1. GA lập luận cú tớnh chất ngẫu nhiờn để tỡm giải phỏp tối ưu cho những vấn đề phức tạp. Tuy nhiờn đõy là hỡnh thức ngẫu nhiờn cú hướng dẫn bởi giỏ trị hàm thớch nghi. Chớnh hàm thớch nghi là vật chỉ đường cho GA tỡm ra lời giải tối ưu trong muụn ngàn lời giải cú thể.

2. Vấn đề thớch hợp nhất cho GA là tỡm điều kiện tối ưu. Tối ưu đõy khụng nhất thiết phải là tuyệt đối, mà cú thể chỉ là tương đối trong hoàn cảnh và thời gian cho phộp.

3. Một trong những bước quan trọng và khú khăn nhất là tỡm hàm số thớch nghi. Hàm số thớch nghi phải cú liờn hệ trực tiếp đến vấn đề cần giải.

4. GA và mạng nơron nhõn tạo đều thuộc vào nhúm khoa học trớ tuệ nhõn tạo, tuy nhiờn GA lập luận dựa theo sự tiến húa và xột vấn đề ở tầm mức

của gen và NST, khỏc với mạng nơron nhõn tạo dựa trờn kinh nghiệm và cỏch giải quyết vấn đề mà bộ úc con người thường dựng.

2.2. Giải thuật di truyền cổ điển 2.2.1 Giới thiệu 2.2.1 Giới thiệu

Giải thuật di truyền cổ điển là cỏc kỹ thuật tỡm kiếm và tối ưu húa cỏc giải phỏp cho vấn đề phỏng theo quỏ trỡnh thớch nghi tiến húa của cỏc quần thể sinh học dựa trờn học thuyết Darwin. GA là một giải thuật, mục tiờu khụng nhằm đưa ra lời giải chớnh xỏc tối ưu mà là đưa ra lời giải tương đối tối ưu.

* Cấu trỳc của GA

Trong GA cỏc cỏ thể (hay cũn gọi là cỏc NST) được mó húa bởi cỏc chuỗi nhị phõn, mỗi vị trớ trờn chuỗi nhị phõn chỉ nhận một trong hai giỏ trị “0” hoặc “1”. Một NST trong GA cú dạng như sau:

1 0 1 1 0 0 1 0 0 1

GA cổ điển được J. H Holland [9] giới thiệu để giải bài toỏn tối ưu: max {f (x) /xA},

Trong đú A là một miền trong khụng gian n-chiều, f (x) >0 với mọi xA. Cấu trỳc của GA cổ điển như sau:

Procedure GA {

t=0;

Khởi tạo P (t) ; Đỏnh giỏ P (t) ;

While (not (điều kiện dừng) ) do {

t=t+1;

Thay đổi P (t) Đỏnh giỏ P (t) ; }

}

Quỏ trỡnh tiến húa được diễn ra trong vũng lặp while, tại thế hệ thứ t, giải thuật duy trỡ một tập lời giải P (t) ={xt

1, …, xt

n}. Mỗi lời giải xt

i được đỏnh giỏ “độ thớch nghi”. Một tập lời giải mới được xõy dựng bằng cỏch “chọn lọc” cỏc cỏ thể cú độ thớch nghi cao hơn, ta được một tập lời giải trung gian. Tiếp theo, một số cỏ thể trong tập lời giải này được biến đổi bằng phương phỏp “lai ghộp và “đột biến” để tạo thành cỏc lời giải mới cho thế hệ t+1. Sơ đồ sau minh họa hoạt động của giải thuật di truyền.

2.2.2 Cỏc toỏn tử di truyền

Trong thuật giải di truyền, cỏc cỏ thể mới liờn tục được sinh ra trong quỏ trỡnh tiến hoỏ nhờ sự lai ghộp ở thế hệ cha-mẹ. Một cỏ thể mới cú thể mang những tớnh trạng của cha-mẹ (di truyền), cũng cú thể mang những tớnh trạng hoàn toàn mới (đột biến). Di truyền và đột biến là hai cơ chế cú vai trũ quan trọng như nhau trong tiến trỡnh tiến hoỏ, dự rằng đột biến xảy ra với xỏc xuất nhỏ hơn rất nhiều so với hiện tượng di truyền. Cỏc thuật toỏn tiến hoỏ, tuy cú những điểm khỏc biệt, nhưng đều mụ phỏng ba toỏn tử cơ bản: Chọn lọc, lai ghộp, đột biến.

2.2.2.1 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ú cỏc toỏn tử chọn lọc sau:

* Toỏn tử chọn lọc tỷ lệ: Được sử dụng thường xuyờ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:

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 nhiễm sắc thể 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 nhiễm sắc thể vi được tớnh như sau:  i

j j

i p

q

1 .

Tiến trỡnh chọn lọc được thực hiện bằng cỏch quay bỏnh xe ru lột pop- size 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 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 nhiễm sắc thể đầu tiờn (v1); ngược lại thỡ chọn nhiễm sắc thể thứ i, vi (2ipopsize) sao cho q  rq .

Hiển nhiờn, cú thể sẽ cú một sú nhiễm sắc thể được chọn nhiều lần. Điều này phự hợp với lý thuyết sơ đồ (Nguyễn Đỡnh Thỳc, [3]): cỏc nhiễm sắc thể tốt nhất cú nhiều bản sao hơn, cỏc nhiễm sắc thể trung bỡnh khụng thay đổi, cỏc nhiễm sắc thể kộm nhất thỡ chết đi.

* 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ẹ. Giỏ trị 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.

2.2.2.2 Toỏn tử lai ghộp

Toỏn tử lai ghộp là quỏ trỡnh tạo NST mới trờn cơ sở cỏc NST cha- mẹ bằng cỏch ghộp một đoạn trờn NST cha mẹ với nhau. Toỏn tử lai ghộp được gỏn với một xỏc suất pc. Quỏ trỡnh được mụ tả như sau:

- Chọn ngẫu nhiờn một cặp NST (để làm cha mẹ) trong quần thể. Giả sử, NST cha mẹ cú cựng độ 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ụ

Cha: 101101100

Mẹ: 000011100

Thỡ việc trao đổi chộo cỏc NST sau gen thứ 5 sẽ tạo ra hai con: Con 1: 101111100

Con 2: 000001100

Cú một số dạng toỏn tử lai ghộp như:

Lai ghộp một điểm là loại lai ghộp đơn giản nhất, được sử dụng cả trong GA mó hoỏ nhị phõn lẫn GA mó hoỏ số thực. Với cặp cha mẹ X, Y là cỏc vectơ m chiều như ký hiệu trờn, toỏn tử lai ghộp 1 điểm chọn ngẫu nhiờn một vị trớ k (1  k  m) rồi sinh ra 2 cỏ thể con theo cụng thức

X‟ = (x1,..., xk, yk+1,..., ym ) Y‟ = (y1,..., yk, xk+1,..., xm )

* Lai ghộp đa điểm (Multi-point Crossover)

Toỏn tử lai ghộp đa điểm được mụ tả như sau:

Chọn ngẫu nhiờn k điểm j1,..., 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 [jt, jt+1] từ 0 trở đi, sau đú

 x'i 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ẻ.

 y'i 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ạ (Uniform Crossover)

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 lập như sau:

      } ,..., { } ,..., { ' 1 1 k i k i i y i i i i i i x x       } ,..., { } ,..., { ' 1 1 k i k i i x i i i i i i y y (2.1) 2.2.2.3 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ẹ. Toỏn tử đột biến được gỏn xỏc suất pm (nhỏ hơn nhiều so với xuất suất lai ghộp pc). Điều này được suy diễn bởi trong tự nhiờn, đột biến gen thường rất ớt xảy ra. Phộp đột biến được mụ tả như sau:

- Chọn ngẫu nhiờn một NST trong quần thể.

- Thay đổi bớt thứ k. Đưa nhiễm sắc thể này vào quần thể để tham gia quỏ trỡnh tiến húa ở thế hệ tiếp theo.

Vớ dụ

v1: 101101010 v2: 101111010

NST V1 được chọn để đột biến tại vị trớ gen thứ năm, gen này hiện tại là 0, sau khi đột biến sẽ trở thành 1. Khi đú NST v1 trở thành v2.

2.2.3 Cỏc bƣớc quan trọng trong việc ỏp dụng giải thuật di truyền cổ điển

Để giải quyết vấn đề bài toỏn bằng giải thuật di truyền, chỳng ta cần thực hiện 7 bước quan trọng sau:

Bƣớc 1: Chọn mụ hỡnh cho giải phỏp của vấn đề, chọn một số đặc trưng cho toàn bộ cỏc giải phỏp (quần thể) cú thể cú cho vấn đề.

Bƣớc 2: Chỉ định cho mỗi giải phỏp (cỏ thể) một ký hiệu. Ký hiệu cú thể là một dóy cỏc số 0, 1 thuộc hệ nhị phõn, hay dóy cỏc số thập phõn, dóy cỏc chữ hay hỗn hợp của số và chữ. Ký hiệu đơn giản nhất và thường dựng nhất là số nhị phõn.

Bƣớc 3: Tỡm hàm số thớch nghi cho vấn đề và tớnh hệ số thớch nghi cho từng giải phỏp (lời giải).

Bƣớc 4: Dựa trờn hệ số thớch nghi của cỏc giải phỏp để thực hiện sự tạo sinh (reproduction) và biến húa cỏc giải phỏp. Cỏc phương thức biến húa bao gồm: lai ghộp (crossover), đột biến (mutation).

Bƣớc 5: Tớnh cỏc hệ số thớch nghi cho cỏc giải phỏp mới và loại bỏ những giải phỏp kộm nhất để chỉ cũn giữ lại một số nhất định của giải phỏp.

Bƣớc 6: Nếu chưa tỡm được giải phỏp tối ưu hay tương đối khỏ nhất hay chưa hết kỳ hạn ấn định, trở lại bước 4 để tỡm giải phỏp mới.

Bƣớc 7: Tỡm được giải phỏp tối ưu hoặc nếu thời gian cho phộp đó chấm dứt thỡ kết thỳc giải thuật và bỏo cỏo kết quả tỡm được.

2.2.4 Vớ dụ

Xột bài toỏn tối ưu khụng ràng buộc sau:

Bài toỏn: Cho hàm f (x1, x2) = 21.5 + x1sin(4x1) + x2sin(4x2) với -3.0 ≤ x1 ≤ 12.1 và 4.1 ≤ x2 ≤ 5.8.

Ta cần cực đại húa hàm f (x1, x2)

Hỡnh 2.2: Đồ thị của hàm f

Ứng dụng giải thuật di truyền

Ta sẽ lần lượt trỡnh bày về năm thành phần chớnh của giải thuật di truyền để giải bài toỏn này.

+Biểu diễn NST

Ta sử dụng một vộc tơ nhị phõn làm NST để biểu diễn cỏc giỏ trị thực của biến x1, x2. Chiều dài của vectơ này phụ thuộc vào độ chớnh xỏc cần cú, trong vớ dụ này độ chớnh xỏc cần 4 số lẻ.

- Miền của x1 cú chiều dài 15.1; điều kiện chớnh xỏc đũi hỏi đoạn [-3.0, 12.1] cần được chia thành cỏc khoảng cú kớch thước bằng nhau, ớt nhất là 15.1 x 10000 = 151000 khoảng bằng nhau. Mỗi đoạn ta cú thể nhận một lời giải thỡ số lời giải cú thể là 150000. Khi đú để mụ tả một lời giải ta cần cú một vectơ cú 18 bit làm phần đầu tiờn của NST. V = (b17 b16…..b0) vỡ

217 ≤ 151000 ≤ 218

- Miền của biến x2 cú chiều dài 1.7; điều kiện chớnh xỏc đũi hỏi đoạn [4.1, 5.8] cần được chia thành cỏc khoảng cú kớch thước bằng nhau, ớt nhất 1.7 x 10000 = 17000 khoảng bằng nhau. Điều này cú nghĩa là cần 15 bit làm phần đầu tiờn của NST. V = (b32 b31…..b18)

214 ≤ 151000 ≤ 215

Chiều dài toàn bộ NST lỳc này là m= 18+13 =33 bit. 18 bớt đầu tiờn mó húa x1 và 15 bớt cũn lại mó húa x2.

Để chuyển một giỏ trị từ vectơ nhị phõn sang giỏ trị x1, x2 ta cần thực hiện 2 bước sau:

- Đổi 18 bit đầu tiờn (b17 b16…..b0) từ cơ số 2 sang cơ số 10 (b17 b16…..b0)2 = 2 1' 10 17 0 x b i i i         - Tỡm giỏ trị x1 tương ứng 1 2 1 . 15 '. 0 . 3 18 1     x

x , với -3. 0 là cận dưới và 15.1 là độ dài của miền giỏ trị.

- Đổi 15 bit kế tiếp (b32 b31…..b18) từ cơ số 2 sang cơ số 10 (b32 b31…..b18)2 = 2 2' 10 32 18 x b i i i          - Tỡm giỏ trị x1 tương ứng 1 2 7 . 1 '. 1 . 4 15 2     x

x , với -3. 0 là cận dưới và 15.1 là độ dài của miền giỏ trị.

Vớ dụ

NST (010001001011010000111110010100010) tương ứng với (x1, x2) = (1.052426, 5.755330) vỡ:

và x1 = -3. 0 + 70352*15.1/2262143 = 1.052426. x2‟ = (111110010100010) 2 = 3190610

và x1 = 4.1 + 31906*1.7/32767 = 5.755330. + Khởi tạo quần thể ban đầu

Tiến trỡnh khởi tạo quần thể rất đơn giản: ta tạo một quần thể cỏc NST, trong đú mỗi NST là một vectơ nhị phõn 33 bớt. Tất cả 33 bớt của mỗi NST đều được khởi tạo ngẫu nhiờn.

+ Hàm lƣợng giỏ

Hàm lượng giỏ eval của cỏc vectơ nhị phõn v chớnh là hàm f: eval (v) = f(x)

Trong đú, NST v biểu diễn giỏ trị thực x như đó núi ở trờn, hàm lượng giỏ đúng vai trũ mụi trường, đỏnh giỏ từng lời giải theo độ thớch nghi của chỳng.

Vớ dụ. Với 3 NST

v1 = (100110100000001111111010011011111) v2 = (111000100100110111001010100011010) v3 = (000010000011001000001010111011101) Tương ứng với cỏc giỏ trị của từng NST là: NST thứ nhất: (x1, x2) = (6.084492, 5.652242); NST thứ hai: (x1, x2) = (10.348434, 4.380264); NST thứ ba: (x1, x2) = (-2.516603, 4.390381); và cú độ thớch nghi lần lượt là: eval (v1) = f (6.084492, 5.652242) = 26.019600 eval (v2) = f (10.348434, 4.380264) = 7.580015 eval (v3) = f (-2.516603, 4.390381) = 19.626329

Rừ ràng, NST v1 là tốt nhất trong 3 NST này, vỡ hàm lượng đỏnh giỏ nú trả về giỏ trị cao nhất.

+ Cỏc toỏn tử di truyền

Trong giai đoạn tiến húa quần thể, ta cú thể dựng 3 toỏn tử di truyền cổ

Một phần của tài liệu Bài toán tìm kiếm văn bản sử dụng giải thuật di truyền (Trang 30)