Professional Documents
Culture Documents
2022T - TTNT - 11 - Homework
2022T - TTNT - 11 - Homework
Bây giờ chúng tôi đã xử lý phương pháp đột biến, chúng tôi cần chọn một phương pháp chéo
có thể thực thi cùng một ràng buộc.
Một phương pháp giao cắt có thể tạo ra một tuyến đường hợp lệ là giao nhau theo thứ tự.
Trong phương pháp chéo này, chúng tôi chọn một tập hợp con từ cha mẹ đầu tiên, sau đó thêm
tập hợp con đó vào con cái. Bất kỳ giá trị còn thiếu nào sau đó sẽ được thêm vào con cái từ cha
mẹ thứ hai để chúng được tìm thấy.
Để làm cho lời giải thích này rõ ràng hơn một chút, hãy xem xét ví dụ sau:
Cha mẹ
con đẻ
Ở đây, một tập hợp con của tuyến đường được lấy từ cha mẹ đầu tiên (6,7,8) và được thêm vào
tuyến đường con. Tiếp theo, các vị trí tuyến đường bị thiếu sẽ được bổ sung theo thứ tự từ cha
mẹ thứ hai. Vị trí đầu tiên trong lộ trình của cha mẹ thứ hai là 9 không nằm trong lộ trình của
con cái nên vị trí này được thêm vào vị trí khả dụng đầu tiên. Vị trí tiếp theo trong lộ trình của
cha mẹ là 8 nằm trong lộ trình của con cái nên nó bị bỏ qua. Quá trình này tiếp tục cho đến khi
con cái không còn giá trị trống nào. Nếu được triển khai chính xác, kết quả cuối cùng sẽ là một
tuyến đường chứa tất cả các vị trí mà cha mẹ đã thực hiện mà không có vị trí nào bị thiếu hoặc
trùng lặp.
CODE:
Để bắt đầu, hãy tạo một lớp có thể mã hóa các thành phố.
City.java
Tạo một lớp chứa tất cả các thành phố đích cho chuyến tham quan
TourManager.java
Tiếp theo, cần một lớp có thể mã hóa các tuyến đường của, những tuyến đường này thường
được gọi là các chuyến tham quan, vì vậy sẽ tuân theo quy ước.
Tour.java
Tạo một lớp có thể chứa một số lượng các chuyến tham quan ứng viên.
Population.java
Tạo một lớp GA sẽ xử lý hoạt động của thuật toán di truyền và phát triển tập hợp các giải
pháp .
GA.java
Tạo phương thức chính của mình, thêm các thành phố và phát triển lộ trình cho bài toán
người bán hàng lưu động.
TSP_GA.java
KẾT QUẢ: