HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
CHUYÊN NGÀNH ĐIỆN TỬ − VIỄN THÔNG
Đề tài:
Nghiên cứu giải thuật di truyền
để cải thiện giao thức OSPF trong mạng MPLS
Sinh viên thực hiện: NGUYỄN HOÀNG ÁNH
Lớp D2004 – VT2
Khóa 2004 - 2008
Giảng viên hướng dẫn: Th.S HOÀNG TRỌNG MINH
HÀ NỘI, 11 - 2008
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
KHOA VIỄN THÔNG 1
Độc lập – Tự do – Hạnh phúc
o0o o0o
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Họ và tên: Nguyễn Hoàng Ánh
Lớp: Đ2004-VT2
Khoá: 2004 – 2008
Ngành: Điện tử – Viễn thông
TÊN ĐỒ ÁN TỐT NGHIỆP:
Nghiên cứu giải thuật di truyền để cải thiện giao thức OSPF trong mạng MPLS.
NỘI DUNG ĐỒ ÁN:
Chương 1: Giới thiệu về giải thuật di truyền.
Chương 2: Cấu trúc mạng MPLS, yêu cầu QoS cho MPLS và một số thuật toán
định tuyến trong mạng MPLS.
Chương 3: Ứng dụng giải thuật di truyền để cải thiện giao thức OSPF trong
MPLS
Ngày giao đồ án: ……/……/ 2008
Ngày nộp đồ án: ……/……/ 2008
Hà Nội, ngày tháng năm 2008
Giảng viên hướng dẫn
Hoàng Trọng Minh
Đồ án tốt nghiệp đại học
NHẬN XÉT CỦA THẦY GIÁO HƯỚNG DẪN
Điểm:…… ………. Xác nhận của thầy giáo hướng dẫn
Bằng chữ:………….
Hoàng Trọng Minh
Nguyễn Hoàng Ánh – Lớp D2004VT2 i
Đồ án tốt nghiệp đại học
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Điểm:…… ………. Xác nhận của giáo viên phản biện
Bằng chữ:………….
Nguyễn Hoàng Ánh – Lớp D2004VT2 ii
Đồ án tốt nghiệp đại học
LỜI NÓI ĐẦU
Trong một vài năm trở lại đây, mạng viễn thông ở Việt Nam và trên toàn thế
giới đã có những bước phát triển mạnh mẽ, cả về quy mô lẫn trình độ. Mạng viễn
thông nói chung và mạng MPLS nói riêng không chỉ phát triển về mặt số lượng, diện
tích mà đi kèm với đó phải là luôn đảm bảo được chất lượng dịch vụ (QoS) của mạng.
Khi mạng viễn thông phát triển rộng hơn, nó đòi hỏi phải có một thuật toán định tuyến
phù hợp hơn với sơ đồ và kích thước của mạng. Mạng viễn thông có thể được xem như
là một đồ thị có hướng G = (N, A) với N là số các node mạng và A là các liên kết giữa
các node đó. Mỗi liên kết có một giá, hay trọng số riêng. Việc gán trọng số liên kết
trong mạng MPLS hiện nay do giao thức LDP thực hiện. Thuật toán định tuyến được
dùng để định tuyến trong mạng MPLS hiện nay có rất nhiều như OSPF, RIP …
OSPF (Open Shortest Path First) là giao thức định tuyến được dùng nhiều nhất
trong các giao thức định tuyến nội miền. OSPF là giao thức động và nó nhanh chóng
nhận biết được những thay đổi về cấu trúc mạng trong AS và tính toán những tuyến
không lặp mới với thời gian hội tụ ngắn.
Nhưng chúng ta thấy rằng việc gán trọng số cho mỗi liên kết của giao thức
LDP có thể chưa phải là hiệu quả nhất. Mặt khác, khi đã có trọng số liên kết rồi,
trong một số thời điểm khi có nhiều yêu cầu từ nhiều cặp nguồn – đích, thì OSPF với
cơ chế tìm đường ngắn nhất sẽ có thể gây nên tắc nghẽn nghiêm trọng trong mạng. Do
đó, các nhà quản trị mạng đã nghĩ ra một cách khắc phục nhược điểm này, đó là duy
trì một bảng định tuyến với nhiều tuyến có thể luân phiên nhau.
Giải thuật di truyền (Genetic Algorithm) được giáo sư 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 cũng là tác
giả của nhiều công trình nghiên cứu đến GA cổ điển. Sau J. H. Holland, còn có rất
nhiều tác giả nghiên cứu về lý thuyết cũng như những ứng dụng của GA trong các lĩnh
vực khác nhau như sinh học, tin học, kỹ thuật lai ghép, xử lý ảnh, v v
Trong đồ án tốt nghiệp này, tôi xin trình bày những vấn đề cơ bản nhất của giải
thuật di truyền và giới thiệu một vài ứng dụng của giải thuật này để cải thiện giao
thức OSPF trong mạng MPLS. Đồ án tốt nghiệp của tôi được chia làm ba chương với
những nội dung chính sau:
Chương 1: Tổng quan về giải thuật di truyền. Chương này sẽ trình bày những
vấn đề cơ bản nhất của giải thuật di truyền cổ điển. Đó là các khái niệm về di truyền,
gen, alen, nhiễm sắc thể. Chương này cũng trình bày về những phương pháp mã hóa
Nguyễn Hoàng Ánh – Lớp D2004VT2 iii
Đồ án tốt nghiệp đại học
các lời giải một bài toán sang dạng mà giải thuật di truyền có thể xử lý được. Tiếp đó,
tôi trình bày về lý thuyết lược đồ trong giải thuật di truyền, một khái niệm khá quan
trọng để tiếp cận và hiểu giải thuật này. Chương một cũng trình bày các quá trình cần
có trong giải thuật di truyền như chọn lọc, lai ghép, đột biến … và giới thiệu giải thuật
di truyền hoàn chỉnh. Ở phần cuối chương, tôi giới thiệu một vài bài toán tối ưu hàm
được giải bằng giải thuật di truyền và bằng công cụ trong phần mềm Matlab.
Chương 2: Định tuyến QoS trong mạng MPLS. Trong chương này tôi trình
bày ba vấn đề chính như sau:
Mạng MPLS: mục này khái quát lại kiến trúc của một mạng MPLS, tầm
quan trọng của nó và những ứng dụng cơ bản của mạng MPLS.
Chất lượng dịch vụ (QoS): mục này trình bày về khái niệm QoS và kiến trúc
QoS trong mạng MPLS.
Các thuật toán và giao thức định tuyến trong mạng MPLS: mục này trình
bày về các thuật toán định tuyến được sử dụng nhiều trong mạng MPLS, kèm
theo đó là một số vấn đề của việc định tuyến QoS trong MPLS.
Chương 3: Tối ưu OSPF bằng giải thuật di truyền. Trong chương này, tôi đã
trình bày một số ứng dụng của giải thuật di truyền vào giao thức OSPF. Đó là:
Thiết lập trọng số cho các liên kết giữa các node trong mạng MPLS sử
dụng giao thức định tuyến OSPF: Đây là một phương pháp thiết lập trọng
số mới vì như chúng ta đã biết, việc thiết lập này hiện nay ở mạng MPLS Việt
Nam do giao thức LDP thực hiện.
Định tuyến tìm đường ngắn nhất trong OSPF: Thay vì sử dụng thuật toán
Dijkstra để tìm đường ngắn nhất, ở đây tôi đã trình bày phương pháp áp
dụng giải thuật di truyền để tìm một tuyến ngắn nhất trong một đồ thị có
hướng và có trọng số.
Thiết lập tuyến luân phiên trong OSPF: trong bảng định tuyến của một
node, thay vì chỉ có một tuyến đến một đích thì giải thuật di truyền sẽ đưa ra
phương pháp tạo nhiều tuyến luân phiên khác, giúp tăng hiệu quả của OSPF
và nâng cao hiệu suất sử dụng mạng.
Do còn hạn chế trong kiến thức chuyên ngành và cách thức trình bày, đồ án tốt
nghiệp không thể tránh khỏi những sai sót không mong muốn. Tác giả đồ án rất mong
nhận được những phê bình nhận xét, cũng như những ý kiến đóng góp từ phía thầy cô
và bạn đọc.
Hà Nội, tháng 11 năm 2008
Sinh viên: Nguyễn Hoàng Ánh
Nguyễn Hoàng Ánh – Lớp D2004VT2 iv
Đồ án tốt nghiệp đại học
LỜI CẢM ƠN
Trong suốt thời gian làm đồ án tốt nghiệp, tôi luôn nhận được những chỉ bảo
tận tình từ các thầy cô trong khoa viễn thông 1, và đặc biệt từ thầy giáo Hoàng Trọng
Minh – người trực tiếp hướng dẫn tôi thực hiện đồ án tốt nghiệp này. Bên cạnh đó, tôi
cũng luôn nhận được những quan tâm, động viên từ gia đình và bạn bè của tôi. Tôi xin
gửi lời cảm ơn chân thành và sâu sắc đến thầy giáo Hoàng Trọng Minh – người đã
hướng dẫn tôi rất tận tình từ lúc nhận đồ án đến bây giờ. Tôi xin gửi lời cảm ơn chân
thành đến các thầy giáo cô giáo trong khoa viễn thông 1, và đặc biệt là bộ môn
Chuyển mạch. Tôi xin gửi lời biết ơn đến ba mẹ và gia đình của tôi. Họ luôn là những
người giúp tôi tự tin và vượt qua được những khó khăn trong suốt hơn 4 năm trên ghế
giảng đường.
Nguyễn Hoàng Ánh
Nguyễn Hoàng Ánh – Lớp D2004VT2 v
Đồ án tốt nghiệp đại học
NỘI DUNG ĐỒ ÁN
NHẬN XÉT CỦA THẦY GIÁO HƯỚNG DẪN i
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN ii
LỜI NÓI ĐẦU iii
LỜI CẢM ƠN v
NỘI DUNG ĐỒ ÁN vi
THUẬT NGỮ VIẾT TẮT ix
DANH MỤC HÌNH VẼ VÀ BẢNG BIỂU x
CHƯƠNG 1: TỔNG QUAN VỀ GIẢI THUẬT DI TRUYỀN 1
1.1 Giới thiệu chung 1
1.2 Một số định nghĩa và thuật ngữ 2
1.2.1 Cá thể 2
1.2.2 Gen 3
1.2.3 Độ thích nghi 3
1.2.4 Quần thể 3
1.3 Cấu trúc của giải thuật di truyền 5
1.3.1 Mã hóa trong giải thuật di truyền 5
1.3.2 Cấu trúc lời giải và cấu trúc thuật toán 7
1.3.3 Phép chọn lọc 9
1.3.4 Phép lai ghép 11
1.3.5 Phép đột biến 12
1.3.6 Giải thuật di truyền so với các giải thuật truyền thống 13
1.4 Khái niệm lược đồ 15
1.5 Các đặc trưng của lược đồ 19
1.5.1 Bậc của lược đồ 19
1.5.2 Độ dài xác định của lược đồ 19
1.6 Mối quan hệ giữa lược đồ và quá trình tiến hóa trong GA 20
1.6.1 Phép chọn lọc 20
1.6.2 Phép lai ghép 21
Nguyễn Hoàng Ánh – Lớp D2004VT2 vi
Đồ án tốt nghiệp đại học
1.6.3 Phép đột biến 22
1.7 Một số bài toán được giải giải thuật di truyền 24
1.7.1 Một ví dụ đơn giản 24
1.7.2 Hàm dao động trong mặt phẳng 25
1.7.3 Hàm không gian hai biến 27
1.8 Những ưu điểm và hạn chế của giải thuật di truyền 30
1.8.1 Những ưu điểm của giải thuật di truyền 30
1.8.2 Những hạn chế của giải thuật di truyền 31
1.9 Kết luận chương 32
CHƯƠNG 2: ĐỊNH TUYẾN QOS TRONG MẠNG MPLS 33
2.1 Tổng quan kiến trúc mạng MPLS 33
2.1.1 Giới thiệu chung 33
2.1.2 Tầm quan trọng của MPLS 36
2.1.3 Cách thức hoạt động của MPLS 37
2.1.4 Ứng dụng của MPLS 39
2.2 Chất lượng dịch vụ (QoS) 40
2.2.1 Khái niệm về QoS 40
2.2.2 Động lực phát triển của QoS 42
2.2.3 Kiến trúc QoS dựa trên MPLS 43
2.3 Một số vấn đề về định tuyến QoS trong mạng MPLS 47
2.3.1 Giới thiệu 47
2.3.2 Chú thích và số đo 47
2.3.3 Các lớp thuật toán định tuyến 48
2.3.4 Các vấn đề định tuyến QoS 50
2.4 Một số giao thức và thuật toán định tuyến QoS trong MPLS 53
2.4.1 Giao thức định tuyến OSPF và thuật toán Link − State 53
2.4.2 Giao thức định tuyến RIP và thuật toán Distance Vector 55
2.4.3 Thuật toán bước nhảy tối thiểu (Min-Hop Algorithm) 57
2.4.4 Thuật toán tìm đường rộng nhất và ngắn nhất 57
2.4.5 Thuật toán định tuyến nhiễu tối thiểu (MIRA) 57
2.5 Kết luận chương 59
CHƯƠNG 3: TỐI ƯU OSPF BẰNG GIẢI THUẬT DI TRUYỀN 60
3.1 Ứng dụng G.A để thiết lập trọng số trong định tuyến OSPF 60
Nguyễn Hoàng Ánh – Lớp D2004VT2 vii
Đồ án tốt nghiệp đại học
3.1.1 Giới thiệu 60
3.1.2 Công thức toán học 63
3.1.3 GA cho bài toán OSPFWS 64
3.1.4 Nhận xét giải thuật 67
3.2 Ứng dụng giải thuật di truyền để tìm tuyến ngắn nhất trong OSPF 68
3.2.1 Mô tả thuật toán 68
3.2.2 Phương pháp mã hóa dựa trên node kề trước 69
3.3 Giải thuật di truyền thích ứng thiết lập tuyến luân phiên trong OSPF 71
3.3.1 Giới thiệu 71
3.3.2 Tổng quan về GARA 72
3.3.3 Hoạt động di truyền tạo đường (PGO) 73
3.3.4 Duy trì bảng định tuyến 76
3.3.5 Tính toán độ thích nghi 76
3.3.6 Thực thi lưu lượng 77
3.3.7 Ví dụ minh họa 79
3.4 Kết luận chương 84
KẾT LUẬN ĐỒ ÁN 85
TÀI LIỆU THAM KHẢO 86
Nguyễn Hoàng Ánh – Lớp D2004VT2 viii
Đồ án tốt nghiệp đại học
THUẬT NGỮ VIẾT TẮT
AS Autonomous System Hệ thống tự trị
ATM Asynchronous Transfer Mode Phương pháp truyền tải không đồng
bộ
BGP Border Gateway Protocol Giao thức cổng biên
BGPv4 Border Gateway Protocol version 4 Giao thức cổng biên phiên bản 4
FR Frame Relay Frame Relay
GA Genetic Algorithm Giải thuật di truyền
GARA Genetic Adaptive Routing Algorithm Thuật toán định tuyến di truyền thích
ứng
IETF Internet Engineering Task Force Tổ chức nghiên cứu kỹ thuật Internet
MHA Minimum Hop Algorithm Thuật toán số hop tối thiểu
MIRA Minimum – Interference Routing
Algorithm
Thuật toán định tuyến nhiễu tối thiểu
MME MPLS Management Entity Thực thể quản lý MPLS
MPLS Multiple Protocols Label Switching Chuyển mạch nhãn đa giao thức
IGP Interior gateway protocol Giao thức nội vùng
IP Internet Protocol Giao thức Internet
IS – IS Intermediate System to Intermediate
System
Hệ thống trung gian đến hệ thống
trung gian
ISP Internet Service Providers Nhà cung cấp dịch vụ Internet
OSPF Open Shorest Path First
OSPFWS Open Shorest Path First Weight Setting Bài toán thiết lập trọng số OSPF
PGO Path Genetic Operator Hoạt động di truyền tạo tuyến
QoS Quality of Service Chất lượng dịch vụ
RIP Routing Information Protocol Giao thức thông tin định tuyến
RSVP Resource Reservation Protocol Giao thức giành trước tài nguyên
SLA Service Level Agreement Thỏa thuận mức dịch vụ
TCP Transmission Control Protocol Giao thức điều khiển truyền tải
TE Traffic Engineering Kỹ thuật lưu lượng
TES Traffic Engineering Server Máy chủ điều khiển lưu lượng
UDP User Datagram Protocol Giao thức Datagram của khách hàng
VPN Virtual Private Network Mạng riêng ảo
WFQ Weighted fair queuing Hàng đợi cân bằng có trọng số
Nguyễn Hoàng Ánh – Lớp D2004VT2 ix
Đồ án tốt nghiệp đại học
DANH MỤC HÌNH VẼ VÀ BẢNG BIỂU
Hình 1.1: Mối quan hệ giữa kiểu gen và kiểu hình 2
Hình 1.2: Một nhiễm sắc thể được mã hóa dưới dạng chuỗi nhị phân 2
Hình 1.3: Một cách biểu diễn gen trong nhiễm sắc thể 3
Hình 1.4: Quần thể trong giải thuật di truyền 4
Hình 1.5: Mã hóa nhị phân 6
Hình 1.6: Mã hóa hệ số 8 6
Hình 1.7: Mã hóa hệ 16 6
Hình 1.8: Mã hóa hoán vị 6
Hình 1.9: Mã hóa giá trị 7
Hình 1.10: Một lời giải được mã hóa nhị phân 7
Hình 1.11: Quá trình chọn lọc theo xác suất được mô tả như một bánh xe số 10
Hình 1.12: Trao đổi chéo tại một điểm trong chuỗi bit nhị phân 11
Hình 1.13: Minh họa quá trình đột biến tại một bit trong chuỗi nhị phân 13
Hình 1.14: Khối lập phương ba chiều 16
Hình 1.15: Khối siêu lập phương bốn chiều 17
Hình 1.16: Một hàm ví dụ và các phần khác nhau trong không gian tìm kiếm 18
Hình 1.17: Đồ thị hàm f2 25
Hình 1.18: Khai báo hàm f2 trong Matlab 26
Hình 1.19: Câu lệnh gọi giải thuật di truyền trong Matlab 26
Hình 1.20: Kết quả của hàm f2 do Matlab tính toán 27
Hình 1.21: Đồ thị hàm f3 27
Hình 1.22: Khai báo hàm f3 28
Hình 1.23: Cửa sổ công cụ G.A 28
Hình 1.24: Giá trị cực tiểu và giá trị cực tiểu trung bình của f3 29
Hình 1.25: Kết quả đầu tiên cho hàm f3 29
Hình 1.26: Đồ thị giá trị hàm thích nghi của f3 với kích thước quần thể là 50 30
Hình 1.27: Giá trị X1 và X2 của hàm f3 với kích thước quần thể là 50 30
Hình 2.1: Định tuyến, chuyển mạch và chuyển tiếp trong MPLS 37
Nguyễn Hoàng Ánh – Lớp D2004VT2 x
Đồ án tốt nghiệp đại học
Hình 2.2: Đường nhanh và đường chậm trong MPLS 38
Hình 2.3: Ví trí của MPLS trong mô hình OSI 39
Hình 2.4: Các thiết bị và lưu lượng Internet 40
Hình 2.5: Kiến trúc QoS dựa trên MPLS 44
Hình 2.6: Các thành phần của QoS 45
Hình 2.7: Các bó nút trong mô hình phân cấp 49
Hình 2.8: Mô hình mạng minh họa thuật toán MIRA 58
Hình 3.1: Đồ thị hàm tính giá Φa 62
Hình 3.2: Mạng Mesh với 6 node và 13 link 70
Hình 3.3: Cây biểu diễn các tuyến ngắn nhất theo thuật toán Dijkstra 71
Hình 3.4: Mã hóa dựa trên node kề trước 71
Hình 3.5: Tổng quan về GARA 73
Hình 3.6: Quá trình đột biến tuyến 74
Hình 3.7: Quá trình lai ghép giữa hai tuyến 75
Hình 3.9: Thuật toán GARA viết bằng mã Pascal 78
Hình 3.10: Một mô hình mạng minh họa 79
Hình 3.11: Thời gian đến trung bình của gói tin 80
Hình 3.12: Số lượng gói tin được gửi bằng các thuật toán 81
Hình 3.13: Trạng thái tải của các liên kết (RIP) 82
Hình 3.14: Trạng thái tải của các liên kết (SPF) 82
Hình 3.15: Trạng thái tải của các liên kết (SPF thích ứng, khoảng thời gian 30s) 83
Hình 3.16: Trạng thái tải của các liên kết (GARA) 83
Bảng 1.1: So sánh giữa tiến hóa tự nhiên và giải thuật di truyền 4
Bảng 1.2: Tính toán quần thể đầu tiên 24
Bảng 1.3: Tính toán thế hệ thứ hai 25
Bảng 3.1: Một bảng định tuyến minh họa 76
Bảng 3.2: Bảng định tuyến ở node 0 được tạo trong mô phỏng 84
Nguyễn Hoàng Ánh – Lớp D2004VT2 xi
Đồ án tốt nghiệp đại học Chương 1: Tổng quan về giải thuật di truyền
CHƯƠNG 1:
TỔNG QUAN VỀ GIẢI THUẬT DI TRUYỀN
1.1 Giới thiệu chung
Khái niệm di truyền được biết tới từ những năm 50 của thế kỉ trước. Trong thời
kì này đã có những ứng dụng nhỏ lẻ để giải các bài toán sinh học. Một số nhà sinh vật
học đã sử dụng máy vi tính để mô phỏng lại các hệ thống di truyền nhằm phục vụ công
việc nghiên cứu của họ như: Barricelli năm 1957, Fracer năm 1960-1962, Martin và
Cockerham năm 1960… Nhưng trong thời kì này chưa phát triển thành phương pháp
luận mà mới chỉ đượ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.
Giải thuật di truyền (Genetic Algorithm viết tắt là GA) được giới thiệu bởi giáo
sư J. H. Holland và các đồng nghiệp của ông ở trường đại học Michigan vào năm
1975, ông cũng là tác giả của nhiều công trình nghiên cứu đến GA cổ điển.
Sau J. H. Holland, còn có rất nhiều tác giả nghiên cứu về lý thuyết cũng như
những ứng dụng của GA trong các lĩnh vực khác nhau như sinh học, tin học, kỹ thuật
lai ghép, xử lý ảnh, v v Một trong số những nhà khoa học này phải kể đến K. A. De
Jong. Ông là người có rất nhiều công trình nghiên cứu về GA và những phát triển của
nó trong nhiều lĩnh vực khác nhau. Ngoài ra, còn nhiều người khác nghiên cứu về GA
như L. Davis, L. J. Eshelman… Đặc biệt, D. E. Goldberg đã đưa ra một cải tiến rất nổi
tiếng của giải thuật di truyền đó là “giải thuật di truyền hỗn hợp” trong một công trình
của ông vào năm 1993.
Vậy giải thuật di truyền là gì? Trước hết, ta thấy rằng việc giải một bài toán có
thể xem là việc tìm kiếm trong một không gian các lời giải có thể. Mục đích của chúng
ta là tìm ra lời giải tốt nhất, và ta có thể xem công việc này là một quá trình tối ưu hóa.
Đối với những không gian tìm kiếm nhỏ thì phương pháp đơn giản nhất là “vét cạn”,
tức là liệt kê tất cả các lời giải có thể, so sánh trong các lời giải đó để tìm ra lời giải tốt
nhất. Nhưng đối với các không gian tìm kiếm lớn, không cho phép áp dụng phương
pháp “vét cạn” được mà phải dùng một số các phương pháp khác hiệu quả hơn để giải
quyết chúng. Một trong các phương pháp đó là “giải thuật di truyền”.
Giải thuật di truyền là các kĩ thuật phỏng theo quá trình tiến hóa tự thích nghi
của các quần thể sinh học dựa trên học thuyết của Darwin.
Tư tưởng của giải thuật di truyền là làm theo tự nhiên. Giải thuật di truyền và
sự tiến hóa tự nhiên có cùng một nguyên lý. Trong sự tiến hóa 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
Nguyễn Hoàng Ánh – Lớp D2004VT2 1
Đồ án tốt nghiệp đại học Chương 1: Tổng quan về giải thuật di truyền
thay đổi. Sự thích nghi đó được đúc kết và ghi lại trong cấu trúc nhiễm sắc thể của
chúng. Ta xét một ví dụ đơn giản sau đây: loài thỏ tại một thời điểm nào đó, một số
con thỏ nhanh nhẹn và tinh khôn hơn những con khác sẽ ít khả năng bị các loài thú ăn
thịt hơn. Do đó chúng sống sót nhiều hơn để sinh con đẻ cái. Bên cạnh đó có một số ít
các con thỏ chậm chạp và ngờ nghệch cũng may mắn sống sót và sinh sản. Kết quả là
một sự kết hợp thú vị giữa các gen thỏ: thỏ chậm và ngờ nghệch với thỏ nhanh và tinh
khôn; thỏ chậm và ngờ nghệch với nhau, thỏ nhanh và tinh khôn với nhau…, trong đó
lại thỉnh thoảng sinh ra một con thỏ rừng do sự đột biến gen. Những con thỏ thế hệ sau
được sinh ra (tính trung bình) sẽ nhanh nhẹn và tinh khôn hơn thế hệ cha mẹ chúng.
Giải thuật di truyền được bắt chước tương tự như ví dụ tiến hóa của loài thỏ này.
1.2 Một số định nghĩa và thuật ngữ
1.2.1 Cá thể
Một cá thể là một lời giải có thể. Một cá thể chứa hai dạng thông tin sau:
Nhiễm sắc thể, là thông tin gen thô (kiểu gen) mà giải thuật di truyền sử dụng.
Ở đây, nhiễm sắc thể chính là dạng mã hóa của một lời giải. Mỗi nhiễm sắc thể tương
ứng với duy nhất một lời giải. Hình 1.2 cho ta một ví dụ về một nhiễm sắc thể được
mã hóa dưới dạng chuỗi bit nhị phân. Việc mã hóa lời giải sẽ được trình bày ở phần
tiếp theo
Kiểu hình, là sự mô tả nhiễm sắc thể thành những tính chất biểu hiện ra ngoài.
Một nhiễm sắc thể được chia nhỏ thành rất nhiều gen. Một gen là một đại diện
của giải thuật di truyền cho một tính chất đơn Mỗi tính chất trong bộ lời giải tương
ứng với mỗi gen trong nhiễm sắc thể. Hình 1.1 cho ta thấy mối liên hệ giữa kiểu gen
và kiểu hình trong một cá thể.
Kiểu hình của lời giải
Tính chất 1 Tính chất 2 Tính chất 3 ……………… Tính chất N
Gen 1 Gen 2 Gen 3 ……………… Gen N
Kiểu gen trong nhiễm sắc thể
Hình 1.1: Mối quan hệ giữa kiểu gen và kiểu hình
0 1 0 0 0 1 0 1 0 0 1 1 1 1 0 1 0 0 1 0
Hình 1.2: Một nhiễm sắc thể được mã hóa dưới dạng chuỗi nhị phân
Nguyễn Hoàng Ánh – Lớp D2004VT2 2
Đồ án tốt nghiệp đại học Chương 1: Tổng quan về giải thuật di truyền
1.2.2 Gen
Gen là một đoạn trong chuỗi nhiễm sắc thể. Gen mô tả một lời giải có thể của
bài toán. Một gen là một chuỗi bit có chiều dài bất kì. Chuỗi bit là một kiểu đại diện
nhị phân của một số trong khoảng được mã hóa. Nếu ta sử dụng chuỗi bit có chiều dài
L thì nó có thể mã hóa cho 2
L
– 1 đoạn.
Cấu trúc của mỗi gen được định nghĩa trong bản ghi về tham số kiểu hình. Bản
ghi này là một chỉ dẫn ánh xạ giữa kiểu gen và kiểu hình. Nói một cách khác, đó là
một bộ ánh xạ 1 – 1 giữa lời giải thực và lời giải đã được mã hóa. Hình 1.3 cho ta
minh họa về gen trong nhiễm sắc thể
0 1 0 0 0 1 0 1 0 0 1 1 1 1 0 1 0 0 1 0
Gen 1 Gen 2 Gen 3 Gen 4
Hình 1.3: Một cách biểu diễn gen trong nhiễm sắc thể
1.2.3 Độ thích nghi
Độ thích nghi của một cá thể trong giải thuật di truyền là giá trị của hàm mục
tiêu với kiểu hình của nó. Để tính toán độ thích nghi, nhiễm sắc thể trước tiên cần
được giải mã để có giá trị thực của nó, sau đó sẽ áp dụng hàm mục tiêu để đánh giá.
Độ thích nghi không chỉ cho ta thấy mức độ tốt của một lời giải mà nó còn chỉ ra rằng
nhiễm sắc thể ấy gần như thế nào với giá trị tốt nhất.
Trong trường hợp tối ưu với nhiều mức tiêu chuẩn, hàm thích nghi chắc chắn sẽ
phức tạp hơn. Với bài toán tối ưu nhiều tiêu chuẩn, thường có sự lưỡng lự khi quyết
định lời giải nào là tốt hơn so với lời giải khác. Và ta cần phải xử lý thế nào khi có
trường hợp một lời giải nếu tốt hơn ở tiêu chuẩn này thì lại kém hơn ở tiêu chuẩn khác.
Tùy từng trường hợp, ta muốn tiêu chuẩn nào là ưu tiên thì sẽ đánh trọng số phù hợp
cho nó.
1.2.4 Quần thể
Quần thể là một tập hợp các cá thể. Một quần thể bao gồm nhiều cá thể đang
được kiểm tra, kiểu hình xác định cá thể và một số thông tin về không gian tìm kiếm.
Có hai vấn đề quan trọng của quần thể được sử dụng trong giải thuật di truyền là:
Việc khởi tạo thế hệ quần thể
Kích thước quần thể
Với mọi bài toán, kích thước quần thể sẽ phụ thuộc vào độ phức tạp của bài
toán. Việc khởi tạo quần thể cũng là ngẫu nhiên. Trong trường hợp nhiễm sắc thể được
mã hóa nhị phân như ở đây, mỗi bit được khởi tạo giá trị là 0 hoặc 1. Về lý tưởng,
quần thể đầu tiên nên có một dải gen đủ rộng để có thể khám phá được toàn bộ không
gian tìm kiếm. Tất cả các alen khác nhau có thể trong mỗi cá thể nên được xuất hiện
trong cả quần thể. Để có được điều này, trong hầu hết các bài toán quần thể ban đầu
Nguyễn Hoàng Ánh – Lớp D2004VT2 3
Đồ án tốt nghiệp đại học Chương 1: Tổng quan về giải thuật di truyền
phải được lựa chọn ngẫu nhiên. Tuy nhiên, thỉnh thoảng ta có thể sử dụng phương
pháp thử - chọn theo cảm tính để tạo ra quần thể ban đầu. Do vậy, độ thích nghi trung
bình của quần thể sẽ cao và sẽ giúp giải thuật di truyền tìm ra lời giải tốt nhất nhanh
hơn. Tuy nhiên, ta cũng cần phải chắc chắn rằng dải gen được chọn đủ lớn. Nếu không
thì quần thể sẽ thiếu đi tính đa dạng và giải thuật di truyền sẽ chỉ khám phá một phần
nhỏ của không gian tìm kiếm và sẽ không tìm được lời giải tối ưu.
Kích thước quần thể cũng có một vài điểm cần cân nhắc khi lựa chọn. Số lượng
cá thể trong quần thể đông sẽ có điểm lợi là xác suất xuất hiện cá thể tốt trong quần thể
sẽ cao hơn, khám phá không gian tìm kiếm tốt hơn. Tuy nhiên điểm bất lợi là việc tính
toán cho mỗi thế hệ sẽ nhiều hơn. Nếu số cá thể trong một thế hệ là m thì thời gian tính
toán để giải thuật di truyền đồng quy sẽ tỉ lệ theo hàm (m.logm). Ta nói giải thuật di
truyền đồng quy khi tất cả các cá thể là giống nhau gần như hoàn toàn và những thay
đổi khác chỉ có thể từ phép đột biến. Tác giả Goldberg đã chỉ ra rằng việc giải thuật di
truyền hiệu quả trong việc tìm được cực đại toàn cục mà không phải là cực đại cục bộ
chính là nhờ phần lớn từ kích thước quần thể. Tóm lại, ta có thể nói rằng kích thước
quần thể lớn thì sẽ hữu ích hơn, tuy nhiên nó tốn nhiều thời gian tính toán, bộ nhớ hỗ
trợ. Hình 1.4 cho chúng ta thấy một quần thể với sự kết hợp của một số nhiễm sắc thể.
Quần thể
Nhiễm sắc thể 1 1 1 0 1 0 0 1 0
Nhiễm sắc thể 2 0 0 1 1 0 1 0 1
Nhiễm sắc thể 3 1 1 1 1 0 0 0 1
Nhiễm sắc thể 4 0 0 0 0 1 0 1 0
Hình 1.4: Quần thể trong giải thuật di truyền.
Sau cùng, ta có thể có một cái nhìn so sánh giữa giải thuật di truyền và tiến hóa
tự nhiên. Bảng dưới đây chỉ ra một số điểm tương ứng giữa tiến hóa tự nhiên với giải
thuật di truyền.
Bảng 1.1: So sánh giữa tiến hóa tự nhiên và giải thuật di truyền
Tiến hóa tự nhiên Giải thuật di truyền
Kiểu di truyền Chuỗi bit được mã hóa
Kiểu hình Điểm chưa được mã hóa
Nhiễm sắc thể Chuỗi bit
Gen Vị trí của chuỗi bit
Alen Giá trị tại một vị trí xác định
Độ thích nghi Giá trị hàm mục tiêu
Nguyễn Hoàng Ánh – Lớp D2004VT2 4
Đồ án tốt nghiệp đại học Chương 1: Tổng quan về giải thuật di truyền
1.3 Cấu trúc của giải thuật di truyền
1.3.1 Mã hóa trong giải thuật di truyền
Ta sẽ giới hạn cách nhìn về giải thuật di truyền dưới góc độ là một phương
pháp tối ưu hóa. Nhìn chung, một vấn đề tối ưu hóa được cho dưới dạng như sau:
Cho hàm
ℜ→Xf :
Tìm một giá trị x
0
∈ X sao cho
( ) ( )
xfxf
Xx∈
= max
0
hay f(x
0
) đạt giá trị cực đại.
Trên thực tế, đôi khi có những bài toán khiến ta không thể có được lời giải như
mong muốn (cực đại toàn cục) mà chỉ có thể có những cực đại cục bộ, hoặc là những
giá trị gần với giá trị cực đại toàn cục hoặc cục bộ. Do đó ta sẽ chấp nhận những giá trị
x sao cho hàm f có giá trị càng cao càng tốt.
Ta có thể xem không gian tìm kiếm X tương tự như một tập hợp những cá thể
cạnh tranh lẫn nhau ở thế giới thực, với f là hàm gán giá trị thích nghi cho mỗi cá thể
(đây chỉ là một cách nhìn để đơn giản hóa vấn đề). Ở thế giới thực, quá trình sinh sản
và thích nghi được thực hiện ở mức thông tin của gen. Do đó, giải thuật di truyền
không hoạt động trên những giá trị trực tiếp của không gian X mà nó được thực hiện
trên những dạng mã hóa của những giá trị đó.
Định nghĩa: Giả sử S là một tập hợp các chuỗi bit. X là không gian tìm kiếm
của bài toán tối ưu hóa. Ta có hàm sau gọi làm hàm mã hóa.
( )
xcx
SXc
→:
Ngược lại hàm giải mã sẽ là:
( )
xcs
XSc
~
:
~
→
Hàm mã hóa và hàm giải mã sẽ được xác định cụ thể tùy theo yêu cầu của bài
toán thực tế, và chúng cũng không nhất thiết phải là song ánh. Tuy nhiên, trong hầu
hết các trường hợp, làm sử dụng hàm giải mã song ánh vẫn hữu ích hơn. Ta có thể viết
lại dạng tổng quát của bài toán tối ưu hóa đã được mã hóa như sau:
Tìm giá trị s
0
∈ S sao cho
( )
0
~
sf
càng lớn càng tốt. (
( )
0
~
sf
là hàm
( )
0
xf
đã được
mã hóa).
Tóm lại, mã hóa chính là quá trình “gen hóa” lời giải của bài toán. Nói cách
khác, mã hóa là quá trình biến đổi lời giải của bài toán thành một dạng khác để được
xử lý trong giải thuật di truyền. Việc mã hóa có thể sử dụng bit, số, cây, mảng, hay
một danh sách của những đối tượng khác. Việc mã hóa phụ thuộc trực tiếp từ việc giải
bài toán. Dưới đây là các cách mã hóa được dùng trong giải thuật di truyền.
Nguyễn Hoàng Ánh – Lớp D2004VT2 5
Đồ án tốt nghiệp đại học Chương 1: Tổng quan về giải thuật di truyền
a. Mã hóa nhị phân
Đây là cách thường thấy nhất để mã hóa một biến. Một lời giải đã được mã hóa
nhị phân được chỉ ra ở hình 1.5.
Mỗi nhiễm sắc thể mã hóa một chuỗi bit. Mỗi bit trong chuỗi có thể đại diện
cho một số tính chất của lời giải. Do đó, chuỗi bit là một lời giải, nhưng chưa hẳn đã là
lời giải tốt nhất. Một khả năng khác là toàn bộ chuỗi bit đại diện cho một số nào đó.
Cách mã hóa chuỗi bit có thể khác nhau với các bài khác nhau. Việc mã hóa nhị phân
cho ta nhiều nhiễm sắc thể với một lượng nhỏ alen. Mặt khác, kiểu mã hóa này không
tự nhiên với nhiều bài toán và đôi khi việc sửa chữa chỉ được thực hiện sau khi hoạt
động di truyền kết thúc. Chuỗi bit được mã hóa nhị phân với bit 1 và 0 là thường được
dùng nhất. Chiều dài của chuỗi bit phụ thuộc vào độ chính xác cần thiết của lời giải
bài toán.
Nhiễm sắc thể 1 1 1 0 1 1 0 1 0 0 0 1 1 1
Nhiễm sắc thể 2 0 0 1 0 1 0 0 1 0 1 0 1 1
Hình 1.5: Mã hóa nhị phân
b. Mã hóa hệ số 8 (octal)
Hình 1.6 chỉ ra cách mã hóa hệ 8Mã hóa hệ số 8 sử dụng các chuỗi được tạo từ
các số trong hệ 8 (0 – 7).
Nhiễm sắc thể 1 4 5 6 3 2 1 0 7 0 7
Nhiễm sắc thể 2 7 1 0 0 3 2 5 6 4 7
Hình 1.6: Mã hóa hệ số 8
c. Mã hóa hệ 16
Hình 1.7 chỉ ra cách mã hóa hệ 16. Cách mã hóa này sử dụng chuỗi bit của hệ
16 (0 – 9, A – F).
Nhiễm sắc thể 1 9 A 1 F D 2 4
Nhiễm sắc thể 2 A 0 B C 6 E 8
Hình 1.7: Mã hóa hệ 16
d. Mã hóa hoán vị (mã hóa số thực)
Mỗi nhiễm sắc thể là một chuỗi số, đại diện cho các số trong một dãy. Trong
mã hóa hoán vị, mỗi nhiễm sắc thể là một chuỗi các số nguyên hoặc số thực. Mã hóa
hoán vị thường được sử dụng trong các bài toán mà lời giải là một trật tự hoán vị.
Nhiễm sắc thể 1 1 2 3 4 5 6 7 8 9
Nhiễm sắc thể 2 4 5 6 9 8 7 1 2 3
Hình 1.8: Mã hóa hoán vị
Nguyễn Hoàng Ánh – Lớp D2004VT2 6
Đồ án tốt nghiệp đại học Chương 1: Tổng quan về giải thuật di truyền
e. Mã hóa giá trị
Trong mã hóa giá trị, mỗi nhiễm sắc thể là một chuỗi giá trị, và giá trị này có
thể là bất kì điều gì liên quan đến bài toán. Kiểu mã hóa này đem lại kết quả tốt nhất
với một số bài toán đặc biệt. Mặt khác nó thường xuyên cần thiết để phát triển đặc
trưng mới của chương trình. Việc mã hóa giá trị trực tiếp có thể được sử dụng trong
các bài toán, mà ở đó một số giá trị phức tạp (như số thực) được sử dụng. Việc sử
dụng mã hóa nhị phân cho kiểu bài toán này sẽ rất khó khăn.
Trong mã hóa giá trị, mỗi nhiễm sắc thể là một chuỗi của một vài giá trị. Các
giá trị có thể là bất kì những gì liên quan đến bài toán, số thực, hay kí tự đối với các
đối tượng phức tạp.
Nhiễm sắc thể 1 1.1324 5.2368 0.1298
Nhiễm sắc thể 2 AHFJDKJFKNKFFURUI
Nhiễm sắc thể 3 (tiến)(trái)(tiến)(phải)(lùi)
Hình 1.9: Mã hóa giá trị
Mã hóa giá trị sẽ rất hiệu quả với một số bài toán đặc biệt. Mặt khác, với kiểu
mã hóa này, người ta cũng cần phát triển một số kiểu lai ghép và đột biến cho dạng bài
toán.
f. Mã hóa dạng cây
Kiểu mã hóa này được sử dụng chủ yếu để phát triển lập trình di truyền (genetic
programing). Mỗi nhiễm sắc thể là một cây của một số đối tượng như các hàm và các
lệnh của ngôn ngữ lập trình.
1.3.2 Cấu trúc lời giải và cấu trúc thuật toán
Trong giải thuật di truyền, ta xét trường hợp các lời giải được mã hóa bởi các
chuỗi nhị phân có độ dài bằng nhau. Giả sử chúng ta sẽ xét các chuỗi bit được lấy ra từ
bộ sau
S = {0, 1}
n
với n là chiều dài của chuỗi bit. Số cá thể trong quần thể sẽ được kí hiệu là m.
Do đó thế hệ tại thời gian t là một danh sách của m chuỗi bit, và được kí hiệu là
( )
tmttt
bbb
,,2,1
, ,=Β
Đây là phương pháp mã hóa truyền thống hay cổ điển, kể từ đây GA áp dụng
phương pháp mã hóa này được gọi là GA cổ điển. Mỗi vị trí trên chuỗi chỉ nhận một
trong hai giá trị là “1” hoặc “0”. Một lời giải trong GA cổ điển có thể có dạng như sau:
1 0 0 1 1 1 0 0 1 0
Hình 1.10: Một lời giải được mã hóa nhị phân
Nguyễn Hoàng Ánh – Lớp D2004VT2 7
Đồ án tốt nghiệp đại học Chương 1: Tổng quan về giải thuật di truyền
Mỗi chuỗi nhị phân biểu diễn một lời giải có thể của bài toán. Một quá trình
tiến hóa được thực hiện trên một tập các lời giải 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 sự cân bằng giữa hai mục
đích: khám phá không gian tìm kiếm và tìm lời giải tốt nhất.
Giải thuật 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 lời giải trải qua các quá trình tiến hóa và cuối cùng cho ta một lời giải đủ
tốt tùy theo yêu cầu. Tại mỗi thế hệ, các lời giải tương đối tốt được chọn để tái sản
xuất, trong khi đó các lời giải tương đối tồi bị loại bỏ. Để phân biệt độ tốt xấu giữa các
lời giải khác nhau, người ta dùng một hàm được gọi là hàm thích nghi để đánh giá
từng lời giải (hàm này đóng vai trò môi trường sống trong thuyết tiến hóa).
GA cổ điển được J. H. Holland giới thiệu để giải bài toán tối ưu có cấu trúc như
sau:
Tìm max{f(x)/ x ∈ M}, trong đó M không gian số thực n chiều, f(x) > 0 ∀ x ∈M
Giải thuật di truyền tổng quát:
t:=0;
Khởi tạo quần thể ban đầu
0
Β
;
Đánh giá quần thể ban đầu;
WHILE (điều kiện dừng chưa thỏa mãn) DO
BEGIN
t:=t+1;
Chọn một cá thể B
t
từ B
t-1
để tái sản xuất;
Tạo ra thế hệ con bằng cách lai ghép hai cá thể;
Sau cùng làm đột biến một số cá thể;
Đánh giá thế hệ mới;
END
Các quá trình tiến hóa diễn ra trong vòng lặp WHILE. Tại thế hệ thứ t, thuật
toán di trì một tập lời giải
( )
tmttt
bbb
,,2,1
, ,=Β
. Mỗi lời giải b
i,t
được đánh giá “độ thích
nghi”. Một tập lời giải mới được xây dựng (vòng lặp t + 1) bằng cách chọn lọc các lời
giải thích nghi hơn, ta được tập lời giải trung gian. Tiếp theo một số cá thể trong tập
lời giải đã được chọn này bị biến đổi bằng các phép lai ghép và đột biến để tạo thành
các lời giải mới cho thế hệ thứ t+1.
Như ta đã thấy từ giải thuật di truyền ở trên, thì việc quá độ từ thế hệ này sang
thế hệ tiếp theo gồm có bốn quá trình cơ bản sau:
Nguyễn Hoàng Ánh – Lớp D2004VT2 8
Đồ án tốt nghiệp đại học Chương 1: Tổng quan về giải thuật di truyền
Chọn lọc: là kĩ thuật chọn ra những cá thể đơn (chính là các chuỗi bit) dựa vào
đột thích nghi của chúng (thể hiện ở giá trị của hàm mục tiêu) để sử dụng cho quá trình
tái sản xuất quần thể.
Lai ghép (hay trao đổi chéo): là phương pháp kết hợp những thông tin về gen
của hai cá thể. Nếu chúng ta lựa chọn cách mã hóa phù hợp thì hai cá thể cha tốt sẽ
cho ra hai cá thể con tốt.
Đột biến: Trong quá trình tiến hóa ở thực tế, nguyên liệu gen có thể được thay
đổi một cách ngẫu nhiên do quá trình tái sản xuất không đúng hoặc do những biến
dạng khác của các gen (bởi hóa chất, phóng xạ …). Trong giải thuật di truyền, quá
trình đột biến có thể được hiểu như là một quá trình làm biến dạng chuỗi bit một cách
ngẫu nhiên theo một xác suất nhất định nào đó. Ảnh hưởng tích cực của điều này là
duy trì tính đa dạng gen, và một ảnh hưởng khác nữa là có thể tránh những lời giải cực
đại cục bộ.
Thay thế: Ở bước cuối cùng, các cá thể ở thế hệ cũ sẽ bị loại bỏ và được thay
thế bởi những cá thể mới. Thực tế, trong giải thuật di truyền, có những cá thể tồi bị
loại bỏ, có những cá thể trung bình được giữ nguyên và có những cá thể tốt được nhân
bản hai lần, tùy vào độ thích nghi của chúng và xác suất chọn lựa
Sau đây, ta sẽ xem xét cụ thể từng quá trình cơ bản ấy
1.3.3 Phép chọn lọc
Phép chọn lọc sẽ chọn ra các lời giải để tham gia vào các pha tiếp theo của quá
trình tiến hóa, một lời giải được chọn tùy vào độ thích nghi của nó. Những lời giải nào
có giá trị hàm thích nghi cao hơn thì sẽ có nhiều khả năng được chọn hơn để lai ghép
và đột biến, và sẽ trở thành thành viên của thế hệ tiếp theo. Phép chọn lọc có thể được
biểu diễn dưới dạng một bánh xe xổ số. Đó là một hình tròn, trong đó mỗi cá thể trong
thế hệ hiện tại chiếm một phần tương ứng trên hình tròn đó. Diện tích của mỗi phần
không bằng nhau và nó tương ứng với giá trị của hàm thích nghi của nó. Giá trị này
càng cao thì phần đó càng lớn. Các giá trị này chính là các xác suất chọn lọc của mỗi
cá thể b
i
được tính theo công thức
[ ]
( )
( )
∑
=
=
m
k
tk
ti
ti
bf
bf
bp
1
,
,
,
(1.1)
trong đó f(b
i,t
) là giá trị của hàm thích nghi của mỗi cá thể b
i
tại thời điểm t,
( )
∑
=
m
k
tk
bf
1
,
là tổng các giá trị của hàm thích nghi của quần thể. Công thức này chỉ có ý
nghĩa với những giá trị của hàm thích nghi mang dấu dương. Trong trường hợp khác,
nếu giá trị hàm thích nghi có thể mang dấu âm, ta sẽ áp dụng phép chuyển đổi
Nguyễn Hoàng Ánh – Lớp D2004VT2 9
Đồ án tốt nghiệp đại học Chương 1: Tổng quan về giải thuật di truyền
+
ℜ→ℜ:
ϕ
để tất cả giá trị của hàm thích nghi là số dương (thường, phép dịch giá trị là
đơn giản nhất). Khi đó, xác suất lựa chọn sẽ là:
[ ]
( )( )
( )( )
∑
=
=
m
k
tk
ti
ti
bf
bf
bp
1
,
,
,
ϕ
ϕ
(1.2)
Công thức xác suất (1.1) sẽ được thỏa mãn nếu ta áp dụng trò chơi bánh xe số.
Trong trò chơi này, các phần của bánh xe không được chia đều nhau mà chúng sẽ có
bề rộng tỉ lệ với xác suất ứng với nó. Hình 1.11 đưa ra một gợi ý hình ảnh về cách mà
trò chơi bánh xe số này hoạt động.
Công thức (1.1) của quá trình chọn lọc có thể được viết thành dạng chương
trình như sau
Thuật toán cho quá trình chọn lọc:
x := Random[0, 1];
i := 1;
WHILE i < m & x <
( )
∑∑
==
m
j
tj
i
j
tj
bbf
1
,
1
,
DO
I := i+1;
chọn b
i,t
;
Vì những lý do đã biết, quá trình này thường được gọi là quá trình lựa chọn tỉ
lệ. Dưới đây là hình minh họa cho bánh xe xổ số, với kích thước quần thể là 5.
Hình 1.11: Quá trình chọn lọc theo xác suất được mô tả như một bánh xe số
Trong hình trên, lời giải 1 có xác suất chọn lọc là 25%. Như vậy, mỗi lần quay
bánh xe xổ số nó có khả năng được chọn là 25%. Tương tự , xác suất với các lời giải 2,
Nguyễn Hoàng Ánh – Lớp D2004VT2 10
25%
20%
30%
15%
10%
Đồ án tốt nghiệp đại học Chương 1: Tổng quan về giải thuật di truyền
3, 4 và 5 là 15%, 30%, 10% và 20%. Với cấu trúc như vậy, ta thấy rằng việc quay vào
những phần có diện tích lớn hơn (tức là xác suất được chọn cao hơn) sẽ dễ dàng hơn là
quay vào những phần có diện tích nhỏ hơn.
1.3.4 Phép lai ghép
Trong quá trình sinh sản của sinh vật, khi nó xuất hiện trên thế giới, những
nguyên liệu gen của cá thể cha và mẹ được trộn lại khi giao tử của cha và mẹ hợp lại.
Các nhiễm sắc thể thường chia tách và hợp lại một cách ngẫu nhiên, do đó một số gen
của cá thể con do cá thể cha cung cấp, và một số còn lại do cá thể mẹ cung cấp.
Kỹ thuật này được gọi là lai ghép. Đây là công cụ rất mạnh để tạo ra nguyên
liệu gen và duy trì tính đa dạng gen. Một tính chất nổi trội của quá trình lai ghép là
những cá thể cha mẹ tốt cũng sẽ tạo thế hệ con tốt, hay thậm chí còn tốt hơn. Một vài
nghiên cứu khác cũng đi đến kết luận rằng quá trình lai ghép là nguyên nhân giải thích
vì sao sự sinh sản hữu tính của các loài lại giúp thích nghi nhanh hơn những cá thể
được sinh sản vô tính.
Về cơ bản, quá trình lai ghép là sự trao đổi các gen giữa các đoạn nhiễm sắc thể
của cha và mẹ. Trong ví dụ đơn giản sau đây, ta có thể nhận ra quá trình này chính là
việc cắt hai chuỗi tại những vị trí được chọn ngẫu nhiên và tráo đổi hai phần đã được
cắt cho nhau. Quá trình này được chỉ ra ở hình dưới đây, với việc trao đổi chéo được
thực hiện sau gen số 5
Cha 1 1 0 1 1 0 1 1 0 1 1
Cha 2 0 0 1 1 1 0 1 0 0 1
Con 1 1 0 1 1 0 0 1 0 0 1
Con 2 0 0 1 1 1 1 1 0 1 1
Hình 1.12: Trao đổi chéo tại một điểm trong chuỗi bit nhị phân
Thuật toán của quá trình lai ghép:
vị trí :=Random[1, …, n - 1];
FOR i:=1 TO vị trí DO
BEGIN
Con
1
[i] := Cha
1
[i];
Con
2
[i] := Cha
2
[i];
END
Nguyễn Hoàng Ánh – Lớp D2004VT2 11
Đồ án tốt nghiệp đại học Chương 1: Tổng quan về giải thuật di truyền
FOR i:=vị trí + 1 TO n DO
BEGIN
Con
1
[i] := Cha
2
[i];
Con
2
[i] := Cha
1
[i];
END
Có nhiều cách lai ghép, ta có thể kể ra đây một số loại lai ghép như sau:
- Lai ghép tại một điểm: là phương pháp đơn giản và thường được dùng trong
GA xử lý trên các chuỗi bit
- Lai ghép tại N điểm: thay vì tại duy nhất, ta sẽ chọn ra N điểm ngẫu nhiên để
bẻ gãy. Ta sẽ hoán đổi các phần thứ hai. Trong số này thì lai ghép tại hai điểm có vai
trò quan trọng đặc biệt.
- Lai ghép phân đoạn: tương tự như lai ghép N điểm nhưng có điểm khác là số
lượng các điểm bị cắt có thể thay đổi.
- Lai ghép đồng loạt: Tại mỗi vị trí, quá trình sẽ quyết định ngẫu nhiên xem các
vị trí đó có được chuyển đổi hay không.
- Lai ghép ngẫu nhiên: trước hết sẽ có một phép hoán vị được chọn ngẫu nhiên
được áp dụng cho cá thể cha. Sau đó, quá trình lai ghép N điểm sẽ được thực hiện với
những cá thể cha đã được ngẫu nhiên. Sau cùng, các cá thể con ngẫu nhiên được
chuyển đổi trở lại bằng cách hoán vị ngược.
1.3.5 Phép đột biến
Phép đột biến là sự thay đổi một vài gen của một lời giải được chọn, bằng cách
thay đổi ngẫu nhiên với xác suất là tỉ lệ đột biến. Trong quá trình sinh sản trong thực
tế, xác suất một gen có bị đột biến hay không thường bằng nhau với mọi gen. Do đó, ta
sẽ sử dụng kỹ thuật đột biến với chuỗi bit s được chọn, với p
M
là xác suất một gen đơn
được sửa đổi. Thuật toán cho quá trình đột biến như sau:
Thuật toán cho quá trình đột biến
FOR i := 1 TO n DO
IF Random [0, 1] < p
M
THEN
Đảo s[i];
p
M
phải có giá trị rất thấp để tránh giải thuật di truyền có sự hỗn độn như tìm
kiếm ngẫu nhiên.
Tương tự như quá trình lai ghép, việc lựa chọn kỹ thuật đột biến phù hợp phụ
thuộc vào quá trình mã hóa và chính bài toán đó.
Nguyễn Hoàng Ánh – Lớp D2004VT2 12