Log de l'exécution
J'ai extrait de l'exécution les lignes suivantes qui indiquent l'évolution de la fitness de la population (composée de 100 individus-programmes) au cours de l'exécution.
Generation=0 Avg Fitness=6224.11758796276 Best Fitness=27.628761985749826 Avg Size=11.23 mutations=0 crossover=0Generation=1 Avg Fitness=153.67249673346274 Best Fitness=27.475235268267713 Avg Size=12.492 mutations=71 crossover=915
Generation=2 Avg Fitness=423.4060243993154 Best Fitness=27.033959822324963 Avg S mutations=143 crossover=1824
Generation=3 Avg Fitness=55.766933894638285 Best Fitness=26.669586445271523 Avg Size=24.086
...
Generation=10 Avg Fitness=55.10277699453366 Best Fitness=24.452780507178584 Avg Size=14.978 mutations=888 crossover=8975
...
Generation=50 Avg Fitness=6.570905606445787 Best Fitness=1.0349458736199555 Avg Size=923.566 mutations=108206 crossover=44920
...
Generation=75 Avg Fitness=14.45851301909304 Best Fitness=0.47319606434410194 Avg Size=4050.532 mutations=336761 crossover=67441
...
Generation=99 Avg Fitness=4.985367009853778 Best Fitness=0.40698493095765875 Avg Size=7490.518 mutations=1331733 crossover=89109
Generation=100 Avg Fitness=4.985367009853778 Best Fitness=0.40698493095765875 Avg Size=7490.518 mutations=1331733 crossover=89109
PROBLEM SOLVED
Quelques informations sur le déroulement de cette exécution du moteur de programmation génétique, on peut voir qu'à la génération 0, c'est-à--dire lors de l'initialisation, la fitness moyene, des individus est de 6200 (ce qui est très mauvais) et la fitness du meilleur individu est de 27,6 (ce qui est plutôt moyen).
La taille des individus est de 11,23 (ce qui signifie qu'en moyenne les individus sont constitués d'un peu plus de 11 nœuds). Comme l'évolution n'a pas démarré, les nombres de mutations et de croisements es sont nuls.
j'ai extrait quelques lignes du log de l'exécution que la fitness moyenne a tendance à diminuer (mais comme des nouveaux sont générés, la fitness peut brutalement remonter, par contre la fitness du meilleur individu ne peut que diminuer car on « garde » cet individu pour qu'il ne soit jamais détruit.
Quelques remarques :
- à la dernière génération, le meilleur individu a une fitness de 0,4 ce qui est tout à fait correct
- par contre, la taille moyenne des individus s'établit à 7490 (ce qui signifie qu'en moyenne un individu comporte plus ou moins 7500 nœuds !).
- c'est un des domaines de recherche actif dans ce domaine, comment éviter l'explosion de la taille des individus. Car évaluer des programmes faisait environ 7500 nœuds ralentit bien évidemment le calcul d'une génération
- À titre totalement indicatif sur ma machine un PC sous Linux équipé d'un Intel i5-4570 à 3,2 Ghz et 8 Go de RAM, les 10 premières générations s'exécutent en moins de 10 secondes, les dernières générations nécessitent chacune environ une dizaine de secondes !