4 Chương trình minh họa
4.4 Bài toán 4 Người du lịch
Một người du lịch muốn đi thăm tất cả N thành phố, mỗi thành phố đúng một lần rồi quay trở lại thành phố ban đầu. Hãy giúp người khách xây dựng một hành trình thõa yêu cầu trên sao cho tổng chiều dài đường đi là ngắn nhất.
Đây là bài toán khá quen thuộc và có thể áp dụng nhiều thuật toán để giải. Tuy nhiên, các thuật toán đó tốn nhiều chi phí về thời gian khi số lượng thành phố là lớn. Trong báo cáo này, nhóm sử dụng thuật giải di truyền để khắc phục nhược điểm trên.
Ngoài ra, với bài toán này, nhóm sử dụng phương pháp tham lam để khởi tạo quần thể và lai ghép, chọn lọc bằng phương pháp cạnh tranh.
Ý tưởng
Mã hóa: Mỗi nhiễm sắc thể biểu diễn một cách sắp xếp lộ trình đi qua các thành phố. Do đó, mỗi cách biểu diễn nhiễm sắc thể chính là một hoán vị của N số nguyên dương đầu tiên. Ví dụ, hành trình 4 1 6 3 2 8 5 7 4 được biểu diễn
NST 4 1 6 3 2 8 5 7
Khởi tạo: bằng phương pháp tham lam. Tại mỗi vị trí trong nhiễm sắc thể, ta chọn thành phố gần nhất với thành phố hiện tại và chưa được xét để đưa vào vị trị tiếp theo trong nhiễm sắc thể.
Chọn lọc bằng phương pháp chọn lọc cạnh tranh.
Lai ghép: sử dụng phép lai OX hoặc phương pháp lai ghép tham lam.
Đột biến: bằng cách hoán vị hai gen hoặc đảo ngược hoặc dịch chuyển các gen trên cùng nhiễm sắc thể.
Hàm mục tiêu g(x) được tính là tổng chiều dài của hành trình. Như vậy, giá trị này càng bé càng tốt.
Hàm thích nghi: f(x) = 1 / (1 + g(x)).