Navigation



Le run de Programmation Génétique

J'utilise une version modifiée par mes soins du logiciel TinyGP développé par Riccardo Poli de l'Université d'Essex.
Voici le log de l'exécution du programme :

-- TINY GP (Java version v 0.05) --
SEED=-1
MAX_LEN=10000
POPSIZE=1000
DEPTH=5
CROSSOVER_PROB=0.9
PMUT_PER_NODE=0.05
MIN_RANDOM=-1.0
MAX_RANDOM=1.0
GENERATIONS=100
TSIZE=3

Quelques informations :

  • La variable MAX_LEN indique la taille maximale d'un individu. Un individu contiendra donc au maximum 10000 éléments. Un élément correspondant à un terminal ou une fonction ;
  • DEPTH indique la profondeur des arbres représentant les programmes lors de l'initialisation. Les arbres ayant tendance à l'embonpoint du fait des croisements, il est sage de se limiter à des arbres de taille faible ;
  • CROSSOVER_PROB est la probabilité de croisement (ou crossover). Durant, l'exécution du programme à la phase de recombinaison, on tire une valeur aléatoire entre [0,0-1,0]. Si cette valeur est inférieure à 0,9, on réalise un croisement entre deux programmes, (cf ici) ;
  • PMUT_PER_NODE, la probabilité de mutation par noeud. Le principe est le même que pour la probabilité de croisement, la différence se situe dans le fait que l'on va modifier un noeud de l'arbre (un terminal est remplacé par un autre terminal, une fonction est remplacée par une autre) ;
  • MIN et MAX_RANDOM indiquent respectivement les bornes inférieure et supérieure pour la génération des constantes aléatoires. Nos 100 constantes seront donc choisies dans l'intervalle [-1,0;+1,0] ;
  • TSIZE indique la taille du tournoi ; en effet, nous allons séléctionner les individus les mieux adaptés pour participer à la recombinaison et à la mutation. La taille du tournoi de 3 indique qu'à chaque fois que nous avons besoin d'un individu, nous en sélectionnons 3 au hasard et nous prenons le meilleur (au niveau fitness) parmi ces 3 individus

examinons maintenant le log de l'exécution.



Valid XHTML 1.0 Strict