schmorb
nom | schmorb |
langue | c++ |
OS | windows |
disponibilité | binary |
statut | stable |
licence | ? |
catégorie | IA |
Résumé
Ce programme, développé avec un élève de l'ENST, illustre à travers un exemple simple l'utilisation de réseaux de neurones et d'algorithmes génétiques.
Documentation
Des 'créatures' disposant de 5 capteurs (détection de nouriture sur 3*60 degrès, nourriture disponible, vie) et de 4 effecteurs (avancer, tourner a droite et a gauche, manger) évoluent sur une surface, sur laquelle de la nouriture aparait
aléatoirement. Chaque créature perd de la 'vie' en permanence, et en regagne a chaque fois qu'elle mange.
Une fois toutes les créatures 'mortes', un croisement est effectué entre les 20% meilleures (celles ayant survécu le plus longtemps) pour regénérer toute la population.
Le réseau de neurone utilisé est un réseau a trois couches (5*5*4 neurones), chaque neurone d'une couche étant relié a tous les neurones de la précédente. Les poids de chaque couche forment un gène.
L'algorithme génétique crée un nouveau code a partir de deux autres en selectionnant au hasard pour chaque gène celui de l'un des parents, avec une certaine probabilité de mutations et de crossing-over.
Touches:
s: sauvegarde l'etat actuel (fichier dump.schmorbs)
l: recharge l'etat sauvegardé
o: ajoute de la nouriture
p: enlève de la nouriture
a: stoppe l'affichage, augmente enormement la vitesse
b: réactive l'affichage
clique gauche et déplacement souris: rotation de la caméra
Téléchargement
schmorb.exe | binary executable | 142.79 kilobytes |
glut32.dll | OpenGL utility DLL (required if you don't already have it) | 151 kilobytes |