Genetic Programming - Nhiệm vụ hạ cánh tàu vũ trụ

Nếu như bạn không nhớ hoặc chưa biết Giải Thuật Di Truyền Genetic Programming là gì thì có thể vào bài viết trước đây của mình để xem lại nhé.
Nhắc lại vấn đề
Nhiệm vụ của bạn là phải huấn luyện tàu vũ trụ hạ cánh trong điều kiện có trọng lực kéo xuống, và có gió ngẫu nhiên đẩy tàu văng sang trái hoặc sang phải. Tàu có các động cơ đẩy: TRÁI, PHẢI, LÊN. Tàu hạ cánh thành công nếu:
Hạ cánh vào vùng quy định
Vận tốc tiếp đất bao gồm vận tốc hướng xuống và vận tốc hướng ngang phải bé hơn các giá trị cho trước.
Setup cho bài toán Genetic Programming
Nhiễm sắc thể Chromosome là một chuỗi các hành động được thể hiện bằng 1 mảng (array) có kích thước cố định mà mỗi phần tử là đại diện cho một hành động cụ thể tại mỗi frame liên tiếp nhau có giá trị đại diện từ \(0-3\):
\(0\) - Không làm gì cả
\(1\) - Bay lên
\(2\) - Bay sang trái
\(3\) - Bay sang phải
Từ đó, các phương pháp lai ghép (crossover), phương pháp biến dị (mutate) hoàn toàn giống như phương pháp của các bài toán trước.
Demo
Ở demo này, mình vẽ ra tất cả các tàu vũ trụ trong quần thể, và chỉ xuất phát tại một điểm cố định với các setup như sau:
Chromosome length = 160
Tốc độ hạ cánh an toàn phương dọc \(v_{\text{y_safe}} = 2.0\)
Tốc độ hạ cánh an toàn phương ngang \(v_{\text{x_safe}} = 1.2\)
Subscribe to my newsletter
Read articles from Legos Light directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
