Tải bản đầy đủ (.docx) (44 trang)

ĐỒ ÁN CƠ SỞ TÌM HIỂU GIẢI THUẬT DI TRUYỀN VÀ CÁC ỨNG DỤNG

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 (476.74 KB, 44 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC NGUYỄN
TẤT THÀNH
KHOA CƠNG NGHỆ THƠNG
TIN

ĐỒ ÁN CƠ SỞ

TÌM HIỂU GIẢI
THUẬT DI TRUYỀN VÀ
CÁC ỨNG DỤNG

Giảng viên hướng dẫn: ThS.
VƯƠNG XUÂN CHÍ
Sinh viên thực hiện:
THỊ BÉ QUYÊN

TRẦN

MSSV:
2000005977
Chuyên ngành:
học dữ liệu
Môn học:

Khoa
Môn Đồ
2



án cơ sở Khoa học dữ liệu
Khóa:

2020

Tp.HCM, tháng 6 năm 2022

Trường Đại học Nguyễn Tất Thành

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM


Khoa Công Nghệ Thông Tin

Độc lập – Tự do – Hạnh phúc

� � � �

� � � �

NHIỆM VỤ ĐỒ ÁN CƠ SỞ
Họ và tên: Trần Thị Bé Quyên

MSSV: 2000005977

Chuyên ngành: Khoa Học Dữ Liệu

Lớp: 20DTH2A

Email:


SĐT: 0353 432 913

Tên đề tài: Tìm hiểu giải thuật di truyền và các ứng dụng.
Giáo viên hướng dẫn: Vương Xuân Chí.
Thời gian thực hiện: 20/06/2022 đến 20/09/2022
MÔ TẢ ĐỀ TÀI:
Thuật giải di truyền (genetic algorithm) là một kỹ thuật của khoa học máy tính nhằm tìm kiếm
giải pháp thích hợp cho các bài toán tối ưu tổ hợp. Thuật giải di truyền là một phân ngành của
giải thuật tiến hóa vận dụng các nguyên lý của tiến hóa như di truyền, đột biến, chọn lọc tự
nhiên, và trao đổi chéo. Thuật giải di truyền là một trong những kỹ thuật tìm kiếm lời giải tối
ưu đã đáp ứng được yêu cầu của nhiều bài tốn và ứng dụng.
NỘI DUNG VÀ PHƯƠNG PHÁP:
- Tìm hiểu tổng quan về giải thuật di truyền
- Tìm hiểu các phép toán trong giải thuật di truyền để giải các bài toán tối ưu
- Áp dụng vào bài toán thực tế
YÊU CẦU:
- Có kiến thức, đam mê, hiểu biết về công nghệ mới như Mạng neural, Machine Learning,
Deep Learning… Đọc hiểu tài liệu tiếng Anh, kỹ năng trình bày văn bản trên máy tính tốt.
- Có tác phong làm việc chăm chỉ, tinh thần trách nhiệm cao, có khả năng làm việc độc lập
hoặc làm việc trong nhóm tốt.
Nội dung và yêu cầu đã được thông qua Bộ môn.

TP.HCM, ngày 26 tháng 6 năm 2022
Q. TRƯỞNG BỘ MÔN

GIÁO VIÊN HƯỚNG DẪN

(Ký và ghi rõ họ tên)


(Ký và ghi rõ họ tên)

ThS. Vương Xuân Chí

ThS. Vương Xuân Chí


LỜI CẢM ƠN
Trong suốt q trình học tập em ln được sự quan tâm, giúp đỡ tận tình của các Thầy,
Cô trong Khoa Công nghệ thông tin cùng với sự giúp đỡ của bạn bè xung quanh.
Lời đầu tiên, em xin trân trọng cảm ơn Thầy Vương Xuân Chí đã tận tình hướng dẫn
trong quá trình học tập cũng như trong việc hoàn thành đồ án cơ sở này.
Xin chân thành cảm ơn các Thầy Cô trong Khoa đã tận tình giảng dạy em trong thời gian
học tập.
Khơng qn cảm ơn bạn Trần Vĩnh Phúc đồng hành cùng tôi xuyên suốt q trình học
tập, bạn và tơi đã cùng nhau cố gắn hoàn thiện bài nghiên cứu này.
Do giới hạn kiến thức và khả năng lý luận của bản thân cịn nhiều thiếu sót và hạn chế,
kính mong sự chỉ dẫn, đóng góp và phê bình của các Thầy, Cơ để bài luận văn của em
được hoàn thiện hơn.
Và cuối cùng em xin cảm ơn Thầy Chí đã ln giúp đỡ và hướng dẫn em tận tình trong
thời gian qua. Em rất vui và vinh hạnh khi được làm việc với Thầy. Thật may mắn cho
bọn em khi được làm việc cùng Thầy trong quãng thời gian vừa qua. Cảm ơn Thầy đã
giúp đỡ và chỉ dạy cho bọn em nhiều điều bổ ích. Em chúc Thầy ln khỏe mạnh, hạnh
phúc, và đạt thêm nhiều thành công mới.
Em xin trân trọng cảm ơn!

1


LỜI MỞ ĐẦU

Trong ngành khoa học máy tính, tìm kiếm lời giải tối ưu cho các bài toán là vấn đề
được các nhà khoa học máy tính đặc biệt rất quan tâm. Mục đích chính của các thuật tốn
tìm kiếm lời giải là tìm ra lời giải tối ưu nhất cho bài tốn trong thời gian nhỏ nhất. Trong
q trình sinh sản sẽ tổ hợp các đặc tính tốt từ tổ tiên, sau một vài thế hệ những lồi tiến
hóa tự nhiên sẽ thích nghi hơn trong mơi trường phát triển.
Nhà bác học Charles Darwin đã nêu ra lý thuyết về sự tiến hóa tự nhiên của các lồi
vật, qua nhiều thế hệ sinh vật phát triển dựa trên nguyên lý của sự chọn lọc tự nhiên “lồi
nào thích nghi thì sẽ tồn tại”, như ta thấy trong tự nhiên các loài vật sẽ cạnh tranh nhau về
nơi trú ẩn, thực phẩm,…các cá thể cùng lồi cịn cạnh tranh nhau để thu hút bạn tình
trong mùa sinh sản do đó những cá thể nào ít thích nghi thì ít có cơ hội tồn tại hơn và
những cá thể thích nghi được thì sẽ phát triển và cho ra nhiều con cái. Trong quá trình
sinh sản sẽ tổ hợp các đặc tính tốt từ tổ tiên, sau một vài thế hệ những lồi tiến hóa tự
nhiên sẽ thích nghi hơn trong môi trường phát triển. Dựa trên nền tảng lý thuyết tiến hóa
tự nhiên này, đến năm 1975 Holland đã phát triển ý tưởng này vào hệ thống nhân tạo, ông
áp dụng nguyên tắc này để tối ưu hóa các vấn đề và xây dựng thuật toán di truyền (GAs).
Hiện nay GAs được xem như một công cụ mạnh mẽ để giải quyết các vấn đề về tìm kiếm
và tối ưu hóa phức tạp như thời gian biểu, lập kế hoạch mua sắm, …
Trong gần ba thập niên qua, giải thuật di truyền và các cải tiến phát triển của nó gọi
chung là tính tốn tiến hóa đã thực sự tạo ra các kết quả rất khả quan khi áp dụng giải
quyết các bài toán tối ưu. Giải thuật di truyền và tính tốn tiến hóa mơ phỏng sự tiến hóa
của tự nhiên của sinh học và gần đây nhất là phương pháp tối ưu hóa đàn kiến do Dorigo
đề xuất là hướng tiếp cận hiện đại nhất. Cả hai loại giải thuật trên đã tỏ ra rất hiệu quả
trong việc áp dụng giải quyết các bài toán tối ưu.

2


TRƯỜNG ĐH NGUYỄN TẤT THÀNH

KỲ THI KẾT THÚC HỌC PHẦN


TRUNG TÂM KHẢO THÍ

HỌC KỲ III NĂM HỌC 2021 - 2022

PHIẾU CHẤM THI TIỂU LUẬN/ĐỒ ÁN
Môn thi: Đồ án cơ sở Khoa học dữ liệu
Lớp học phần: 20DTH2A
Nhóm sinh viên thực hiện:
1.Trần Vĩnh Phúc

Tham gia đóng góp:

2.Trần Thị Bé Quyên

Tham gia đóng góp:

Ngày thi:

Phịng thi:

Đề tài tiểu luận/báo cáo của sinh viên: Tìm hiểu giải thuật di truyền và các ứng dụng
Phần đánh giá của giảng viên (căn cứ trên thang rubrics của mơn học):
Tiêu chí (theo
CĐR HP)

Đánh giá của GV

Điểm
tối đa


Điểm
đạt
được

Cấu trúc của
báo cáo
Nội dung
- Các
dung
phần

nội
thành

- Lập luận
- Kết luận
Trình bày
TỔNG ĐIỂM

Giảng viên chấm thi
3


(ký, ghi rõ họ tên)

4


PHẦN NHẬN XÉT + CHẤM ĐIỂM CỦA GIẢNG VIÊN


Điểm giáo viên hướng dẫn:

Điểm giảng viên chấm vòng 2:

TPHCM, Ngày …… tháng …… năm

Giáo viên chấm vòng 2

Giáo viên hướng dẫn

5


MỤC LỤC
NHIỆM VỤ ĐỒ ÁN CƠ SỞ

iii

LỜI CẢM ƠN

i

LỜI MỞ ĐẦU

ii

PHIẾU CHẤM THI TIỂU LUẬN/ĐỒ ÁN

iii


PHẦN NHẬN XÉT + CHẤM ĐIỂM CỦA GIẢNG VIÊN

iv

MỤC LỤC

vi

DANH MỤC CÁC BẢNG BIỂU

vii

DANH MỤC CÁC BẢNG HÌNH

viii

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

ix

Chương 1: Các khái niệm cơ bản liên quan đến giải thuật di truyền

1

1.1.

Di truyền là gì?

1


1.2.

Nhiễm sắc thể

1

1.3.

Cá thể

2

1.4.

Quần thể

2

1.5.

Thế hệ

2

1.6.

Tiến hóa

2


1.7.

Giải thuật di truyền

3

Chương 2: Giải thuật di truyền
2.1. Tổng quan về giải thuật di truyền

3
3

2.1.1. Giới thiệu về giải thuật di truyền

3

2.1.2. Các tính chất của giải thuật di truyền

4

2.1.3. Các toán tử di truyền

5

2.2. Các bước cơ bản của thuật toán di truyền
2.2.1. Sơ đồ giải thuật di truyền
2.2.2. Giả lập thuật giải di truyền
2.3. Cách biểu diễn gene


8
8
10
12

2.3.1. Biểu diễn gene bằng chuỗi nhị phân

12

2.3.2. Biểu diễn bằng chuổi thập phân

14

2.4. Các tham số

15

2.5. Hàm mục tiêu

15

2.6. Xây dựng hàm thích nghi

17

2.7. Nguyên lý hoạt động

17
6



2.7.1. Cơ sở toán học của giải thuật di truyền

17

2.7.2. Thuộc tính của sơ đồ

18

2.8. So sách GAs với kỹ thuật tối ưu khác
Chương 3: Ứng dụng

19
20

3.1. Bài toán người du lịch (TSP)

20

3.2. Bài toán lập lịch

21

3.3.

Bài toán lập thời khóa biểu cho trường học

23

3.4.


Bài tốn phân hoạch đối tượng và đồ thị

23

3.5.

Vạch đường cho robot di chuyển

24

3.6.

Bài toán đoán Password

24

3.7.

Một số cơng trình nghiên cứu

27

Chương 4: Kết luận

29

TÀI LIỆU THAM KHẢO

32


7


8


DANH MỤC CÁC BẢNG HÌNH
Hình 1. 1 ADN - Đơn vị cơ bản của gen

2

hình 2. 1 Vịng trịn roulette trong GAs

6

hình 2. 2 Phép lai một điểm cắt, nhiều điểm cắt

7

hình 2. 3 Phép lai nhiều đoạn

7

hình 2. 4 Sơ đồ giải thuật di truyền đơn giản

9

hình 2. 5 NST n đoạn


14

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

Từ viết tắc

Ý nghĩa

1

GA

Genetic Algorithm (Giải thuật di truyền)

2

NST

Nhiễm sắc thể

3

TSP

Traveling Salesman Problem (bài toán người du lịch)

9



Chương 1: Các khái niệm cơ bản liên quan đến giải thuật di truyền
Thuật giải di truyền cung cấp một phương pháp học được thúc đẩy bởi sự tương tự với sự
tiến hóa sinh học. Thay vì tìm kiếm các giả thuyết từ tổng quát đến cụ thể hoặc từ đơn
giản đến phức tạp, GAs tạo ra các giả thuyết kế tiếp bằng cách lặp việc đột biến và việc
tái hợp các phần của giả thuyết được biết hiện tại là tốt nhất. Ở mỗi bước, một tập các giả
thuyết được gọi là quần thể hiện tại được cập nhật bằng cách thay thế vài phần nhỏ quần
thể bởi cá thể con của các giả thuyết tốt nhất ở thời điểm hiện tại. Cung tìm hiểu các khái
niệm cơ bản sau:
1.1.

Di truyền là gì?

Di truyền là hiện tượng chuyển những tính trạng của cha mẹ cho con cái thơng qua gen
của bố mẹ. Trong sinh học, di truyền chuyển những đặc trưng sinh học từ một sinh vật
cha mẹ đến con cái và nó đồng nghĩa với di chuyển gen, gen thừa nhận mang thông tin
sinh học hay thông tin di truyền.
1.2.

Nhiễm sắc thể

Trong cơ thể sinh vật, các gen liên kết với nhau theo cấu trúc dạng chuỗi gọi là nhiễm sắc
thể, nó đặc trưng cho mỗi lồi và quyết định sự sống cịn của cơ thể đó. Một NST được
tạo thành từ nhiều gen. Trong GA, một gen được coi như một phần tử trong chuỗi NST.
Một nhiễm sắc thể (NST) được tạo thành từ nhiều Gen. Mỗi mỗi gen là một phần tử của
NST, có vị trí và giá trị khác nhau để quy định một trạng thái.

1


HÌNH 1. 1 ADN - ĐƠN VỊ CƠ BẢN CỦA GEN

1.3.

Cá thể

Một cá thể trong giải thuật di truyền, biểu diễn một giải pháp của bài tốn. Tuy nhiên
khơng giống với trong tự nhiên, một cá thể có nhiều nhiễm sắc thể, có một thì gọi là thể
đơn bội, cịn nếu có nhiều thì là thể đa bội, ở đây để giới hạn trong giải thuật di truyền ta
quan niệm một cá thể có một nhiễm sắc thể. Do đó khái niệm cá thể và nhiễm sắc thể của
giải thuật di truyền trong tiểu luận này được coi là tương đương.
1.4.

Quần thể

Là tập hợp các cá thể cùng loài, cùng sống trong một khoảng không gian xác định vào
một thời gian nhất định, có khả năng sinh sản và tạo thành thế hệ mới.
Một tập hợp các cá thể (NST) có cùng một số đặc điểm. Trong thuật giải di truyền, quần
thể là một tập hợp các lời giải bài toán.
1.5.

Thế hệ

Thế hệ: là tập các cá thể ứng với một giai đoạn phát triển nào đó.
1.6.

Tiến hóa

Tiến hóa nói đến q trình hồn thiện, biến đổi dần để hồn thiện hơn các bộ phận, chức
năng của các sinh vật để phù hợp hơn với điều kiện sinh tốn cũng đang dần thay đổi.
2



Trong sinh học, tiến hóa là sự thay đổi đặc tính di truyền của một quần thể sinh học qua
những thế hệ nối tiếp nhau. Các q trình tiến hóa làm nảy sinh sự đa dạng ở mọi mức độ
tổ chức sinh học bao gồm loài, các cá thể sinh vật và cả các phân tử như ADN và protein.
Tiến hóa do chọn lọc tự nhiên là một q trình có thể suy ra từ ba thực kiện về các quần
thể sinh học:
Nhiều cá thể con được sinh ra hơn số lượng có thể sống sót
Các tính trạng khác nhau giữa các cá thể, dẫn tới tỉ lệ sinh tồn và sinh sản khác nhau
những sự khác biệt về đặc điểm trên là có tính di truyền.
Do đó, khi những cá thể của một quần thể chết đi, chúng được thay thế bằng những hậu
duệ của thế hệ cha mẹ nhưng có thể thích nghi tốt hơn để tồn tại và sinh sôi trong môi
trường mà sự chọn lọc tự nhiên diễn ra. Quá trình này tạo ra và bảo tồn những đặc điểm
được cho là phù hợp hơn cho chức năng mà chúng đảm nhiệm.
1.7.

Giải thuật di truyền

Giải thuật di truyền là một kỹ thuật của khoa học máy tính nhằm tìm kiếm giải pháp thích
hợp cho các bài toán tối ưu tổ hợp (combinatorial optimization). Giải thuật di truyền là
một phân ngành của giải thuật tiến hóa vận dụng các nguyên lý của tiến hóa như di
truyền, đột biến, chọn lọc tự nhiên, và trao đổi chéo.

Chương 2: Giải thuật di truyền
2.1. Tổng quan về giải thuật di truyền
2.1.1. Giới thiệu về giải thuật di truyền
Giải thuật di truyền do D.E. Goldberg đề xuất, sau đó được L. Davis và Z. Michalevicz
phát triển. thuật di truyền cũng như tiến hóa dựa trên khái niệm cho rằng q trình tiến
hóa tự nhiên là hồn hảo nhất, hợp lý nhất và tự nó đã mang tính tối ưu. Sự tối ưu đó
được thể hiện ở chỗ thế hệ sau bao giờ cũng phát triển tốt hơn thế hệ trước. Tiến hóa tự
nhiên được duy trì nhờ hai q trình cơ bản: sinh sản và chọn lọc tự nhiên, xuyên suốt


3


q trình tiến hóa tự nhiên, các thế hệ mới luôn được sinh ra để bổ sung thay thế thế hệ
cũ, cá thể nào thích ứng với mơi trường sẽ tồn tại, ngược lại sẽ bị đào thải.
Giải thuật di truyền (GA-Genetic Algorithm) là kỹ thuật 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à phương pháp
tìm kiếm tối ưu ngẫu nhiên bằng cách mô phỏng theo sự tiến hóa của con người hay của
sinh vật. Tư tưởng của thuật tốn di truyền là mơ phỏng các hiện tượng tự nhiên, là kế
thừa và đấu tranh sinh tồn.
Thuật giải di truyền là một phân ngành của giải thuật tiến hóa vận dụng các nguyên lý
của tiến hóa như di truyền, đột biến, chọn lọc tự nhiên, và trao đổi chéo. Ngày nay, thuật
giải di truyền được dùng phổ biến trong một số ngành như tin sinh học, khoa học máy
tính, trí tuệ nhân tạo, tài chính và một số ngành khác. Thuật giải di truyền sử dụng một số
thuật ngữ của ngành di truyền học, như: Gen, nhiễm sắc thể, quần thể, thế hệ.
Giải thuật di truyền bao gồm 4 bước chính: Mã hóa lời giải, khởi tạo quần thể, sử dụng
các phép toán di truyền và đánh giá độ thích nghi. Sau đó, chúng ta lại sinh ra một quần
thể mới bằng phép chọn lọc rồi tiếp tục sử dụng các phép toán di truyền và đánh giá độ
thích nghi của các cá thể (điển hình bởi nhiễm sắc thể - NST) trong quần thể. Thuật giải
được thực hiện qua càng nhiều thế hệ thì lời giải đưa ra càng tối ưu.
2.1.2. Các tính chất của giải thuật di truyền
GAs là kỹ thuật chung, giúp giải quyết vấn đề bằng cách mơ phỏng sự tiến hóa của con
người hay của sinh vật nói chung (dựa trên thuyết tiến hóa mn lồi của Darwin), trong
điều kiện qui định sẵn của môi trường. Mục tiêu của GAs 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. Một cá thể trong GAs sẽ biểu diễn
một giải pháp của bài toán. Tuy nhiên, không giống với trong tự nhiên là một cá thể có
nhiều nhiễm sắc thể (NST) mà để giới hạn trong GAs, ta quan niệm một cá thể có một
NST. Do đó, khái niệm cá thể và NST trong GAs coi như là tương đương. Một NST được
tạo thành từ nhiều gen, mỗi gen có thể có các giá trị khác nhau để quy định một tình trạng

nào đó.

4


Trong GAs, một gen được coi như một phần tử trong chuỗi NST. Một tập hợp các cá thể
có cùng một số đặc điểm nào đấy được gọi là quần thể. Trong thuật giải di truyền, ta quan
niệm quần thể là một tập các lời giải của một bài toán.
2.1.3. Các toán tử di truyền
Trong giải thuật di truyền, các cá thể mới liên tục sinh ra trong quá trình tiến hóa 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 hóa, dù rằng đột
biến xảy ra với xác suất nhỏ hơn nhiều so với hiện tượng di truyền. Các thuật tốn tiến
hóa, tuy có những điểm khác biệt, nhưng đều mơ phỏng ba tốn tử cơ bản: lai ghép, đột
biến và chọn lọc.
Mã hóa: là quá trình biểu diễn gen của cá thể hay nhiễm sắc thể.
Phép chọn: là q trình chọn cá thể thích nghi tốt và loại bỏ cá thể kém thích nghi khỏi
quần thể. Trong tự nhiên, quá trình chọn lọc và đấu tranh sinh tồn đã làm thay đổi các cá
thể trong quần thể. Những cá thể tốt, thích nghi được với điều kiện sống thì có khả năng
đấu tranh lớn hơn, do đó có thể tồn tại và sinh sản. Các cá thể khơng thích nghi được với
điều kiện sống thì dần mất đi. Dựa vào nguyên lý của quá trình chọn lọc và đấu tranh sinh
tồn trong tự nhiên, chọn lựa các cá thể trong GA chính là cách chọn các cá thể có độ thích
nghi tốt để đưa vào thế hệ tiếp theo hoặc để cho lai ghép, với mục đích là sinh ra các cá
thể mới tốt hơn. Có nhiều cách để lựa chọn nhưng cuối cùng đều nhằm đáp ứng mục tiêu
là các cá thể tốt sẽ có khả năng được chọn cao hơn.
Nguyên tắc cơ bản của phép chọn lọc là NST có độ thích nghi càng cao thì có xác suất
chọn càng lớn.
Có các phương pháp chọn: chọn lọc tỉ lẹ, chọn lọc vòng, chọc lọc cắt, chọn lọc xếp hạng
tuyến tính và chọn lọc xếp hạng lũy thừa.

Cường độ chọn lọc: I = . Trong đó M và M* là độ thích nghi trung bình của quần thể
trước và sau chọn lọc, là phương sai của độ thích nghi trước chọn lọc.
5


Một trong các cách đơn giản và hiệu quả để chọn cá thể thích nghi là dùng vịng trịn
Rulet. Trong vòng tròn Rulet, mỗi cá thể chiếm một vùng diện tích tỉ lệ với độ thích nghi
của chúng.
Tính tổng độ thích nghi của cá thể đồng thời mỗi cá thể.
Sinh số ngẫu nhiên n trong khoảng từ 0 đến tổng thích nghi.

HÌNH

2. 1 VỊNG TRỊN ROULETTE TRONG GAS

Lai ghép: là quá trình hình thành NST mới trên cơ sở NST cha mẹ, bằng cách ghép một
hay nhiều đoạn gen của hai (hay nhiều) NST cha mẹ khác nhau. Hai cá thể cha, mẹ trao
đổi các gen để tạo ra hai cá thể con.
Lai ghép là kết hợp hai NST cha mẹ để tạo NST con với triển vọng cha mẹ tốt sẽ tạo con
tốt hơn.
Phép lai ghép xảy ra giữa hai NST cha mẹ được chọn ngẫu nhiên với xác suất PC (gọi là
xác suất lại ghép).
Các NST con thừa hưởng một phần gen của cha và một phần gen của mẹ.
Các cặp cha mẹ được lựa chọn ngẫu nhiên và xác suất xảy ra lai ghép với mỗi cặp được
quy định từ trước
6


Có nhiều cách lai ghép khác nhau:
-


Lai ghép một điểm cắt, nhiều điểm cắt

HÌNH

-

2. 2 PHÉP LAI MỘT ĐIỂM CẮT, NHIỀU ĐIỂM CẮT

Lai ghép nhiều đoạn

HÌNH

2. 3 PHÉP LAI NHIỀU ĐOẠN

Toán tử lai ghép:
Lấy giá trị ngẫu nhiên p ∈ [0,1] để chọn cá thể lai ghép, cá thể có độ thích nghi cao có
xác xuất lựa chọn nhiều hơn
Sau khi lựa chọn một cặp cá thể cha mẹ, hoán vị các nhiễm sắc thể tại vị trí ngẫu nhiên
với xác suất pc
Tốn tử lai ghép có xu hướng kéo quần thể về phía các cá thể có độ thích nghi cao => cục
bộ địa phương
Đột biến: Đột biến là tình trạng NST con khơng có một (hoặc một số) tính trạng có trong
mã di truyền của cha mẹ. Một cá thể thay đổi một số gen để tạo thành cá thể mới.
Các cặp cha mẹ được lựa chọn ngẫu nhiên mỗi cặp được quy định từ trước, thường là rất
nhỏ.

7



Phép đột biến thay đổi ngẫu nhiên một hoặc nhiều gen của một cá thể để làm tang sự đa
dạng về cấu trúc trong quần thể.
Đột biến chỉ xảy ra với xác suất PM thấp.
Các phép đột biến thường được sử dụng:
-

Đảo bit.

-

Hốn vị: Đổi vị trí của các gen với nhau.

-

Đổi giá trị: Thay đổi giá trị tại một điểm.

-

Đảo đoạn: Đảo thứ tự của một đoạn NST bất kỳ.

Tốn tử đột biến:
-

Giúp lời giải có thể nhảy ra khỏi các cực trị địa phương

-

Với mỗi cá thể trong quần thể, thực hiện đột biến với xác suất pm tại một vị trí
ngẫu nhiên (thơng thường pm << 0.1)


Giải mã: là quá trình biến đổi cá thể thành lời giải bài toán.
Thuật giải GA đã và đang được ứng dụng để giải quyết các bài toán trong rất nhiều lĩnh
vực của cuộc sống cũng như trong kỹ thuật.
2.2. Các bước cơ bản của thuật toán di truyền
2.2.1. Sơ đồ giải thuật di truyền

8


HÌNH

2. 4 SƠ ĐỒ GIẢI THUẬT DI TRUYỀN ĐƠN GIẢN

Như trong hình, ta thấy giải thuật di truyền đơn giản được thực hiện qua các bước cơ bản
sau:
1. [Bắt đầu] Nhận các tham số cho thuật toán. Sinh ngẫu nhiên một quần thể gồm n cá
thể (là n lời giải cho bài toán).
2. [Quần thể mới] Tạo quần thể mới bằng cách lặp lại các bước sau cho đến khi quần thể
mới hồn thành.
a. [Đánh giá độ thích nghi] Ước lượng độ thích nghi eval(x) của mỗi cá thể. [Kiểm
tra] Kiểm tra điều kiện kết thúc giải thuật.
b.[Chọn lọc] Chọn hai cá thể bố mẹ từ quần thể cũ theo độ thích nghi của chúng (cá
thể có độ thích nghi càng cao thì càng có nhiều khả năng được chọn)
9


c. [Lai ghép] Với một xác suất lai ghép được chọn, lai ghép hai cá thể bố mẹ để tạo ra
một cá thể mới.
d.[Đột biến] Với một xác suất đột biến được chọn, biến đổi cá thể mới
3. [Chọn kết quả] Nếu điều kiện dừng được thỏa mãn thì thuật toán kết thúc và trả về lời

giải tốt nhất trong quần thể hiện tại.
2.2.2. Giả lập thuật giải di truyền
Procedure Gene_Algorithm;
Begin
T 0;
Khởi tạo thế hệ ban đầu P(t);
Đánh giá P(t) (theo hàm thích nghi);
Repeat
t
t+1;
Sinh ra thế hệ mới P(t) từ P(t-1) bởi:
Chọn lọc
Lai ghép
Đột biến;
Đánh giá P(t);
Until đạt điều kiện kết thúc;
End;
Cá thể tốt nhất ở bước cuối cùng sẽ được chọn.
GA (Fitness, Fitness_threshold, p, r, m)
// Fitness: hàm gán thang điểm ước lượng cho một giả thuyết
10


// Fitness_threshold: Ngưỡng xác định tiêu chuẩn dừng giải thuật tìm kiếm
// p: Số cá thể trong quần thể giả thuyết
// r: Phân số cá thể trong quần thể được áp dụng toán tử lai ghép ở mỗi bước
// m: Tỉ lệ cá thể bị đột biến
Khởi tạo quần thể: P để tạo ngẫu nhiên p cá thể giả thuyết
Ước lượng: Ứng với mỗi h trong P, tính Fitness (h)
while [max Fitness (h)] < Fitness_threshold do

Tạo thế hệ mới, Ps
1. Chọn cá thể: chọn theo xác suất (1 – r)p cá thể trong quần thể P thêm vào Ps.
Xác suất Pr(hi) của giả thuyết hi thuộc P được tính bằng cơng thức:

2. Lai ghép: chọn lọc theo xác suất (r×p)/2 cặp giả thuyết từ quần thể P, theo Pr(hi)
đã tính ở bước trên. Ứng với mỗi cặp , tạo ra hai con bằng cách áp dụng toán tử
lai ghép. Thêm tất các các con vào Ps.
3. Đột biến: Chọn m% cá thể của P với xác suất cho mỗi cá thể là như nhau, Ứng
với mỗi cá thể biến đổi một bit được chọn ngẫu nhiên trong cách thể hiện của nó.
4. Cập nhật: P←PS.
5. Ước lượng: Ứng với mỗi h trong P, tính Fitness (h).
Trả về giả thuyết trong P có độ thích nghi cao nhất.
Khi sử dụng thuật giải di truyền để giải bài toán, phải làm rõ các vấn đề:
1. Chọn cách biểu diễn di truyền nào đối với những lời giải có thể của bài toán?
2. Tạo tập lời giải ban đầu (thế hệ) như thế nào?
3. Xác định hàm đánh giá để đánh giá độ thích nghi của các cá thể và quần thể ở thế hệ?
11


4. Xác định các toán tử di truyền để sản sinh các thế hệ?
5. Xác định giá trị các tham số sử dụng như: kích thước tập lời giải, xác suất các tốn tử
di truyền,..
2.3. Cách biểu diễn gene
Việc mơ tả di truyền cho lời giải cho bài toán gồm hai phần cơ bản:
-

Xây dựng cấu trúc gen cho mỗi lời giải của bài toán để từ mỗi lời giải ta có thể
mã hố thành một NST (chuỗi các gen).

-


Giải mã các NST để nhận được lời giải.

Đây là vấn đề cần giải quyết trước khi giải bài toán với GA. Tuỳ thuộc vào nội dung của
mỗi bài toán mà ta có cách mã hố khác nhau.
Để có thể giải bài toán bằng thuật giải di truyền ta phải gen hóa cấu trúc dữ liệu của bài
tốn. Có hai cách biểu diễn gen:
- Biểu diễn gen bằng chuổi nhị phân
- Biểu diễn gen bằng chuổi thập phân
2.3.1. Biểu diễn gene bằng chuỗi nhị phân
Mã hóa nhị phân là phổ biến nhất, chủ yếu là bởi vì các cơng trình đầu tiên về GA sử
dụng loại mã hóa này. Trong mã hóa nhị phân mỗi nhiễm sắc thể là một chuỗi các bit 0
hoặc 1.
Giả sử biến θi cần tìm trong đoạn θi min <θi <θi max và được mã hóa thành chuổi nhị
phân có độ dài Li
Chiều dài của đoạn gen được xác định dựa trên độ chính xác mong muốn εi tương ứng
mỗi biến
Li = log2(
Mỗi đoạn mã nhị phân Si được giải mã bằng giá trị của biến θi như sau:
θi = θi min + DV(si)
12


Trong đó: DV(si) là giá trị thập phân của chuổi si
DV(si) =
Ví dụ:
Giả sử miền tìm kiếm giá trị tối ưu của biến θ i là θi min = -1.5 và θi max = 4.6, độ chính xác
mong muốn là εi = 0.1 thì độ dài của chuổi nhị phân biểu diễn biến θi là:
Li = log2()
Do số gen là số nguyên nên chọn Li = 6. Chuổi (000000) biểu diễn -1.5, chuổi (111111)

biểu diễn 4.6. Chuổi bất kì, chẳng hạn Si = (101110) biểu diễn giá trị:
θi = -1.5 + = 2.8571
Ví dụ khác:
Nhiễm sắc thể A: 101100101100101011100101
Nhiễm sắc thể B: 111111100000110001
Mã hoá - Biểu diễn các biến bằng véc tơ nhị phân
Ta sử dụng véc tơ nhị phân có độ dài L như một NST để biểu diễn giá trị thực của biến x
∈ [lx, ux]. Độ dài L của NST phụ thuộc vào yêu cầu cụ thể của bài toán. Một bit mã hoá x
ứng với một giá trị trong khoảng [0, 2L] sẽ được ánh xạ lên giá trị thực thuộc miền [l x, ux].
Nhờ đó ta có thể kiểm sốt miền giá trị của các biến và tính chính xác của chúng. Tỷ lệ co
giãn của ánh xạ được tính như sau:

Giá trị x tương ứng với chuỗi NST nhị phân là:
x = lx + decimal(NST) * g
trong đó, decimal (NST) là giá trị thập phân của chuỗi NST nhị phân.
Chẳng hạn ta muốn tìm cực tiểu một hàm k biến f (x 1, ..., xk): R→R. Giả sử thêm là
mỗi biến xi có thể nhận giá trị trong miền D i = [ai, bi] � R và f (x1, ..., xk) > 0 với mọi
13


×