-
โปรแกรมจำลองวิวัฒนาการของรถยนต์ด้วยอัลกอริทึมพันธุกรรม
- มีเป้าหมายเพื่อทำให้รูปร่าง 2 ล้อแบบสุ่มวิวัฒนาการเป็นรถยนต์ผ่านหลายชั่วรุ่นด้วยการใช้อัลกอริทึมพันธุกรรม
- อ้างอิงจาก BoxCar2D แต่เขียนขึ้นใหม่ทั้งหมดตั้งแต่ต้น และใช้เพียงฟิสิกส์เอนจินเดียวกัน (box2d)
- ใช้ไลบรารี seedrandom.js ของ David Bau
-
การควบคุมและการตั้งค่า
- มีฟีเจอร์
Save/Restore Populationสำหรับบันทึกและกู้คืนประชากรปัจจุบันไว้ในเครื่อง - สามารถปิดหรือเปิดการวาดภาพผ่านสวิตช์
Surpriseเพื่อเพิ่มความเร็วของการจำลองได้ New Populationจะรีสตาร์ตเฉพาะประชากรรถยนต์ โดยคงแทร็กเดิมไว้- แทร็กเดียวกันจะถูกสร้างขึ้นเสมอด้วย seed เดียวกัน ทำให้แข่งขันกับเพื่อนได้
Mutation rateคือความน่าจะเป็นที่ยีนแต่ละตัวของแต่ละสิ่งมีชีวิตจะกลายพันธุ์เป็นค่าสุ่มเมื่อชั่วรุ่นใหม่ถือกำเนิดMutation sizeคือช่วงที่ยีนแต่ละตัวสามารถกลายพันธุ์ได้ โดยยิ่งตัวเลขเล็กก็ยิ่งใกล้กับค่าเดิมElite clonesหมายถึงรถยนต์อันดับสูงสุดจำนวน n คันที่จะถูกคัดลอกไปยังชั่วรุ่นถัดไปView top replayจะหยุดการจำลองปัจจุบันชั่วคราวและแสดงรถยนต์ที่ทำผลงานดีที่สุด
- มีฟีเจอร์
-
กราฟ
- สีแดง: คะแนนสูงสุดของแต่ละชั่วรุ่น
- สีเขียว: ค่าเฉลี่ยของรถยนต์ 10 คันที่ดีที่สุดในแต่ละชั่วรุ่น
- สีน้ำเงิน: ค่าเฉลี่ยของทุกชั่วรุ่น
-
องค์ประกอบของจีโนม
- รูปร่าง (1 ยีนต่อจุดยอด รวมทั้งหมด 8 ยีน)
- ขนาดล้อ (1 ยีนต่อล้อ รวมทั้งหมด 2 ยีน)
- ตำแหน่งล้อ (1 ยีนต่อล้อ รวมทั้งหมด 2 ยีน)
- ความหนาแน่นของล้อ (1 ยีนต่อล้อ รวมทั้งหมด 2 ยีน) - ยิ่งมืดยิ่งมีความหนาแน่นสูง
- ความหนาแน่นของแชสซี (1 ยีน) - ยิ่งมืดยิ่งมีความหนาแน่นสูง
-
ข้อมูลเพิ่มเติม
- การจำลองไม่เป็นแบบกำหนดแน่นอน จึงอาจทำให้รถยนต์ที่ดีที่สุดไม่แสดงประสิทธิภาพได้อย่างสม่ำเสมอ
- ความซับซ้อนของภูมิประเทศจะเพิ่มขึ้นตามระยะทาง
- ตอนนี้โค้ดเปิดให้ใช้งานบน GitHub พร้อมการมีส่วนร่วมจากชุมชนแล้ว
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
สรุปได้ดังนี้:
boxcar2dแต่ทำโดยไม่ใช้ Flash)