Mó húa lời giải (hay cũn gọi là phương phỏp biểu di n l i gi i) là sễ ờ ả ử ụ d ng một cấu trỳc d ữ liệu thớch hợp để mụ t mả ột lời giải nào đú của bài toỏn, đồng thời cho phộp ta bi n đổ ờế i l i
gi i thụng qua s ả ự tỏc động của cỏc toỏn tử lờn c u trỳc d ấ ữ liệu đú. Từ ể bi u di n cễ ủa lời giải ta cú thể ải mó để gi thu v l i giải ban đầu. ề ờ
Mỗi bài toỏn sẽ cú những cỏch mó húa lời giải khỏc nhau. Sau đõy sẽ ớ gi i thiệu m t số ộ cỏch mó húa lời giải thụng d ng ụ
3.3.1.1. Mó húa nhị phõn
Mó hoỏ nh phõn (ị binary encoding) là phương phỏp biểu di n lễ ời giải ph bi n nhổ ế ất, và cũng chớnh là phương phỏp Holland đó sử ụ d ng cho thu t toỏn di truyền ban đầu. Trong mó ậ hoỏ nh phõn, lị ời giải sẽ được biểu diễn b ng m t xõu nh phõn, mằ ộ ị ỗi bit (hoặc nhúm bit) c a xõu s ủ ẽ biểu diễn cho một tham số nào đú của lời giải.
Vớ dụ : ta cú thể dựng hai xõu nh phõn sau biị ểu diễn cho 2 cỏ th ể Cỏ thể thứ 1 : 1101100100
Cỏ thể thứ 2 : 1101111000
Mó húa nhị phõn cú thể được ỏp dụng cho nhiều bài toỏn.
Vớ dụ bài toỏn cỏi tỳi: cho m t dóy gộ ồm vNđồ ật ai với kớch thước và giỏ trị tương ứng là si
và vi. Hóy tỡm cỏch xếp cỏc đồ ậ v t trờn vào một tỳi đựng cú sức ch a ứ S sao cho t ng giỏ tr ổ ị cỏc đồ ậ v t trong tỳi là cực đại.
Với bài toỏn trờn ta cú thể mó húa một lời giải bằng một xõu nh ị phõn độ dài N, trong đú bit thứ ci ủa xõu là bi s cho ta biẽ ết đồ ật a v icú được xếp vào trong tỳi hay khụng (bi = 1 n u ế aiđược xếp vào tỳi, bi = 0 n u ế aikhụng được xếp vào tỳi).
Mó húa nhị phõn cú ưu điểm là cỏch biểu diễn đơn giản, dễ thao tỏc. Tuy nhiờn nú cú nhược điểm là cú thể tạo ra khụng gian mó hoỏ lớn hơn so với khụng gian tỡm kiếm thực của lời giải (tức là cú những mó húa là khụng hợp lệ). Ngoài ra những bài toỏn mà lời giải cú cấu trỳc phức tạp thỡ mó húa nhị phõn sẽ là khụng thớch hợp. 3.3.1.2. Mó húa theo giỏ trị
Mó húa theo giỏ trị (value encoding) cú th coi là sự ở ộể m r ng c a mó húa nh phõn khi t p ủ ị ậ xỏc định c a cỏc allele cú nhiủ ều hơn 2 giỏ trị. Giỏ trị ủ c a allele cú thể lựa chọn đa dạng tựy từng người, cú th ể là kớ tự, là s (nguyờn, thố ực) hoặc một kớ hi u trong b ng kớ hiệ ả ệu nào đú. Vớ dụ :
Một cỏ thể mó húa theo giỏ tr ị thực: 1.7 2.3 7.1 8.4 9.6 Một cỏ thể mó húa theo kớ t ự : A C E G B A D
Một cỏ thể mó húa theo kớ hi u ệ : → ↓ ← → ↑ →
3.3.1.3. Mó húa hoỏn vị
Nếu trong lời giải của bài toỏn cú liờn quan yếu tố trỡnh tự như bài toỏn du lịch hay bài toỏn lập lịch thỡ mó húa hoỏn vị cú thể dựng để biểu diễn lời giải.
Trong mó hoỏ hoỏn vị, mỗi cỏ thể được biểu diễn bởi một hoỏn vị, giỏ trị tại một vị trớ trong hoỏn vị cho biết thứ tự được khảo sỏt của thành phần được mó húa bởi vị trớ đú.
Vớ dụ bài toỏn người du l ch: cho thành ph ị N ố và ma trận chi phớ (cij). Hóy tỡm một hành trỡnh đi qua tấ ảt c cỏc thành ph v i chi phớ là nh nh t. ố ớ ỏ ấ
Một lời giải cho bài toỏn người du lịch cú thể được biểu diễn bằng một hoỏn vị N phần tử. Giỏ trị tại vớ trớ thứ i trong hoỏn vị cho biết thứ tự được thăm của thành phố thứ i.
L y vớ d hoỏn v ấ ụ ị 1 4 6 3 2 5 là một bi u di n l i gi i cho bài toỏn nể ễ ờ ả gười du lịch với N = 6. T hoỏn v này ta cú th ừ ị ể giải mó đ tỡm lờể i gi i cho hành trỡnh vả ới thứ ự thăm cỏc t thành ph ố như sau:
<city 1> <city 5> <city 4> <city 2> <city 6> <city 3>
Mó húa hoỏn vị cũng cú thể sinh ra lời giải khụng hợp lệ. Vớ dụ nếu như khụng cú đường đi nối trực tiếp thành phố thứ 5 và thành phố thứ 4 thỡ biểu diễn lời giải trong vớ dụ trờn sẽ là khụng hợp lệ. Tuy nhiờn điều này cú thể xử lý được bằng việc gỏn một giỏ trị rất lớn làm chi phớ cho đường đi giữa 2 thành phố khụng cú đường đi nối trực tiếp chỳng với nhau.
3.3.1.4. Mó húa cõy
Mó húa theo cõy (tree encoding) thớch hợp cho nh ng bài toỏn suy lu n logic, biữ ậ ến đổi bi u ể thức ho c lậặ p trỡnh di truyền.
Vớ dụ bài toỏn x p x hàm: ấ ỉ Cho trước cỏc giỏ trị đầ u vào. Hóy tỡm bi u thể ức cho cỏc đầu vào trờn sao cho giỏ tr ị thu được của biểu thức là gần với giỏ trị ta mong mu n nhố ất (vớ dụ l n nhớ ất chẳng h n). ạ
Khi đú mộ ờt l i gi i cú th ả ể cho bài toỏn cú cỏc đầu vào là 6 9 3 cú th là 6 * 9/3. Bi u th c ể ể ứ này cú th ể biểu di n bễ ằng cõy như trong hỡnh 3.1
* 9 3 / 6 Hỡnh 3. 1 Vớ dụ mó húa cõy 3.3.2. Toỏn tử chọn lọc
Toỏn t ử chọ ọn l c cú nhiệm vụ ựa chọ l n ng u nhiờn t quẫ ừ ần thể 2 cỏ thể để đem lai ghộp sinh cỏ thể cho qu n th m i. Việc l a chầ ể ớ ự ọn ph i thỏả a món tiờu chớ là xỏc suất đượ ựa c l chọn của m t cỏ thộ ể ph i tỉ ệ ới độả l v thớch nghi của cỏ thể đú. Để ự th c hiện điều này cú r t ấ nhiều phương phỏp khỏc nhau được đưa ra. Sau đõy ta sẽ khảo sỏt một số phương phỏp tiờu bi u. ể
3.3.2.1. Phương phỏp chọn lọc theo vũng quay Roulette 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ể : F = ∑ = N i i v f 1 ) ( , N là dõn s c a qu n th . ố ủ ầ ể Tớnh xỏc suất chọ pn i cho mỗi cỏ thể vi : pi = f v( i)/F
Tớnh v ịtrớ xỏc suất qi của mỗi cỏ thể : qi= ∑
= i j j p 1
Cơ chế lựa chọn theo bỏnh xe Roulette (Roulette wheel selection) được thực hiện bằng cỏch quay bỏnh xe Roulette N lần nhằm tạo vị trớ chọn ngẫu nhiờn. Mỗi lần N quay để chọn cỏ thể sẽ tiến hành như sau:
• Sinh một giỏ trị ng u nhiờn n m trong kho ng (0,1] ẫ r ằ ả
N u ế r ≤ q1 thỡ cỏ thể v1được chọn, ngược lại thỡ chọn cỏ thể thứ i (2 ≤ i ≤ N) sao cho qi-1< r ≤ q i
Ta cú thể hỡnh dung cơ chế này như sau: cú một hỡnh trũn được chia làm N phần, mỗi ph n ầ hỡnh quạt sẽ tương ứng với một cỏ thể. Độ ớ l n c a hỡnh quủ ạt đú tỉ ệ ới độ thớch nghi của l v cỏ thể. Sau đú ta sẽ sinh m t v trớ ngộ ị ẫu nhiờn nằm trờn đường trũn. V trớ này n m trờn ị ằ hỡnh quạt nào thỡ cỏ thể tương ứng v i hỡnh quớ ạt đú đượ ẽc s đư c l a ch n. ợ ự ọ
Rừ ràng phương phỏp này thỏa món tớnh chất xỏc suất được chọn tỉ lệ với độ thớch nghi. Cũng cần núi thờm là phương phỏp chọn lọc Roulette này cho phộp một cỏ thể cú thể được chọn nhiều lần.
Phương phỏp chọn lọc Roulette hoạt động tốt khi quần thể cú kớch thước lớn, với quần thể cú kớch thước nhỏ thỡ do số lần thực hiện vũng quay nhỏ nờn sự phõn bố của cỏc số ngẫu nhiờn sinh ra sẽ khụng được đều.
Ngoài ra nú cú một nhược điểm nữa là sau một quỏ trỡnh tiến húa thỡ mức độ phõn húa trong độ thớch nghi giữa cỏc cỏ thể sẽ giảm và ỏp lực bị chọn lọc loại bỏ sẽ giảm đi đối với những cỏ thể kộm.
3.3.2.2. Chọn lọc theo cơ chế lấy mẫu toàn phần ngẫu nhiờn
Giả ử s cỏc cỏ th ể đều đó được xỏc định độ thớch nghi và được sắp x p ngế ẫu nhiờn. Ta cũng hỡnh dung qu n th ầ ể như là một hỡnh trũn được chia làm N phần tương ứng với N cỏ thể, độ l n c a ớ ủ cỏc phần cũng tương ứng t l vỉ ệ ới độ thớch nghi của cỏc cỏ thể.
Ta lại hỡnh dung ở ngay bờn ngoài hỡnh trũn đú cú một vũng trũn bao quanh, trờn vũng trũn bao này cú N điểm chia phõn b ố cỏch đều nhau.
Ta “quay” vũng trũn bao này nhằm tạo ra một vị trớ ngẫu nhiờn c a nú bao xung quanh ủ hỡnh trũn bờn trong. Khi đú điểN m chia trờn vũng trũn bao s ch vào cỏc ph n hỡnh qu t ẽ ỉ ầ ạ c a hỡnh trũn bờn trong. Mủ ột cỏ thể ẽ được chọn k ầ s l n n u ph n hỡnh quế ầ ạt tương ứng với nú cú k điểm chia chỉ vào.
Phương phỏp l a ch n trờn g i là ch n l c theo cơ ch l y m u ng u nhiờn toàn ph n ự ọ ọ ọ ọ ế ấ ẫ ẫ ầ (Stochastic universal sampling), nú thỏa món điều kiện cơ bản của chọn lọc là ngẫu nhiờn và xỏc suất chọ ỉ ệ ới độn t l v thớch nghi. Ngoài ra nú cũn cú thờm tớnh ch t là khụng thiờn v ấ ị (unbiased), cho phộp kh c phắ ục được nhược điểm của phương phỏp vũng quay Roulette đố ới v i nh ng qu n th ữ ầ ể kớch thước dõn s nh . ố ỏ
Tuy v y nú v n cú hậ ẫ ạn chế là ỏp lực chọ ọc sẽ ảm sau một vài thế ện l gi h do s khỏc biự ệt trong độ thớch nghi gi a cỏc cỏ th b thu h p. ữ ể ị ẹ
3.3.2.3. Chọn lọc theo xếp hạng
Chọ ọn l c xếp h ng (rank selection) cho phộp duy trỡ ỏp lựạ c chọ ọn l c qua cỏc thế ệ h ngay c ả khi độ thớch nghi c a cỏc cỏ th khỏc bi t nhau khụng nhiủ ể ệ ều. Phương phỏp chọ ọn l c x p ế h ng tiạ ến hành như sau:
S p xắ ếp cỏc cỏ thể theo th t giứ ự ảm dần của độ thớch nghi
Đặ ạ ột l i đ thớch nghi cho t t c cỏc cỏ th theo nguyờn t c: cỏ th ấ ả ể ắ ể cú độ thớch nghi t t ố nhất ban đầu thỡ độ thớch nghi mới sẽ là N N là dõn số ( quần thể). Cỏ thể cú độ thớch nghi ban đầu x p v trớ th ế ở ị ứi thỡđộ thớch nghi m i s ớ ẽlà N i- +1;
Áp dụng cỏc phương phỏp khỏc như chọ ọn l c theo vũng quay Roulette ho c ch n l c ặ ọ ọ theo cơ chế ấ l y m u toàn ph n ngẫ ầ ẫu nhiờn đố ới v i cỏc cỏ thể trờn qu n th (đ thớch ầ ể ộ nghi của cỏc cỏ thể là giỏ trị ới) m
3.3.2.4. Chọn lọc theo thể thức giao đấu
Cho trước một hằng số thiờn vị giao đấu là K với 0 < K < 1. Chọn lọc theo giao đấu (tournament selection) diễn ra như sau:
Chọn ng u nhiờn t qu n th 2 cỏ th b t kỡ ẫ ừ ầ ể ể ấ T o mạ ột số ng u nhiờn r thu c kho ng (0,1] ẫ ộ ả
N u ế r > K thỡ cỏ thể cú độ thớch nghi lớn hơn sẽ được chọn vào qu n th trung gian ầ ể N u ế r <= K thỡ chọn cỏ thể cú độ thớch nghi nh ỏ hơn
Trường h p 2 cỏ th ợ ể cú độ thớch nghi b ng nhau thỡ ch n ng u nhiờn m t trong 2 cỏ ằ ọ ẫ ộ thể đú
Đưa 2 cỏ thể ở ạ tr l i qu n th ầ ể ban đầu
Lặp lại quỏ trỡnh lựa c ọn từ bước thứh nhất cho đến khi cú đủ N cỏ thể trong quần thể trung gian.
3.3.3. Toỏn tử lai ghộp
3.3.3.1. Lai ghộp theo điểm cắt
Lai ghộp theo điểm cắt (K-point crossover) là phương phỏp lai ghộp đơn giản và thường gặp nhất, cú tớnh trực quan và cú thể ỏp dụng đối với cỏc phương phỏp mó húa lời giải dưới dạng xõu. Phương phỏp này tiến hành như sau:
Chọn ng u nhiờn K v trớ c t khỏc nhau trờn 2 cỏ th ẫ ị ắ ể ban đầu để xỏc đ nh nh ng vựng ị ữ s n hành ghộp chộo ẽ tiế
Gọi Pik là đoạn nằm giữa vị trớ cắt thứ k 1 và vị trớ cắt thứ k trờn xõu biểu diễn lời - giải của cỏ thể ban đầu thứ i k = 1, 2, .., K+1; i = 1, 2). P ( i K+1 s ẽ là đoạn nằm sau vị trớ c t thắ ứ trờn xõu biK ểu di n l i gi i của cỏ thể ban đầễ ờ ả u th . ứi
Tạo con thứ nhất. Con thứ nhất sẽ được ghộp chộo từ cỏc đoạ Pn 1j với j ẻ và cỏc l đoạn P2h với h chẵn. Tức là ta sẽ thu được P11 – P22 - P13 – P24 - P15 - … P1K – P2 +1K
(gi s l ả ử K ẻ).
Tạo con thứ hai. Con thứ 2 sẽ được ghộp chộo từ cỏc đoạ Pn 2j với j ẻ và cỏc đoạ l n P1h với h chẵn. Tức là ta sẽ thu được P21 – P12 – P23 – P14 – P25 - … P1K – P2 K+1(giả s ử K chẵn)
Thụng thường phương phỏp lai ghộp theo điểm cắt cú K = 1 hoặc 2.
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
Nhiễm sắc thể cha mẹ Cỏc nhiễm sắc thể con Phộp lai ghộp 1 điểm cắt
Vị trớ cắt
0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1
Nhiễm sắc thể cha mẹ Cỏc nhiễm sắc thể con Phộp lai ghộp 2 điểm cắt
Vị trớ cắt 1 Vị trớ cắt 2
Hỡnh 3. 3 Minh họa lai ghộp 2 điểm cắt 3.3.3.2. Lai ghộp đồng bộ
Trong lai ghộp đồng b (uniform crossover) s d ng mộộ ử ụ t tham s là xỏc suố ất hoỏn đổi pe
(swapping probability). Với pevà 2 cỏ thể ban đầu cho trước, lai ghộp đồng b ộ được tiến hành như sau:
Giả ử ta đang xột ở ị s v trớ th ứk
o Sinh ra một số ng u nhiờn thuẫ r ộc khoảng (0,1]
o N u ế r ≤ pe thỡ trao đổi 2 allele của 2 cỏ thể cha mẹ ại vị trớ đang xột k t . Ngượ ạ ếc l i n u r > pethỡ giữ nguyờn giỏ trị 2 allele của 2 cỏ thể cha mẹ ại vị t trớ đang xột k.
o Kiểm tra k ≥ (v i L là đ dài c a xõu bi u di n l i gi i). N u L ớ ộ ủ ể ễ ờ ả ế k < L thỡ chuy n sang xột v ể ị trớ thứ k +1. N u ế k ≥ L thỡ kết thỳc
Quỏ trỡnh lai ghộp bắt đầ ừ ị trớ đầu t v u tiờn trờn xõu bi u diể ễn lời giải
0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 1 1 1 1 1 1
Nhiễm sắc thể cha mẹ Cỏc nhiễm sắc thể con Phộp lai ghộp đồng bộ
4
Lai ghộp đồng b ộ cũng giống như lai ghộp theo điểm c t ch ỏp d ng t t cho nh ng ắ ở ỗ ụ ố ữ phương phỏp biểu di n l i giễ ờ ải dướ ại d ng xõu.
3.3.3.3. Lai ghộp theo thứ tự
Đối với phương phỏp biểu diễn lời giải bằng hoỏn vị, cỏc phương phỏp lai ghộp đề cập ở những mục trước đều cú nhược điểm là cú thể sinh ra những con chỏu biểu diễn lời giải khụng hợp lệ. Vỡ thế ta cần một số cải tiến để khắc phục vấn đề này. Phương phỏp lai ghộp theo thứ tự (order-based crossover) là một vớ dụ. Phương phỏp này tiến hành như sau:
Chọn 2 v trớ ghộp chộo ngị ẫu nhiờn xỏc định v trớ đ u và cu i c a vựng ghộp chộo ị ầ ố ủ Tạo con thứ nhất. Sao chộp toàn bộ ội dung của vựng ghộp chộo trờn cỏ thể cha mẹ n
thứ nh t xu ng v trớ tương ứấ ố ị ng trờn con th nh t. V i nhữứ ấ ớ ng gene n m ngoài vựng ằ ghộp chộo ta s p x p chỳng theo thắ ế ứ ự t xuất hi n c a chỳng trong cỏ thệ ủ ể cha m th ẹ ứ 2 và sau đú lần lư t sao chộp chỳng vào con th nh t b t đ u t v trớ ngay sau v trớ ợ ứ ấ ắ ầ ừ ị ị ghộp chộo th 2. Nứ ếu đi hết độ dài xõu bi u diể ễn lời giải thỡ ta quay lại vị trớ đầu tiờn. Tạo con thứ 2. Con thứ 2 được tạo theo cỏch tương tự con thứ nhất trong đú 2 cỏ thể