Chương 2. Giải thuật di truyền và ứng dụng đối với bài toán vận tải
2.5. Cơ chế thực hiện GA
2.5.1. Mã hóa
Để có thể thực hiện GA, vấn đề đầu tiên là xuất phát từ bài toán thực tế, ta cần phải mô tả các phương án của bài toán dưới một dạng nào đó (mô hình toán học, tin học, . . . ). Vấn đề mô tả đó được gọi là các phương pháp mã hóa. Thông thường người ta sử dụng một trong các phương pháp như sau:
a. Mã hoá nhị phân
Mã hoá nhị phân là phương pháp mã hoá NST phổ biến nhất. Trong mã hoá nhị phân, mỗi NST là một chuỗi nhị phân, mỗi bit trong nó có thể biểu diễn một đặc tính của nghiệm.
Mã hoá nhị phân thường hay dùng trong các bài toán tối ưu các hàm một biến hay nhiều biến. Khi đó, mỗi chuỗi nhị phân sẽ biểu diễn hàm tại một tập giá trị của các biến. Ngoài ra nó còn được áp dụng trong nhiều loại bài toán khác.
Mã hoá nhị phân tuy là phổ biến nhưng nó có một nhược điểm là có thể tạo ra không gian mã hoá lớn hơn so với không gian giá trị của NST.
Do đó, với nhiều bài toán thì biểu diễn nhị phân là không hữu hiệu.
b. Mã hoá hoán vị
Trong mã hoá hoán vị, mỗi NST là một chuỗi các số biểu diễn một thứ tự sắp xếp. Mã hoá hoán vị phù hợp cho các bài toán liên quan đến thứ tự. Đối với các bài toán này, việc thao tác trên các NST chính là hoán vị các số trong chuỗi đó làm thay đổi thứ tự của nó. Mã hoá hoán vị có thể được sử dụng trong 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.
c. Mã hoá số thực
Mã hoá trực tiếp theo giá trị có thể được dùng trong các bài toán sử dụng giá trị phức tạp như trong số thực. Trong đó, mỗi NST là một chuỗi các giá trị. Các giá trị có thể là bất cứ cái gì liên quan đến bài toán, từ số nguyên, số thực, kí tự cho đến các đối tượng phức tạp hơn.
Mã hoá số thực thường dùng cho các bài toán đặc biệt. Trong cách mã hoá này ta thường phải phát triển các toán tử đột biến và lai ghép cho phù hợp với từng bài toán. Thông thường mỗi NST được mã hóa là một véc tơ trong không gian. Cách mã hóa này thường sử dụng đối với các bài toán tối ưu số và được phát triển mạnh trong giai đoạn hiện nay.
d. 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 đó.
2.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 trong GA. Thông thường để khởi tạo quần thể trong bài toán tối ưu, ta tạo ra một cách ngẫu nhiên các lời giải có thể (thường là các lời giải thỏa mãn ràng buộc của bài toán nhưng chưa biết là đại lượng cần tối ưu đã là tối ưu hay chưa). Tuỳ vào từng bài toán cụ thể mà ta có các phương pháp khởi tạo khác nhau.
Chất lượng của quần thể ban đầu càng cao thì lời giải mà GA đưa ra càng tốt.
2.5.3. Xác định hàm thích nghi
Theo các nghiên cứu và các thử nghiệm của nhiều nhà nghiên cứu về GA thì hàm tính độ thích nghi là một trong hai yếu tố quan trọng nhất quyết định sự thành công hay thất bại của GA. Hàm thích nghi được xây dựng sao cho giá trị thích nghi phải phản ánh được giá trị thực của NST trong việc đáp ứng yêu cầu của bài toán. Hàm thích nghi chính là hàm mục tiêu của bài toán.
2.5.4. Cơ chế lựa chọn
Cơ chế lựa chọn được áp dụng khi chọn các cá thể từ quần thể P(t) để thực hiện việc lai ghép và đột biến, tạo ra quần thể P(t+ 1). Có nhiều cách để lựa chọn các cá thể từ một quần thể. Sau đây sẽ giới thiệu một số cơ chế hay áp dụng.
Ta sử dụng các kí hiệu như sau:
- Kí hiệu NST thứ i là vi.
- Hàm tính độ thích nghi của NST vi là f(vi).
- Kích thước quần thể là pop_size().
- Số NST cần chọn là N.
Cơ chế lựa chọn theo bánh xe Roulette:
Bước 1: Tính tổng độ thích nghi của cả quần thể: F =
pop_size
X
i=1
f(vi) Bước 2: Tính xác suất chọn pi cho mỗi NST vi: pi = f(vi)
F Bước 3: Tính vị trí xác suất qi của mỗi NST: qi =
i
X
j=1
pi
Bước 4: Sử dụng cơ chế lựa chọn theo bánh xe Roulette được thực hiện bằng cách quay bánh xe Roulette N lần. Mỗi lần chọn một NST từ quần thể hiện hành vào quần thể mới theo nguyên tắc:
- Phát sinh ngẫu nhiên một số r trong khoảng [0,1].
- Nếu r < q1 thì chọn NST v1; ngược lại thì chọn NST thứ i(2≤ i ≤ pop_size) sao cho qi−1 ≤ r ≤ qi.
Với cơ chế lựa chọn như thế này thì có một số NST sẽ được chọn nhiều lần. Điều này phù hợp với lý thuyết lược đồ: các NST tốt nhất thì có nhiều bản sao, NST trung bình thì không đổi, NST kém thì chết đi.
a. Cơ chế lựa chọn xếp hạng
Cơ chế lựa chọn xếp hạng được mô tả như sau:
Bước 1: Sắp xếp các NST trong quần thể theo độ thích nghi từ thấp đến cao.
Bước 2: Đặt lại độ thích nghi cho quần thể đã sắp xếp theo kiểu:
NST thứ nhất có độ thích nghi là 1, NST thứ hai có độ thích nghi là 2, .v.v., NST thứ pop_size có độ thích nghi là pop_size.
Theo phương pháp này việc một NST được chọn nhiều lần như trong lựa chọn theo kiểu bánh xe Roulette đã giảm đi. Nhưng nó có thể dẫn đến sự hội tụ chậm và NST có độ thích nghi cao cũng không khác mấy so với các NST khác.
b. Cơ chế lựa chọn theo lấy mẫu ngẫu nhiên
Cơ chế lựa chọn theo mẫu được thực hiện như sau:
Bước 1: Biểu diễn xác suất chọn các NST lên trên một đường thẳng.
Bước 2: Đặt N điểm chọn lên đường thẳng. Các điểm chọn này cách nhau 1
N, điểm đầu tiên đặt ngẫu nhiên trong khoảng
0, 1 N
.
Bước 3: Với một điểm chọn, NST gần với nó nhất về bên phải sẽ được chọn.
Phương pháp này có đặc điểm là các điểm chọn được phân bố đều trên trục số, do đó sẽ gần với điểm xứng đáng được chọn.