-
Programme de simulation de l’évolution de voitures à l’aide d’un algorithme génétique
- L’objectif est de faire évoluer, au fil des générations, des formes aléatoires à deux roues pour en faire des voitures à l’aide d’un algorithme génétique
- Basé sur BoxCar2D, mais réécrit depuis zéro, avec uniquement le même moteur physique (
box2d) - Utilise la bibliothèque
seedrandom.jsde David Bau
-
Contrôles et paramètres
- Une fonction
Save/Restore Populationpermet d’enregistrer et de restaurer localement la population actuelle - Le bouton
Surprisepermet d’activer ou désactiver le rendu pour accélérer la simulation New Populationredémarre uniquement la population de voitures tout en conservant le circuit- Le même seed génère toujours le même circuit, ce qui permet de rivaliser avec ses amis
Mutation ratecorrespond à la probabilité que chaque gène de chaque individu mute vers une valeur aléatoire à la naissance d’une nouvelle générationMutation sizecorrespond à l’amplitude possible de mutation de chaque gène ; plus la valeur est petite, plus elle reste proche de la valeur d’origineElite clonesdésigne les n meilleures voitures copiées dans la génération suivanteView top replaymet en pause la simulation en cours et affiche la voiture la plus performante
- Une fonction
-
Graphiques
- Rouge : meilleur score de chaque génération
- Vert : moyenne des 10 meilleures voitures de chaque génération
- Bleu : moyenne de l’ensemble de la génération
-
Composition du génome
- Forme (1 par sommet, soit 8 gènes au total)
- Taille des roues (1 par roue, soit 2 gènes au total)
- Position des roues (1 par roue, soit 2 gènes au total)
- Densité des roues (1 par roue, soit 2 gènes au total) — plus c’est sombre, plus la densité est élevée
- Densité du châssis (1 gène) — plus c’est sombre, plus la densité est élevée
-
Informations supplémentaires
- La simulation n’est pas déterministe, il est donc possible que la meilleure voiture n’affiche pas des performances constantes
- La complexité du terrain augmente avec la distance
- Le code est désormais disponible sur GitHub avec des contributions de la communauté
1 commentaires
Avis Hacker News
En résumé :
boxcar2d, similaire mais implémenté sans Flash)