Hai thuật toỏn di truyền GA và thuật toỏn mụ phỏng luyện kim SA (Simulated Annealing – SA) bản thõn là những phƣơng phỏp thớch nghi để tỡm kiếm tối ƣu. Trong khi GA là một thuật toỏn tỡm kiếm ngẫu nhiờn chủ yếu dựa trờn hai phộp toỏn gen là lai ghộp và đột biến thỡ SA đƣợc xem nhƣ một thuật toỏn ỏp dụng kỹ thuật “leo đồi” theo xỏc suất. Đó cú nhiều tỏc giả nghiờn cứu ỏp dụng GA và SA để giải bài toỏn tối ƣu. Tuy nhiờn, mỗi thuật toỏn đều cú những thế mạnh riờng và một số tỏc giả đó kết hợp hai thuật toỏn trờn làm tăng sức mạnh tỡm kiếm.
Trong định nghĩa, cỏc tỏc giả đó nhỳng tham số nhiệt độ T mụ phỏng nhiệt tụi luyện trong SA để điều khiển cỏc phộp toỏn gen của GA. Trong đú, cỏc tham số xỏc suất để chọn lọc, lai ghộp và đột biến đƣợc thay đổi qua từng thế hệ di truyền, chỳng đƣợc tớnh tỷ lệ với tham số nhiệt độ hiện thời của thế hệ hiện tại. Tham số nhiệt ban đầu đƣợc tớnh dựa trờn số thế hệ tiến húa (thƣờng khỏ lớn đảm bảo tớnh đa dạng của quần thể), sau mỗi thế hệ tham số nhiệt giảm dần để đảm bảo tớnh hội tụ và tớnh ổn định. Kết hợp này phự hợp với cỏc chiến lƣợc thay đổi tham số trong GA, làm tăng tốc độ hội tụ tỡm kiếm và hiệu quả của thuật toỏn, ta gọi đõy là thuật toỏn di truyền lai (SGA).
40
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
Tập tham số PAR đƣợc xem nhƣ chuỗi gen mó húa cho một cỏ thể trong SGA, giỏ trị hàm thớch nghi của cỏ thể, ký hiệu Fit. Trong bài toỏn hồi quy, hàm Fit đƣợc biểu diễn qua độ lệch trung bỡnh bỡnh phƣơng MSE (Mean squared error).
trong đú là kớch thƣớc tập dữ liệu, là đầu ra nhận đƣợc từ hệ luật với đầu vào là mẫu kiểm tra thứ l cũn là giỏ trị đầu ra thực sự của mẫu kiểm tra này.
Để ỏp dụng thuật toỏn di truyền lai SGA, chỳng ta mó húa mỗi cỏ thể tƣơng ứng với một tập luật con của S* dƣới dạng số thực, ký hiệu pi là cỏ thể thứ i. Mỗi gen của cỏ thể pi đƣợc mó húa bởi một số thực trong đoạn [0,1] biểu diễn chỉ số của luật đƣợc chọn trong S*, ký hiệu gj là gen thứ j, luật tƣơng ứng đƣợc chọn cú chỉ số trong tập S* là round(gj.|S*|) (hàm round(.) để làm trũn thành số nguyờn). Trƣờng hợp round(gj.|S*|) = 0, tức khụng cú luật đƣợc chọn . Phƣơng phỏp mó húa này cú thể hai gen gj1 và gj2 khỏc nhau (j1j2) nhƣng cựng biểu diễn một chỉ số luật đƣợc chọn, khi đú chỳng ta chỉ lấy một trong chỳng. Hệ luật Si tƣơng ứng với cỏ thể pi đƣợc xỏc định nhƣ sau:
Si = { Rk | gjpi, k = round(gj.|S*|), k>0 và RkS* }. Rừ ràng hệ SiS*, thỏa điều kiện ràng buộc ở trờn
Hỡnh 3.1: Sơ đồ mó húa cỏ thể chọn hệ luật cho thuật toỏn SGA
Cỏc phộp toỏn di truyền nhƣ chọn lọc, lai ghộp, đột biến và thay thế:
S* R1 R2 R3 ... Ri ... R|S*|
pi g1 g2 ... gj=0 ... gNmax Si
41
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
Cỏc phộp toỏn di truyền đƣợc ỏp dụng nhƣ sau:
(1) Phộp chọn lọc (SGA_Selection): sử dụng sơ đồ chọn lọc xếp hạng khụng tuyến tớnh theo hàm số mũ, cỏc cỏ thể đƣợc sắp xếp theo thứ tự giảm của giỏ trị hàm Fit, cỏ thể thứ i (xếp hạng i) sẽ đƣợc chọn vào quần thể bố mẹ
(parent) theo xỏc suất sau:
pi= ((1-a).a-i)/(a-Npop-1), với a= 1+γ(Tk)/Npop,
γ(Tk) = 1+(γmax– 1).(ln(T0)-ln(Tk))/(ln(T0)-ln(Tend)),
trong đú Npoplà số cỏ thể trong quần thể, Tk= T0.αk là nhiệt độ tụi luyện ở thế hệ hiện tại k(k= 1,...,Gmax), tham số Tk này giảm từ nhiệt độ ban đầu T0đến Tend= T0.αGmax, với 0<α<1 (thƣờng chọn α=0.7), Gmax là số thế hệ cần tiến húa, hàm
γ(Tk) sẽ tăng tuyến tớnh theo số thế hệ đó tiến húa từ 1 đến γmax(thƣờng chọn
γmax=9).
(2) Phộp lai ghộp (SGA_Crossover): sẽ chọn ngẫu nhiờn theo phõn bố đều một trong 3 phộp lai ghộp một điểm cắt, lai ghộp tuyến tớnh và lai ghộp tuyến tớnh mở rộng, cụ thể nhƣ sau:
(i) Lai ghộp một điểm cắt: cho một cỏ thể X, ký hiệu X|i là nửa đầu của
chuỗi gen trờn X tớnh đến vị trớ i và i|X là nửa phần cũn lại của chuỗi gen tớnh từ
i+1 đến hết. Với hai cỏ thể bố mẹ X,Y chọn để lai ghộp, một vị trớ ngẫu nhiờn i
đƣợc chọn theo phõn bố đều trờn chiều dài chuỗi gen của hai bố mẹ, hai cỏ thể
con U, V sinh ra bằng cỏch ghộp phần đầu của X với phần sau Y và ngƣợc lại:
U= X|i⊕i|Y,
V= Y|i⊕i|X,
trong đú ⊕ ký hiệu của phộp ghộp nối hai chuỗi gen.
(ii) Lai ghộp tuyến tớnh: chọn a ngẫu nhiờn phõn bố đều trong khoảng (0,1), sinh hai cỏ thể con U, V từ hai cỏ thể bố mẹ X, Y nhƣ sau:
U[j] = a.X[j] + (1-a).Y[j],
42
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
trong đú X[j] là gen thứ jcủa cỏ thể X, Lidvlà độ dài chuỗi gen của cỏc cỏ thể. Để tiện về sau ta viết gọn lại dƣới dạng U= a.X+ (1-a).Y và V= (1-a).X+ a.Y.
(iii) Lai ghộp tuyến tớnh mở rộng: chọn một điểm cắt i chia mỗi chuỗi gen của cỏ thể bố mẹ X và Y thành 2 phần, ỏp dụng phộp lai ghộp tuyến tớnh trờn mỗi phần chia tạo thành cặp cỏ thể con nhƣ sau:
Ui= a.X|i+ (1-a).Y|i, i|U= (1-a).i|X+ a.i|Y,
V|i= (1-a).X|i+ a.Y|i, i|V= a.i|X+ (1-a).i|Y,
U= U|i⊕i|U, V= V|i⊕i|V,
trong đú a đƣợc chọn ngẫu nhiờn phõn phối đều trong khoảng (0,1).
(3) Phộp đột biến (SGA_Mutation): giả sử một gen cú giỏ trị X[i] nằm trong khoảng giới hạn giỏ trị là [Lc, Ld] đƣợc chọn để đột biến, giỏ trị gen sau đột biến là:
X[i]′= X[i] + z.(X[i] – Lc) nếu u< 0.5, = X[i] + z.(Ld–X[i]) nếu ngƣợc lại, trong đú u chọn ngẫu nhiờn trong đoạn [0,1], và
z= sign(u-0.5).Tk.[(1+1/Tk)|2u-1|-1], với Tk là nhiệt độ tụi luyện tại thế hệ thứ k.
(4) Phộp thay thế(SGA_Replacement): là phƣơng phỏp thay thế bố mẹ bằng cỏc cỏ thể con, mỗi cỏ thể con sẽ cạnh tranh với cỏ thể tốt nhất trong hai cỏ thể bố mẹ. Gọi gp1, gp2, gctƣơng ứng là giỏ trị hàm mục tiờu của hai cỏ thể bố mẹ và cỏ thể con, đặt g* = max{gp1, gp2}, khi đú cỏ thể con đƣợc chấp nhận với xỏc suất p = min{1, e -( gc-g*/Tk}. Trong trƣờng hợp cỏ thể con khụng đƣợc chấp nhận, cỏ thể bố mẹ tƣơng ứng với g* đƣợc chấp nhận để đƣa vào thế hệ tiếp theo.
Chỳng ta cú sơ đồ thuật toỏn nhƣ sau
Inputs:
- Tập dữ liệu mẫu D = { (pi; ci) | i=1, ..., N }, pi = (di,1, ..., di,n) P,ciC = {C1, ..., Cm}, n là số thuộc tớnh, m là số lớp, N là số mẫu dữ liệu;
43
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
- Giới hạn ràng buộc số luật tối đa cần chọn tối ƣu: Nmax;
- Trọng số cho cỏc mục tiờu của hàm thớch nghi (fitness): 0 <wp, wn, wa< 1,
wp + wn + wa = 1;
Outputs:
- Hệ luật tối ƣu Sopt;
Actions:
Step1) Khởi tạo một quần thể xuất phỏt gồm Np cỏ thể Pop0 = { p0,1, p0,2, ...,
p0,Np } để tớnh tham số nhiệt ban đầu T0 (ký hiệu pk,i là cỏ thể thứ i trong quần thể của thế hệ k,nú là mó húa của tập chỉ số luật sẽ chọn từ S*, Np là kớch thƣớc của quần thể tại mỗi thế hệ trong SGA);
Step2) Với mỗi cỏ thể p0,iPop0, tớnh độ phự hợp Fit(p0,i)) theo cụng thức dựa trờn hệ luật S0,i chọn từ S*, và tớnh tham số nhiệt ban đầu:
p p N i N j j i Fit p p Fit T ,..., 1 2 1 , 0 , 0 0 ( ) ( )
Step3) Đặt k = 0. Lặp theo mỗi k cho đến khi k = Gmax, Popk = {pk,1, pk,2, ...,
pk,Np} và thực hiện
3.a) Tớnh tham số nhiệt cho thế hệ k+1, Tk+1 = k.Tk, trong đú < 1 là hệ số giảm nhiệt độ (thƣờng chọn 0.7);
3.b) Tạo quần thể mới Popk+1 cho thế hệ k+1 nhƣ sau: Lặp theo i cho đến khi |Popk+1| = Np,
Chọn hai cặp cỏ thể bố mẹ p, qPopk sử dụng phộp chọn lọc
SGA_Selection(Popk, Tk+1). Sau đú thực hiện cỏc phộp lai ghộp, đột biến và thay
thế trờn cặp bố mẹ này bằng cỏc phộp SGA_Crossover, SGA_Mutation,
SGA_Replacement để tạo cặp cỏ thể mới p, q và đƣa vào Popk+1.
44
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
3.c) Với mỗi cỏ thể pk,iPopk+1, tớnh độ phự hợp Fit(pk,i) theo cụng thức dựa trờn hệ luật S0,i chọn từ S*.
Step4) Trả về kết quả hệ luật tƣơng ứng với cỏ thể tốt nhất ở thế hệ cuối cựng, Sopt.
End.