Tải bản đầy đủ (.pdf) (84 trang)

Giải thuật di truyền với toán tử lai ghép đa cha mẹ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.55 MB, 84 trang )

DANH MỤC CÁC TỪ VIẾT TẮT

NST

Nhiểm sắc thể

RCGA

Real code Genetic Algorithms
Giải thuật di truyền mã hóa số thực

GA

Genectic Algorithms
Giải thuật di truyền
DANH MỤC CÁC BẢNG

Bảng 1.2: Kết quả của 1000 thế hệ...............................................................................21
Bảng 2.5: Các hàm BENCHMARK.............................................................................34
Bảng 2.9: Toán tử lai số học ........................................................................................37
Hình 2.11: Bảng lai ghép số học với việc chọn K cha mẹ.............................................39
Bảng 2.13: Toán tử lai một điểm..................................................................................43
Bảng 2.15: Toán tử lai trung bình ................................................................................46
Hình 2.17: Bảng so sánh các toán tử lai .......................................................................50
Hình 3.1: Kết quả sau 20 lần lặp ..................................................................................62
Bảng 1: Giá trị qua 20 lần lặp của f1............................................................................73
Bảng 2: Giá trị qua 20 lần lặp của f2............................................................................74
Bảng 3: Giá trị qua 20 lần lặp của f3............................................................................75
Bảng 4: Giá trị qua 20 lần lặp của f4............................................................................76
Bảng 5: Giá trị qua 20 lần lặp của f5............................................................................77
Bảng 6: Giá trị qua 20 lần lặp của f6............................................................................78


Bảng 13: Giá trị qua 20 lần lặp của f1 khi thay đổi số cá thể .......................................82
Bảng 14: Giá trị qua 20 lần lặp của f1 khi thay đổi các tham số ...................................83

1


DANH MỤC CÁC HÌNH VẼ
Hình 1.1: Sơ đồ tổng quan của giải thuật di truyền.......................................................12
Hình 1.2: Đồ thị của hàm f ..........................................................................................17
Hình 2.1: BLX-α trường hợp 2 chiều ...........................................................................28
Hình 2.2: Mô hình CMX .............................................................................................29
Hình 2.3: Mô hình MFX..............................................................................................30
Hình 2.4: Toán tử SX ..................................................................................................31
Hình 2.10: Biểu đồ thể hiện các hàm với toán tử lai số học ..........................................38
Hình 2.12: Biểu đồ với toán tử lai số học trong việc chọn K cha mẹ ............................40
Hình 2.14: Biểu đồ với toán tử lai một điểm ................................................................44
Hình 2.16: Biểu đồ với toán tử lai trung bình...............................................................47
Hình 3.2:Biểu đồ biểu diễn giá trị của hàm ..................................................................63
Hình 7: Đồ thị biểu diễn giá trị của hàm f1 ..................................................................79
Hình 8: Đồ thị biểu diễn giá trị của hàm f2 ..................................................................79
Hình 9: Đồ thị biểu diễn giá trị của hàm f3 ..................................................................80
Hình 10: Đồ thị biểu diễn giá trị của hàm f4 .................................................................80
Hình 11: Đồ thị biểu diễn giá trị của hàm f5 ................................................................81
Hình 12: Đồ thị biểu diễn giá trị của hàm f6 ................................................................81
Hình 14: Đồ thị khi thay đồ số lượng cá thể .................................................................84
Hình 16: Đồ thị khi thay đổi các tham số .....................................................................84

2



MỤC LỤC
ĐỀ CƯƠNG VIẾT ĐỒ ÁN TỐT NGHIỆP....................Error! Bookmark not defined.
PHIẾU GIAO NHIỆM VỤ............................................Error! Bookmark not defined.
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ............Error! Bookmark not defined.
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN ...............Error! Bookmark not defined.
LỜI CẢM ƠN ...............................................................Error! Bookmark not defined.
LỜI CAM ĐOAN..........................................................Error! Bookmark not defined.
DANH MỤC CÁC TỪ VIẾT TẮT................................................................................1
DANH MỤC CÁC BẢNG ............................................................................................1
DANH MỤC CÁC HÌNH VẼ .......................................................................................2
MỤC LỤC ....................................................................................................................3
LỜI NÓI ĐẦU ..............................................................................................................5
Chương 1 ......................................................................................................................7
GIỚI THIỆU VỀ GIẢI THUẬT DI TRUYỀN ..............................................................7
1.1. TỔNG QUAN VỀ GIẢI THUẬT DI TRUYỀN..................................................7
1.1.1 Giới thiệu......................................................................................................7
1.1.2 Sự khác biệt giải thuật di truyền so với các giải thuật khác ............................8
1.1.3 Tính chất quan trong của giải thuật di truyền.................................................8
1.2. GIẢI THUẬT DI TRUYỀN CỔ ĐIỂN ...............................................................9
1.2.1 Giới thiệu......................................................................................................9
1.2.2 Các toán tử di truyền ...................................................................................12
1.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 ...........15
1.2.4 Ví dụ...........................................................................................................16
1.3. THUẬT TOÁN DI TRUYỀN MÃ HÓA SỐ THỰC .........................................22
1.3.1 Giới thiệu....................................................................................................22
1.3.2 Các toán tử di truyền ...................................................................................22
1.3.3 Các bước trong RCGA ................................................................................24
1.3.4 Ví dụ...........................................................................................................25
1.4. SO SÁNH GA VỚI CÁC GIẢI THUẬT KHÁC...............................................26
Chương 2 ....................................................................................................................28

TOÁN TỬ LAI GHÉP NHIỀU CHA MẸ TRONG RCGA..........................................28
2.1. MỘT SỐ DẠNG TOÁN TỬ LAI GHÉP NHIỀU CHA MẸ..............................28
2.1.1 Center of Mass Crossover (CMX) ...............................................................29
2.1.2 Multi-parent Feature-wise Crossover (MFX)...............................................30
2.1.3 Seed Crossover (SX)...................................................................................30

3


2.1.4 Unimodal Normal Distributed Crossover (UNDX)......................................31
2.1.5 Parent-Center Crossover (PCX)...................................................................32
2.2. MỘT SỐ KỸ THUẬT ĐỀ XUẤT.....................................................................33
2.2.1 Lai ghép dạng SX với toán tử cơ sở là lai số học .........................................34
2.2.1 Lai ghép dạng SX với toán tử cơ sở là lai số học .........................................35
2.2.2 Lai ghép nhiều cha mẹ dạng lai một điểm....................................................41
2.2.3 Lai ghép nhiều cha mẹ dạng tựa lai trung bình ............................................45
2.2.4 So sánh các dạng lai ghép với nhau .............................................................49
2.3. ĐÁNH GIÁ CHUNG........................................................................................51
Chương 3 ....................................................................................................................53
BÀI TOÁN ỨNG DỤNG ............................................................................................53
3.1. NHỮNG ỨNG DỤNG CỦA GA ......................................................................53
3.1.1 Ứng dụng của GA trong khoa học tự nhiên: ................................................53
3.1.2 Ứng dụng GA trong tin học.........................................................................53
3.1.3 Tối ưu hóa đường ống .................................................................................54
3.1.4 Tối ưu hoá kết cấu qua GA..........................................................................54
3.1.5 Ghi ảnh y học với GA .................................................................................54
3.1.6 Ứng dụng GA trong C++ ............................................................................55
3.1.7 Ứng dụng GA trong kỹ thuật.......................................................................55
3.1.8 Một số ứng dụng thực tiễn khác: .................................................................55
3.2. ÁP DỤNG GA VỚI BÀI TOÁN MÔ PHỎNG QUÁ TRÌNH CHIẾT DUNG

MÔI ........................................................................................................................55
3.2.1 Đặt vấn đề:..................................................................................................55
3.2.2 Cách giải quyết vấn đề ................................................................................58
MỘT SỐ GIAO DIỆN CỦA CHƯƠNG TRÌNH .........................................................64
1. Form chính ..........................................................................................................64
2. Form nhập tham số đầu vào .................................................................................65
3. Form nhập kết quả sau khi thí nghiệm..................................................................66
4. Form giải .............................................................................................................67
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN....................................................................68
1. KẾT LUẬN .........................................................................................................68
2. HƯỚNG PHÁT TRIỂN.......................................................................................68
TÀI LIỆU THAM KHẢO ...........................................................................................69
PHỤ LỤC ...................................................................................................................70
1. MÃ CHƯƠNG TRÌNH........................................................................................70
2. BẢNG KẾT QUẢ THỬ NGHIỆM ......................................................................73

4


LỜI NÓI ĐẦU
Với khả năng hiện nay, máy tính đã giúp giải được rất nhiều bài toán khó
mà trước kia thường bó tay. Mặc dù vậy, vẫn còn một số lớn các bài toán rất thú
vị nhưng chưa có giải thuật hợp lý để giải chúng. Trong số đó, các bài toán tối ưu
là những bài thường xuyên gặp phải trong các ứng dụng thực tế.
Trong thực tiễn, có nhiều bài toán tối ưu quan trọng đòi hỏi những thuật giải
chất lượng cao. Ví dụ, ta có thể áp dụng các phương pháp mô phỏng luyện thép
để giải bài toán tìm đường đi ngắn nhất cho xe cứu hỏa hay bài toán người du
lịch…
Nói chung, bài toán tối ưu có thể được xem như bài toán tìm kiếm lời giải
tốt nhất trong không gian vô cùng lớn các lời giải. Khi không gian tìm kiếm nhỏ,

các phương pháp cổ điển như trên cũng không đủ thích hợp. Nhưng khi không
gian lớn cần phải dùng đến những kỹ thuật “Trí tuệ nhân tạo” đặc biệt. Giải thuật
di truyền (GA) là một trong những kỹ thuật đó. GA là một loại giải thuật mô
phỏng các hiện tượng tự nhiên: kế thừa và đấu tranh sinh tồn để cải tiến lời giải
và khảo sát không gian lời giải.
Trong những năm gần đây, GA đã có nhiều biến thể và ngày càng được cải
tiến cả về cách biểu diễn NST lẫn các toán tử để phù hợp với tính đa dạng của bài
toán thực tế. Vì vậy, đã hình thành nhiều hướng tiếp cận khác nhau như: Chiến
lược tiến hóa, quy hoạch tiến hóa, giải thuật di truyền mã hóa số thực.
Xuất phát từ những lý do trên, em chọn tìm hiểu và nghiên cứu đề tài: “Giải
thuật di truyền với toán tử lai ghép đa cha mẹ”.
Mục tiêu của đề tài: Nghiên cứu về giải thuật di truyền, các toán tử của
giải thuật di truyền, đặc biệt là dạng lai ghép đa cha mẹ trong RCGA.
Về nội dung và bố cục, ngoài những phần như: Mục lục, lời nói đầu, kết
luận, tài liệu tham khảo. Nội dung chính của báo cáo báo gồm 3 chương:

5


Chương 1: Giới thiệu giải thuật di truyền
1. Giải thuật di truyền cổ điển (GA).
2. Giải thuật di truyền mã hóa số thực (RCGA).
Chương 2: Toán tử lai ghép nhiều cha mẹ trong RCGA
1. Lai ghép đa cha mẹ trong RCGA.
2. Một số kỹ thuật đề xuất.
3. Đánh giá chung.
Chương 3: Bài toán ứng dụng
1. Bài toán mô phỏng quá trình chiết dung môi.
2. Kết quả thử nghiệm.
Mặc dù đã cố gắng hết sức, song nội dung đề tài khá mới nên chắc chắn báo

cáo này không tránh khỏi những thiếu sót. Em rất mong nhận được những ý kiến
đóng góp chân tình của các quý thầy cô giáo cùng của các bạn sinh viên.
Một lần nữa cho phép em được bày tỏ lòng cảm ơn chân thành đến toàn thể
các Thầy giáo, cô giáo giảng dạy tại khoa trong những năm học vừa qua đã
không chỉ truyền đạt cho chúng em những kiến thức về khoa học công nghệ mà
còn mang đến cho chúng em những hiểu biết bổ ích về cuộc sống.
Em xin chân thành cảm ơn!
Thái Nguyên, tháng 5 năm 2008

6


Chương 1
GIỚI THIỆU VỀ GIẢI THUẬT DI TRUYỀN
1.1. TỔNG QUAN VỀ GIẢI THUẬT DI TRUYỀN
1.1.1 Giới thiệu
Thuật giải di truyền, cũng như các thuật toán tiến hoá nói chung, hình thành
dựa trên quan niệm cho rằng, quá trình tiến hoá tự nhiên là hoàn hảo nhất, hợp lý
nhất, và tự nó đã mang tính tối ưu. Quan niệm này có thể được xem như là một
tiên đề đúng, không chứng minh được, nhưng phù hợp với thực tế khách quan.
Quá trình tiến hoá thể hiện tính tối ưu ở chỗ, thế hệ sau bao giờ cũng tốt hơn,
phát triển hơn, hoàn thiện hơn thế hệ trước. Tiến hoá tự nhiên được duy trì nhờ
hai quá trình cơ bản: sinh sản và chọn lọc tự nhiên. Xuyên suốt quá trình tiến hoá
tự nhiên, các thế hệ mới luôn được sinh ra để bổ xung thay thế thế hệ cũ. Cá thể
nào phát triển hơn, thích ứng hơn với môi trường sẽ tồn tại, cá thể nào không
thích ứng với môi trường sẽ bị đào thải. Sự thay đổi môi trường là động lực thúc
đẩy quá trình tiến hoá. Ngược lại, tiến hoá cũng tác động trở lại góp phần làm
thay đổi môi trường.
Mục tiêu nghiên cứu của GA là:
- Trừu tượng hóa và diễn đạt chính xác về các quá trình thích nghi trong hệ

thống tự nhiên.
- Thiết kế những phần mềm về hệ thống nhân tạo nhằm duy trì các cơ chế
quan trọng của hệ thống tự nhiên.
Những mục tiêu này đã dẫn đến những khám phá quan trọng trong hệ thống
khoa học tự nhiên lẫn nhân tạo.
GA ra đời và phát triển dựa trên quá trình tiến hóa trong tự nhiên và đã được
ứng dụng thành công trong nhiều lĩnh vực nhất là tối ưu hóa và máy học.

7


1.1.2 Sự khác biệt giải thuật di truyền so với các giải thuật khác
GA khác với những sự tối ưu hóa thông thường và những giải thuật tìm
kiếm khác bởi 4 điểm sau:
 GA làm việc với sự mã hóa môt bộ các thông số, chứ không phải bản thân
các thông số.
 GA tìm kiếm từ một số điểm quần thể, chứ không phải từ một điểm.
 GA sử dụng các thông tin về hàm mục tiêu chứ không phải đạo hàm
(derivatives) hay những tri thức phụ khác.
 GA sử dụng các luật chuyển đổi theo xác suất, chứ không phải các luật
chuyển đổi tiền định.
GA đòi hỏi một tập hợp các thông số tự nhiên của bài toán tối ưu để mã hóa
thành các chuỗi có chiều dài hữu hạn, dựa trên một số hữu hạn các ký tự.
1.1.3 Tính chất quan trong của giải thuật di truyền
1. GA lập luận có tính chất ngẫu nhiên để tìm giải pháp tối ưu cho những
vấn đề phức tạp. Tuy nhiên đây là hình thức ngẫu nhiên có hướng dẫn bởi giá trị
hàm thích nghi. Chính hàm thích nghi là vật chỉ đường cho GA tìm ra lời giải tối
ưu trong muôn ngàn lời giải có thể.
2. Vấn đề thích hợp nhất cho GA là tìm điều kiện tối ưu. Tối ưu đây không
nhất thiết phải là tuyệt đối, nhưng có thể chỉ là tương đối trong hoàn cảnh và thời

gian cho phép.
3. Một trong những bước quan trọng và khó khăn nhất là tìm hàm số thích
nghi. Hàm số thích nghi phải có liên hệ trực tiếp đến vấn đề cần giải.
4. GA và mạng nơron nhân tạo đều thuộc vào nhóm khoa học trí tuệ nhân
tạo, tuy nhiên GA lập luận dựa theo sự tiến hóa và xét vấn đề ở tầm mức của gen

8


và NST, khác với mạng nơron nhân tạo dựa trên kinh nghiệm và cách giải quyết
vấn đề mà bộ óc con người thường dùng.
Vậy khi nào thì biết được giải pháp do chương trình tin học về GA tìm ra lời
giải tối ưu?
Chúng ta không thể biết một cách chính xác khi nào thì đạt tối ưu. Ngay từ
đầu chúng ta đã không biết được đáp số tối ưu, vì nếu đã biết thì chúng ta đã
không phải bận tâm dùng GA. Vì không biết được trị số tối ưu nên chúng ta
không có cách nào để kiểm chứng là giải pháp do chương trình tin học đạt được
tối ưu. Tuy nhiên chúng ta có thể thử xem chương trình đã được điểm cao nhất
trong hoàn cảnh cho phép, bằng cách thực hiện GA và theo dõi tiến trình của kết
quả. Ví dụ, sau khi chạy thử 25 lần và nhận thấy từ lần thứ 16 đến lần thứ 25,
chưng trình tin học đều cho kết quả cao như nhau và không thấy có chiều hướng
cải thiện thêm nữa thì chúng ta có thể kết luận là đạt được kết quả tương đối tốt
nhất. Nhưng nếu sau 25 lần giá trị hàm thích nghi của lời giải có giá trị thích nghi
cao nhất, hay tiếp tục thử nữa nếu thời gian cho phép.
Đối với những vấn đề thuộc phạm vi thương mại thì đây không phải là
khuyết điểm quan trọng, vì trong thực tế nếu chúng ta đầu tư tương đối hơn các
đồng nghiệp khác thì khách hàng có thể tin tưởng chúng ta hơn và dĩ nhiên là
chúng ta đã thành công phần nào.
1.2. GIẢI THUẬT DI TRUYỀN CỔ ĐIỂN
1.2.1 Giới thiệu

Ta hãy xét một ví dụ sau:
Có một quần thể thỏ. Trong đó có một số con nhanh nhẹn và thông minh
hơn những con khá. Những chú thỏ nhanh nhẹn và thông minh có xác suất bị
chồn cáo ăn thịt ít hơn, do đó chúng tồn tại để làm những gì tốt nhất có thể: Tạo
thêm nhiều thỏ tốt. Dĩ nhiên, một số thỏ chậm chạp đần độn cũng sống chỉ vì

9


may mắn. Quần thể những chú thỏ còn sống sót sẽ bắt đầu sinh sản. Việc sinh sản
này tạo lên một hỗn hợp tốt về “nguyên liệu di truyền thỏ”. Một số thỏ chậm
chạp có con với những chú thỏ nhanh nhẹn, một số thỏ nhanh nhẹn với thỏ nhanh
nhẹn, một số thỏ thông minh với thỏ đần độn,….Và trên tất cả, thiên nhiên thỉnh
thoảng lại ném vào một chú thỏ “hoang dã” bằng cách làm đột biến nguyên liệu
di truyền thỏ. Những chú thỏ con, do kết quả này, sẽ nhanh hơn và thông minh
hơn những con trong quần thể gốc vì có nhiều bố mẹ nhanh nhẹn và thông minh
hơn đã thoát chết khỏi chồn cáo. Thật hay là những con chồn cũng trải qua những
tiến trình tương tự nếu không những chú thỏ sẽ trở nên nhanh và thông minh đến
nỗi những con chồn không thể bắt được chúng.
Khi tìm kiếm lời giải tối ưu, giải thuật di truyền cũng thực hiện các bước
tương ứng với câu chuyện đấu tranh sinh tồn của loài thỏ.
Dựa vào quá trình tiến hóa tự nhiên mà định nghĩa GA như sau:
Giải thuật di truyền cổ điển là các kỹ thuật tìm kiếm và tối ưu hóa các giải
pháp cho vấn đề phỏng theo quá trình thích nghi tiến hóa của các quần thể
sinh học dựa trên học thuyết Darwin. GA là một giải thuật, mục tiêu không
nhằm đưa ra lời giải chính xác tối ưu mà là đưa ra lời giải tương đối tối ưu.
* Cấu trúc của GA
Trong GA các cá thể (hay còn gọi là các NST) được mã hóa bởi các chuỗi
nhị phân, mỗi vị trí trên chuỗi nhị phân chỉ nhận một trong hai giá trị “0” hoặc
“1”. Một NST trong GA có dạng như sau:

1011001001
GA cổ điển được J. H Holland giới thiệu để giải bài toán tối ưu:
max {f (x) /xM},

10


Trong đó M là một miền trong không gian n-chiều, f (x) >0 với mọi xM.
Cấu trúc của GA cổ điển như sau:
Procedure GA
{
t=0;
Khởi tạo P (t) ;
Đánh giá P (t) ;
While (not (điều kiện dừng) ) do
{
t=t+1;
Chọn P (t) từ P (t-1)
Thay đổi P (t)
Đánh giá P (t) ;
}
}
Quá trình tiến hóa được diễn ra trong vòng lặp while, tại thế hệ thứ t, giải
thuật duy trì một tập lời giải P (t) ={xt1, …, xtn}. Mỗi lời giải xti được đánh giá
“độ thích nghi”. Một tập lời giải mới được xây dựng bằng cách “chọn lọc” các cá
thể có độ thích nghi cao hơn, ta được một tập lời giải trung gian. Tiếp theo, một
số cá thể trong tập lời giải này được biến đổi bằng phương pháp “lai ghép và
“đột biến” để tạo thành các lời giải mới cho thế hệ t+1. Sơ đồ sau minh họa hoạt
động của giải thuật di truyền.


11


Hình 1.1: Sơ đồ tổng quan của giải thuật di truyền
1.2.2 Các toán tử di truyền
Trong thuật giải di truyền, các cá thể mới liên tục được sinh ra trong quá
trình tiến hoá nhờ sự lai ghép ở thế hệ cha-mẹ. Một cá thể mới có thể mang
những tính trạng của cha-mẹ (di truyền), cũng có thể mang những tính trạng hoàn
toàn mới (đột biến). Di truyền và đột biến là hai cơ chế có vai trò quan trọng như
nhau trong tiến trình tiến hoá, dù rằng đột biến xảy ra với xác xuất nhỏ hơn rất
nhiều so với hiện tượng di truyền. Các thuật toán tiến hoá, tuy có những điểm
khác biệt, nhưng đều mô phỏng ba toán tử cơ bản: Chọn lọc, lai ghép, đột biến.
1.2.2.1 Toán tử chọn lọc
Toán tử chọn lọc là một quá trình loại bỏ các NST kém thích nghi trong
quần thể. Có các toán tử chọn lọc sau:

12


* Toán tử chọn lọc tỷ lệ: Được sử dụng thường xuyên nhất trong GA. Xác
suất lựa chọn của mỗi cá thể tỷ lệ thuận với giá trị độ thích hợp của nó, được tính
theo công thức:
P i = f (vi) /F
Trong đó: f (vi) là hàm thích nghi của mỗi cá thể vi.
F là tổng của các giá trị thích nghi của quần thể.
* Toán tử chọn lọc cạnh tranh: Mỗi lần chọn lọc ta tiến hành chọn ngẫu
nhiên t cá thể từ quần thể hiện tại. Bản sao của cá thể tốt nhất trong t cá thể kể
trên được sao chép vào quần thể bố mẹ.Tiến hành N lần chọn như vậy ta thu
được quần thể bố mẹ. Giá trị t được gọi là kích cỡ cạnh tranh.
* Toán tử chọn lọc xếp hạng: Các cá thể của quần thể hiện tại được sắp

xếp theo thứ tự giảm dần của giá trị độ thích nghi. Cá thể tốt nhất được xếp thứ
nhất và cá thể tồi nhất xếp cuối cùng.
1.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, m 2.
Ví dụ
Cha: 101101100
Mẹ: 000011100

13


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ố toán tử lai ghép như:
* Lai ghép một điểm (One-point Crossover)
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 đồng đẳng hay lai ghép mặt nạ (Uniform Crossover)
Trong lai ghép đồng dạng, 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:

14


 xi
x 'i  
 yi

i  {i1 ,..., ik }
i  {i1 ,..., ik }

 yi
y 'i  
 xi

i  {i1 ,..., ik }
i  {i1 ,..., ik }

1.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 p c). Đ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ể.
- Tạo một số ngẫu nhiên k trong khoảng từ 1 tới m, 1 ≤ k ≤ m.
- 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.
1.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

15


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.
1.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)

16


Hình 1.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ì
2 17 ≤ 151000 ≤ 2 18
- 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


17


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)
2 14 ≤ 151000 ≤ 2 15
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 (b 17 b16…..b0) từ cơ số 2 sang cơ số 10


17



(b17 b16…..b0)2 =   bi 2 i   x1 '
 i 0

10

- Tìm giá trị x1 tương ứng
x  3.0  x1 '.

15.1
, với -3. 0 là cận dưới và 15.1 là độ dài của miền giá trị.
218  1


- Đổi 15 bit kế tiếp (b32 b 31…..b 18) từ cơ số 2 sang cơ số 10


32



(b32 b31…..b18)2 =   bi 2 i   x 2 '
 i18

10

- Tìm giá trị x1 tương ứng
x  4.1  x 2 '.

1.7
, với -3. 0 là cận dưới và 15.1 là độ dài của miền giá trị.
2 1
15

Ví dụ
NST (010001001011010000111110010100010) tương ứng với
(x1, x2) = (1.052426, 5.755330) vì:

18


x1’ = (010001001011010000) 2 = 7035210
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);

19


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)

20


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 = 0.01 (nghĩa
là 1% số bít bị đột biến).
- 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.


thể

Giá trị fi(x1, x2)

NST

x1

x2

eval (xi)

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 1.2: Kết quả của 1000 thế hệ

21


1.3. THUẬT TOÁN DI TRUYỀN MÃ HÓA SỐ THỰC
1.3.1 Giới thiệu
Giải thuật di truyền (GA) và các biến thể của nó đã được phát triển rất mạnh
trong những năm gần đây. Trong các bài toán tối ưu hàm nhiều biến, GA thường
được sử dụng chủ yếu với mã hóa số thực. Mỗi NST được mã hóa bởi một véc tơ
gồm n thành phần thực. Mỗi phần tử được chọn lúc khởi tạo sao cho thuộc miền
xác định của nó, và các toán tử được thiết kế cẩn thận để bảo toàn các ràng buộc
này (không có vấn đề như vậy trong biểu diễn nhị phân, nhưng thiết kế của các
toán tử này khá đơn giản; ta không thấy điều đó là bất lợi, mặt khác nó lại cung
cấp các lợi ích khác được trình bày dưới đây). Như vậy có thể xem một quần thể
có m cá thể như một ma trận thực cấp (mxn). Với cách mã hóa này các toán tử lai
ghép và đột biến có nhiều dạng khác nhau.
Sự chính xác của cách tiếp cận như thế chỉ tùy thuộc máy tính nhưng nói
chung là tốt hơn nhiều so với biểu diễn nhị phân. Đương nhiên, ta luôn có thể
tăng độ chính xác của biểu diễn nhị phân khi thêm các bít, nhưng điều này làm
thuật giải chậm một cách đáng kể.
Thêm nữa, biểu diễn bằng số thực có khả năng biểu diễn một miền rất rộng
(hoặc các trường hợp MXĐ không biết trước cụ thể). Mặt khác, trong biểu diễn
nhị phân, độ chính xác sẽ giảm khi tăng kích thước miền do chiều dài nhị phân cố

định cho trước. Hơn nữa với biểu diễn số thực, việc thiết kế các công cụ đặc biệt
để xử lý các ràng buộc không tầm thường sẽ dễ hơn.
1.3.2 Các toán tử di truyền
1.3.2.1 Toán tử chọn lọc
Toán tử chọn lọc là một quá trình trong đó cá thể được chọn để tham gia
vào các pha tiếp theo của quá trình tiến hóa. Việc chọn lựa này tùy thuộc vào độ
thích nghi của cá thể đó, nghĩa là những cá thể nào có giá trị mà thích nghi cao

22


hơn sẽ có khả năng có nhiều con cháu trong thế hệ tiếp theo. Các dạng của toán
tử chọn lọc trong RCGA cũng giống với trong GA
1.3.2.2 Toán tử đột biến
Nếu xti = (v1, ……, vn) là NST thì mỗi phần tử vk có cơ hội trải qua tiến
trình đột biến ngang nhau. Kết quả của một lần ứng dụng của toán tử này là vectơ
stv = (v1, ……, v’ k, ……, vn) và v’k là giá trị ngẫu nhiễn trong miền của tham số
tương ứng.
*Một số toán tử đột biến:
* Toán tử đột biến đều: Chỉ hoạt động với sơ đồ mã hóa số thực. Ngoài
tham số xác suất đột biến Pm toán tử đột biến đều sử dụng một số thực M do
người sử dụng xác định được gọi là kích thước đột biến tối đa. Khi thực hiện,
toán tử đột biến đều duyệt từng gen của các vectơ gen với xác suất đột biến Pm.
* Toán tử đột biến không đều: Tương tự như toán tử đột biến đều, điểm
khác nhau giữa hai toán tử này là kích thước đột biến tối đa không cố định mà
thay đổi theo số thể hệ đã tiến hóa. Ở những thế hệ đầu toán tử này hoạt động
như toán tử đột biến đều. Sau đó, cùng với số thế hệ tăng lên, kích thước đột biến
tối đa dần nhỏ đi.
1.3.2.3 Toán tử lai ghép
Trong RCGA toán tử lai ghép đóng vai trò trung tâm, xác suất đột biến

thường rất nhỏ. Việc nghiên cứu tính tự thích nghi trong toán tử lai ghép rất khó
khăn, trước hết do sự phức tạp trong tính toán, ngoài ra toán tử này có rất nhiều
dạng khác nhau. Thông thường ta có các dạng lai ghép cũng như trong toán tử lai
ghép nhị phân như lai ghép một điểm, lai ghép đa điểm, lai ghép mặt nạ. Ngoài ra
đối với toán tử lai ghép trong RCGA còn: lai ghép số học, lai ghép Heuristic.

23


* Lai ghép số học (Arithmetic Crossover)
Phép lai này chọn một số thực a (0x'i = a.xi + (1-a).yi

;

y'i = a.yi + (1-a).xi

* Lai ghép Heuristic
Giả sử với cặp bố mẹ (X, Y) đã chọn, trong đó cá thể X có độ thích nghi
(giá trị hàm mục tiêu) tốt hơn cá thể Y thì toán tử này tạo một con duy nhất X' từ
cặp X, Y bởi:
x'i = α (xi - yi) + xi

với 0 < α < 1

Ngoài ra đối với RCGA còn có một số toán tử lai ghép khác như: Toán tử
lai ghép hình học (Geometrical Crossover) và toán tử lai ghép BLX-α (Blend
Crossover).
1.3.3 Các bước trong RCGA
Bước 1: Khởi tạo ngẫu nhiên quần thể có m cá thể.

Bước 2: Lặp khi điều kiện dừng chưa thỏa
- Chọn các cá thể cha mẹ để tiến hóa
- Thực hiện lai ghép các cá thể cha mẹ để tạo sinh các cá thể con
- Thực hiện đột biến một cá thể con với xác suất pm
- Chọn các cá thể sống sót cho lần tạo sinh tiếp theo
Bước 3: Cá thể có độ thích nghi cao nhất trong lần tạo sinh cuối cùng là cá
thể tìm được.

24


1.3.4 Ví dụ
Tính min của hàm f  x12  x 22 với x1, x2 trong miền [-10, 10]
Hàm cho m = 3, n = 2, p c = 0.85, pm = 0.05
Áp dụng giải thuật di truyền để giải quyết bài toán trên như sau:
- Giá trị khởi tạo ban đầu:
Với cá thể thứ nhất: ta có x1 = 1.43, x2 = 4.29. f(1) = 20.449
Với cá thể thứ nhất: ta có x1 = 7.14, x2 = -1.43. f(2) = 53.025
Với cá thể thứ nhất: ta có x1 = -7.14, x2 = -4.29. f(3) = 69.38
+ 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 xi và tính các giá trị xi tương ứng với
i= 1, 2…m)
Tính giá trị hàm thích nghi của mỗi cá thể xi, tổng độ thích nghi. 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ứ 3 trong NST x3 được chọn để đột biến. Và đột biến chính
là thay đổi giá trị gen trong đoạn [-10, 10]

- Toán tử lai ghép: Ta sẽ minh họa toán tử lai ghép số học trên hai NST x1
và x2

25


×