Chương 4. THUẬT TOÁN DI TRUYỀN GIẢI BÀI TOÁN PHỦ ĐỈNH
4.2. Thuật toán di truyền theo hướng tiếp cận của Huo Hongwei
Tác giả Huo Hongwei đề xuất thuật toán di truyền dựa trên thuật toán di truyền gốc và có thêm một số thủ tục để cải tiến lời giải [6].
4.2.1. Mã hóa lời giải
Tác giả Huo Hongwei cũng sử dụng mã hóa nhị phân để biểu diễn lời giải của bài toán. Tuy nhiên, sau quá trình lai ghép và đột biến, xâu nhị phân có thể không hợp lệ nên tác giả đã đưa vào thủ tục hiệu chỉnh để sửa đổi xâu nhị phân không hợp lệ thành xâu hợp lệ.
4.2.2. Các toán tử di truyền
Các toán tử di truyền hoạt động như sau. Đầu tiên, áp dụng cơ chế “elitism”
bằng cách sao chép và lưu giữ lại cá thể có giá trị thích nghi lớn nhất. Sau đó, sử dụng phương pháp bánh xe Roullet cho quá trình chọn lọc. Các toán tử lai ghép một điểm cắt và đột biến một bit được sử dụng trong thuật toán.
4.2.3. Thủ tục Scan – And – Repair
Trong thuật toán di truyền, các toán tử lai ghép và đột biến được sử dụng để tìm kiếm không gian lời giải. Sau khi thực hiện các hoạt động này, cá thể con thu được có thể không phải là lời giải hợp lệ – không tương ứng với một phủ đỉnh của đồ thị. Để
khắc phục tình trạng đó, Huo Hongwei đã thiết kế thủ tục Scan – And – Repair để hiệu chỉnh kết quả không hợp lệ thành lời giải hợp lệ cho bài toán. Thủ tục này áp dụng phương thức tìm kiếm đơn giản, duyệt ma trận kề của đồ thị đã cho ứng với mỗi cá thể không hợp lệ, tìm và bổ sung những đỉnh không có trong phủ của đồ thị V’.
Hoạt động của toán tử này như sau.
Bước 1. Nếu đồ thị suy ra từ xâu nhị phân là một phủ của đồ thị đã cho thì dừng;
ngược lại chuyển sang Bước 2.
Bước 2 (Scan). Nếu đỉnh thứ k của xâu nhị phân bằng 1 thì xóa các cạnh nối với k trong ma trận kề, tức là thiết lập akj = 0 và ajk = 0 với mọi (k, j) thuộc E, 1 jn.
Bước 3 (Repair). Kiểm tra ma trận kề kết quả sau Bước 2, nếu có thành phần nào khác 0 trong ma trận thì ta thêm một đỉnh tương ứng với thành phần đó vào V’ và loại bỏ các cạnh tương ứng với nó từ ma trận kề kết quả.
Toán tử Scan – And – Repair sử dụng phương pháp tìm kiếm đơn giản có độ phức tạp thời gian là đa thức O(n2), do đó có thể thực thi hiệu quả trong thực tế.
Bên cạnh đó, để cải tiến lời giải tốt nhất của thuật toán, tác giả còn đưa vào thủ tục Local - Improvement để giảm bớt tối đa số đỉnh dư thừa trong phủ đỉnh kết quả.
Với một xâu nhị phân bất kỳ, đầu tiên ta đưa tất cả các đỉnh tương ứng với bit 1 trong xâu lời giải vào một danh sách L. Sau đó, bắt đầu từ đỉnh đầu tiên trong L tương ứng với đỉnh i nào đó. Nếu tất cả các cạnh nối với i đều bị xóa, tức là aij = 0 và aji = 0 với mọi giá trị i, j thì đỉnh i sẽ là dư thừa và bị loại ra khỏi phủ đỉnh. Ngược lại, giữ lại đỉnh i và xóa tất cả các cạnh nối với i, tức là thiết lập aij = 0 và aji = 0 với mọi giá trị i, j.
Thủ tục được mô tả như sau:
Bước 1. Nếu đồ thị ứng với xâu nhị phân không phải là phủ đỉnh của bài toán đã cho thì dừng; ngược lại chuyển sang Bước 2.
Bước 2. Lưu nhãn đỉnh tương ứng với bit 1 từ xâu lời giải vào danh sách L.
Bước 3. Lấy đỉnh i ra khỏi danh sách L. Nếu tất cả các cạnh nối với i đều bị xóa, tức là aij = aji với mọi giá trị i, j thì loại đỉnh i ra khỏi phủ; ngược lại xóa tất cả các cạnh nối với đỉnh này, tức là, đặt aij = aji = 0 với mọi giá trị i , j.
Bước 4. Nếu không còn đỉnh nào trong L chưa được xét thì dừng; ngược lại quay sang Bước 3 để xét đỉnh tiếp theo trong danh sách.
Trong thủ tục này, tác giả sử dụng phương pháp tìm kiếm first – fit để cải thiện kết quả.
Nghĩa là, ngay khi tìm thấy một đỉnh dư thừa trong xâu nhị phân, thủ tục thực hiện loại bỏ đỉnh ra khỏi lời giải. Sau khi áp dụng thủ tục này, kích thước phủ đỉnh tương ứng với một số xâu nhị phân nào đó có thể giảm đi và do đó chất lượng lời giải được cải thiện.
4.2.4. Sơ đồ hoạt động thuật toán lai của Huo Hongwei Begin
0
Gen
for mỗi xâu trong quần thể khởi tạo do Call Scan – And – Repair;
end
thu được kết quả P’(Gen);
đánh giá P’(Gen);
while (điều kiện kết thúc chưa thỏa mãn) do tái tổ hợp P’(Gen) tạo thành Q(Gen);
for mỗi xâu trong quẩn thể khởi tạo do Call Scan – And – Repair;
end
Kết quả thu được là Q’(Gen);
Đánh giá Q’(Gen);
Call Local - Improvement cho xâu có giá trị thích nghi lớn nhất thu được xâu mới, tính toán giá trị thích nghi và cập nhật quần thể hiện tại.
1
Gen Gen
end end
Với việc tích hợp thủ tục Local – Improvement và kỹ thuật tìm kiếm tối ưu cục bộ, một số xâu nhị phân đã cải thiện được độ thích nghi. Do đó, chất lượng lời giải được cải thiện rất nhiều qua các thế hệ.