Toỏn tử lai ghộp

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 35)

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

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ổ điển: chọn lọc, lai ghộp, đột biến

- Toỏn tử chọn lọc: Giải mà tập NST vi và tớnh cỏc giỏ trị xi tương ứng với i= 1, 2…popsize)

Tớnh giỏ trị hàm thớch nghi của mỗi cỏ thể vi, tổng độ thớch nghi. Tớnh xỏc suất chọn lọc cho mỗi NST vi theo cụng thức: pi = eval (vi) /F với (i= 1, 2…popsize). Thực hiện chọn ngẫu nhiờn popsize lần bằng phương phỏp bỏnh xe sổ xố dựa trờn xỏc suất của mỗi NST.

- Toỏn tử đột biến: Làm thay đổi gen trờn NST với xỏc suất bằng tốc độ đột biến. Giả sử gen thứ 6 trong NST v3 được chọn để đột biến. Và đột biến chớnh là thay đổi giỏ trị gen này từ 0 thành 1 và ngược lại, thỡ sau đột biến NST v3‟ = (000011000011001000001010111011101). NST này biểu diễn giỏ trị:

- Toỏn tử lai ghộp: Ta sẽ minh họa toỏn tử lai ghộp một điểm trờn hai NST v2 và v3.

Giả sử điểm lai ghộp được chọn (ngẫu nhiờn) tại vị trớ thứ 15: v2 = (111000100100110111001010100011010)

v3 = (000010000011001000001010111011101) Hai con của kết quả lai là:

v2‟ = (111000100100110000001010111011101) v3‟ = (000010000011001111001010100011010)

Ở đõy, ta thấy rằng con thứ hai thớch nghi hơn cả cha lẫn mẹ của nú. - Cỏc tham số: Đối với bài toỏn này, ta sử dụng cỏc tham số sau: kớch thước quần thể popsize=5 xỏc suất lai ghộp pc=0.25 (nghĩa là cỏ thể v trong quần thể cú 25% cơ hội được chọn để thực hiện lai ghộp), xỏc suất đột biến pm

- Cỏc kết quả thử nghiệm: Bảng 1.2 sau đõy trỡnh bày kết quả hàm mục tiờu f sau 1000 thế hệ ta thu được quần thể sau : NST tốt nhất sau 1000 thế hệ là giỏ trị xmax = 31.933120. Cỏ thể NST Giỏ trị fi (x1, x2) eval (xi) x1 x2 v1 111011110110011011100101010111011 11.120940 5.092514 30.298543 v2 111001100110000100010101010111000 10.588756 4.667358 26.869724 v3 111011110111011011100101010111011 11.124647 5.092514 30.316575 v4 111001100010000110000101010111001 10.574125 4.242410 31.933120 v5 111011110111011011100101010111011 11.124627 5.092514 30.316575 Max 31.933120 Bảng 2.2: Kết quả của 1000 thế hệ

CHƢƠNG 3

SỬ DỤNG GIẢI THUẬT DI TRUYỀN ĐỂ TèM KIẾM VĂN BẢN

Trong phần này sẽ trỡnh bày cỏc nội dung nghiờn cứu chớnh của luận văn, từ yờu cầu đặt ra cho bài toỏn tỡm kiếm văn bản ta đi xõy dựng hàm mục tiờu tỡm kiếm. Trờn cơ sở đú phỏt biểu bài toỏn dưới dạng tối ưu hàm một biến và dựng phương phỏp giải thuật di truyền để giải quyết bài toỏn.

3.1. Yờu cầu đặt ra cho bài toỏn tỡm kiếm văn bản

Trong chương 1, chỳng ta đó quan tõm đến cỏc thuật toỏn tỡm tất cả cỏc vị trớ xuất hiện của mẫu trờn một văn bản, cỏc thuật toỏn này đều dựa theo phương phỏp tỡm kiếm tuyến tớnh (tỡm tuần tự từ đầu đến cuối văn bản). Theo tư tưởng đú sẽ tỡm được chớnh xỏc tất cả cỏc vị trớ xuất hiện của mẫu trong văn bản. Trong thực tế đụi khi ta khụng cần quan tõm đến mẫu tỡm kiếm cú chớnh xỏc hay khụng mà ta chỉ quan tõm đến nội dung liờn quan đến mẫu (hoặc cú chứa một phần trong mẫu). Google – cụng ty phần mềm nổi tiếng dựa trờn ý tưởng đú đó phỏt triển ứng dụng tỡm kiếm trờn Web rất hiệu quả. Vậy vấn đề đặt ra là tỡm trong văn bản S vị trớ xuất hiện đoạn văn bản gần giống với văn bản mẫu Sm nhất. Yờu cầu tỡm kiếm ở đõy khụng đũi hỏi vị trớ xuất hiện chớnh xỏc của xõu mẫu mà là tỡm vị trớ xuất hiện gần đỳng của xõu mẫu, tỡm kiếm cú thể đạt kết quả tốt nhất khi vị trớ xuất hiện đú chớnh là mẫu cần tỡm. Với mục tiờu này, cỏc thuật toỏn giới thiệu ở trờn đều cú thể giải quyết được bằng cỏch: tại một vị trớ i trong văn bản, thay vỡ việc đi so sỏnh đoạn văn bản M ký tự (từ vị trớ i đến vị trớ i+M) đang xột với mẫu thỡ ta đi tỡm số ký tự trựng khớp (cả về giỏ trị và vị trớ) lớn nhất giữa hai văn bản này. Hiển nhiờn trong trường hợp xuất hiện mẫu thỡ số ký tự trung khớp lớn nhất sẽ

bằng M. Trờn cơ sở đú ta hoàn toàn cú thể đưa ra cỏc vị trớ gần đỳng với mẫu nhất trong trường hợp khụng cú đoạn văn bản mẫu trong văn bản tỡm kiếm.

Tỡm kiếm với yờu cầu như trờn cú thể đỏp ứng được cỏc nhu cầu của người sử dụng để tỡm kiếm văn bản. Với cỏc thuật toỏn tỡm kiếm tuyến tớnh ta chỉ cần cải tiến một chỳt là cũng cú thể tỡm được đỳng với yờu cầu đặt ra. Tuy nhiờn với những văn bản cú số ký tự rất lớn thỡ tỡm kiếm tuyến tớnh như đó núi ở trờn lại khụng hiệu quả về mặt thời gian (với độ phức tạp là O(MN)). Đó cú một số giải phỏp để giải quyết vấn đề này là cỏc thuật toỏn so sỏnh mẫu theo thứ tự bất kỳ trong chương 1. Theo đú, người ta tiến hành so sỏnh mẫu với cửa sổ theo một thứ thự ngẫu nhiờn, nhưng sẽ khú cú thể biết trước được khả năng đưa ra lời giải vỡ ở đõy chỉ là việc so sỏnh với cỏc vị trớ ngẫu nhiờn mà khụng cú cơ sở toỏn học rừ ràng để hướng đến một vị trớ xuất hiện mẫu trong văn bản.

Cũng trờn cơ sở so sỏnh ngẫu nhiờn ta đi nghiờn cứu một hướng tiếp cận giải quyết bài toỏn theo hướng khỏc với cỏc thuật toỏn trờn, đú là hướng tiếp cận Giải thuật di truyền để giải quyết cỏc yờu cầu đặt ra với bài toỏn tỡm kiếm văn bản.

3.2. Xõy dựng hàm tỡm kiếm

Để xỏc định tiờu chớ tớnh toỏn cho bài toỏn tỡm kiếm văn bản bằng giải thuật di truyền ta sẽ xõy dựng hàm tỡm kiếm như sau:

Hàm tỡm kiếm cú tiờu chớ đỏnh giỏ bằng tổng của hai đại lượng: 1) độ dài của xõu con chung dài nhất giữa đoạn văn bản đú và mẫu (đều cú độ dài M ký tự), 2) độ dài trựng khớp về giỏ trị và vị trớ của đoạn văn bản đú với mẫu. Xõu con chung dài nhất ở đõy là dóy ký tự dài nhất theo thứ tự giống nhau giữa hai xõu (khụng nhất thiết phải liền nhau), trường hợp tốt nhất xảy ra là xõu con chung dài nhất cú độ dài M (dài bằng văn bản mẫu) - tức là hai xõu so sỏnh là giống nhau – đú chớnh là vị trớ xuất hiện của cả mẫu. Để tỡm

xõu con chung dài nhất thuật toỏn hiệu quả là dựng quy hoạch động cú độ phức tạp O(M2) (mục 3.4). Trong thực tế khi tỡm kiếm số M thường khụng lớn nờn hoàn toàn chấp nhận được.

Hàm tỡm kiếm được xõy dựng là: F(x) = a*G(x) + b*H(x) (3.1.1) Trong đú:

x là vị trớ trong văn bản (x  [1..N]).

G(x) là tần suất xuất hiện Sm trong đoạn S[x..x+M] của S (kể từ vị trớ x cho đến vị trớ x+M trong văn bản S). G(x) được tớnh bằng hàm Quy hoạch động tỡm độ dài xõu con chung lớn nhất. H(x) là độ đo thứ tự, phản ỏnh thứ tự xuất hiện cỏc ký tự trong S[x..x+m] trựng với Sm. Ta cú thể viết là G(Sx, Sm) thay cho G(x).

H(x) được tớnh bằng cỏch so khớp lần lượt từng ký tự, giỏ trị trả về chớnh là số ký tự trựng khớp (cả về giỏ trị và vị trớ) của hai văn bản Sm và S[x..x+M]. Ta cú thể viết là H(Sx, Sm) thay cho H(x).

a và b là cỏc tham số đúng vai trũ trọng số của G(x) và H(x), để thuận cho việc đỏnh giỏ hàm F ta cú thể quy định ràng buộc cho a và b là: a = 1 – b.

Như vậy dể thấy G(x) và H(x) cú giỏ trị trong khoảng [0..M], và do đú hàm F cũng cú miền giỏ trị trong khoảng [0, M] , tức là Fmax(x)=M. Tuỳ thuộc vào mục tiờu của bài toỏn và căn cứ vào giỏ trị của hàm tỡm kiếm F, ta cú thể giải quyết được mọi yờu cầu đặt ra cho bài toỏn tỡm văn bản.

3.3. Phỏt biểu bài toỏn tỡm kiếm văn bản theo hƣớng tiếp cận di truyền

Dựa vào hàm tỡm kiếm (3.1.1) ta phỏt biểu bài toỏn tỡm kiếm văn bản dưới dạng bài toỏn tối ưu hàm một biến như sau:

Xột bài toỏn:

“Cho trước một văn bản S cú độ dài N và một văn bản mẫu Sm cú độ dài M (M ≤ N). Tỡm cỏc giỏ trị của x [1..N] sao cho F(x) = a*G(x) + b*H(x) k”.

Trong đú k là giỏ trị ngưỡng cho trước (0  k  FMax(x)), k đúng vai trũ tham số xỏc định độ chớnh xỏc của hàm mục tiờu.

Bài toỏn đặt ra là tỡm cỏc giỏ trị x sao cho F(x) đạt giỏ lớn hơn hoặc bằng ngưỡng k. Nếu tỡm được cỏc giỏ trị xmax để F(xmax) = M thỡ xmax chớnh là

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 35)

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

(156 trang)