-
Genetik algoritma kullanan otomobil evrimi simülasyon programı
- Amaç, genetik algoritma kullanarak rastgele 2 tekerlekli şekilleri nesiller boyunca otomobillere evrimleştirmektir
- BoxCar2D temel alınmış olsa da sıfırdan yazılmıştır ve yalnızca aynı fizik motorunu (
box2d) kullanır - David Bau'nun
seedrandom.jskütüphanesi kullanılır
-
Kontroller ve ayarlar
- Mevcut popülasyonu yerelde kaydedip geri yükleyebilen
Save/Restore Populationözelliği vardır Surpriseanahtarıyla çizimi kapatıp açarak simülasyon hızı artırılabilirNew Population, parkuru koruyup yalnızca otomobil popülasyonunu yeniden başlatır- Aynı seed ile her zaman aynı parkur oluşturulur; böylece arkadaşlarla rekabet etmek mümkündür
Mutation rate, yeni nesil doğarken her bireyin her geninin rastgele bir değere mutasyona uğrama olasılığıdırMutation size, her genin mutasyona uğrayabileceği aralıktır; sayı küçüldükçe özgün değere daha yakın olurElite clones, bir sonraki nesle kopyalanacak en iyi n otomobili ifade ederView top replay, mevcut simülasyonu duraklatır ve en yüksek performanslı otomobili gösterir
- Mevcut popülasyonu yerelde kaydedip geri yükleyebilen
-
Grafik
- Kırmızı: her neslin en yüksek skoru
- Yeşil: her nesildeki en iyi 10 otomobilin ortalaması
- Mavi: tüm neslin ortalaması
-
Genom yapısı
- Şekil (köşe başına 1, toplam 8 gen)
- Tekerlek boyutu (tekerlek başına 1, toplam 2 gen)
- Tekerlek konumu (tekerlek başına 1, toplam 2 gen)
- Tekerlek yoğunluğu (tekerlek başına 1, toplam 2 gen) - koyulaştıkça yoğunluk artar
- Şasi yoğunluğu (1 gen) - koyulaştıkça yoğunluk artar
-
Ek bilgiler
- Simülasyon deterministik olmadığından en iyi otomobil her zaman tutarlı performans göstermeyebilir
- Mesafeye göre arazi karmaşıklığı artar
- Kod artık GitHub'da, topluluk katkılarıyla birlikte kullanılabilir
1 yorum
Hacker News görüşleri
Özetle şöyle:
Surprisedüğmesine basarak hızlıca birçok nesilden geçilebiliyor. Mutasyon oranı ve mutasyon büyüklüğünü ayarlayıp zaman içindeki evrim sürecini izlemek ilginçcompliancegeni olsaydı ilginç olurdu. Çoğu çalıştırmada sonuçların Tron motosikleti benzeri bir şekle yakınsadığı görülüyorboxcar2d'ye benziyor ama Flash olmadan uygulanmış)