• Cấu trúc nhiễm sắc thể và kiêu gien đ ộ dài m: z = Z| , Z2, z m gọi là nhiễm sắc thể-viết tắt là NST hay còn gọi là V í dụ về một NST trong GA cổ điển: Mỏi kiểu gien tức là một NST cụ
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI KHOA CÔNG NGHỆ
ĐỖ THỊ MINH HUỜNG
ỨNG DỤNG PHƯƠNG PHÁP TÍNH TOÁN TIẾN HOÁ
ĐỂ GIẢI BÀI TOÁN LẬP LỊCH GIA CÔNG CHI TIÊT MÁY
Chuyên ngành: Công nghệ thông tin
Ma số : 01.01.10
LUẬN VĂN THẠC s ĩ
Người hướng dẫn khoa học
TIẾN Sĩ HOÀNG XUÂN HUẤN
Hà Nội - Năm 2002
Trang 2Mở đ ẩu ị
C hươ ng 1 Thuật toán di truyền và tính toán tiến hoá 3
1.1.Sơ lược về lịch sử 3
1.2.Thuật toán di truyền cổ điển 4
1.2.1.Cấu trúc của thuật toán di truyền cổ điển 4
1.2.2.Cơ sở toán học của thuật toán di truyền cổ điển 7
1.2.2.1 Khái niệm lược đồ 7
1.2.2.2 Tính chất của lược đồ 8
1.2.2.3 Mối quan hộ giữa lược đồ và quá trình tiến hoá của thuật toán di truyền cổ điển 9
1.2.3.So sánh thuật toán di truyền cổ điển với một số thuật toán truyền thống k h á c 13
ỉ 2.4.Một số cải tiến của thuậl toán di truyền cổ điển 15
1.2.4.1.Cải tiến về phương pháp chọn lọc (m odG A l) 15
1.2.4.2.Cải tiến về hàm mục tiêu 17
1.2.4.3.Thuật toán di truyền cổ điển với kích thước quẩn thể thay đổi (modGA2)
19
1.2.4.4.Một số cải tiến của phép trao đổi chéo 21
1.2.4.5.Thuậl toán di truyền hỗn hợp (m o d G A 3 ) 24
1.3.Tính toán tiến hóa 25
1.3.1.Các chiến lược liến hoá 26
1.3.1.1.Nội dung của các chiến lược tiến hoá 26
1.3 ] 2.So sánh các chiến lược tiến hoá và thuật toán di truyền cổ điển 29
Ị 3.2.Lập trình tiến hoá và lập trình di truyền 30
Trang 3C hư ơ ng 2 Bài toán lập lịch gia công chi tiết máy và phương pháp giải truyền
thống 38
2.1.Nội dung bài toán 39
2.2.Phương pháp giải truyền thống 40
2.2.1 Trường hợp gia công trên hai máy 40
2.2.2.Trường hợp gia công trên ba máy 43
C hươ ng 3 Mô hình tính toán tiến hoá để giải bài toán lập lịch gia công chi tiết máy 45
3.1 Mô hình của bài toán 45
3.2.Mô tả thuật toán cho bài toán 46
3.3.Lược đồ tính toán tiến hoá 47
3.3.1 M ã ho á 47
3.3.2.Cấu trúc nhiễm sắc thể và kiểu gien 43
3.3.3.Khởi tạo quần thổ ban đầu 48
3.3.4.Xác định hàm thích nghi 49
3.3.5.Quá trình tiến hoá 50
C hươ ng 4 Thiết kế phần m ềm 53
4.1.Cách xAy dựng phần m ềm 53
4.1.1 Sơ đồ phân cấp chức năng 53
4.1.2.Chức năng 1: Nhập tên tệp dữ liệu cho bài toán 53
4.1.3.Chức năng 2: Nhập tham số khởi tạo 54
4.1.4.Chức năng 3:Tìm qui trình gia công 55
Trang 44 2 1 T ệp d ll.lx t 60
4.2.2.Tệp d l2 tx t 62
4.2.3.Tệp d l3 tx t 63
Kết luận 65
Tài liệu tham khảo 66
Trang 5(Z7’iưĩ'ũ flit, tơi xin cfiân tíỉàníỉ cảm on ỹiá o ’D S J ị ồncj
ÍX ụân uãn ctã tận tìníi Hướng ắẫn tơi íỉồn tPiàn fl íuận ưãn nàiỷ
tíiịí tơ i cũng xin ctược cảm ơn tfiàij -pfỵcim ạ ^UÍiULỊ ctã tạ o ctíELL Ízíện fiLCĨncj Jan ưà ctĩncj Cjĩịi ý kiến cfio tuận uãn của tơi ctược íiồn cĩiinpL lỉơn.
<^vfĩân ctây, tơi cũng xin (jày tỏ [ịtiỹ (jiểt ơn tĩ i các tfiàij txoncj U \(ioa
d ơncj ÍỈồạí cM ọc Q a ơ c t— ^La c^ íà c^Aíội ctã cĩ cỏncỊ ctào tạo, ỹiúịi ctỡ ctề tỏ i cĩ ctược Cuận ưãn này.
diLỢ càncj, tơi xin cảm ơn tấ t cả íjạn ( jè ưà nnünß người tnãn cua tơi ctã ctộng ưiẽn ưà ỹi-ủịi ctỡ tơi trong CỊUÚ txinfi (ỉọc tậịi ưà íiồn tíiànlỉ Cuận ưãn.
J ị à e^Nội, Kÿàjj ỹ tfiány 7 0 năm 2 0 0 2
t 9
ỳ
ác aiả
Trang 6MỞ ĐẨU
Bài toán lập lịch gia công các chi tiết máy thuộc loại bài toán quy hoạch nguyên (xem [3]) và thuộc loại bài toán NP_ khó (xem [4]) nên khó giải bằng thuật toán truyền thống Hiện nay, người ta mới giải quyết được trường hựp it máy bằng thuật toán truyền thống (2-3 máy)
Để giải các bài toán khó, một phương pháp có hiệu quả đang được dùng rộng rãi là phương pháp tính toán tiến hoá Phương pháp tiến hoá là phương pháp mô phỏng tiến hoá tự nhiên, bắt đầu được ứng dụng vào những năm
1950 Nó được Holland trình bày một cách có hệ thống để giải quyết các bài
điển) năm 1975 (xem [15]) Từ đấy đến nay phương pháp này được phát triển ứng dụng một cách phong phú theo nhiều hướng tiếp cận khác nhau Nội dung của luận văn này là tìm hiểu phương pháp tính toán tiến hoá và ứng dụng nổ
dể thiết k ế phần mềm cho bài toán lập lịch gia công chi tiết máy
Bố cục của luận văn gồm 4 chương như sau:
Chương 1: Thuật toán di truyền và tính toán tiến hoá
Giới thiệu tóm tắt phương pháp tính toán tiến hoá: bắt đầu từ giải thuật di truyền cổ điển đến sự phát triển hiện thời và tính toán tiến hoá Đồng thời luận văn cũng nêu những mặt mạnh, yếu của nó và so sánh với thuật toán di truyền
Trang 7Trong chương này, tác giả trình bày việc áp đụng phương pháp tiến hoá cho bài toán lập lịch gia công chi tiết máy.
Trước hết, tác giả phân tích bài toán để tìm ra cách mã hoá (cách biểu diễn nhiễm sắc thể) sao cho tự nhiên, dễ hiểu, dễ thao tác Tiếp theo là các toán tử di truyền được dùng cho bài toán Luận văn cũng đưa ra cách khởi tạo quẩn thể ban đầu và thuật toán tiến hoá (trong các phần này đều có ví dụ minh hoạ)
Chương 4: Thiết kế phần mềm.
Trình bày việc thiết kế phàn mềm bằng ngôn ngữ PASCAL Tác giả cũng ncu rõ các giao diện trong phần mềm, cách sử dụng các giao diện và các chức năng của phần mềm
Phần mềm này đã được chạy và kiểm tra trên một số tệp dữ liệu thực Kết quả cho tương đối khả quan Các kết quả chạy thử được đưa vào cuối chương
để xem xét và đánh giá
ỉ/nff f / ( ( n r / /t/ịHƯ!tr/ /ihrí/i /tn/t /nán /ir>Ị /<aá (ỉf r/ini Ạàt (oáit ỉộ/r ỉicỉt </ia ró Ị Ị ọ r/ii /iêĩ má-1/
Trang 8CHƯƠNG 1
THUẬT TOÁN DI TRUYỂN v à t í n h t o á n t i ê n HOÁ
1.1 Sơ lược về lịch sử
trong thời kỳ này nó được sử dụng để giải quyết các bài toán riêng rẽ xuất phát từ sinh học
Thuật toán di truyền (Genetic Algorithm - viết tắt là GA) cổ điển được J.H.Holland và các đồng nghiệp của ông ở trường đại học Michigan giới thiệu năm 1975 Ông trình bày một cách có hệ thống trong [15] để giải quyết các bài toán tối ưu hàm nhiều biến nhờ kiểu gien nhị phan, đồng thời ông cũng là một trong những người có nhiều công trình nghiên cứu liên quan đốn GA cổ điển [14], [16]
Vé GA cổ điển, sau LH.Holland còn có rất nhiều người nghiên cứu về lý thuyết cũng như ứng dụng của nó trong các lĩnh vực khác nhau như sinh học, khoa học máy tính Nhiều công trình nghiên cứu về GA cổ điển đã được công
bố ở nhiều nơi trên thế giới Hai trong số này phải kể đến K.A DeJong và D
E Goldberg là những người có nhiều công trình nghiên cứu về GA cổ điển và những phát triển của nó trong nhiều lĩnh vực khác nhau: K A DeJong [5],[6], [7], [8], còn D.E Goldberg [11], [12], [13], [14], [15] Đặc biệt D E Goldberg đã dưa ra một cải tiến rất nổi tiếng của thuật toán di truyền cổ điển,
đó là “thuật toán di truyền hỗn hợp” trong một công trình của ông vào năm
1993 [15] Kể từ đó, nó nhanh chóng được nhiều tác giả cải tiến một cách phong phú để giải quyết các bài toán khó trong thực tiễn với tên gọi chung là tính toán tiến hoá Việc giải quyết các bài toán tuy đa dạng nhưng thủ tục áp dụng vẫn dựa trên lược đồ GA cổ điển
'ìíiư / r ỉm ự / / ị Ỉ! t ỜỈỊ Ị r/ /i /i á /i ỉín /t /c ó n tiê n ỉ to n tlô r /iả ì /ĩà i /n á n (â /i ỉir ỉi r/ia c â u f/ c/ứ_ /ir ? m á Ị/
Trang 91.2 Thuật toán di truyền cổ điển
Thuậl toán di truyền cổ điển là các kỹ thuật phỏng Iheo quá trình tiến hoá
tự thích nghi của các quần thể sinh học dựa trên học thuyết Darwin
Tư tưởng của thuật toán di truyền cổ điển là làm theo tự nhiên Thuật toán di truyền cổ điển và sự tiến hoá tự nhiên có cùng một nguyên lý Trong
sự tiến hoá tự nhiên, mỗi loài sinh vật đều phải tìm cách thích nghi tốt nhất với một môi trường sống phức tạp luôn luôn thay đổi Sự thích nghi đó dược đúc kết và ghi lại trong cấu trúc nhiễm sắc thể của chúng Rõ ràng, những sinh vật thuộc thế hệ sau được sinh ra (tính trung bình) sẽ thích nghi với môi trường tốt hơn thế hệ cha, mẹ chúng Thuật toán di truyền cổ điển được bắt chước lương tự như sự tiến hoá tự nhiên
1.2.1 Cấu trúc của thuật toán di truyền cổ điển
Thuật toán đi truyền cổ điển được J.H.Holland giới thiệu để giải bài toán tối ưu:
Ị ìnax f(x) / x e M Ị , trong đó M là hình hộp írong không gian số thực n chiều, f(x) dương với mọi x e M
• Cấu trúc nhiễm sắc thể và kiêu gien
đ ộ dài m: z = (Z| , Z2, z m) gọi là nhiễm sắc thể-viết tắt là NST (hay còn gọi là
V í dụ về một NST trong GA cổ điển:
Mỏi kiểu gien (tức là một NST cụ thể) biểu thị một lời giải có thể của bài toán, một quá trình tiến hoá được thực hiện trên một quần thể (một tập hợp NST) tương dương với sự tìm kiếm trong một không gian các lời giải có thể
'ÌỈỊH/ (/m ư / ịilu ừ ìiự / /i/iá /i /in h /c á n /tr u / ị nó r/ô {/¡ải /<ài /n ó n lâ /i /íc h r/ia rô ìtợ c /ti /¡ r ì m á i/
Trang 10Sự lìm kiếm này đòi hỏi sự cân bẳng giữa hai mục đích: lìm lời giải tốt nliAÌ và khám phá kliông gian tìm kiếm.
Thuật toán di truyền cổ điển thực hiện tìm kiếm theo nhiều hướng bằng cách duy trì một tập lời giải có thể, khuyến khích sự hình thành và trao đổi thông tin giữa các hướng Tập hợp lời giải trải qua các quá trình tiến hoá và cuối cùng cho ta một lời giải đủ tốt tuỳ theo yêu cầu Tại mỗi thế hệ các lời giải tương đối tốt được tái sinh, trong khi đó các lời giải tương đối tồi bị loại bỏ
Để phân biệt giữa các lời giải khác nhau, người ta xác định một hàm
eval trên lập nhiễm sắc thể để đánh giá độ "thích nghi" của mỗi cá thể hay
chính là độ tốt, xấu của từng lời giải (hàm này đóng vai trò của một môi trường sống trong thuyết tiến hoá)
• Cấu trúc của GA cổ điển
Procedure GA Begin
t < - 0khởi tạo P(t) đánh giá P(t)Repeat
t <- t+1chọn lọc P(t) từ P (t-1) thay đổi P(t)
đánh giá P(t) và chọn cá thể tốt nhất Until điều_kiệnjkết thúc;
EndQuá trình tiến hoá được diễn ra trong vòng lặp: Tại thế hệ thứ t thuật toán
f/tm f/ / h n ’rfỊư / /lỉiá /i /in /i /n ó n fir u /ic á f/r r/iả i /<ài /o á n fâ /i ỉir ỉi r/ia rn n ợ r /ti ỉié ĩ m á y
Trang 11Ihich nghi" Mot tap lofi giai mod diroc xay dung (vong lap thu t+1) bang cach
"chon loc" cac ca the Ihich nghi hon ta duoc tap ldi giai trung gian San do mot so ca the trong tap loi giai da duoc chon bi bie'n d6i bang phtrong phap
"lai ghep" va "dot bien" de tao thanh cac ldi giai mcfi cho thcihe thur t+1
• Phep chon loc
Phep chon loc la mot qua trinh chon cac ca the de tham gia vao cac pha tiep theo cua qua trinh tien hoa Viec lira chon cac ca th£ tir mot qu&i the dua tren do thich nghi cua ca the do, nghia la nhirng ca the nao co gia tri ham thich nghi cao co nhieu kha nang duoc chon d^ tai tao trong cac the he ti6p theo.Phep chon loc co the duoc bieu di6n du6i dang mot banh xe x6 so, do la
mot hlnh tron trong do m6i ca th^ trong th€ h6 hien thcfi chie'm mot phAn
tuong ung vcfi gia tri cua ham muc tieu cua no Cac gia tri nay chinh la cac xac sua't chon loc cua m6i ca the v, duoc tinh theo c6ng thiic p; = eva!(Vj)/F (trong do evaKv^ la gia tri cua ham thich nghi cua m6i cac the vi? F la tong cac gia tri cua cac ham thich nghi cua qucin the)
• Phep trao doi cheo
Phep Irao doi cheo (con goi la phep lai ghep), ket hap cac dac tinh tren NST cua bo va me de tao thanh hai ca the m6i bang cach trao d6i cac doan gien tuong ung tren cac NST cua bo va me
va y = ( y „ y 2v , y m)Chon diem tuong giao k (co the lAy ngau nhieu) ta se duoc hai NST mdi:
Trang 12Chọn điểm lương giao k =3, thì sau khi thực hiện trao đổi chéo các NST của bố, mẹ la được hai NST mới:
1.2.2 Cơ sở toán học của thuật toán di truyền cổ điển
Cơ sở lý thuyết của thuật toán di truyền cổ điển dựa trên biểu diễn chuỗi nhị phân và khái niệm lược dồ
Khái niệm lược đồ là một khái niệm quan trọng trong việc biểu diễn các
cá thể có những thuộc tính giống nhau Sự phát triển hay suy tàn của các cá thể đều được lý giải một cách khoa học trong lý thuyết lược đồ Đây cũng chính là sự lý giải cho tính hiệu quả của GA cổ điển mà chủ yếu là thông qua các phép: chọn lọc, lai ghép và đột biến
Một lược đồ được xây dựng bằng cách bổ sung các ký hiệu không quan
mọi vị trí (trừ các vị trí "*") đều giống nó
ẩ ữ ỳ /t tr / ịtỉttM ự / /ih á /i /ín /t /c á n /ic n fw á (ĩ? r/iả i f-à i /o á n ỉâ/< (icỈỊ r/ia rô n ợ r /ti /iê ĩ )ỊinỊẨ'
Trang 13Trường hợp đặc biệt:
Lược đồ (01011100) chỉ đại diện cho duy nhất một chuỗi (01011100) Lược đồ (********) đại diện cho mọi chuỗi có độ đài 8
Rõ ràng, mỗi lược đồ đều đại diện cho 2r chuỗi, trong đó r là số các ký tự
thể phù hợp với 2m lược đồ khác nhau
V í dụ: chuỗi (10011010) phù hợp với 28 lược đồ sau:
của lược đồ, o(S) được gọi là bậc của lược đồ
Như vậy bậc của lược đồ xác định "độ cụ thể" của lược đồ đó
V í dụ cho ha lược đồ sau :
các lược đồ trên có bậc tương ứng là o(S|) = 5; oCSj) = 3; o(S3) = 6
Bậc của lược đồ sẽ liên quan đến việc tính xác suất tồn tại của một lược
đồ khi đột biến
• Đô dài xác đinlì của íươc đồ
IB ọ /iư / (ín n f/ / / ỊùtỊỊ{/ / / á /t / i n ft to á n ỉic n ỉiriá fifí r/in i /tà i ỉo á ii / â / t ficft f/ia r ó tif/ (Ỉ ! i / i r ĩ ìiư ít/
Trang 14Cho lược đồ s, ta ký hiệu Ỗ(S) là khoảng cách vị trí xác định đầu tiên và
vị trí xác định cuối cùng của lược đồ Khi đó Ỗ(S) được gọi là độ dài xác định của lược đồ (hay là độ cô đọng của thông tin chứa trong lược đồ)
- Bước ( t <— t+1 ) chỉ có tác dụng tăng đồng hồ tiến hoá lên một nhịp
- Bước (đánh giá P(t)) chỉ đánh giá quần thể hiện hành
Như vậy, hoạt động chủ yếu của quá trình tiến hoá xảy ra trong hai bước còn lại của chu kỳ tiến hoá, đó là: chọn lọc P(t) và thay đổi P(t), hai bước này tương đương với việc thực hiện ba phép: chọn lọc, lai ghép và đột biến của thuật toán di truyền Chúng ta sẽ xem xét sự ảnh hưởng của lược đồ tới ha phcp trên
//jtợ f/n n (/ /iliá /i líìi/i /c á n /ir n ỉto á rfô t/iả i feài foá)Ị ỉâ /i ỉir /i (fia c ô n g r ỉti /ir í/ ỉìtá/ìf
Trang 15• Với phép chọn lọc
Xét tập lời giải S(t) tại thế hệ thứ t của quá trình tiến hoá (ở đây ta gọi ngắn gọn là quần thể) Ký hiệu Ç(S,t) là số các chuỗi trong tập lời giải tại thế
định £,(S,t+l) là số các cá Ihể trong quần thể tại thế hệ thứ t+1 ứng với lược đồs.
Ta ký hiệu eval(S,t) là độ thích nghi của lược đồ tại thế hệ thứ t và nó được tính theo công thức sau:
Mỗi cá thể được chọn lọc ra để thực hiện phép tái sinh với xác
Trong đó:
F(t) là tổng độ thích nghi của toàn bộ quần thể tại thế hệ thứ t.eval(vị) là giá trị hàm phù hợp của chuỗi thứi
F(t) = ]Teval(v¡), i=l pop_size
công thức của Ẹ,(S,t+l), ta quan tâm tới ba kết quả sau:
Trang 16Phương trình (1) được gọi là phương trình sinh trưởng của lược đồ Từ phương trình này, ta nhận thấy: ở các thế hệ sau, số các cá thể ứng với một lược đồ có chất lượng trên trung bình sẽ tăng lên, số các cá thể ứng với một lược đồ có chất lượng dưới trung bình sẽ giảm xuống, còn các cá thể ứng với lược đồ có chất lượng trung bình sẽ ổn định.
để trao đổi chéo và điểm bắt chéo tại pos = 8 Ta thấy sau phép lai ghép, thì lược đồ S| vẫn tồn tại, nghĩa là một trong số các cá thể con vẫn phù hợp với lược đồ Sị vì điểm bắt chéo pos = 8 sau các vị trí xác định của lược đổ S|
Trong khi đó, lược đồ S2 bị loại bỏ, tức là không có cá thể con nào phù
điểm bắt chéo và do vậy chúng bị tách ra và đặt vào hai cá thể con khác nhau.Nhận xét về các yếu tố ảnh hưởng đến sự loại bỏ một lược đồ:
và sự loại bỏ của một lược đồ Độ dài xác định 5(S) càng lớn thì nguy cơ lược
đồ bị loại bỏ càng cao
- Điểm bắt chéo được chọn ngẫu nhiên trong (m-1) vị trí (m là độ dài
hiệu là pd(S)) còn phụ thuộc vào xác suất chọn điểm bắt chéo
Trang 17- Xác suất trao đổi chéo pc cũng ảnh hưởng tới xác suất loại bỏ lược đồ
s, vì chỉ cổ pc số cá thể tham gia trao đổi chéo.
Kết hợp cả ba yếu tố ảnh hưởng trên ta có công thức tồn tại của lược đồS:
Ps(S) = 1 - Pc X ô(S)/(m-l)
- Khi điểm bắt chéo được chọn giữa các vị trí xác định của lược đồ thì lược đồ đó vãn có một khả năng rất nhỏ tồn tại Chẳng hạn, trong ví dụ trên, nếu như hai chuỗi tham gia trao đổi chéo đều bắt đầu bằng "010" và kết thúc bằng "10" thì lược đồ S2 sẽ bị loại bỏ sau khi trao đổi chéo Nhưng khả năng
sau:
ps( S ) > l - p c x8(S)/(m -l)
Sau khi trao đổi chéo, phương trình sinh trưởng của lược đồ có dạng sau:
trong thế hộ tiếp theo sau hai phép chọn lọc và lai ghép
• Với phép đột biến
Vì phcp đột biến thay đổi một vị trí trên một chuỗi với xác suất pm, nên một lược đồ chỉ tồn tại sau khi đột biến nếu như bit bị đột biến không phải là bit xác định
Ta đã biết xác suất đột biến của một bit là pm, do đó xác suất giữ nguyên một bit sẽ là 1- pm Vì mỗi lần thực hiện đột biến (ngẫu nhiên) một bit trong các bit xác định là độc lập nhau, nên theo công thức tính xác suất của các sự kiện độc lập ta có xác suất tồn tại của một lược đồ sau phép đột biến là:
ps(S) = (1 - pm) 0(S) (trong đó o(S) là bậc của lược đồ)
Ịfn</ rf(tn(/ {t/irfrína /tỉtá/i /íìi/i /oán /tru ểtoá fíe ợiảí f‘òi /cán ỉâ/i ỉìc/i r/ia róm/ r/ii ỉiêJ mát/
Trang 18Như vậy sau ba phép chọn lọc, lai ghép, đột biến ta có công thức của phương trình sinh trưởng:
Ta cần lưu ý rằng phương trình (3) dựa trên giả thiết hàm thích nghi f luôn mang giá trị dương, còn nếu áp dụng thuật toán di Iruyền cho các bài toán tối ưu mà hàm tối ưu mang cả giá trị âm, thì la phải chuyển từ hàm tối ưu sang hàm thích nghi cho phù hợp
Kết quả cuối cùng của phương trình sinh trưởng được phát biểu qua định
lý sau:
Đ ịnh lý về lược đồ: Trong các thế hệ tiếp sau của thuật toán di truyền cổ
điển, số các cá thể phù hợp với lược đồ trên trung bình với bậc thấp và độ dài xác định ngắn tăng dần theo luỹ thừa
1.2.3 So sánh thuật toán di truyền cổ điển với một số thuật toán truyền thống
Trong phần này ta so sánh thuật toán di truyền cổ điển với một số thuật toán truyền thống rất phổ biến, đó là: thuật toán “vét cạn”, thuật toán ‘leo đồi”
và thuật toán ‘luyện kim ”
Như chủng la đã biết, trong thuật toán “vét cạn” (tìm kiếm theo bề rộng hoặc theo độ sãu), về mặt nguyên tắc các phương pháp tìm được nghiệm của bài toán nếu bài toán có nghiệm, song trong thực tế, rất nhiều bài toán không thể áp dụng được phương pháp này, vì ta phải phát triển một không gian trạng thái quá lớn, trước khi đi tới trạng thái đích, mà do những hạn chế về thời gian tính toán và dung lượng bộ nhớ, không cho phép chúng ta làm được điều đó.Trong thuật toán ‘leo đ ồi” sử dụng kỹ thuật “nâng cấp lặp”, kỹ thuật này
áp đụng cho một điểm đơn (điểm hiện tại) trong không gian tìm kiếm Trong
Trang 19một lÀn nAiig cấp, một điổm mới dược chọn trong số các diổm lAn cận của diểm hiện hành nếu nlnr điổm đó cho kết quả tốt hơn của hàm mục tiêu Việc tìm kiếm sẽ kết thúc khi không thể nâng cấp thêm được nữa Rõ ràng thuật toán leo đồi chỉ cho ta kếl quả tối ưu cục bộ, kết quả này phụ thuộc vào sự lựa chọn của điểm xuất phát, mặt khác ta không có được Ihông tin sai số vẻ kết quả tìm được so với kết quả tối ưu toàn cục.
Để khắc phục nhược điểm trên, thuật toán leo đồi đã được cải tiến bằng cách tăng số lượng các điểm xuất phát (điểm xuất phát cho mỗi lần chạy có thể được chọn ngẫu nhiên hoặc được chọn tuỳ theo kết quả của các lần chạy trước) Sự thành công hay thất bại của mỗi lần chạy (cho ta kết quả tối ưu toàn cục hay cục bộ), phụ thuộc vào sự lựa chọn điểm xuất phát và hình dáng của
"mặt cong" của hàm giá Nếu mặt cong chỉ có một số ít cực đại địa phương thì tối ưu toàn cục được tìm ra rất nhanh Chính vì vậy mà kể cả sau khi đã được cải tiến thì khả năng tìm được lời giải tốt nhất cho mỗi lần chạy cũng là rất nhỏ
Trong thuật toán luyện kim, người ta dùng kỹ thuật thay đổi entropy của
hệ Ở phương pháp này người ta đã điều khiển tốc độ hội tụ của quần thể bằng cách biến đổi nhiệt động học với một tham số nhiệt độ T toàn cục Để hạn chế việc tối ưu cục bộ và tăng khả năng khám phá không gian tìm kiếm, người ta đã dùng thủ thuật giảm nhiệt độ T từng bước (đến một mức nào đó) Tuy nhiên vì T chỉ giảm đến một mức nhất định, vì vậy phương pháp này cũng không tránh khỏi hạn chế Irong việc khám phá không gian tìm kiếm mới và sự hội tụ địa phương
Còn đối với GA cổ điển thực hiện tìm kiếm theo nhiều hướng, bằng cách duy trì một tập hợp các lời giải có thể và khuyên khích sự hình thành và trao đổi thông tin giữa các hướng (thể hiện qua phép trao đổi chéo) Một quá trình tiến hoá được thực hiện trên một quần thể (một tập hợp NST) tương đương với
sự tìm kiếm trong một không gian các lời giải có thể Sự tìm kiếm này đòi hỏi
Trang 20sự cAn bằng giữa liai mục đích: tìm lời giải lốt nhAÌ và khám phá không gian tìm kiếm mới.
Chính vì vậy mà thuật loán đi truyền cổ điển khắc phục được những nhược điểm của các thuật toán truyền thống nói trên
1.2.4 Một sô cải tiến của thuật toán di truyền cổ điển
Thuật toán di truyền cổ điển chuẩn đôi khi mắc một số hạn chế Một: trong những hạn chế cần quan tâm nhất là vấn đề hội tụ sớm về một cực đại,
mà cực đại đó không phải là lời giải tối ưu
Đổ khắc phục được điều này đã có nhiều công trình được nghiên cứu và công bố Một số công trình khắc phục những hạn chế của thuật toán di truyền
do cơ chế lấy lược đồ (chọn các chuỗi) và các tính chất của hàm mục tiêu gây
ra Ngoài ra một số công trình đề cập đến những thực nghiệm về GA cổ điển với tập lời giải có kích thước thay đổi qua các thế hệ, một số công trình khác đưa ra những ý tưởng vẽ các cải tiến phép trao đổi chéo, và cuối cùng là cải tiến GA cổ điển trên mọi phương diện - đó là GA hỗn hợp
1.2.4.1 Cải tiến về phương pháp chọn lọc (modGAl)
Để tiện cho việc trình bày ta gọi GA cổ điển chuẩn là GA_old Phương pháp cải liến này gọi là modGAl Khác với GA_old, (rong modGAl bước chọn P(t) từ P(l-l) được thay bằng hai bước:
+ Bước 1 : chọn r cá thể một cách độc lập (không nhất thiết khác nhau),
để cho tái tạo
+ Bước 2: chọn r cá thể phân biệt để loại bỏ
Việc chọn lọc trên được thực hiện dựa theo độ thích nghi của các cá thể, các cá thể có độ thích nghi trên trung bình có nhiều khả năng được chọn để tái lạo hơn, các cá thể có độ thích nghi dưới trung bình có khả năng được chọn để loại bỏ cao hơn Sau khi thực hiện hai bước trên ta có ba nhóm cá thể không nhất thiết rời nhau trong quán thể:
' ì í n r / (filin/ /i / i i i ' ( U i ( / / l ỉ i á / i / i n ỉ ) / c á n ( i f ) Ị / t o á r f r (/ini / t à i / o á n / ó / ị ỉirh r / i a cỘỊự/ rỉti / i é ĩ m á t /
Trang 21- r cá thổ (không nhất thiết khác nhau) đổ tái tạo.
- r cá thể (khác nhau) để loại bỏ
- các cá thể còn lại (trung hoà)
Số cá thể trung hoà trong một thế hệ có từ pop_size - 2r đến pop_size-r, luỳ thuộc vào số các cá thể cha, mẹ phân biệt được chọn và số các cá thể sinh
và tử
Sau đó quần thể mới P(t+1) được xây dựng, gồm pop_size - r cá thể và r
cá thể con của r cá thể cha, mẹ sinh ra
• Giải thuật modGAl
Begin
t < - 0
khởi tạo P(t) đánh giá P(t)while ( not điều_kiện_dừng) do begin
t <r- t+1
chọn sinh từ P(t-l) chọn tử từ P(t-l)xây dựng P(t): cho các cá thể cha mẹ sinh sản đánh giá P(t)
endEnd
Trong thuật toán trên có một vấn đề khó giải quyết là chọn r cá thể để loại bỏ ở dây ta thực hiện bước chọn lọc này sao cho các cá thể tốt hơn có xác suất chết thấp hơn Đổ đạt được điều này, quá trình xây dựng quẩn thể mới
P (t+ 1) được tiến hành như sau:
Trang 22- Bước 1 : chọn r cá thể cha, mẹ lừ P(t) Mỗi cá thể đã dược chọn được đánh dấu để được áp dụng chỉ một phép biến đổi gien.
sang P(t+1)
- Bước 3: Cho r cá thể cha, mẹ sinh sản tạo ra r cá thể con
- Bước 4: Nhập r cá thể con vào quẩn thể P(t+1 )
ưu điểm của quá trình chọn lọc trên
- Các cá thể cha, mẹ và con đều có cơ hội có mặt trong thế hệ mới
- Việc áp dụng các toán tử đi truyền (bước 3) trên từng cá thể mà không trên lừng bit (như phép đột biến trong GA cổ điển chuẩn), điều này có nghĩa là các toán lử di truyền (trao đổi chéo, đột biến, đảo gien), được sử dụng một cách đồng nhất, một số cá thể cha, mẹ được trao đổi chéo, một số khác bị đột biến, phần còn lại bị đảo gicn
* ưu điểm của modGAl
Tránh được có nhiều bản sao của một cá thể trong quần thổ mới (nó
có thể xảy ra nhưng rất hãn hữu) Vì vậy nó hạn chế được sự hội tụ sớm của thuật toán GA_old
1.2.4.2 C ả i tiến về h à m m ụ c tiêu
• Chuyển đổi hàm mục tiêu thành hàm thích nghi
ở đây các bài toán được xét đều giả thiết rằng: hàm mục tiêu có miền giá trị thuộc tập dương và ta chỉ xét các bài toán tối ưu tìm giá trị lớn nhất của hàm Nhưng các bài toán đã gặp trong thực tế là đa dạng, vì vậy để giải quyết được vấn đề này ta xél hai trường hợp sau:
+ Trường hợp I: Nếu là bài toán tối ưu yêu cẩu làm cực tiểu hàm f(x),
ta đưa về bài toán làm cực đại hàm g(x) với g(x) = -f(x) Khi đó giá trị xopl làm cực đại hàm g(x) cũng chính là điểm làm cực tiểu hàm f(x)
Trang 23+ Trường hợp 2: Nếu hàm mục tiêu f có cả giá trị âm, thì ta có thổ cộng
dương
Phương pháp sửa đổi này có liên quan đến tính chất của hàm cần được tối ưu Có nhiều hướng tiếp cận vấn đề này, chẳng hạn: phương pháp luyện kim kỹ thuật Ihay đổi entropy của hệ ở phương pháp này người ta đã điều khiển tốc độ hội tụ của quần thể bằng cách biến đổi nhiệt động học với một tham số nhiệt độ toàn cục
Phương pháp được nhiều người quan tâm nhất là: biến đổi chính hàmphù hợp, bằng cách đưa ra một phép vị tự để thay đổi hàm phù hợp
Goldberg đã phân phép vị tự thành ba loại sau đây:
+ P hép vị tự tuyến tính:
Hàm phù hợp fj' dược sửa đổi giá trị theo công thức : f|'=a X fj + b, ỏ
đó f| là giá trị ban đầu của hàm phù hợp, a, b là các tham số
Thường các tham số a, b phải được chọn sao cho:
- Độ thích nghi trung bình trước sửa đổi fi(avg) và độ Ihích nghi trungbình sau sửa đổi fj’^vg) là tương ứng nhau sao cho không làm ảnh hưởng tới pha chọn lọc, bởi vì trong pha này những cá thể có độ thích nghi trên trung
- Độ thích nghi cao nhất có một khoảng cách nhất định với độ thíchnghi trung bình
Hạn chế của phương pháp này là: trong các thế hệ sau có thể nảy sinh các độ thích nghi âm Hơn nữa các Iham số a, b thường là cố định và không liên quan gì đến bài toán
)f> K / / t ỉt t K ỉn ọ / ih á / i / Í / /orht / i r í i ỉ i c ó ( ít ' Ị / i ả i / à i / o á n táh ỉ ịr / t f / if í r ó ìt r / r í t i / i ô ĩ m ái/
Trang 24+ Phép vị tự làm tròn xichma:
Đây là phương pháp cải tiến của phép vị tự tuyến tính, nhằm xử lý các giá trị thích nghi âm và đưa được các dữ kiện của bài toán vào hàm đánh giá Giá trị sửa đổi của hàm phù hựp fj' được tính theo công thức:
fj' = f j + ( f - c x ơ ) Trong đó c là một số nguyên dương cho trước (thường chọn trong khoảng
từ 1 đến 5), ơ là độ chênh lệch tiêu chuẩn của quần thể, f là giá trị trung bình của hàm phù hợp, các giá trị âm nếu có của f dược gán bằng 0
+ Phép vị tự luỹ thừa:
Hàm phù hợp fj' được sửa đổi giá trị theo công thức: fj - fjk
Trong đó k là một số gần bằng 1 Một số nghiên cứu cho rằng k nên chọn luỳ theo bài toán, một số công trình thường chọn k = 1.005 đã cho một kết quả khả quan
I.2.4.3 Thuật toán di truyền cổ điên với kích thước quần thê thay đổi (niodGA2)
Vấn để kích thước của quần thể trong thuật toán đi truyền đóng vai trò quan trọng đối với tính hiệu quả của thuật toán Nếu dùng quần thể có kích thước nhỏ, GA_olcl sẽ có thể hội tụ sớm về một kết quả không mong muốn Ngược lại, nếu dùng kích thước quần thể lớn thì có thể dãn đến sự lãng phí về thời gian và tài nguyên
Sau đay ỉà một thuật toán đi truyền cải tiến với kích thước quần thể thay đổi (ta gọi là mođGA2) Thuật toán này đưa ra khái niệm tuổi thọ của mộí cá tliể - là số thế hệ mà cá thể đó tồn tại Tuổi thọ của cá thể phụ thuộc vào độ thích nghi của cá thể đó và nó ảnh hưởng đến kích Ihước của quán thể Irong quá trình tiến hoá Hướng tiếp cận phương pháp chọn lọc này có vẻ phù hợp với quy luật của tự nhiên Hơn nữa trong phương pháp này các cá thể con có
cơ hội cạnh tranh sinh tồn với các cá thể cha, mẹ của chúng
y /ý /y rỉttn ự /lỉn M iự i / 1 / 1 Ó /1 /Íh /ị /c á n /iô)! /ifìá fỉ(‘ ợ iả i /'à i /d á n iâ /i fir /t f/ia r e n n r/u ' f i r / lìư íự
Trang 25Trong thuật toán này, tại thời điểm t, quẩn thể P(t) gồm có pop_size(t) cá thể Trong bước "tái kết hợp P(t)", một quần thể "bổ trợ mới" được xây dựng:
Mọi cá thể trong quẩn thể có thể được chọn để sinh sản ra thế hệ con (Ihực hiện trao đổi chéo và đột biến) với xác suất bằng nhau
Tham số tuổi thọ của mỗi cá thể được gán một lần trong bước đánh giá P(l) (sau khi khởi tạo hoặc sau bước tái kết hợp) Tham số này không thay đổi trong suốt quá trình tiến lioá (từ lúc cá thể dược sinh ra cho đến khi bị loại bỏ) Nếu ta gọi D(t) là số cá thể bị chết tại thế hệ t, thì kích thước của quần thể sau vòng lặp là :
pop_siz,e(t+l) = Auxpop_size(t) + pop_size(t) - D(t)
• Nội dung của modGA2:
Procedure modGA2
Begin
t = 0
khởi tạo P(t) đánh giá P(t)
begin
t = t+1tăng tuổi thọ mỗi cá thể 1 đơn vị tái kết hợp P(t)
đánh giá P(t)loại bỏ các cá thể có tuổi thọ cao hơn tuổi thọ của nóend
End
y/ý/i/ (ỉu Hr/ /ih ii'd iK / /i/iá /i fin /t /aáỊ Ị (tê n ỉtc á r tf (/in i ỉ à i /o ó n / ó / ị / ìc / ị f/ia rô n r/ r/n ỉ i f ĩ m á i/
Trang 26Trong thuật toán Iren, khó khăn nhất là việc chọn tuổi thọ cho mỗi cá thể như thế nào cho đạt hiệu quả nhất Có nhiều phương pháp chọn tuổi thọ, nhưng cách tính tuổi thọ cho từng cá thể phải đảm bảo các nguyên tắc sau:+ Cần ưu tiên các cá thể có độ thích nghi cao hơn trung bình và hạn chế những cá thể có độ thích nghi dưới trung bình.
+ Điều chỉnh được kích thước quần thể cho phù hợp với thế hệ hiện tại của quá trình tiến hoá
+ Ngoài ra còn phải xem xét tới trạng thái của thế hệ hiện tại (chẳng hạn như các thông số về giá trị lớn nhất, nhỏ nhất, trung bình của hàm phù hợp).4- Việc chọn phải sao cho đơn giản về tính toán và tiết kiệm thời gian tính toán
I.2.4.4 Một số cải tiến của phép trao đổi chéo
Nhằm loại bỏ các lỗi có thể trong các phương pháp lấy lược đồ, nâng cấp tìm kiếm lời giải tối ưu trong quá trình tiến hoá, khắc phục sự hội tụ sớm của
GA cổ điển
• Phép trao đổi chéo hai điểm
Là "phép trao đổi chéo hai điểm chọn" và tráo đổi các đoạn gien nằm giữa hai điểm chọn đó
Với 2 chuỗi X = ( X ị , x 2, , x ¡ , , X j, ., x j
y = (Yh y 2v , y,, , y m)Hai vị trí clirợc chọn để trao đổi chéo là i, j
Sau khi thực hiện trao đổi chéo ta được hai con là:
x’= ( x l, x 2, ,x M, y i, ,yj.l, x j, , xm)
và y, = ( y „ y 2, ,y M, x i, ,x j „ y j, ,y m)
V í dụ: có hai chuỗi X = (1000100001)
Hai vị trí trao đổi chéo là thứ 5 và thứ 9
ĩ/jiỊ / (írtn r/ /tỉu ừ h tọ /ih á /i /Í / /o á n fir n /to á rìê f/iả i í à i fa á n Ịâ /i / / n ia ró tự / r/tr' fic ĩ m á Ị/
Trang 27Hai con nhận được sau khi trao đổi chéo là:
x' = ( ì o o o i o i o o i )
y' = (1110100010)
• Phép trao đổi chéo nhiều điểm
Phép trao đổi này rắc rối hơn trao đổi chéo hai điểm vì phải nối luân phiên giữa các đoạn tương ứng của bố và mẹ sau khi đã cắt thành nhiều đoạn
và số điểm cắt phải là số chẵn
• Phép trao đổi chéo tự điều chỉnh phân bô các điểm bắt chéo
Hai nhà khoa học Schaffer và Morishima đã đưa ra một thử nghiệm về
sự tái kết hợp” Ý tưởng này được thực hiện bằng cách mã hoá bản đồ bắt chéo
và gắn vào biểu diễn chuỗi Những bản đồ này đánh dấu các điểm bắt chéo khi thực hiện phép trao đổi chéo Trong quá trình tiến hoá, nếu cách bắt chéo nào tạo ra cá thể con chất lượng xấu, cách bắt chéo đó sẽ bị loại bỏ và ngược lại
• Phép trao đổi chéo Segmented crossover và Shuffle crosover
+ P hép trao dổi chéo Segm ented crosover: có thể được xem là cải tiến
của phép trao đổi chéo nhiều điểm Trong cải tiến này, số điểm bắt chéo không phải là một số cố định mà bằng một tỷ lệ ngắt đoạn Tỷ lệ này xác định một đoạn gien trong chuỗi kết thúc tại một điểm bất kỳ nào đó
V í dụ: Cho tỷ lệ ngắt đoạn s = 0.25 Khi đó, kể từ đầu một đoạn, khả
năng kết thúc đoạn này của mỗi bit là 0.25, nghĩa là số các điểm bắt chéo của chuỗi sẽ khoảng m/4 (trong đó m là độ đài của chuỗi)
+ Phép trao đổi chéo sh u ffle crossover, được xem là một kỹ thuật tổng
hợp có thể áp dụng đồng thời với các phép trao đổi chéo khác Phép trao đổi chéo này sử dụng ba toán tử sau:
- Trao đổi vị trí một số bit của hai chuỗi một cách ngẫu nhiên
- Trao dổi các đoạn giữa các điểm cắt
‘Ìíìtr/ r/m ự / /ilu ờ ỉiự / /tỉư í/t /in h /o á n fir n (Ịá fir (/in i ể à i ỉo á n /á /t /ịr /i (fia rô /ự / cỉú_ ì)Ị(ít/
Trang 28- Làm ngược lại các phép tráo đổi của bước một.
• Phcp trao đổi chéo đồng nhất
Plicp Irao đổi chéo này có thể xem là sự mở rộng của các phép trao dồi chéo một điểm, hai điểm và nhiều điểm
Phép trao đổi chéo này thực hiện như sau: gọi p là xác suất mỗi bit trên
cá thể con thứ nhất lấy từ cá thể cha hoặc mẹ, bit tương ứng trên cá thể con thứ hai sẽ lấy từ cá thể mẹ hoặc cha còn lại
ở đây các chỉ số I và 2 để chỉ bit đó của Parent] / Parent2
Đánh giá về phương pháp này, Spears và DeJong đã kết luận: Vì phép trao đổi chéo đồng nhất trao đổi theo bit cho nên nó có ưu điểm là ít có nguy
cơ phá vỡ các khối cơ bản, nhưng trong một số bài toán khác, nó lại kém hiệu quả hơn phép trao đổi chéo hai điểm
• Phép trao đổi chéo nhiều cha mẹ
Trong phcp trao đổi này đã đưa ra một toán tử tái kết hợp mới được gọi
là “ tái kết hợp quỹ gien”, trong đó các gien của cá thể con được chọn ra một cách ngẫu nhiên từ quỹ gien của cá thể cha, mẹ được chọn Phép trao đổi chéo này cho phép một cá thể con có thể có nhiều cha, mẹ
Tóm lại, những cải tiến của phép trao đổi chéo đã khẳng định tính hơn hẳn phép trao đổi chéo một điểm cổ điển, nhưng chưa có phcp nào vượt trội hẳn trong các phép đã công bố
'ÌÍịk/ f/tma /ihii'itiif/ /t/iá/i /Íh/ị /ná)! /i?n /icá rí? f/ini /'òi /oán fâ/i /irỉt (/in ró nợ rỉii (irĩ ìììá Ị/
Trang 29Qua thử nghiệm, Eshclmas đưa ra một kết luận: mỗi loại trao dổi chco chỉ thích hợp với một lớp các bài toán cụ thể nào đó.
I.2.4.5 Thuật toán di truyền hỗn hợp (modGA3)
Điểm khác biệt của modGA3 với GA_old là: cách biểu diễn gien của mỗi NST, các toán tử di truyền, kích Ihước quần thể, phương pháp chọn lọc, các pha của quá trình tiến hoá
+ Mỗi bit của NST được biểu diễn bởi một cặp số, số thứ nhất của cặp biểu diễn vị trí của bit trong NST, số thứ hai của cặp biểu diễn giá trị của bit đó
+ Các NST có độ dài tuỳ ý, mỗi NST có thể không chứa đủ tất cả các
+ Trong một NST, một vị trí có thể có nhiều hơn một bit và giá trị của
• Các toán tỉr di truyền
Toán tử trao đổi chéo chia thành hai toán tử đơn giản:
+ Toán tử ghép (theo xác suất ghép cho trước); ghép hai NST được chọn bằng cách nối chuỗi này vào cuối của chuỗi kia
+ Toán tử cắt (theo xác suất cắt cho trước); cắt một chuỗi được chọn tại điểm cắt (điểm cắt được chọn ngẫu nhiên) thành hai chuỗi
+ Toán tử đột biến: giống GA cổ điển
• Kích thước quần thể và các pha trong quá trình tiến hoá
Quá trình tiến hoá được chia thành hai pha: pha đầu được chọn các khối
cơ bản, pha sau áp dụng các toán tử di truyền Mỗi thế hệ của quá trình tiến hoá, kích lliước của quẩn thể cũng có thể bị thay đổi
D.E.Goldberg [4] đã thử nghiệm cho một số hàm ngộ nhận, một số test khó, kết quả cho thấy modGA3 đã hội tụ tại giá trị tối ưu Đánh giá về hiệu
'ìỉ’n</ r/tn tr/ /lỉiitV iir/ Ịi/iá Ịi tín h /o á n fie n Ỉ! (lá </(' r/iả i /tà i Ị'oán /â /t (ich (fia rfin</ r/)i /i<‘1 m á Ị/
Trang 30quả của modGA3, ông đã viết modGA3 có thể hội tụ trong trường hợp xấu nhất, ta có thể tin rằng modGA3 có thể tìm thấy tối ưu toàn cục trong mọi bài toán ngộ nhận bị chặn khác Hơn nữa modGA3 có cấu trúc sao cho thời gian tính toán cần thiết cho việc hội tụ chỉ tăng theo hàm đa thức của số biến quyết định trên máy tính thường và tăng theo hàm loga trên máy tính song song Cuối cùng modGA3 là công cụ hữu dụng để xử lý các bài toán ngộ nhận, cho kết quả trung gian tốt và tương đối rẻ”.
Qua nghiên cứu GA cổ điển, ta thấy rõ tính hiệu quả và sự ứng đụng rộng rãi của nó Tuy nhiên, do tính không phụ thuộc bài toán và do cấu trúc nhị phân của NST nên nó cũng bộc lộ những nhược điểm khi phải giải quyết những bài toán đặc thù có không gian tìm kiếm lớn và có nhiều ràng buộc phức tạp
1.3 Tính toán tiến hoá
Khi bài toán có miền chấp nhân được lớn trong không gian nhiều chiều thì độ rộng của mỗi NST lớn nên việc áp dụng GA cổ điển rất khó khăn Đặc biệt khi có các ràng buộc phức tạp thì các toán tử di truyền theo kiểu đã nêu tỏ
ra kém hiệu quả sử dụng Hàng loạt các phát triển phong phú của GA cổ điển
về kiểu gien, cấu trúc NST và các toán tử di truyền đã được đề xuất và ứng dụng có hiệu quả để giải các bài toán khó, đặc thù trong thực tiễn mang các tên gọi khác nhau, chẳng hạn:
C ác chiến lược tiến hoá (Evolution Strategies - viết tắt ES): nhằm giải
quyết các bài toán tối ưu rời rạc hoặc liên tục khó và tối ưu tham số Trong mô hình này người ta dùng cách biểu diễn gien trên các vectơ thực để xử lý ràng buộc và giảm khối lượng xử lý dữ liệu
này được dùng trong trí tuệ nhân tạo Người ta nhằm ứng dụng GA vào trong trí tuệ nhân tạo bằng cách biểu diễn gien bằng các otomát hữu hạn để tạo ra
Trang 31các chương trình thích ứng với yêu cầu, giúp tạo hành vi cho các robot hoặc các tác nhân thông minh.
dựa trên ý tưởng của GA cổ điển Để tìm lời giải cho các bài toán, người la biểu diễn các cá thể bằng các chương trình máy tính dạng cây Sau khi trải qua quá tình tiến hoá của quẩn thể các chương trình máy tính, ta sẽ được chương trình tốt nhất
triển GA cổ điển bằng cách thay đổi cấu trúc NST và thay đổi các toán tử di truyền sao cho phù hợp với bài toán để tìm lời giải cho các bài toán khác nhau khi khổng gian tìm kiếm lớn và có nhiều ràng buộc phức tạp
Những phát triển của GA cổ điển có tên gọi chung là phương pháp tính
toán tiến hoá (E volutionary C om putation - viết tắt là EC).
1.3.1 Các chiến lược tiến hoá (Evolution Strategies - viết tắt ES)
Mồ hình này được phát triển ở Đức, bởi Rechenberg [20], [21], Schweiel[33],
ES là thuật toán bắt chước các nguyên tắc tiến hoá trong tự nhiên để tạo
ra một phương pháp giải các bài toán tối ưu với các tham số thay đổi liên tục
và gẩn đfly mở rộng cho các bài toán rời rạc, trong đó cách biểu diễn gien trên các véc tơ thực được sử dụng để xử lý các ràng buộc và giảm khối lượng xử lý
dữ liệu
1.3.1.1 Nội dung của các chiến lược tiến hoá
• Chiến lược tiến hoá hai thành viên (ký hiệu là (1+1) _ ES)
Chiến lược này được đùng trên quàn thể chỉ gồm một cá thể và chỉ áp dụng một toán tử di truyền duy nhất là phép đột biến gien Sau khi đột biến ta
‘ì/n r/ tỉitiK / / /nùi)K Ị ịi/iá /t tin h /(lá n fir'll /to n (ĩê r/iả i /tà i /c á n / / ( ! f/ia ró n ợ c/n' / i f ĩ m á y
Trang 32nó trong pha chọn lọc Một trong hai cá thể sẽ được chọn cho thế hệ sau tuỳ thuộc vào độ thích nghi của chúng.
+ Biểu diễn NST: Mỗi cá thể được biểu diễn dưới dạng V = (x, 5),
tìm kiếm, 5 là véc tơ các độ lệch tiêu chuẩn
+ Tập lời giải: quần thổ chỉ gồm một cá thể
+ Xác định hàm thích nghi', hàm thích nghi và tổng độ thích nghi dược xác định tương tự như GA cổ điển, nó được đo dựa vào giá trị của hàm phù hợp
+ Các toán tử di truyền: áp dụng một toán tử đi truyền duy nhất là phcp đột biến Phép đột biến được thực hiện như sau:
ngẫu nhiên, độc lập, có trung bình là 0 và có độ lệch tiêu chuẩn là 5
+ Phép chọn lọc:
Cá thể con sau phép đột biến dược thay thế cá thể mẹ với điều kiện nó
có độ thích nghi cao hơn và thoả mãn mọi ràng buộc, nếu không thì cá thể con
bị loại bỏ và quần thể không thay đổi
+ Ví dụ :
Xét hàm số f(x,, x2) = x,+x2, với miền xác định D: -5<X|<0; 0<x2<10
- NST có dạng: (x, 5)
ô = (õ„ õ2) biểu diễn hai độ lệch tiêu chuẩn được đùng cho
Trang 33x2,+l = x2‘ + N (0,1.0)= 3 5 - 0 6 = 2.9
- Độ thích nghi của cá thể chính là giá trị của hàm f tại cá thể đó, ta có:
f(x‘) = f(- 4.1, 3.5) = - 0.6 f(x,+l) = f(- 3.8, 2.9) = -0 9
- Phép chọn lọc: vì f(xt+l) < f(x‘) Nên cá thể con không được chọn thay thế cho cá thể mẹ ở thế hệ thứ (t+1)
+ Định lý hội tụ: trong (1 + 1)JES, độ lệch tiêu chuẩn s không thay đổi trong suốt quá trình tiến hoá Nếu 5 có các thành phần bằng nhau và bài toán tối ưu thuộc dạng chuẩn, người ta đã chứng minh được định lý hội tụ sau:
/ > f e / ( * ' ) = / „ 1=1 (nghĩa là giá trị tối ưu toàn cục có xác suất tìm được là 1 với thời gian tìm kiếm đủ dài)
ưu thuộc dạng chuẩn, nếu hàm mục tiêu f là hàm liên tục, miền xác định là tập đóng, với mọi 8 >0 tồn tại ít nhất một điểm nằm trong miền xác định thoả mãn giá trị của f tại điểm đó sai lệch đối với giá trị tối ưu một giá trị nhỏ hơn 6, và với mọi x0, tập hợp các điểm mà giá trị của f trên đó không vượt quá f(x0) là một tập đóng
• Chiến lược tiến hoá đa thành viên (ký hiệu là (//+1)_ES)
+ Câu trúc NST và kích thước tập lời giải:
Cấu trúc NST và hoạt động giống như chiến lược tiến hoá (1+1)_ES.Còn tập lời giải thì có nhiều cá thể và có thêm toán tử trao đổi chéo
+ Toán tử trao đổi chéo : mọi cá thể trong quần thể có cùng xác suất
ghép cặp để tham gia trao đổi chéo Hai cá thể cha, mẹ được chọn ngẫu nhiên, sau phép trao đổi chéo cho ra một cá thể con
‘ì/n r/ (ttm r/ /i/itờ ỉn r/ /i/iá /i ỉin ỉi /v á n fir n /to á (fr f/iả i /tà i /n á n fâ /t /ịrỈỊ f/in cô n a c ỉii /iô ĩ m á y
Trang 34Ví dụ
Tạo ra một cá thể con là:
+ Toán tử đột biến và qui tắc điều chỉnh ô văn giống như chiến lược tiến hoá (1+1)_ES
4- Phép chọn ỉọc: giống (1+1)_ES ở chỗ trong mỗi thế hệ chỉ sinh đúng một cá thể con và cá thể yếu nhất trong pop_size + 1 cá thể sẽ bị loại bỏ
Chiến lược tiến hoá đa thành viên còn được cải tiến đa dạng hơn thành 2
Điểm khác biệt giữa ES và GA là:
+ Cách biểu diễn cá thể: ES biểu diễn các cá thể trên các véc tơ thực, còn GA cổ điển sử dụng véc tơ nhị phùn
Trang 354- Trậl tự các toán tử: trong ES, thủ tục chọn lọc được thực hiện sau các phép biến đổi gicn, còn trong GA cổ điển thì ngược lại.
1.3.2 Lập trình tiến hoá và lập trình di truyền
Đây là hai phương pháp tiến hoá mạnh, nhưng chúng được phát triển độc lập nhau và hướng tới các bài loán đặc thù khác nhau Chúng sử dụng các cách biểu diễn NST khác nhau cho các cá thể trong quần thể, các toán tử di truyền khác nhau và sử dụng các cấu trúc dữ liệu đặc biệt như: otomat hữu hạn và các chương trình máy tính đạng cây
I.3.2.I Lập trình tiến hoá (Evolutionary Programming - viết tắt là EP)
Kỹ thuật này được giới thiệu bởi Fogel [7], [8], nhằm giải quyết các bài toán tối ưu số, tạo hành vi cho các robot hay các tác nhân thông minh
• Ý tưởng
Lập trình tiến hoá hướng tới sự tiến hoá của trí tuệ nhân tạo trong việc phát triển khả năng dự đoán các thay đổi của một môi trường Môi (rường dược mô tả bằng một chuỗi ký hiệu (từ một bảng chữ cái hữu hạn), thuật toán tiến hoá cần đưa ra một ký hiệu mới, ký hiệu mới này làm cực đại hàm đo độ chính xác của dự đoán
Trang 36Các cá thể con (FSM) được sinh ra bằng cách thực hiện phép đột hiến ngẫu nhiên trên quần thể cha, mẹ Có năm hình thức đột biến:
4- Sửa một ký hiệu ra
+ Sửa mội cung chuyển trạng thái
+ Thêm một trạng thái
+ Xoá một trạng thái
+ Thay đổi trạng thái ban đầu
Các phép đột biến được chọn theo xác suất phân phối, xác suất này có thể thay dổi trong quá trình tiến hoá và một cá thể mẹ có thể được thực hiện hơn một phép đột biến
• Phép chọn lọc
Pop_size cá thể tốt nhất được chọn từ 2xpop_size cá thể trung gian cho thế hệ mới theo độ thích nghi các cá thể, như vậy mỗi FSM được chọn phải nằm trong nhóm 50% FSM có độ thích nghi cao hơn các FSM còn lại
EP và GA có một số điểm khác biệt sau đây:
- Cách biểu diễn cá thể: EP biểu diễn các cá thể bằng các otomat hữu hạn FSM, còn GA cổ điển sử đụng véc tơ nhị phân
- Quá trình chọn lọc: trong ES thủ tục chọn lọc có tính tất định, chọn pop_size cá thể tốt nhấl từ 2xpop_size cá thể trung gian và sự chọn lọc là
ÌỈỊK/ (ỉm ự / / ị Ỉ! r ừiỊ >(/ /ih á /i /in h /n ó n /ìô')! /to á (lô (/¡ả i / n i /d á n lâ /i /ir /i r/ia rô Ị ự / r h i /ir '/ ỉìn ú /
Trang 37không có sự lặp lại Còn Irong GA cổ điển thì cá thể tốt có thổ được chọn nhiều lần.
- Trật tự các loán tử: Trong EP, thủ tục chọn lọc được thực hiện sau các phép đột biến gen, còn trong GA cổ điển thì ngược lại
- Các tham số: Trong GA cổ điển, các xác suất trao đổi chéo và đột biến giữ nguyên trong suốt quá trình tiến hoá, còn trong EP, xác suất đột biến
có thể thay đổi Irong quá trình tiến hoá
I.3.2.2 Lập trình di truyền (Genetic Programming - viết tắt GP)
Phương pháp này được giới thiệu bởi Koza [17], [18], [19]
• Ý tưởng
Lập trình di truyền là một trong các phương pháp tính toán tiến hoá dựa trên nguyên lý tiến hoá tự nhiên, trong đó các cá thể của quần thể là các chương trình máy tính Để tìm lời giải của một bài toán, người ta xây dựng một quần thể các chương trình máy tính, trải qua quá trình tiến hoá, các chương trình đó cạnh tranh nhau, loại bỏ dán các chương trình yếu Và cuối cùng cho ta chương trình tốt nhất
Trang 384- Toán tử trao đổi chéo
Phcp trao đổi chco tạo ra cá thể con bằng cách tráo đổi các cây con
của hai cá thể cha, mẹ
+ Toán tử đột biến
Phép đột biến hay được sử dụng nhất là chọn một nút trên cây và sinh
ngẫu nhiên (cAy con mới có gốc tại nút vừa chọn )
biểu diễn các cá thể bằng các chương trình máy tính có cấu trúc dạng cây, còn
GA cổ điển sử dụng véc tơ nhị phân
1.3.3 Chương trình tiên hoá (Evolution Program - viết tắt là EP)
• Ý tưởng
Dựa trên nguyên lý của GA với các cấu trức dữ liệu và các toán tử đi
truyền được biến đổi cho phù hợp với yêu cầu giải quyết các bài toán phải xử
lý các ràng buộc không tầm (hường và những bài toán có không gian tìm kiếm
phức lạp
• So sánh GA cổ điển và các chương trình tiến hoá
giải có thể, và thực hiện chọn lọc dựa trên độ thích nghi của từng cá thể, rồi áp
các phcp biến đổi gien trong quá trình tiến hoá Cấu trúc chương trình đều có
dạng:
Begin
t < - 0khởi tạo P(t) đánh giá P(t)
Trang 39t <— t+ 1chọn P(t) từ P(t-l) thay đổi P(t) đánh giá P(t)end
End
Tuy nhiên GA cổ điển và EPs có sự khác nhau:
- EPs kết hợp được các kiến thức riêng biệt của mỗi bài toán, bằng cách dùng các cấu trúc dữ liệu tự nhiên, và áp dụng các toán tử di truyền phù hợp với mỗi bài toán GA cổ điển không phụ thuộc bài toán và dùng cấu trúc NST nhị phân
- Trong GA cổ điển bước chọn lọc P(t) được thực hiện trước, bước thay đổi P(t) thực hiện sau Trong EPs thứ tự đó có thể được tráo đổi cho nhau
- Sự khác nhau về cách tiếp cận: trong GA cổ điển, cho một bài toán thực
tế, bài toán ban đầu được biến đổi sang một dạng đặc biệt để phù hợp với GA bằng cách: xây dựng biểu diễn nhị phân cho các lời giải có thể, các bộ giả mã, các thuật toán sửa chữa Những công việc này không phải lúc nào cũng dễ dàng
Hướng tiếp cận của GA cổ điển có thể biểu diễn bằng sơ đồ sau:
Ìỉìụ t r/t<>((/ ịih r i/i fill/ /c á n /te n /m á fie f/in i f‘à i /c á n fâ /i fic h (/in rrnư/ c /tì /ié ĩ m á y
Trang 40Trong các chương Irình tiến hoá thì ngược lại, người ta không hiến đổi bài loán mà biến đổi chính GA, tức là biến đổi cách biểu diễn NST và các toán
tử di truyền sao cho thích hợp với bài toán Hướng tiếp cận của chương trình tiến hoá được biểu diễn qua sơ đồ sau:
Các biến dạng của GA cổ điển được gọi là các chương trình tiến hoá (Evolution Programs)
• Sự phân cấp các chương trình tiến hoá
+ S ự p h â n cấp: cho một bài toán cụ thể p, ta có thể xây dựng một lớp
các chương trình tiến hoá EPị, mỗi chương trình giải quyết bài toán và đưa ra
kết quả gần tối ưu ở các mức độ khác nhau Ta có thể minh hoạ bằng hình sau:
y/nr/ {/itiự / /i/iiM iợ /ị/k í/ị /íh /ị /c á n /iế n /<oẩ rĩô r/iả i ỉ‘à i /o á n {ô/t ỉic ỉt </in rônr/ r /ìi /i( 'ĩ ì) lá i/