Việc ch n ra các cá thọ ể cha m ẹ đem lai tạo là ngẫu nhiên dựa trên nguyên t c cá thắ ế
có mức độthích nghi cao nhất cũng tương ứng có khảnăng chọn lựa cao nh t. Quá ấ
trình ch có thọn ểđược th c hiự ện ngẫu nhiên theo vòng quay roulette với từng vùng chiếm trên vòng tròn tương ứng với xác suất tồn tại của mỗi cá thể. Hình 3.2 Vòng quay lựa chọn cá thể Xác su t tấ ồn tạ ủi c a cá thể ilà: Pi = ∑ = N j j i f f 1 Trong đó:
f là hàm thích nghi của cá thể trong quần thể có N cá thể.
Một chiến lược chọn lựa cá thể khác cũng hay được sử ụ d ng là chiến lược lựa chọn
ngẫu nhiên và được so sánh với nhau theo mức độ thích nghi, cá th nào có tính ể thích nghi cao hơn sẽđược chọn gi l i. ữ ạ Quá trình này được lặ ạp l i cho đến khi thu
được n c/2 p cá th cha m th c hi n phép lai t o (n ặ ể ẹ để ự ệ ạ là sốcá thểtrong quần thể).
3.2.2 Phép lai
t s t
Các cá thể ốt sau khi được chọn lựa từquần thể ẽ cho lai để ạo ra các cá thểcon với hi vọng k ế thừa các đặc tính di truyền từ các cá thể ố b mẹ. Tuy nhiên, không phải t t c cá thấ ả ể đề u có thể ế k t hợp với nhau mà thường có một xác su t k t hấ ế ợp nhấ ịt đnh Pcross.
Quá trình lai th c hiự ện như sau:
• Ứng v i m i cá th phát sinh cho nó mớ ỗ ể ột xác su t ngấ ẫu nhiên, n u xác suế ất này nhỏ hơn Pcross thì cá thể được lấy vào danh sách sử ụ d ng cho việc lai ghép.
• Chọ ựn l a ng u nhiên t ng c p và vẫ ừ ặ ị trí lai ghép để ự th c hiện lai ghép tạo hai cá th con thay thể ế.
Trong hiện thực, các thao tác trao đổi chéo giữa hai nhiễm sắc thểđược định nghĩa
và thời gian ph thuụ ộc nhi u vào cách ề các nhiễm sắc thể được mã hóa. Thông qua
thao tác trao đổi chéo này, quá trình tái tổ ợ h p thông tin di truyền gi a các nhiữ ễm sắc thể được thực hiện. Một số thao tác trao đổi chéo phổbiến sau:
• Trao đổi chéo một điểm c t (One-ắ Point Crossover): đây là thao tác đơn giản nhất, một điểm cắt được chọn ngẫu nhiên trên chiều dài nhi m s c th , sau ễ ắ ể đó, các gene n m phía sau điằ ểm cắt đư c hoán đợ ổi gi a hai nhiữ ễm s c th cha ắ ể
mẹ. Tham khảo minh họa Hình 3.3.
• Trao đổi chéo nhi u ề điểm c t (Multi-Point Crossover): ắ đây là thao tác mở
rộng củ thao tác trướa c với nhiều hơn m t điộ ểm cắt. rong hi T ện thực, thao
tác trao đ i chéo hai điổ ểm c t ắ thường hay được sử ụ d ng. Hình 3.4 minh h a ọ thao tác trao đổi chéo nhiều điểm c t. ắ
Hình 3.3 Thao tác trao đổi chéo một điểm cắt
Hình 3.4 Thao tác trao đổi chéo nhiều điểm cắt
• Trao đổi chéo ánh x t ng ph n (PMX – Partially Mapped Crossover): ạ ừ ầ phương thức trao đ i này thưổ ờng được s d ng tử ụ rong trường hợp các nhiễm sắc thể được mã hóa dạng chuỗi số (sốnguyên hoặc số thực) có thểhoán vị. PMX bảo tồn vị trí của nhiều gene nhất có thể trong cảhai nhiễu sắc thể. Ví d : ụ
NST 1: K H E C B D F G I J A L| | NST 2: C D B A | G F E | L K I J H
Chọn hai điểm cắt ngẫu nhiên, khi đó, phân đoạn giữa hai điểm cắt cho định nghĩa một ánh xạ (B G, D F, F E) . Áp dụng ánh xạ này lên các gene
của hai nhiễm sắc thể cha mẹ sẽ thu được các nhiễm sắc thể con tương ứng.
NST con 1: K H D C | G F E | I J A L B
NST con 2: C E G A | B D F | L K I J H
• Trao đổi chéo có th t ứ ự (Ordered Crossover): phương thức này b o t n th ả ồ ứ
t ự tương đối của nhiều gene nhất có th trong c ể ảhai nhiễm sắc th . Ví d : ể ụ
NST 1: K H E C | B D F | G I J A L
NST 2: C D B A | G F E | L K I J H
Xác định hai điểm cắt ngẫu nhiên, sau đó, xác định thứ tự các gene trong một nhiễm sắc thể bắt đầu với gene đầu tiên ngay sau điểm cắt thứ hai. Trong ví
gene đã tồn tại trong phân đoạn đã hoán vị giữa hai điểm cắt. Trong ví dụ trên những gene cần xóa là GFEnên phần còn lại là IJALKHCBD. Kết quả
các con là:
NST con 1: H C B D | G F E | I J A L K
NST con 2: C A G E | B D F | L K I J H
3.2.3 Phép đột biến
S ự đột biến gene cũng là một trong những nguyên nhân gây ra tiến hóa n u biế ến đổi này biểu hiện tính trạng có lợi. Trong giải thuật GA, các đột biến xảy ra v i m t xác ớ ộ
suất Pmutnào đó, với những trường hợp xảy ra đột biến thì có sự thay đổi trong gene mà không kế thừa t cá thừ ểnào.
Quá trình đột biến trong qu n thầ ể ễ di n ra như sau: Chọn ng u nhiên m t cá thẫ ộ ể và một vị trí gene với xác suất tương ứng nhỏ hơn Pmut, th c hiự ện biến đổi ngẫu nhiên tại vịtrí này.
Một số loại đột biến thường sử ụng như chèn gene d hoặc đoạn gene Hình 3.5a), ( xóa gene hoặc đoạn gene (Hình 3.5b), hoán vị gene hoặc đoạn gene diễn ra trong một nhiễm sắc thể (Hình 3.5c, Hình 3.5d).
Cần lưu ý: việc gây đột biến có thểlàm cá thể ố t t hơn nhưng cũng có thểlàm cá thể
xấu hơn. Chính vì v y, phép đậ ột biến ít nhiều sẽtác động đến quá trình hình thành quần th sau cùng (l i giể ờ ải bài toán).
3.3 Các mô hình song song
Thuật toán di truy n là ề k ỹ thuật tìm kiếm mạnh được sử ụ d ng để ả gi i quyết các bài toán khó có nhiều luật ràng buộc. Tuy nhiên, thuật toán lại đòi hỏi nhiều năng lực
tính toán cũng như bộ nhớ ủ c a máy tính do phả ặi l p qua nhiều th h có ế ệ để được k t ế
quả ố t t. Ngoài ra, việc đánh giá tính thích nghi c a các cá thủ ể trong quần thể cũng
chiếm thời gian r t lấ ớn Chính vì v. ậy, hiện thực song song thuật toán di truyền sẽcó lợi vềhiệu năng và tính khả m (ở scalability).
Thuật toán di truyền song song[15][20][40] không chỉ là mở ộ r ng của thu t toán di ậ
truyền truyền thống mà còn là biểu hiện một lớp thuật toán mới b i khở ả năng tìm
kiếm trên các không gian l i giờ ải khác nhau bằng nhiều cách tìm kiếm khác nhau cùng lúc.
Nhiều cách tiếp c n, hiậ ện th c thu t toán di truy n song song ph thu c vào các y u ự ậ ề ụ ộ ế
t ốsau:
• Cách thức đánh giá thích nghi độ và phương pháp đột biến được áp d ng. ụ
• Đơn hay đa quần th con (nhóm cá th ). ể ể
• Đa quần thể được sử ụ d ng và cách thức các cá thể được trao đổi giữa các quần th . ể
• Cách thức ch n l c các cá th (c c b hay toàn c c) ọ ọ ể ụ ộ ụ
Phụ thu c vào cách m i yộ ỗ ếu tố trên được hi n thệ ực, nhiều phương pháp song song thuật toán di truyền khác nhau được đề xuất. Nhìn chung, các phương pháp này có thể phân lo thành 8 lại ớp[15] sau:
Hình 3.6 Phân loại các thuật toán di truyền song song
3.3.2 Song song dạng chủ tớ
Dạng song song này còn được biết với tên gọi song song toàn c c, mô hình chụ ủ ớ-t hay phân tán đánh giá độ thích nghi. Thu t toán sậ ử ụ d ng m t quộ ần thể đơn, việc
đánh giá các cá thể và/hoặc áp dụng các phép toán di truy n ề được thực hiện song song. Phép chọn lọc cho lai tạo được th c hiự ện toàn cục, vì v y, m i cá th ó thậ ỗ ể c ể
cạnh tranh với các cá thểkhác.
Tiến trình chủ lưu trữ toàn bộ quần th và các ti n trình tể ế ớ đánh giá độthích nghi, áp dụng phép đột biến và trao đổi chéo một phần bộ gen. Truyền thông xảy ra chỉ
khi mỗi ti n trình tế ớ nhận một cá thể hoặc m t t p các cá thộ ậ ể để đánh giá và trả ề v các giá trị ể ệ th hi n độ thích nghi.
Hình 3.7 Mô hình song song dạng chủ tớ
Thuật toán có tính đồng bộ ế n u tiến trình chủ ngừng và chờ để nhận hết các giá trị độ thích nghi c a toàn b các cá th trong qu n th ủ ộ ể ầ ểtrước khi ti p t c ti n hành v i ế ụ ế ớ
thế ệ ế h k tiếp. Tuy nhiên, trong trường hợp thuật toán không ng ng chừ ờ ấ b t kỳtiến trình chậm chạp nào, thuật toán được g i là bọ ất đồng bộ. Khi đó, thuật toán phải
dùng cơ chế động dẫn đến rất khó phân tích.
3.3.3 Song song dạng đa quần thể con có di trú
Dạng thuật toán này còn đề ậ c p với các tên khác nhau như di truy n ề đa quần thểcon
tĩnh, di truyền nhóm đa cá thể, di truyền kết thô (coarse-grained) và đôi khi còn gọi
đơn giản là thu t toán di truy n song song. ậ ề
Phương pháp song song này đòi hỏi chia qu n th thành các qu n th con hay các ầ ể ầ ể
nhóm. Các quần thể con được tách bi t v i nhauệ ớ gọi là cô lập v mề ặt địa lý (geographic isolation) và một cá th chể ỉ thuộc một quần thể con nhấ ịt đ nh. Tác vụ di trú được th c hiự ện theo th i gian, mờ ột số cá th ểđược di chuy n ho c sao chép tể ặ ừ nhóm này đến nhóm khác. Nếu các cá th có thể ể di trú đến bất kỳ nhóm khác nào
thì mô hình này được gọi là mô hình đảo (island model). N u các cá th ch di trú ế ể ỉ đến các nhóm lân c n c a chúng, mô hình này gậ ủ ọi là mô hình từng bước (stepping stone mode).
S ựdi trú của các cá thể ừ nhóm này sang nhóm khác đượ t c điều khiển bởi các tham s ố như:
• Topo định nghĩa các kết nối giữa các quần thể con. Các topo được sử ụ d ng ph biổ ến bao gồm: khố ậi l p phương, lưới hai chi u hoề ặc ba chi u, d ng vòng, ề ạ
...
• Tốc độdi trú: iđ ều khiển bao nhiêu cá thểdi trú.
• Lược đồ di trú: điều khi n các cá thể ể nào a nhóm ngucủ ồn (tốt nhất, xấu nhất, ngẫu nhiên) di trú tới nhóm khác và các cá thểnào được thay thế (x u ấ
nhất, ng u nhiên, ...) ẫ
• Tần xuất di trú.
Thuật toán kết thô(Coarse grained algorithm): đề ậ c p đ n mô hình có tương đế ối ít s ốquần thể con nhưng mỗi quần thểcó nhiều cá thể. Hai đặc trưng của mô hình này là thời gian xử lý một thế ệ h trong mỗi qu n thầ ểcon tương đối l n và truyớ ền thông xảy ra khi trao đổi các cá thể giữa các quần thể con. Đôi khi, thuật toán di truyền song song kết thôcòn được g i là di truyọ ền phân tán bởi thư ng đườ ợc hi n th c trên ệ ự
các máy tính MIMD bộ nh ớphân tán.
Thuật toán kết mịn (fine grained algorithm): trái lại với thuật toán kết thô, thuật
toán đòi hỏi t rấ nhiều b x lý b i vì quộ ử ở ần thể được chia thành rất nhi u qu n thề ầ ể
con (nhóm). Truyền thông giữa các nhóm được hi n th c ho c sệ ự ặ ử ụ d ng tác v di trú ụ
hoặc sử ụ d ng cơ chế chồng lấp các nhóm. Gần đây, thuật ngữ di truy kền ết mịn
được định nghĩa lại và được s dử ụng để ch di truy n song song kh i l n (s trình ỉ ề ố ớ ẽ
Hình 3.8 Lược đồ thuật toán di truyền song song kết mịn. Lớp thuật toán này có một quần thể được phân tán từng phần và được hiện thực rất hiệu quả
trên các máy tính song song lớn.
Mô hình đa nhóm thể hiện một vấn đề là tính kh m ả ở (scalability). Trong trường hợp số máy tương đối ít, mô hình kết thô được sử ụ d ng rất hiệu quả. Tuy nhiên, nếu s ốmáy mở ộ r ng đ n hàng trăm máy, r t khó đế ấ ể m rở ộng (scale up) kích thước và số
nhóm để ậ t n d ng hiụ ệu quả ạ ầ h t ng ph n cầ ứng. Mặc dù hạn chế trên, mô hình đa
nhóm rất phổ biến bởi từquan điểm hiện thực, nó là sự ở ộ m r ng đơn giản của thuật toán di truyền tuần tự.
3.3.4 Song song dạng quần thể con chồng lấp, không di trú
Mô hình này tương t mô hình trên nhưng khự ông có tác vụdi trú. Thay vào đó, s ự
thỏa hiệp và trao đ i các đổ ặc trưng được th c hiự ện bởi các cá thể ằ n m trong các vùng ch ng lồ ấp (overlapping areas). Các nhóm được tổ chức trong m t c u trúc ộ ấ
không gian nhằm có thể tương tác giữa chúng. Một số cá thể uth ộc nhiều hơn một nhóm và tham gia nhiều tác v ụtrao đổi chéo và chọn lọc.
Mô hình này có thể ễ d dàng được áp dụng trên các hệ thống bộ nh chia s b ng ớ ẻ ằ cách đặt toàn bộ qu n th trong vùng chia s và b ng cách chầ ể ẻ ằ ạy các thu t toán di ậ
truyền trên mỗi nhóm một cách đồng thời. Sự đồ ng bộ ầ c n th c hi n trên các vùng ự ệ
3.3.5 Thuật toán di truyền song song khối lớn
Thuật toán di truyền song song khối lớn có được khi tăng số nhóm và giảm s ố cá thể có trong mỗi nhóm trong mô hình quần thể con có chồng lấp. Loại thuật toán
này thường được gọi thulà ật toán di truy n k t m n ề ế ị đơn giản.
Thuật toán s d ng chử ụ ỉ ộ m t quần thể. M t cá thộ ể chỉ ạ c nh tranh và giao phối v i các ớ
cá th lân cể ận của nó, nhưng bởi vì các vùng lân cận có sự chồng lấp, các l i gi i tờ ả ốt có thể ph biổ ến qua toàn bộ qu n thầ ể.
Mô hình này thích hợp triển khai trên các h ệ ốth ng song song lớn cũng như các h ệ
thống đa bộ ử x lý T. rường hợp lý tưởng, mỗi nhóm cá thể được gán cho mỗi phần t ử tính toán. Mô hình này không thích hợp triển khai trên các cluster bởi chi phí truyền thông cực kỳ ớ l n.
3.3.6 Song song dạng các nhóm cá thể động
Đây là phương pháp song song mới cho phép k t h p thu t toán song song toàn cế ợ ậ ục
(như thuật toán di truy n phân tán ch t ề ủ ớ đơn gi n) v i thu t toán kả ớ ậ ết thô (như mô
hình quần thể con có chồng lấp). Mô hình này không có tác vụdi trú i vì toàn b bở ộ
quần thể đư c đợ ối xử như một tập hợp các cá thể trong su t quá trình tiố ến hóa và thông tin giữa các cá thể đư c trao đổợ i qua việc tái tổ chức động các nhóm trong suốt các chu kỳ ử x lý. Trên quan điểm xử lý song song, phương pháp nhóm động phù hợp hoàn toàn với dạng MIMD với thuật toán nhiều chủ ớ ấ ồ-t b t đ ng bộ.
Ý tưởng chính c a ủ phương pháp là làm giảm th i gian chờ ờ các cá thể sau cùng (chậm nhất) trong mô hình chủ ớ ằ-t b ng cách phân tách động quần th thành các ể
nhóm cá thể để có thể ử lý ngay mà không trì hoãn. Điề x u này giúp tăng tốc độ ử x lý đáng kể. Hơn nữa, thuật toán cũng có tính khả ở đầ m y đủ.
Thuật toán có thể chạy trên các hệ thống song song bộ nh chia s ớ ẻcũng như các hệ
thống song song bộ nhớ phân tán. Do có tính khả ở m cao, thu t toán triậ ển khai được trên các thh ệ ống có ít ph n tầ ửtính toán và trên các h th ng song song l n v i hàng ệ ố ớ ớ trăm, hàng ngàn phầ ửn t tính toán.
3.3.7 Thuật toánsong song trạng thái ổn định
Thuật toán sử ụ d ng các lư c đợ ồ ậ c p nhật quần th liên t c. N u các cá thể ụ ế ể con dần