Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 8

1.

4 Các tham số của GA


1.4.1 Kích thước quần thể
Kích thước quần thể trong giải thuật di truyền (GA) là một yếu tố quan trọng,
nó xác định số lượng cá thể trong mỗi thế hệ.
● Quá nhỏ: Nếu kích thước quần thể quá nhỏ, không gian tìm kiếm sẽ bị
hạn chế, dẫn đến việc bỏ lỡ các giải pháp tốt. Ngoài ra, khả năng lai ghép
giữa các cá thể cũng giảm đi, ảnh hưởng đến sự đa dạng của quần thể.
● Quá lớn: Ngược lại, nếu kích thước quần thể quá lớn, GA sẽ mất nhiều
thời gian để chạy, làm giảm hiệu suất của giải thuật.
Do đó, việc lựa chọn kích thước quần thể phù hợp là một nhiệm vụ quan trọng,
cần cân nhắc giữa việc đảm bảo đa dạng gen và tối ưu hóa hiệu suất tính toán.
Các nghiên cứu đã chỉ ra rằng việc tăng kích thước quần thể lên quá một mức
cho phép không mang lại lợi ích.
1.4.2 Xác suất lai ghép
Xác suất lai ghép trong giải thuật di truyền (GA) đóng vai trò quan trọng trong
việc tạo ra thế hệ mới từ thế hệ hiện tại. Nếu xác suất lai ghép là p c, thì mỗi cặp
cá thể có pc khả năng được lai ghép để tạo ra cá thể mới.
● Không lai ghép: Nếu không thực hiện lai ghép, cá thể con sẽ giống hoàn
toàn với bố mẹ của nó. Điều này có thể giữ được những đặc tính tốt của
thế hệ hiện tại, nhưng cũng có thể hạn chế sự đa dạng gen.
● Lai ghép: Nếu thực hiện lai ghép, cá thể con sẽ kết hợp đặc tính từ cả bố
và mẹ. Điều này tạo ra sự đa dạng gen, giúp khám phá không gian giải
pháp một cách rộng rãi hơn.
Xác suất lai ghép cần được điều chỉnh cẩn thận. Nếu xác suất lai ghép quá cao,
có thể dẫn đến việc mất đi những cá thể tốt trong quần thể hiện tại. Ngược lại,
nếu xác suất lai ghép quá thấp, sự đa dạng gen có thể bị hạn chế, làm giảm khả
năng tìm kiếm và tối ưu.
Tóm lại, xác suất lai ghép là một tham số quan trọng trong GA, có ảnh hưởng
trực tiếp đến hiệu suất và khả năng tìm kiếm của giải thuật.
1.4.3 Xác suất đột biến
Xác suất đột biến, thường được ký hiệu là p m, là một yếu tố quan trọng trong
giải thuật di truyền (GA). Nó quyết định khả năng một gen cụ thể trong một cá
thể sẽ thay đổi. Đột biến giúp duy trì và tạo ra sự đa dạng trong quần thể di
truyền.
Nếu xác suất đột biến (pm) quá cao, GA có thể trở thành một giải thuật tìm kiếm
ngẫu nhiên. Điều này có thể làm mất đi sự hướng dẫn của GA, khiến nó không
thể tìm ra giải pháp tối ưu.
Tuy nhiên, đột biến cũng có thể giúp GA tránh rơi vào tình trạng cực trị địa
phương. Điều này có nghĩa là, nếu GA chỉ sử dụng những giải pháp hiện tại để
tạo ra giải pháp mới, nó có thể mắc kẹt ở một giải pháp không tối ưu nhưng
không thể cải thiện. Đột biến giúp GA khám phá ra những giải pháp mới mà
không cần phụ thuộc vào giải pháp hiện tại.
Nhìn chung, GA sử dụng sự ngẫu nhiên để tìm kiếm giải pháp tối ưu cho các
vấn đề phức tạp. Tuy nhiên, GA không chỉ tập trung vào chi tiết của vấn đề, mà
còn tập trung vào việc tìm ra giải pháp tối ưu. GA được sử dụng đặc biệt cho
những bài toán yêu cầu tìm kiếm tối ưu toàn cục với không gian tìm kiếm lớn.
Nhận xét xuất phát từ sơ đồ thực hiện GA:
● GA là một giải thuật tìm kiếm ngẫu nhiên có hướng dẫn, dựa trên quá
trình tiến hóa tự nhiên. GA không tập trung vào chi tiết của vấn đề, mà
tập trung vào việc tìm ra giải pháp tối ưu.
● GA sử dụng các toán tử di truyền như lựa chọn, lai ghép và đột biến để
tìm kiếm giải pháp tối ưu.
● GA có khả năng tìm kiếm tối ưu toàn cục trong không gian tìm kiếm lớn.
● GA có thể giải quyết được nhiều loại bài toán khác nhau, từ tối ưu hóa
đơn biến, đa biến, tới các bài toán phức tạp như lập lịch, đóng gói, tối ưu
hóa đa mục tiêu.
● GA có khả năng thích ứng với sự thay đổi của môi trường, nhờ vào khả
năng học hỏi và tiến hóa của mình.
● GA có thể kết hợp với các giải thuật khác để tạo ra các giải thuật lai, giúp
tăng cường hiệu suất tìm kiếm.
Về xác suất đột biến, nếu xác suất đột biến là p m, thì khả năng mỗi gen của một
cá thể bất kỳ bị đột biến là p m. Điều này có nghĩa là, trong mỗi thế hệ, mỗi gen
có một cơ hội pm để bị thay đổi. Điều này giúp tạo ra sự đa dạng trong quần thể
và giúp GA khám phá ra những giải pháp mới.

1.5 Cơ chế thực hiện GA


1.5.1 Mã hóa
Mã hóa là quá trình biểu diễn các giải pháp của bài toán dưới dạng có thể xử lý
được trong không gian toán học hoặc tin học. Dưới đây là một số phương pháp
mã hóa thường gặp:
● Mã hóa nhị phân: Phương pháp này biểu diễn mỗi cá thể (NST) dưới
dạng một chuỗi nhị phân, trong đó mỗi bit tượng trưng cho một đặc tính
của nghiệm. Mã hóa nhị phân thường được sử dụng trong các bài toán tối
ưu hóa các hàm một biến hoặc nhiều biến. Tuy nhiên, một nhược điểm
của mã hóa nhị phân là không gian mã hóa có thể lớn hơn không gian giá
trị của NST.
● Mã hóa hoán vị: Trong phương pháp này, mỗi NST là một chuỗi các số
biểu diễn một thứ tự sắp xếp. Mã hóa hoán vị phù hợp cho các bài toán
liên quan đến thứ tự, như bài toán du lịch hay bài toán lập lịch.
● Mã hóa số thực: Phương pháp này sử dụng giá trị trực tiếp để biểu diễn
NST. Các giá trị có thể là số nguyên, số thực, kí tự hoặc các đối tượng
phức tạp hơn. Mã hóa số thực thường được sử dụng cho các bài toán đặc
biệt, trong đó mỗi NST được mã hóa là một vector trong không gian.
● Mã hóa dạng cây: Phương pháp này được sử dụng trong các biểu thức
toán học. Mỗi NST là một cây của một nhóm đối tượng nào đó.
Để hiểu rõ hơn về các phương pháp mã hóa, chúng ta cùng xem xét chi tiết hơn
từng phương pháp:
● Mã hóa nhị phân: Mỗi gen trong chuỗi nhị phân biểu diễn một đặc tính
của giải pháp. Ví dụ, trong bài toán ba lô 0-1, mỗi gen có thể biểu diễn
việc một món đồ có được chọn để đưa vào ba lô hay không.
● Mã hóa hoán vị: Mỗi gen trong chuỗi biểu diễn một thứ tự cụ thể. Ví dụ,
trong bài toán người bán hàng, mỗi gen có thể biểu diễn thứ tự các thành
phố được thăm.
● Mã hóa số thực: Mỗi gen biểu diễn một giá trị cụ thể. Ví dụ, trong bài
toán tối ưu hóa hàm số, mỗi gen có thể biểu diễn giá trị của một biến.
● Mã hóa dạng cây: Mỗi gen biểu diễn một nút trong cây. Ví dụ, trong bài
toán biểu diễn biểu thức toán học, mỗi gen có thể biểu diễn một toán tử
hoặc toán hạng.
Việc chọn phương pháp mã hóa phù hợp là một yếu tố quan trọng trong việc
thực hiện GA, và nó phụ thuộc vào bản chất của bài toán cần giải quyết. Ví dụ,
mã hóa nhị phân thích hợp cho các bài toán tối ưu hóa trong không gian rời
rạc, trong khi mã hóa số thực thích hợp cho các bài toán tối ưu hóa trong không
gian liên tục. Mã hóa hoán vị thích hợp cho các bài toán liên quan đến thứ tự,
như bài toán du lịch. Mã hóa dạng cây thích hợp cho các biểu thức toán học.
1.5.2 Khởi tạo quần thể ban đầu
Khởi tạo quần thể ban đầu là bước đầu tiên và rất quan trọng trong giải thuật di
truyền (GA). Trong bước này, chúng ta tạo ra một tập hợp các cá thể, mỗi cá thể
đại diện cho một giải pháp có thể cho bài toán.
Có hai phương pháp chính để khởi tạo quần thể trong GA:
● Khởi tạo ngẫu nhiên: Tạo ra quần thể ban đầu với các giải pháp hoàn
toàn ngẫu nhiên. Phương pháp này đơn giản và dễ thực hiện. Mỗi gen
trong mỗi giải pháp được gán một giá trị ngẫu nhiên trong phạm vi khả
thi của nó, tùy thuộc vào cách mã hóa của bài toán. Phương pháp này
đảm bảo sự đa dạng của quần thể ban đầu, nhưng có thể không tận dụng
được kiến thức tiền đề về bài toán.
● Khởi tạo theo hướng dẫn (Heuristic initialization): Sử dụng một
phương pháp hướng dẫn đã biết để tạo ra quần thể ban đầu. Phương pháp
này tận dụng kiến thức tiền đề về bài toán để tạo ra các giải pháp ban đầu
có chất lượng cao. Tuy nhiên, việc tìm ra và áp dụng một phương pháp
hướng dẫn phù hợp có thể là một thách thức.
Ngoài ra, còn có một số phương pháp khởi tạo khác như Pseudo-random
Number Generators (PRNGs), Chaotic Number Generators (CNGs), Quasi-
random Sequence (QRS), Uniform Design (UD), Centroidal Voronoi
Tessellation (CVT), ....
Mỗi phương pháp khởi tạo có ưu và nhược điểm riêng và sẽ phù hợp với từng
loại bài toán cụ thể. Chất lượng của quần thể ban đầu có thể ảnh hưởng đáng kể
đến hiệu suất của GA. Nếu quần thể ban đầu có chất lượng cao (tức là gần với
giải pháp tối ưu), GA có thể tìm thấy giải pháp tối ưu nhanh hơn.
Tuy nhiên, cần lưu ý rằng việc khởi tạo quần thể ban đầu chỉ là bước đầu tiên
trong GA. Các bước tiếp theo như lựa chọn, lai ghép và đột biến cũng đóng vai
trò quan trọng trong việc tìm kiếm giải pháp tối ưu.
1.5.3 Xác định hàm thích nghi
Hàm thích nghi là một yếu tố quan trọng trong giải thuật di truyền (GA). Hàm
thích nghi đánh giá chất lượng, hoặc "độ thích hợp", của các giải pháp ứng viên
(còn được gọi là cá thể hoặc nhiễm sắc thể) cho một vấn đề.
Hàm thích nghi được sử dụng để xếp hạng các cá thể và giúp thuật toán quyết
định cá thể nào để giữ lại và cá thể nào để loại bỏ trong quá trình lựa chọn.
Trong hầu hết các trường hợp, hàm thích nghi và hàm mục tiêu là giống nhau vì
mục tiêu là tối đa hóa hoặc tối thiểu hóa hàm mục tiêu đã cho.
Tuy nhiên, đối với các vấn đề phức tạp hơn với nhiều mục tiêu và ràng buộc,
người thiết kế thuật toán có thể chọn một hàm thích nghi khác. Hàm thích nghi
cần phải đáp ứng các yêu cầu sau:
● Hàm thích nghi phải đủ nhanh để tính toán.
● Nó phải đo lường định lượng cách mà một giải pháp đã cho phù hợp hoặc
cá thể phù hợp có thể được tạo ra từ giải pháp đã cho.
● Trong một số trường hợp, việc tính toán hàm thích nghi trực tiếp có thể
không khả thi do sự phức tạp của vấn đề. Trong những trường hợp như
vậy, chúng ta thực hiện xấp xỉ thích nghi để phù hợp với nhu cầu của
chúng ta.
Hàm thích nghi là một công cụ quan trọng giúp GA định hướng tìm kiếm giải
pháp tối ưu.
1.5.4 Cơ chế lựa chọn
Cơ chế lựa chọn là một phần quan trọng trong giải thuật di truyền (GA). Trong
giai đoạn này, các cá thể được chọn từ quần thể hiện tại P(t) để thực hiện lai
ghép và đột biến, tạo ra quần thể mới P(t+1).
Cơ chế lựa chọn giúp GA định hướng tìm kiếm giải pháp tối ưu. Dưới đây là
một số phương pháp lựa chọn phổ biến:
● Lựa chọn ngẫu nhiên(Random selection): Trong phương pháp này, N
cá thể được chọn ngẫu nhiên từ quần thể để thực hiện lai ghép.
● Lựa chọn toàn bộ(Full selection): Tất cả các cá thể trong quần thể đều
được chọn để tham gia vào quá trình lai ghép.
● Lựa chọn bánh xe (Roulette wheel selection): Mỗi cá thể được gán một
phần trên bánh xe tương ứng với độ thích nghi của nó, và cá thể được
chọn thông qua một quá trình rút thăm ngẫu nhiên.
● Lựa chọn giải đấu (Tournament selection): Các cá thể được ghép đôi
một cách ngẫu nhiên, và cá thể phù hợp nhất từ mỗi cặp được chọn để
tiếp tục tiến hóa.
● Lựa chọn xếp hạng (Rank selection): Các cá thể được xếp hạng dựa
trên độ thích nghi của chúng, và cá thể có xếp hạng cao hơn có khả năng
được chọn nhiều hơn.
Từng kỹ thuật lựa chọn đều có những lợi ích và hạn chế riêng, và sẽ tương thích
với các dạng bài toán khác nhau. Cơ chế lựa chọn giúp GA định hướng tìm
kiếm giải pháp tối ưu.

1.5.5 Các toán tử di truyền


Các toán tử di truyền trong giải thuật di truyền (GA) bao gồm toán tử lai ghép
và đột biến. Đây là hai toán tử quan trọng có tác động lớn đến chất lượng của
giải thuật. Cách xây dựng các toán tử này phụ thuộc vào cách mã hóa các nhiễm
sắc thể (NST). Dưới đây là một số ví dụ về toán tử lai ghép và đột biến trên một
số cách mã hóa NST.
1.Toán tử lai ghép:
 Lai ghép đơn điểm (Single Point Crossover): Một điểm cắt được chọn
tại một vị trí thứ k trên NST. Từ đầu NST đến vị trí thứ k, NST con sao
chép từ cha, phần còn lại sao chép từ mẹ.
 Lai ghép hai điểm (Two-Point Crossover): Hai điểm cắt được chọn. Từ
đầu cho đến điểm cắt thứ nhất được sao chép từ cha, từ điểm cắt thứ nhất
đến điểm cắt thứ hai sao chép từ mẹ và phần còn lại sao chép từ cha.
 Lai ghép mặt nạ (Masked Crossover): Một mặt nạ nhị phân được tạo ra
ngẫu nhiên. Gen của cá thể con được chọn từ gen của cha hoặc mẹ dựa
trên giá trị của mặt nạ tại vị trí tương ứng.
2.Toán tử đột biến:
 Đột biến đảo bit (Bit Flip Mutation): Chọn một hoặc nhiều bit ngẫu
nhiên và đảo chúng. Điều này thường được sử dụng cho GA mã hóa nhị
phân.
 Đột biến đặt lại ngẫu nhiên (Random Resetting): Một giá trị ngẫu
nhiên từ tập giá trị cho phép được gán cho một gen được chọn ngẫu
nhiên.
 Đột biến hoán vị (Swap Mutation): Chọn hai vị trí trên nhiễm sắc thể
một cách ngẫu nhiên và trao đổi giá trị. Điều này phổ biến trong mã hóa
dựa trên hoán vị.

Dưới đây là một số ví dụ về các toán tử di truyền trong giải thuật di truyền
(GA):
1. Toán tử lai ghép:
○ Lai ghép đơn điểm (Single Point Crossover): Giả sử chúng ta có
hai nhiễm sắc thể (NST) cha và mẹ như sau:
 NST cha (X): 10100101
 NST mẹ (Y): 11011000 Chúng ta chọn một điểm cắt ngẫu
nhiên, giả sử k = 3. Khi đó, phần từ đầu NST đến vị trí thứ k,
NST con sẽ sao chép từ cha, phần còn lại sẽ sao chép từ mẹ.
Vậy, NST con sinh ra do lai ghép đơn điểm sẽ là:
 Con: 101 | 11000
○ Lai ghép hai điểm (Two-Point Crossover): Giả sử chúng ta có
hai NST cha và mẹ như sau:
 NST cha (X): 10100101
 NST mẹ (Y): 11011000 Chúng ta chọn hai điểm cắt ngẫu
nhiên, giả sử là 2 và 5. Khi đó, phần từ đầu NST đến vị trí
thứ 2, từ vị trí thứ 5 đến cuối NST con sẽ sao chép từ cha,
phần từ vị trí thứ 2 đến vị trí thứ 5 sẽ sao chép từ mẹ. Vậy,
NST con sinh ra do lai ghép hai điểm sẽ là:
 Con: 10 | 011 | 01
○ Lai ghép mặt nạ (Masked Crossover): Giả sử chúng ta có hai
NST cha và mẹ như sau:
 NST cha (X): 10100101
 NST mẹ (Y): 11011000 Chúng ta tạo ra một mặt nạ nhị phân
ngẫu nhiên, giả sử là 10101010. Khi đó, gen của NST con sẽ
được chọn từ gen của cha hoặc mẹ dựa trên giá trị của mặt
nạ tại vị trí tương ứng. Vậy, NST con sinh ra do lai ghép mặt
nạ sẽ là:
 Con: 11100000
2. Toán tử đột biến:
○ Đột biến đảo bit (Bit Flip Mutation): Giả sử chúng ta có một
NST như sau:
 NST: 10100101 Chúng ta chọn một bit ngẫu nhiên, giả sử là
bit thứ 3. Khi đó, bit này sẽ được đảo. Vậy, NST sau khi đột
biến sẽ là:
 NST: 10000101
○ Đột biến đặt lại ngẫu nhiên (Random Resetting): Giả sử chúng
ta có một NST như sau:
 NST: 10100101 Chúng ta chọn một gen ngẫu nhiên, giả sử
là gen thứ 5. Khi đó, gen này sẽ được gán một giá trị ngẫu
nhiên từ tập giá trị cho phép. Vậy, NST sau khi đột biến sẽ
là:
 NST: 10110101
○ Đột biến hoán vị (Swap Mutation): Giả sử chúng ta có một NST
như sau:
 NST: 10100101 Chúng ta chọn hai vị trí ngẫu nhiên, giả sử
là vị trí thứ 2 và thứ 6. Khi đó, hai gen tại hai vị trí này sẽ
được trao đổi cho nhau. Vậy, NST sau khi đột biến sẽ là:
 NST: 11100001

You might also like