Các phương pháp giải gần đúng thường dùng là : các thuật toán xấp xỉ approximation schemes, tìm kiếm cục bộ local search, các phương pháp xác suất probabilistic methods, tính toán tiến h
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
- Nguyễn Thị Thúy Quỳnh
PHÂN TÍCH ẢNH HƯỞNG CỦA CÁC KỸ THUẬT MÃ HÓA CÂY ĐỐI VỚI GIẢI THUẬT DI TRUYỀN GIẢI BÀI TOÁN CÂY KHUNG VỚI CHI
Trang 22
LỜI CẢM ƠN
Lời đầu tiên em xin bày tỏ lòng biết ơn sâu sắc và em xin gửi lời cảm ơn tới
thầy giáo PGS.TS.Nguyễn Đức Nghĩa người đã hướng dẫn em tận tình trong suốt
quá trình làm luận văn
Em xin bày tỏ lòng biết ơn tới các Thầy giáo, Cô giáo trong Viện Công Nghệ Thông Tin – Truyền Thông, trường Đại học Bách Khoa Hà Nội Các thầy cô đã chỉ dẫn và luôn tạo điều kiện tốt nhất cho em trong suốt thời gian học tập và nghiên cứu tại trường
Em xin chân thành cảm ơn các bạn đồng nghiệp, các bạn cùng lớp cao học
2009 đã cho những ý kiến đóng góp giá trị cho khóa luận này
Hà Nội, ngày 10 tháng 09 năm 2011
Nguyễn Thị Thúy Quỳnh
Trang 55
Danh mục các chữ viết tắt, các thuật ngữ tiếng Anh
2 Hybrid Genetic algorithm HGA Thuật toán di truyền lai
3 Polynomial time approximation
Trang 6Bảng 4.3: Kích thước đồ thị và kích thước quần thể trong các đồ thị không đồng
nhất có các cạnh được phân bố đềuU 73
3
Bảng 4.4: Kích thước đồ thị và kích thước quần thể trong các đồ thị bất đối xứngU 75
3
Bảng 4.5: Kết quả sử dụng giải thuật HGA chạy các bộ test với đồ thị tổng quát so
s ánh với thuật toán xấp xỉ của Wong và giải thuật bầy kiến sử dụng thuật toán MMASU 76
3
Bảng 4.6: Kết quả sử dụng giải thuật HGA chạy các bộ test với đồ thị đồng nhất và
gần đồng nhất so sánh với thuật toán xấp xỉ của Wong và giải thuật bầy kiến sử dụng thuật toán MMASU 77
3
Bảng 4.7: Kết quả sử dụng giải thuật HGA chạy các bộ test với đồ thị có các cạnh
phân bố đều so sánh với thuật toán xấp xỉ của Wong và giải thuật bầy kiến
sử dụng thuật toán MMASU 78
3
Bảng 4.8: Kết quả sử dụng giải thuật HGA chạy các bộ test với đồ thị bất đối xứng
so s ánh với thuật toán xấp xỉ của Wong và giải thuật bầy kiến sử dụng thuật toán MMASU 79
Trang 99
L ỜI MỞ ĐẦU
Việc phát triển các thuật toán hiệu quả để giải các bài toán NP – khó (NP–hard) luôn là một vấn đề được quan tâm của nhiều nhà khoa học nghiên cứu về máy tính Bởi vì các bài toán thuộc lớp NP – khó thường có rất nhiều ứng dụng trong thực tiễn Đối với các bài toán này thì việc phát triển một thuật toán giải chính xác thường không hiệu quả do độ phức tăng rất nhanh khi kích thước bài toán tăng Do
đó hiện nay người ta thường sử dụng cách tiếp cận giải gần đúng Các phương pháp giải gần đúng thường dùng là : các thuật toán xấp xỉ (approximation schemes), tìm kiếm cục bộ (local search), các phương pháp xác suất (probabilistic methods), tính toán tiến hóa (evolutionary computation), thuật toán di truyền (genetic algorithm),…
Nội dung của luận văn này tập trung vào phân tích ảnh hưởng của các kỹ thuật
mã hóa đối với giải thuật di truyền và xây dựng thuật toán di truyền lai để giải bài toán cây khung truyền thông với chi phí lộ trình nhỏ nhất (Minimum Routing Cost Spanning Trees-MRCT), một trong những bài toán trên đồ thị thuộc lớp NP-khó có nhiều ứng dụng trong thực tế như xây dựng các hệ thống mạng nhằm tối ưu chi phí đường đi trung bình giữa các nút mạng, đặc biệt là ở các mạng ngang hàng khi các nút có xác suất truyền tin, độ ưu tiên là như nhau
Thuật toán đề xuất đã được chạy thử nghiệm trên các bộ dữ liệu ngẫu nhiên của các đồ thị đặc trưng để đánh giá các thuật toán giải bài toán MRCT Kết quả thực nghiệm cho thấy các kỹ thuật mã hóa có ảnh hưởng lớn đến kết quả của thuật toán khi so sánh với một số thuật toán đã có
Nội dung của luận văn được bố cục như sau :
Chương 1 trình bày tổng quan về bài toán cây khung với chi phí lộ trình nhỏ
nhất và các hướng tiếp cận đã được đề xuất để giải quyết bài toán
Chương 2 trình bày tổng quan về giải thuật di truyền
Chương 3 trình bày các kỹ thuật mã hóa cây và giải thuật di truyền lai đề xuất
dựa trên giải thuật di truyền chuẩn kết hợp với giải thuật tối ưu hóa bày đàn nhằm mục đích giải bài toán cây khung với chi phí lộ trình nhỏ nhất
Trang 1010
Chương 4 trình bày kết quả thực nghiệm thu được khi sử dụng các kỹ thuật
mã hóa đối với giải thuật di truyền lai đề xuất để giải bài toán cây khung với chi phí
lộ trình nhỏ nhất và phân tích ảnh hưởng của các kỹ thuật mã hóa Giải thuật được thực hiện trên năm loại mã hóa cây khung và ba loại đồ thị đặc trưng cơ bản nhằm
so sánh hiệu quả với các giải thuật đã được đề xuất
Kết luận và hướng phát triển
Phần kết luận chung đánh giá tổng quan lại những kết quả đã thực hiện được trong luận văn, những hạn chế của luận văn và một số vấn đề mở cần tiếp tục giải quyết sau này
Trang 1111
CHƯƠNG 1 BÀI TOÁN CÂY KHUNG VỚI CHI PHÍ LỘ TRÌNH NHỎ NHẤT
1.1 Giới thiệu bài toán cây khung với chi phí lộ trình nhỏ nhất
Bài toán cây khung với chi phí lộ trình nhỏ nhất (Minimum Routing Cost Spanning Tree - MRCT) còn có tên khác là Shortest Total Path Length Spanning Tree thuộc lớp NP-khó Đối với bài toán MRCT, số lượng và vị trí các nút mạng
được đưa ra theo thứ tự ưu tiên và giá của cây được xác định bởi giá của các liên kết Lưu lượng của một liên kết là tổng của tất cả các yêu cầu truyền thông giữa tất cả các cặp nút truyền trực tiếp hay gián tiếp qua liên kết đó Mục đích của chúng ta là tìm ra cây khung của đồ thị với tổng độ dài đường đi giữa mọi cặp đỉnh trên cây khung là cực tiểu Độ dài đường đi giữa 2 đỉnh được tính bằng tổng trọng số của các cạnh trên đường đi nối giữa 2 đỉnh này với nhau Xây dựng cây khung chi phí lộ trình nhỏ nhất cũng tương đương với việc xây dựng cây khung sao cho độ dài trung bình giữa mọi cặp đỉnh là nhỏ nhất
Bài toán được phát biểu như sau:
Cho G là một đơn đồ thị vô hướng liên thông có trọng số là độ trễ (chí phí)
không âm Mục tiêu của bài toán là tìm cây khung T là một cây khung nào đó của G
sao cho độ trễ trung bình của tất cả các mối liên lạc giữa tất cả các cặp đỉnh trên cây
là nhỏ nhất Ma trận khoảng cách dRuvR xác định trọng số khoảng cách giữa các cặp
đỉnh, trong đó chi phí lộ trình của một cặp đỉnh (u,v) ký hiệu là dRTR(u,v) là tổng trọng
số trên tất cả các cạnh của đường đi trên cây T nối đỉnh u với đỉnh v Ta gọi chi phí
lộ trình (Routing cost) của cây khung T ký hiệu là C(T) là tổng các chi phí lộ trình
giữa mọi cặp đỉnh thuộc cây T được tính theo công thức sau:
,( ) u v T( , )
trong đó dRTR(u,v) được tính toán theo cấu trúc cây T T là cây khung với chi phí
lộ trình nhỏ nhất nếu c(T) ≤ c(T' ) với T' là cây khung bất kì
Bài toán MRCT là bài toán thuộc lớp NP-Khó Một số nhận xét về bài toán MRCT như sau:
Trang 1212
• Bài toán MRCT trên đồ thị tổng quát là tương đương với bài toán MRCT trên đồ thị trong không gian metric
• Tồn tại thuật toán xấp xỉ với tỉ lệ 1.577 để giải MRCT trong trường hợp đồ
thị tổng quát với độ phức tạp thời gian tính cỡ 𝑂𝑂(𝑛𝑛4)
• Cây khung k-star là cây khung mà có tối đa k nút trong Cây khung định
tuyến k-star nhỏ nhất (minimum routing cost k-star) là một lời giải xấp xỉ
𝑘𝑘+3
𝑘𝑘+1 cho bài toán MRCT
• Với giá trị k cho trước cây khung định tuyến k-star nhỏ nhất trên không gian metric có thể tìm được trong thời gian đa thức
A
B
C
D E
I
G E
Trang 1313
Ví dụ 1: Cho cây khung T như hình vẽ sau:
Hình 1.3: Cây khung 2-star
Theo công thức (1), ta có :
dRTR(vR1R,vR2R) + dRTR(vR1R,vR3R) + dRTR(vR1R,vR4R) + dRTR(vR1R,vR5R) + dRTR(vR2R,vR3R) + dRTR(vR2R,vR4R) +
dRTR(vR2R,vR5R) + dRTR(vR3R,vR4R) + dRTR(vR3R,vR5R) + dRTR(vR4R,vR5R) = 98
Do dRTR(vRiR,vRjR) = dRTR(vRjR,vRiR), nên C(T) = 98 x 2 = 196
Bài toán MRCT đặt ra là tìm một cây khung có chi phí lộ trình nhỏ nhất trong
tất cả các cây khung có thể có của G
Theo công thức của Cayley thì số cây khung của đồ thị n nút là nP
n-2
P
và có n cây hình sao trong số đó Khoảng cách giữa 2 cây TRiR và TRjR là dP
h
PijR ={0,1, ,n-2} được định nghĩa như sau:
0 ,
v
j uv i uv V
v
j uv i
PuvR=0 nếu ngược lại
Vậy số các liên kết giống nhau của cây TRiR và TRjR được tính bằng: n-1-½dP
h
Cũng giống như các bài toán cây khung có ràng buộc khác thì bài toán MRCT thuộc dạng NP-khó, chính xác là thuộc MAX SNP-khó có nghĩa là nó không thể được giải được trong thời gian xấp xỉ hàm mũ trừ khi P=NP
Để làm cơ sở tính toán cho bài toán MRCT, ta có định nghĩa sau:
Trang 1414
Gọi SPR G R(u,v ) là đường đi ngắn nhất giữa hai đỉnh u và v trên đồ thị G Khi G
là một cây thì SPR G R(u,v ) là đường đi đơn duy nhất giữa hai đỉnh u và v Từ khái niệm
routing load ta có công thức tính Routing cost theo công thức (1) có thể viết như sau:
∑
∈
=
) ( ) , (
) , ( )).
, ( , ( )
(
T E v u
T u v d v u T l T
Ví dụ: cho đồ thị G với tất cả các cạnh có trọng số là 1 và 2 cây khung TR1R và
TR2Rcủa G Ta có C(TR1R)=116 và C(TR2R)=124 Khi đó cây TR1R là MRCT
Hình 1.4: Đồ thị G và routing cost của hai cây khung TR1R và TR2Rcủa G
Dựa vào công thức (1) trọng số của các cạnh là yếu tố quan trọng nhất để tính routing cost Mặt khác dựa vào công thức (2) ta thấy hình dạng (topology) của cây
cũng là yếu tố quyết định cho việc xây dựng cây khung nhỏ nhất Ví dụ cho TR1R là
cây chỉ có một nút trong (hình sao) với mỗi cạnh có trọng số là 5 và TR2R là đường thẳng với mỗi cạnh có trọng số là 1, giả sử cả hai cây là cây khung của một đồ thị
có n đỉnh Nếu xét tổng trọng số các cạnh (cây khung nhỏ nhất) cây TR2R tốt hơn cây
TR1R Mặt khác, nếu xét về routing cost cây TR1Rcó routing load của mỗi cạnh đều bằng
Trang 1515
2(n-1 ) vì mỗi cạnh đều có một đỉnh lá do đó C(TR1R)=10(n-1)P
2
P
trong khi cây TR2R =(vR1R,
vR2R, , vRnR), xóa cạnh (vRiR, vRi+1R) sẽ cho hai thành phần gồm i và n-i đỉnh, nên routing load của các cạnh lần lượt là: 2(n-1), 2x2x(n-2), , 2xĩ(n-i), , 2(n-1) và C(TR2R) tính như sau:
C(TR2R)=
3
)1)(
1(3
)12)(
1()1()(
1 1
n n n
n i n i
n i
Cây TR1Rsẽ tốt hơn cây TR2Rnhiều khi n đủ lớn
Hình 1.5: Hai topology cây ảnh hưởng đến routing cost
1.2 Các thuật toán Meta-heuristics giải bài toán MRCT
Các thuật toán Metaheuristics có thể phân làm hai lớp: lớp thứ nhất bao gồm các thuật toán lặp lại quá trình tinh chỉnh một lời giải để tìm lời giải tốt hơn và lớp thứ hai bao gồm các thuật toán lặp lại quá trình tinh chỉnh một tập nhiều lời giải (một quần thể các lời giải) để tìm tập lời giải tốt hơn và khi quá trình kết thúc thì lời giải tốt nhất của quần thể ở thế hệ cuối cùng sẽ là lời giải cần tìm
Ở lớp thứ nhất có các thuật toán điển hình như: Thuật toán tham lam (Greedy), thuật toán tìm kiếm leo đồi (Hill Climbing Search), thuật toán tìm kiếm ưu tiên tối
ưu (Best First Search-BFS), thuật toán Tabu Search (Tabu Search - TS), thuật toán tìm kiếm cục bộ (Local Search), thuật toán tôi luyện thép (Simulated Annealing -
SA), thuật toán Đại hồng thủy(Great Deluge-GD),… Ở lớp thứ hai có các thuật toán điển hình như: Thuật toán di truyền (Genetic Algorithm - GA) , thuật toán Memetic (Memetic Algorithms - MA), thuật toán đàn kiến (Ant Colony Optimizationv- ACO), thuật toán tối ưu bầy đàn (Particle Swarm Optimization - PSO), thuật toán
Trang 1616
tìm kiếm sự hòa hợp (Harmony Search – HS), thuật toán bầy Ong (Bees Algorithm
- BA), thuật toán Firefly Algorithm (FA), …
Ngoài họ các thuật toán Metaheuristic trên còn một số thuật toán xấp xỉ (Approximation Algorithms) được sử dụng trong việc giải quyết bài toán MRCT Gần đây Grout [8] đã xây dựng một thuật toán xấp xỉ dựa trên phương pháp
tham lam để giải bài toán MRCT gọi là thuật toán Add cho ra kết quả rất tốt trên các
đồ thị đồng nhất (tức là trọng số của các cạnh là như nhau) và có độ phức tạp tính toán thấp hơn so với thuật toán của Wong Tư tưởng chủ đạo của thuật toán này là dựa trên giả định rằng một cây khung sẽ có chi phí lộ trình thấp nếu nó có càng nhiều nút lá càng tốt Vì vậy thuật toán chủ yếu xoay quanh việc xây dựng cây khung với nhiều nút lá nhất có thể Mặc dù thuật toán không đưa ra được một đánh giá nào về cận dưới hay cận trên cho kết quả thu được nhưng khi áp dụng trong thực tiễn thì thuật toán cho ra kết quả khá tốt Khiếm khuyết của thuật toán này là đối với các đồ thị không đồng nhất, kết quả cho ra khá tồi
Dựa trên thuật toán Add của Grout, Campos và các cộng sự [9] gần đây đã phát triển thuật toán Campos cho ra kết quả tương đối tốt trên cả đồ thị đồng nhất
lẫn không đồng nhất Thuật toán này bên cạnh mô hình thuật toán Add còn áp dụng phân tích của Mieghem [10] rằng cây khung tối ưu thu được trong nhiều trường hợp
gần với cây khung có trọng số cực tiểu (Minimum Spanning Tree – MST) Đây cũng
là một trong những thuật toán xấp xỉ có độ phức tạp đa thức tốt nhất hiện nay và đảm bảo kết quả thu được có độ tốt tương đương với thuật toán của Wong
Bên cạnh các thuật toán xấp xỉ thì các thuật toán tìm kiếm tối ưu bằng giải thuật quay lui cũng đạt được những bước tiến đáng kể Matteo, Giuseppe và các cộng sự [11] đã đề ra phương pháp duyệt khá hiệu quả dựa trên mô hình quy hoạch
tuyến tính (linear programming) Họ đưa bài toán MRCT về dạng các phương trình tuyến tính cần tối ưu rồi thiết lập các hàm nhánh cận (LP shortcut) giúp giảm đáng
kể không gian tìm kiếm xuống
Trang 171 Cây được kết nối các đồ thị con với trọng số nhỏ nhất của các cạnh
2 Các thuật toán định tuyến trên một cây là rất đơn giản
MRCT là một cây khung truyền thông với chi phí nhỏ nhất khi các yêu cầu thông tin liên lạc cho tất cả các cặp đỉnh là bằng nhau Hoặc trong các mô hình ngẫu nhiên, một MRCT là một cây khung truyền thông với chi phí nhỏ nhất nếu yêu cầu giữa giữa bất kỳ cặp đỉnh nào cũng có xác suất bằng nhau
1.3.2 Trong tin sinh học
Bên cạnh những ứng dụng3để3 3thiết kế mạng3, cây khung với chi phí nhỏ nhất cũng được á3p dụng trong3 3việc xây dựng một trình tự sắp xếp gen tốt nhất
Trang 1818
CHƯƠNG 2 THUẬT TOÁN DI TRUYỀN
2.1 Các khái niệm cơ bản
2.1.1 Cấu trúc cây- kiểu hình
Các cấu trúc cây mà ta cần lưu ý là:
- Cây dạng sao
- Cây dạng danh sách
- Cây bất kì
a) Cây hình sao b ) Cây dạng danh sách c) Cây bất kì
Hình 2.1: Các dạng cấu trúc của cây
Trong cả 3 trường hợp thì tổng bậc của tất cả các nút trong mạng là:
) 1 n ( 2 ) i deg(
2.1.1.1 Cây hình sao (Star tree)
U
Khái niệm:UCây hình sao là một cây có một đỉnh là trung tâm và các đỉnh còn lại được nối với đỉnh này
Trang 1919
Hình 2.2: Cây hình sao
Ở cây dạng sao, 1 nút sẽ có đường liên kết với tất cả các nút còn lại Nút đó
được gọi là nút gốc và có bậc là n-1, các nút còn lại có bậc là 1
Cây hình sao T có n đỉnh có các tính chất sau:
+ Đỉnh trung tâm có bậc bằng n-1, các đỉnh còn lại là các lá
+ Từ n điểm cho trước có thể xây dựng được đúng n cây hình sao khác nhau Trong n cây hình sao này, lần lượt các đỉnh là đỉnh trung tâm
+ Nếu loại bỏ một cạnh khỏi cây T thì thu được một đỉnh biệt lập và một cây hình sao T’ có n-1 đỉnh
+ Nếu loại bỏ một lá và cạnh liên thuộc với đỉnh đó khỏi cây T thì thu được một cây hình sao T’ có n-1 đỉnh
+ Nếu loại bỏ đỉnh trung tâm và n-1 cạnh liên thuộc với nó khỏi cây T thì thu được n-1 đỉnh đôi một biệt lập
Như vậy, với mạng có n nút sẽ có n cây dạng sao có thể Khi 1 nút (ngoại trừ
nút gốc) hay 1 đường liên kết bị lỗi thì sẽ ko bị ảnh hưởng đến các nút khác Tuy nhiên nếu nút gốc bị lỗi thì toàn bộ mạng sẽ không hoạt động được
2.1.1.2 Cây d ạng danh sách (List tree)
U
Khái niệm:UCây dạng danh sách là một cây có đúng hai lá
Trang 2020
Hình 2.3: Cây dạng danh sách
Ở cây dạng danh sách, 2 nút có bậc 1(nút lá) và tất cả các nút còn lại có bậc
là 2
Cây dạng danh sách T có n đỉnh có các tính chất sau:
+ Ngoài hai đỉnh lá, n-2 đỉnh còn lại đều có bậc bằng hai
+ Từ n điểm cho trước có thể xây dựng được đúng (n!)/2 cây dạng danh sách
khác nhau
+ Nếu một trong hai đỉnh lá và cạnh liên thuộc với đỉnh đó bị loại bỏ khỏi cây
thì thu được một cây dạng danh sách T’ có n-1 đỉnh
+ Nếu một trong n-2 đỉnh không phải là lá cùng hai cạnh liên thuộc với đỉnh
đó bị loại bỏ khỏi cây thì thu được hai cây dạng danh sách không có đỉnh chung
Như vậy, với mạng có n nút số lượng cây danh sách có thể xây dựng được là
(n!)/2 Nếu 1 nút bị lỗi thì nó sẽ phân chia thành 2 cây danh sách con
2.1.1.3 Cây bất kỳ
Cây bất kì là cây không có điều gì đặc biệt ngoại trừ nó là 1 cây Bậc của các
nút trong cây có thể là 1 đến n-1
2.1.1.4 Khái niệm cây khung của đồ thị
Cho đơn đồ thị vô hướng liên thông G = (V,E) Cây T = (V,F) với F ⊆ E được gọi là cây khung của đồ thị G
Trang 2121
Hình 2.4: Cây khung của đồ thị
2.1.1.5 Bài toán cây khung nhỏ nhất
Cho đơn đồ thị vô hướng liên thông G = (V,E) và ma trận trọng số độ dài C = {c(u,v )} Với mỗi cây khung T của G, độ dài của cây khung T là tổng độ dài các cạnh của nó: c(T) = ∑ c(e) Bài toán đặt ra là trong số tất cả các cây khung của G
hãy tìm cây khung có độ dài nhỏ nhất
2.1.2 Kho ảng cách - hệ đơn vị met
Hệ đơn vị là rất quan trọng cho không gian kiểu gen và kiểu hình ΦRgR và ΦRp Rđể định nghĩa các thao tác như đột biến và lai tạo Ứng dụng của thao tác đột biến đối với kiểu gen có thể gây ra những thay đổi với khả năng nhỏ trong cá thể, và có thể tạo ra những giao tử có khoảng cách 1 cho kiểu gen và kiểu hình Thao tác kết hợp
để đảm bảo rằng giao tử kế thừa những cấu trúc con từ cha mẹ Trong thuật ngữ hệ met, khoảng cách giữa giao tử với cha mẹ chúng có sẽ nhỏ hơn khoảng cách giữa cha mẹ chúng
Khoảng cách Hamming giữa kiểu gen nhị phân xP
g i
g i y
,
x | x y |
d g g
Khoảng cách d đo số gen tương ứng khác nhau ở các cá thể Tương tự,
khoảng cách giữa 2 kiểu hình (các cây) được đo bằng khoảng cách dP
h
P
Khoảng cách
Trang 22Để đơn giản, chúng ta định nghĩa khoảng cách dRi,jR ={0,1, n-1 } giữa 2 cây GRiR,
GRjRlà một nửa số lượng các đường liên kết khác nhau (dRi,jR=½dP
0 ,
|
| 2
1
|
| 2
u u
v
j uv i uv V
v
j uv i
Do đó, số lượng các đường liên kết giống nhau của 2 cây GRiR và GRjR có thể dễ
dàng tính theo công thức: n-1-dRi,jR Thao tác đột biến gây ra thay đổi 1 đường liên
kết, khoảng cách giữa cha mẹ và giao tử là dRparent,child R=1
2.1.3 Phân tích giản đồ
Bài toán là hoàn toàn dễ dàng nếu tất cả các giản đồ theo một thứ tự nào đó chứa cực tiểu có độ thích nghi cao hơn so với các đối thủ Bài toán sẽ là khó khăn nếu các giản đồ có chưa tối ưu toàn cục bị đánh giá thấp hơn so với một số đối thủ
Trang 23Để có thể hình thành công thức cho giản đồ, ta sẽ gán nhãn cho tất cả các
đường liên kết có thể trong đồ thị {1,2, n(n-1)/2}
Do đó, một giản đồ sẽ là một chuỗi có độ dài l=n(n-1)/2 và vị trí thứ i sẽ xác
định ở đó có tồn tại một đường link hay không? 1 nếu đường liên kết đó tồn tại và 0 nếu ngược lại, * nếu chưa xác định được
Ví dụ:
Hình 2.8: Một số dạng giản đồ cho đồ thị trên Khi sử dụng giản đồ cho cây, có thêm ràng buộc là có chính xác n-1 đường liên kết và cây phải liên thông Do đó, xâu biểu biễn sẽ chỉ có n-1 kí tự và xâu đó
phải mã hoá 1 cây liên thông Điều này có nghĩa độ thích nghi trung bình của một giản đồ sẽ chỉ được tính ra từ cây mà nó biểu diễn Các ví dụ không phải là cây khác được biểu diễn bởi giản đồ sẽ không ảnh hưởng đến độ thích nghi giản đồ đó Như
vậy, mọi giản đồ có hơn n-1 số 1 hay hơn ½n(n-1)-(n-1) số 0 đều ko tồn tại bởi vì
nó mã hoá cây ko có nghĩa
Bằng cách phân tích giản đồ, độ phức tạp của một bài toán về mạng có thể dễ
dàng tính tóan nhờ vào thứ tự cao nhất của cách xây dựng khối k
Trang 2424
2.1.4 Ki ểm tra khả năng "leo thang"
Một phương án tối ưu đựơc chọn ngẫu nhiên hoặc bằng tay Cấu trúc của
phương án tối ưu này có thể được xác định: nó có thể là một cây hình sao, cây danh
sách hay một cây với n nút
Để tính toán độ thích nghi fRiR của phương án TRiR, khoảng cách dRi,jR giữa 2 cây
được sử dụng Sử dụng hệ metric, độ thích nghi fRiR của phương án TRiR phụ thuộc vào
khoảng cách dRi,optRgiữa TRiR và phương án tối ưu TRoptR Chúng ta có thể phân biệt 2 loại
bai toán: cực đại và cực tiểu Khi định nghĩa bài toán cực tiểu, độ thích nghi fRiRP
iR= dRi,opt R trong đó dRi,optR ={0,1, n-1 } Một cá thể có độ thích nghi là n-2 nếu nó
chỉ có duy nhất 1 đường liên kết giống với phương án tốt nhất Nếu 2 cá thể ko khác
nhau (TRiR=TRoptR) thì độ thích nghi fP
min
PiR=0 Giả sử phương án ssau là phương án tối ưu, khi đó cây hình sao sẽ có độ thích nghi là 1 bởi vì chúng chỉ khác nhau 1 cạnh
Hình 2.9: Một cây có 5 nút
Khi định nghĩa bài toán cực đại thì độ thích nghi của một cá thể được tính
bằng số cạnh mà nó giống so với phương án tối ưu Tức fP
max
P
iR=n-1-dRi,opt
Với cùng cây tối ưu trên thì với bài toán cực đại, thì cây hình sao sẽ có độ
thích nghi là 3 trong khi khoảng cách giữa 2 cây là dRi,optR=1
Mối liên hệ độ thích nghi của giản đồ với độ thích nghi của cây và so sánh với phương án tối ưu như hình vẽ (111000)
Trang 252.2 Các thao tác của giải thuật di truyền trên cây
2.3.1 Giới thiệu chung về giải thuật di truyền
Giải thuật di truyền được phát triển bởi John Holland (1975) Trong cuốn sách
Adaptation in natural and artificial systems, ông đã mô tả giải thuật di truyền như là một quá trình chuyển đổi liên tiếp từ một quần thể (population - một tập hợp) các nhiễm sắc thể (chromosomes) này sang thành một quần thể mới khác Ban đầu mỗi nhiễm sắc thể của Holland là một xâu các bit 0 và bit 1 Một nhiễm sắc thể được tạo
Trang 2626
thành từ các gene, cụ thể ở đây mỗi vị trí bit thành phần của xâu bit nhiễm sắc thể là một gene, và giá trị biểu hiện cụ thể của gene đó trên nhiễm sắc thể thì gọi là allele
Ví dụ nếu nhiễm sắc thể là một xâu gồm 10 bit thì mỗi bit thứ i (với i nhận giá trị từ
1 đến 10) đều có thể coi là một gene Mỗi gene có thể nhận giá trị là 0 hoặc 1, và 0,
1 được gọi là các allele, tức là giá trị cụ thể của gene Tất nhiên ta hoàn toàn có thể
quan niệm một gene gồm 2 (hoặc một số k nào đó) bit liên tiếp nhau, và như thế các
allele cho một gene (gồm 2 bit) có thể là 00, 01, 10 và 11
1 0 1 0 0 1 1 0 0 1
Gen
Hình 2.10: Minh họa Allele, Gen và nhiễm sắc thể
Trong quá trình chuyển từ quần thể cũ sang quần thể mới, ta áp dụng một số toán tử di truyền (genetic-inspired operators – các toán tử mô phỏng từ quá trình di truyền), đó là các toán tử mô phỏng cơ chế chọn lọc tự nhiên (selection), các hiện tượng lai ghép – hay còn gọi là ghép chéo (crossover, recombination), hiện tượng đột biến (mutation), đảo đoạn (inversion)
Toán tử chọn lọc có nhiệm vụ lựa chọn lấy một số nhiễm sắc thể để đem đi lai ghép, phục vụ cho việc sinh cá thể mới trong thế hệ con cháu (quần thể mới)
Việc lựa chọn là theo tiêu chí các cá thể đều có cơ hội được lựa chọn nhưng
những cá thể có phẩm chất tốt hơn (đánh giá theo một tiêu chí nào đó được đặt
ra ban đầu) sẽ có cơ hội được lựa chọn cao hơn, khiến cho quần thể mới sẽ có nhiều con cháu của cá thể đó hơn
Toán tử lai ghép sẽ trao đổi một vài đoạn được chọn ngẫu nhiên giữa 2 nhiễm
sắc thể tham gia lai ghép, qua đó trao đổi tính chất giữa 2 nhiễm sắc thể
Toán tử đột biến sẽ ngẫu nhiên thay đổi giá trị một số allele ở một vài vị trí
ngẫu nhiên trên nhiễm sắc thể khiến tính chất của nhiễm sắc thể thay đổi hoặc
tạo ra tính chất mới
Toán tử đảo đoạn sẽ đảo ngược một đoạn nào đó trên nhiễm sắc thể, qua đó thay đổi trật tự của các gene, và cũng làm tính chất của nhiễm sắc thể thay đổi
Trang 2727
Việc áp dụng các toán tử di truyền giúp cho các cá thể trong quần thể có xu hướng ngày càng có chất lượng tốt hơn theo một tiêu chí nào đó được đặt ra ban đầu (nhờ toán tử chọn lọc), đồng thời nhiều tính chất mới được khai phá (nhờ toán tử đột biến, đảo đoạn) nhằm tìm kiếm những tính chất tốt đẹp chưa có trong quần thể Với xu thế đó, quần thể sẽ ngày càng thích nghi hơn theo nghĩa chất lượng của các
cá thể (đánh giá theo một tiêu chí nào đó) ngày càng được cải thiện Vì vậy ta có thể gọi quá trình chuyển đổi từ quần thể (thế hệ) này sang quần thể khác trong quá trình hoạt động của giải thuật di truyền là một quá trình tiến hóa thích nghi
Mô hình của các giải thuật di truyền sau này vẫn tuân theo mô hình của giải thuật di truyền ban đầu mà Holland đã đề xuất, tuy nhiên có đưa thêm vào các kỹ thuật mới để cải tiến hiệu quả của các toán tử di truyền Và hướng kết hợp giải thuật
di truyền với các kỹ thuật tìm kiếm localsearch và các kỹ thuật khác trong tính toán tiến hóa để tạo ra các giải thuật di truyền lai (hybrid GA)
2.3.2 Các thao tác của giải thuật di truyền
Thuật toán di truyền gồm có bốn quy luật cơ bản là lai ghép, đột biến, sinh sản
và chọn lọc tự nhiên như sau:
Quá trình lai ghép (phép lai)
Quá trình này diễn ra bằng cách ghép một hay nhiều đoạn gen từ hai nhiễm sắc thể
cha-mẹ để hình thành nhiễm sắc thể mới mang đặc tính của cả cha lẫn mẹ Phép lai này có thể mô tả như sau:
- Chọn ngẫu nhiên hai hay nhiều cá thể trong quần thể Giả sử chuỗi nhiễm sắc thể của cha và mẹ đều có chiều dài là m
- Tìm diểm lai bằng cách tạo ngẫu nhiên một con số từ 1 dến m-1 Như vậy, điểm lai này sẽ chia hai chuỗi nhiễm sắc thể cha-mẹ thành hai nhóm nhiễm
sắc thể con là mR1 Rvà mR2R Hai chuỗi nhiễm sắc thể con lúc này sẽ là mR11R+mR22R
và mR21R+mR12R
- Ðưa hai chuỗi nhiễm sắc thể con vào quần thể để tiếp tục tham gia quá trình tiến hóa
Trang 2828
Quá trình đột biến (phép đột biến)
Quá trình tiến hóa đuợc gọi là quá trình đột biến khi một hoặc một số tính trạng của con không được thừa hưởng từ hai chuỗi nhiễm sắc thể cha-mẹ Phép đột biến xảy ra với xác suất thấp hơn rất nhiều lần so với xác suất xảy ra phép lai Phép đột biến có thể mô tả như sau:
- Chọn ngẫu nhiên một số k từ khoảng 1 ≤ k ≤ m
- Thay đổi giá trị của gen thứ k
- Ðưa nhiễm sắc thể con vào quần thể để tham gia quá trình tiến hóa tiếp theo
Quá trình sinh sản và chọn lọc (phép tái sinh và phép chọn)
Phép tái sinh: là quá trình các cá thể được sao chép dựa trên độ thích nghi của
nó Ðộ thích nghi là một hàm được gán các giá trị thực cho các cá thể trong quần thể của nó Phép tái sinh có thể mô phỏng như sau:
- Tính độ thích nghi của từng cá thể trong quần thể, lập bảng cộng dồn các giá trị thích nghi đó (theo thứ tự gán cho từng cá thể) ta được tổng độ thích nghi
Giả sử quần thể có n cá thể Gọi độ thích nghi của cá thể thứ i là FRiR, tổng dồn
thứ i là FRtR.Tổng độ thích nghi là FRmR
- Tạo số ngẫu nhiên F có giá trị trong đoạn từ 0 dến FRmR
- Chọn cá thể k đầu tiên thỏa mãn F ≥ FRtRđưa vào quần thể của thế hệ mới
Phép chọn: là quá trình loại bỏ các cá thể xấu và để lại những cá thể tốt Phép
chọn
được mô tả như sau:
- Sắp xếp quần thể theo thứ tự độ thích nghi giảm dần
- Loại bỏ các cá thể cuối dãy, chỉ dể lại n cá thể tốt nhất
2.3.3 Sơ đồ chung của giải thuật di truyền
Trong thuật toán di truyền thì mỗi cá thể có thể là một lời giải hoàn chỉnh của bài toán, tuy nhiên vẫn chưa tối ưu, hoặc cũng có thể chỉ là một bộ phận của lời giải hoàn chỉnh Thông qua quá trình lặp (mỗi lần lặp của quần thể được coi như là 1 thế hệ) các cá thể này sẽ biến đổi dần dần để tạo ra các lời giải tốt hơn
Trang 2929
Hình 2.11: S ơ đồ chung của thuật toán di truyền
Trong đó các bước cụ thể là:
1 Khởi tạo quần thể Các cá thể (lời giải của bài toán) trong quần thể ban đầu
có thể được sinh ra theo nhiều cách, cách đơn giản nhất là sinh ngẫu nhiên Việc sinh ngẫu nhiên làm cho quần thể ban đầu rất đa dạng (sự sai khác của các thể là rất lớn), điều nầy rất tốt cho thuật toán vì ta có thể bao quát không gian tìm kiếm rất rộng Tuy nhiên nhược điểm là số lần lặp (số thế hệ) phải thực hiện trước khi dừng là lớn Hơn nữa trong một số bài toán có thể lời giải tối ưu chỉ tập trung vào một vùng nào đó Vì thế người ta có thể chọn cách khởi tạo thứ 2 là kết hợp với các kỹ thuật heuristic (thường là dùng các thuật toán tìm lời giải gần đúng đã có) để sinh các cá thể ban đầu Khi áp dụng theo cách này ta vẫn cần đảm bảo được mức độ đa dạng cho quần thể ban đầu, nếu không thì hiệu quả của thuật toán sẽ là rất tồi
Bắt đầu Khởi tạo quần thể
Chọn lọc Lai ghép Đột biến Đánh giá độ thích nghi
Đưa ra lời giải tốt nhất
Thỏa mãn điều kiện dừng
Kết thúc
Trang 3030
2 Đánh giá độ thích nghi Áp dụng hàm đánh giá với đối số là kiểu gene của
các cá thể đã được xây dựng từ trước để đánh giá độ thích nghi của từng cá thể trong quần thể
3 Tạo quần quần thể mới
Chọn lọc Thực hiện việc lựa chọn các cá thể cha mẹ trong quần thể hiện tại
để phục vụ cho việc lai ghép, đột biến, và lựa chọn các cá thể để tạo ra quần thể mới Giống như quá trình tiến hóa trong tự nhiên, việc lựa chọn phải đảm bảo được cá thể có độ thích nghi cao hơn sẽ có khả năng được lựa chọn lớn hơn
Lai ghép Sau khi chọn được 2 cá thể cha mẹ, ta tiến hành lai ghép để tạo ra
các cá thể con Có rất nhiều chiến thuật khác nhau để thực hiện việc lai ghép,
như lai ghép đồng bộ - uniform crossover, lai ghép theo thứ tự - order-based crossover , lai ghép tương hợp bộ phận - Partially Matched Crossover,… Tùy
vào từng phương pháp mã hóa và từng bài toán mà các toán tử lai ghép thích hợp được lựa chọn
Đột biến Mục đích của đột biến là nhằm tạo ra những kiểu gen mới không
có trong quần thể hiện tại, hay nói cách khác là làm tăng tính đa dạng của quần thể Các toán tử đột biến hay dùng là đột biến đảo bit, đảo giá trị và đột biến đảo đoạn
4 Điều kiện dừng Điều kiện dừng của thuật toán di truyền cũng rất đa dạng, có
thể là sau một thời gian mà không tìm được lời giải tốt hơn, hoặc có thể là sau một số thế hệ cho trước Trong đó lời giải chính là cá thể tốt nhất trong quần thể hiện tại
Trang 3131
U
Mô tả giải thuật:
Hình 2.12: Bài toán tối ưu có thể có rất nhiều cực trị
Trang 3232
Ví dụ: xét 3 thao tác chính của giải thuật di truyền là: lựa chọn, giao chéo và
đột biến
• Lựa chọn: Thao tác này lựa chọn những cá thể (cây) trong quần thể
để lai tạo hoặc duy trì cho thế hệ sau Những cá thể nào có độ thích nghi càng cao thì số lần nó được chọn càng nhiều
• Thao tác này lựa chọn 1 vị trí ngẫu nhiên và biến đổi chuỗi trước và
sau vị trí đó giữa hai NST để tạo ra hợp tử Ví dụ: Có 2 chuỗi gen là:
10000100
11111111 giao chéo sau vị trí thứ 3 ta thu được 2 hợp tử là:
10011111
11100100
• Đột biến: Thao tác này đảo ngược một số bit trong NST Ví dụ:
00000100 có thể đột biến ở vị trí thứ 2 tạo thành 01000100 Đột biến có thể xảy ra tại mọi vị trí trong NST nhưng thường với xác suất rất nhỏ
Minh hoạ cho các thao tác trên
Hình 2.13: Ba thao tác chính của giải thuật di truyền
5 2
2 4
3 2
Trang 3333
Trong các bài toán tối ưu phức tạp thì dạng hàm của nó có thể có rất nhiều điểm lồi lõm (nhiều cực trị) khác nhau Thường thì thuật toán di truyền sẽ bị dừng ở một điểm cực trị địa phương nào đó của bài toán Nhằm có thể đưa thuật toán di truyền hội tụ tới cực trị toàn cục thì chúng ta sẽ phải lựa chọn các thông số cho thuật toán di truyền của chúng ta hết sức cẩn thận
Thông thường khi bắt tay vào thiết kế một thuật toán di truyền để giải bài toán thì chúng ta phải lựa chọn:
Cách biểu diễn cá thể phù hợp: Tức là chọn cách mã hóa lời giải thích hợp Trong cách mã háo này phải đảm bảo là có thể biểu diễn được không gian lời
giải của cả bài toán hoặc ít nhất là không gian cá lời giải tiềm năng (nếu không gian lời giải là vô hạn) Ngoài ra, việc chọn cách biểu diễn sẽ ảnh hưởng đến
việc lựa chọn các toán tử di truyền (lai ghép, đột biến…) Nếu mà chọn cách
biểu diễn mới có teher chúng ta sẽ phải tự đi thiết kế các toán tử di truyền riêng
Cách đánh giá độ thích nghi của các cá thể Bởi vì với mỗi cá thể trong mỗi thế
hệ chúng ta đều phải tính độ thích nghi nên việc lựa chọn cách đánh giá độ thích nghi sẽ ảnh hưởng lớn đến hiệu quả của giải thuật
Xác định một số tham số khác trong giải thuật như:
- Kích thước quần thể Kích thước quần thể nhỏ quá thì hiệu quả tìm kiếm
sẽ thấp, ngược lại kích thước lớn quá thì quá trình hội tụ đến lời giải cũng
chậm và thời gian thực hiện của giải thuật cũng tăng lên
- Lựa chọn điều kiện dừng Thông thường điều kiện dừng là giải thuật đã
thực hiện đủ một số lượng xác định các bước lặp sinh quần thể Nhưng ta cũng cần chọn số lượng bước lặp này cho phù hợp Nếu ít quá thì vùng tìm kiếm sẽ bị hạn chế, còn nếu nhiều quá thì thời gian sẽ tăng Bên cạnh
đó nếu không có chiến lược xử lý hợp lý trong quá trình tìm kiếm thì việc tăng số vòng lặp sinh quần thể cũng không mang lại điều gì thêm
- Xác định các giá trị tỉ lệ đột biến và tỉ lệ lai ghép phù hợp Nếu những giá
trị này lớn thì làm quần thể mới tạo ra sẽ đa dạng, quá trình tìm kiếm sẽ được thực hiện trên một không gian rộng và phân tán, tuy nhiên nó lại
Trang 3434
làm cho tốc độ hội tụ của thuật toán chậm và ngược lại Thông thường các giá trị này phải được lựa chọn thông qua một loạt các thử nghiệm trên các bộ dữ liệu thực tế của bài toán
Việc lựa chọn được các tham số phù hợp cho một bài toán cụ thể là không
phải dễ dàng, nó phụ thuộc rất nhiều vào kinh nghiệm của người giải quyết bài toán
Từ đó chúng ta thấy các vấn đề cần quan tâm khi xây dựng giải thuật di truyền
và tiến hóa:
- Cách mã hóa các nhiễm sắc thể
- Các thao tác di truyền: lai ghép, đột biến, chọn lọc tự nhiên
- Các tham số trong quá trình tiến hóa: kích thước quần thể, xác suất lai, xác suất đột biến
- Phương pháp khởi tạo quần thể
- Hàm định nghĩa độ thích nghi của các cá thể
- Cơ chế chọn lựa cá thể cha và mẹ trong quần thể để thực hiện lai ghép
- Cơ chế nạp lại quần thể
Mã hóa theo giá trị
Mã hóa theo giá trị sử dụng một mảng các số nguyên hoặc thực để biểu diễn kiểu gen cho một cá thể Cách mã hóa này thường được dùng cho các bài toán tối
ưu mà kiểu hình có thể chia nhỏ ra các thành phần độc lập với nhau và tập xác định của các thành phần này có thể được rời rạc hóa và biểu diễn bởi một số thực hoặc nguyên
Ví dụ, để biểu diễn một màu thuộc hệ màu RGB, chúng ta có thể sử dụng
mảng [vRRR, vRGR, vRBR] với vRRR, vRGR, vRBR lần lượt là các giá trị cường độ màu của màu đỏ,
Trang 3535
màu xanh lá cây và màu xanh da trời Màu đen được mã hóa [0,0,0], màu trắng
[255,255,255 ], màu đỏ [255,0,0], vv
Một dạng đặc biệt của mã hóa theo giá trị là mã hóa nhị phân: các gen chỉ có
thể nhận một trong hai giá trị 0 hoặc 1 Cách mã hóa này có ứng dụng lớn trong các
bài toán quyết định, ví dụ như bài toán cái túi: đồ vật i được cho vào túi ↔ A[i] = 1,
ngược lại A[i] = 0
Hình 2.14: Mã hóa theo giá trị trong bài toán cái túi
Mã hóa hoán vị
Mã hóa hoán vị sử dụng một hoán vị của một tập các giá trị theo một trình tự
nào đó để biểu diễn kiểu gen cho một cá thể Mã hóa hoán vị có thể được áp dụng
trong lớp các bài toán liên quan đến tìm thứ tự cho một tập hợp các công việc nào
đó: bài toán người du lịch, bài toán lập lịch
Ví dụ, trong bài toán người du lịch, để mã hóa cho một trình tự tham quan qua
n thành phố chúng ta có thể sử dụng một hoán vị của tập (1,2,3, ,n) và trình tự các
số trong hoán vị đó cho biết trình tự tham quan các thành phố của người đó
→ kiểu gen
(x 1 , x 2 , x 3 , x 4 , x 5) = (0, 1, 1, 1, 0)
Trang 3636
Hình 2.15: Mã hóa hoán vị trong bài toán người du lịch
→ kiểu gen tương ứng: 1-2-5-4-3-6-7
Mã hóa theo cấu trúc cây
Trong dạng mã hóa theo cấu trúc cây, mỗi nhiễm sắc thể sẽ được mã hóa bởi một cây các đối tượng Các đối tượng ở đây có thể là các hằng, các biến, các câu lệnh, vv có quan hệ trực tiếp với nhau trong cấu trúc gen của cá thể Ví dụ, để mã
hóa cho biểu thức f(x) = xP
Trang 37- Trong tự nhiên thao tác đột biến có thể xảy ra trong quá trình sống của cá thể hoặc trong quá trình sinh sản hữu tính tạo ra cá thể đó, tuy nhiên trong giải thuật di truyền không tồn tại khái niệm “vòng đời của cá thể” dẫn đến cá thể
bị đột biến trong quá trình sinh sản hay trong quá trình sống đều như nhau
Do đó, việc cá thể có bị đột biến hay không sẽ được xem xét đến trong quá trình sinh sản tạo ra cá thể đó, tức là thao tác đột biến sẽ được sử dụng như là một thao tác con của thao tác lai ghép
- Có những chuỗi giá trị là hợp lệ với các luật để được công nhận là một kiểu gen, tuy nhiên nó lại không hợp lệ để xây dựng một kiểu hình tương ứng Do
đó, chúng ta cần để ý đến hai thao tác đặc biệt sau dành cho các chuỗi giá trị như thế: kiểm tra xem chuỗi giá trị đó có thực sự là một kiểu gen hợp lệ không và nếu không, phương thức sửa chữa chúng để trở thành một kiểu gen thực sự hợp lệ
Thao tác lai ghép
Di truyền là quá trình các cá thể con được thừa hưởng thông tin di truyền từ cha mẹ, hay nói cách khác quá trình di truyền là tập hợp của rất nhiều thao tác sinh sản hữu tính giữa các cá thể trong quần thể Các cá thể con được thừa hưởng một phần thông tin di truyền từ cha và một phần từ mẹ của chúng, và thao tác lai ghép trong các thuật giải di truyền và tiến hóa mô phỏng thao tác sinh sản hữu tính trong
tự nhiên này Phép lai ghép hình thành nhiễm sắc thể mới trên cơ sở các nhiễm sắc thể cha mẹ bằng cách ghép các đoạn con của nhiễm sắc thể cha mẹ vào vị trí tương ứng trên nhiễm sắc thể của con Trong thuật giải tiến hóa, thông thường nhiễm sắc
Trang 3838
thể cha mẹ được chia làm hai đoạn con và vị trí cắt nhiễm sắc thể được lựa chọn một cách ngẫu nhiên
+ Thao tác lai ghép có thể được mô tả như sau:
- Chọn ngẫu nhiên hai cá thể trong quần thể
- Tạo ngẫu nhiên một điểm lai trên nhiễm sắc thể cha và mẹ: F = FR1R + FR2R và
M = MR1R + MR2R Chú ý rằng cần có sự đồng bộ về điểm lai trên nhiễm sắc thể cha và mẹ, vì hai cá thể con cũng có kiểu gen có độ dài giống như hai cá thể cha mẹ
- Từ bốn đoạn con có được khi cắt hai nhiễm sắc thể của cha và mẹ, chúng ta
ghép chéo với nhau để tạo ra hai chuỗi giá trị mới: O1 = FR1R + MR2R và O2 =
MR1R + FR2R
- Sử dụng thao tác kiểm tra tính thực sự hợp lệ của hai chuỗi giá trị mới và sửa chữa chúng nếu cần Khi đó chúng ta đã có hai cá thể con với hai nhiễm sắc thể mới
- Dựa vào tỉ lệ đột biến để quyết định xem các cá thể con có bị đột biến hay không
- Đưa 2 cá thể con vào quần thể để thực hiện các quá trình tiếp theo
Thao tác đột biến
Đột biến là hiện tượng nhiễm sắc thể của cá thể con khi sinh ra mang một hoặc nhiều đoạn gen không có trong thông tin di truyền được thừa hưởng từ cha mẹ Tuy nhiên, trong các giải thuật di truyền, thông thường chúng ta sẽ chọn một đoạn ngẫu nhiên trong nhiễm sắc thể của cá thể và tiến hành đột biến bằng cách thay đổi các giá trị của đoạn đó một cách ngẫu nhiên trong phạm vi cho phép Thông thường, chúng ta sẽ đột biến để tạo ra nhiễm sắc thể cho một cá thể mới và sau đó kiểm tra tính thực sự hợp lệ của nó đồng thời sửa chữa nhiễm sắc thể đó để nó trở nên thực
sự hợp lệ, nếu cần Trong quá trình đột biến, có thể sử dụng một số heuristic để tập trung đột biến vào một số gen đặc biệt, nhằm nâng cao hiệu quả của giải thuật di truyền và tiến hóa
+ Thao tác đột biến có thể được mô tả như sau:
Trang 3939
- Đối với một cá thể con mới sinh ra, chọn một vị trí ngẫu nhiên trên nhiễm sắc thể của cá thể đó
- Thay đổi giá trị tại điểm vừa chọn, được một chuỗi giá trị mới
- Sử dụng thao tác kiểm tra tính thực sự hợp lệ của chuỗi giá trị mới và sửa chữa chúng nếu cần
- Trả cá thể này về quần thể để thực hiện các quá trình tiếp theo
Thao tác chọn lọc tự nhiên
Chọn lọc tự nhiên là quá trình loại bỏ dần các cá thể xấu – các cá thể có độ thích nghi thấp và giữ lại các cá thể tốt, nhằm duy trì nguồn gen tốt để phân bổ trong quần thể Chúng ta cần quan tâm đến cách lựa chọn các cá thể mới cho quần thể vì một số cá thể tuy có độ thích nghi thấp nhưng lại có một đoạn gen tốt, nếu không quan tâm đến yếu tố này thì giải thuật sẽ trở nên tham lam
+ Thao tác chọn lọc tự nhiên có thể được mô tả như sau:
- Sắp xếp quần thể theo thứ tự độ thích nghi giảm dần
- Lựa chọn một số cá thể để cho vào quần thể mới, loại bỏ các cá thể còn lại
c Các tham số của giải thuật di truyền và tiến hóa
Kích thước quần thể
Kích thước quần thể cho biết số lượng cả thể trong quần thể ở một thế hệ Qua các nghiên cứu và các thử nghiệm đã cho thấy kích thước quần thể không nên quá lớn và cũng không nên quá bé Nếu số lượng cá thể trong quần thể quá ít thì số lượng kiểu hình và kiểu gen ít dẫn đến không gian tìm kiếm của bài toán nhỏ, dễ bỏ qua các lời giải tốt Nhưng nếu quá nhiều cá thể trong quần thể sẽ dẫn đến thời gian chạy của một bước tiến hóa lớn, ảnh hưởng đến hiệu quả của giải thuật; hơn nữa tài nguyên dành cho chương trình cũng là có giới hạn
Xác suất lai ghép
Xác suất lai ghép cho biết việc lai ghép tạo ra thế hệ mới được thực hiện thường xuyên như thế nào Nếu được lai ghép, hai con sẽ mang một phần kiểu gen của bố và một phần kiểu gen của mẹ Còn nếu không được lai ghép, con cái sẽ giống hệt cha mẹ
Trang 4040
Xác suất đột biến
Xác suất đột biến cho biết khả năng một gen của một cá thể bị thay đổi là
bao nhiêu % Nếu xác suất đó là pRmR, xác suất để một cá thể bị đột biến sẽ là 1- (1 –
pRmR)P
n
P
, với n là số lượng gen trong nhiễm sắc thể của cá thể đó Thao tác đột biến sẽ
tạo ra những kiểu gen mới, mang những đặc điểm mới của các tính trạng để phân bố trong quần thể, có tác dụng ngăn ngừa tình trạng cực trị địa phương Tuy nhiên nếu xác suất đột biến là quá lớn, giải thuật di truyền sẽ trở thành giải thuật tìm kiếm ngẫu nhiên
d Khởi tạo quần thể
Khởi tạo quần thể ban đầu là bước đầu tiên trong quá trình thực thi của chương trình sử dụng giải thuật di truyền và tiến hóa Thông thường để khởi tạo quần thể trong bài toán tối ưu, chúng ta khởi tạo ngẫu nhiên một số các lời giải hợp
lệ cho bài toán Chúng ta cần quan tâm đến hai vấn đề:
- Quá trình khởi tạo quần thể có thể là trực tiếp hoặc gián tiếp Ví vụ với bài toán cây khung MRCT, khởi tạo trực tiếp cá thể là khởi tạo một cây khung cho đồ thị đã cho và mã hóa nó thành nhiễm sắc thể để đưa vào quần thể Khởi tạo gián tiếp sẽ là khởi tạo ngẫu nhiên một bộ giá trị hợp lệ với các luật của một nhiễm sắc thể, sau đó kiểm tra xem bộ giá trị đó có thực sự hợp lệ để
là một nhiễm sắc thể hay không bằng cách sử dụng thuật toán giải mã để xây dựng kiểu hình tương ứng và kiểm tra tính hợp lệ của kiểu hình đó Đối với
cá thể sai, chúng ta có hai phương án xử lí: không sử dụng cá thể đó mà khởi tạo cá thể khác hoặc sửa chữa cá thể đó để tạo ra một cá thể hợp lệ và xây dựng nhiễm sắc thể cho cá thể sau sửa chữa này để sử dụng trong quần thể khởi tạo
- Chất lượng ban đầu của quần thể càng tốt thì hiệu năng của giải thuật di truyền và tiến hóa càng tốt Điều này dẫn đến việc sử dụng một số giải thuật xấp xỉ hoặc một số heuristic đã được tìm ra để xây dựng quần thể ban đầu cho bài toán