-
Chương trình mô phỏng sự tiến hóa của ô tô bằng thuật toán di truyền
- Mục tiêu là dùng thuật toán di truyền để cho các hình dạng 2 bánh ngẫu nhiên tiến hóa thành ô tô qua nhiều thế hệ
- Dựa trên BoxCar2D nhưng được viết lại từ đầu, chỉ sử dụng cùng một engine vật lý (box2d)
- Sử dụng thư viện seedrandom.js của David Bau
-
Điều khiển và thiết lập
- Có tính năng
Save/Restore Populationđể lưu và khôi phục quần thể hiện tại trên máy cục bộ - Có thể bật/tắt vẽ bằng công tắc
Surpriseđể tăng tốc độ mô phỏng New Populationchỉ khởi động lại quần thể ô tô, vẫn giữ nguyên đường đua- Cùng một seed sẽ luôn tạo ra cùng một đường đua, nên có thể thi đấu với bạn bè
Mutation ratelà xác suất mỗi gene của từng cá thể bị đột biến thành giá trị ngẫu nhiên khi thế hệ mới được sinh raMutation sizelà phạm vi mỗi gene có thể đột biến; số càng nhỏ thì càng gần với giá trị gốcElite cloneslà n chiếc xe đứng đầu sẽ được sao chép sang thế hệ tiếp theoView top replaysẽ tạm dừng mô phỏng hiện tại và hiển thị chiếc xe có hiệu năng tốt nhất
- Có tính năng
-
Biểu đồ
- Màu đỏ: điểm cao nhất của mỗi thế hệ
- Màu xanh lá: trung bình của 10 chiếc xe tốt nhất mỗi thế hệ
- Màu xanh dương: trung bình của toàn bộ thế hệ
-
Cấu trúc genome
- Hình dạng (1 gene cho mỗi đỉnh, tổng cộng 8 gene)
- Kích thước bánh xe (1 gene cho mỗi bánh, tổng cộng 2 gene)
- Vị trí bánh xe (1 gene cho mỗi bánh, tổng cộng 2 gene)
- Mật độ bánh xe (1 gene cho mỗi bánh, tổng cộng 2 gene) - càng tối thì mật độ càng cao
- Mật độ khung gầm (1 gene) - càng tối thì mật độ càng cao
-
Thông tin bổ sung
- Mô phỏng không mang tính tất định, nên chiếc xe tốt nhất có thể không luôn cho hiệu năng ổn định
- Độ phức tạp của địa hình tăng dần theo khoảng cách
- Giờ đây mã nguồn đã có trên GitHub và sẵn sàng cho đóng góp từ cộng đồng
1 bình luận
Ý kiến trên Hacker News
Tóm tắt như sau:
boxcar2dtương tự, nhưng được triển khai không cần Flash)