Documentation pour EO: Création d’un nouveau génome

Pour la création d’un nouveau génome utilisant EO, la plus simple  est de créer un nouveau projet à partir d’un template qui se trouve dans le dossier ‘$eo\tutorial\Template’. Ce tuto sert à expliquer comment le faire.

Sous Linux:

1. Choisissez un nom pour votre projet, par exemple ici je prends ‘MyGeno’.

2. ‘cd‘ vers ‘$eo\tutorial\Template’

3. Créez un dossier pour sauvegarder vos projets, nommé ‘MyProject’ par exemple: ‘mkdir   MyProject’

4.  Exécutez fichier ‘create.sh’ en prenant deux options: 1ère = nom de projet; 2ère = nom de dossier pour sauvegarder vos projets

./create.sh   OneMax   MyProject’

5. ‘cd’ vers ‘MyProject‘: ‘cd   ../MyProject’

6. ‘ls’ pour voir la structure du dossier:

  • MyGeno.cpp le fichier ‘main’
  • Makefile avec la direction par défaut eoMyGenoEA
  • eoMyGeno.h la classe du génome
  • eoMyGenoEvalFunc.h la classe de fitness
  • eoMyGenoInit.h la classe d’initialisation du génome
  • eoMyGenoMutation.h la classe de la mutation
  • eoMyGenoQuadCrossover.h la class du croisement
  • make_genotype_MyGeno.h la fonction aide à l’initialisation
  • make_op_MyGeno.h la fonction aide à la contrôle de paramètres des opérateurs
  • MyGenoLibEA.cpp l’autre fichier ‘main’ pour  séparer la représentation et la computation (comme  l’INTERFACE dans la POO).
  • make_MyGenoEA.cpp ici c’est la source pour les computations

7. Voilà tout est prêt. Tapez ‘make’ pour compliler votre projet ‘MyGeno’.

8. La seul chose à retenir c’est qu’il y a 4 fichiers suivants à modifier pour répondre à vos utilisations:

  • eoMyGeno.h pour définir votre génome
  • eoMyGenoxInit.h pour définir l’initialisation du génome
  • eoMyGenoMutation.h pour définir la mutation
  • eoMyGenoQuadCrossover.h pour définir le croisement

Allez-y! Faites démarrer votre console. Avant de passer à l’étape de MODIFICATION POUR UN NOUVEAU GENOME. Attendez un petit moment pour les utilisateurs Windows qui veulent également obtenir ces fichiers là.

Sous Windows:

C’est une question de renommer les fichier *.tmpl et/ou *.cpp –> *.cpp et/ou *.h

1. Créez un nouveau projet avec VC++, nommez ‘MyGeno’ et sauvegarder dans ‘$eo\tutorial\Template\MyProject’  (‘MyPorject’ est un nouveau dossier crée avant par vous même dans ‘$eo\tutorial\Template’).

2. Copiez/collez vers dossier ‘MyGeno’, puis  renommez tous les fichiers ci-dessus de manière indiquée:

  • MyStructSEA.cpp --> MyGenoEA.cpp le fichier ‘main’
  • eoMyStruct.tmpl --> eoMyGeno.h la classe du génome
  • evalFunc.tmpl --> eoMyGenoEvalFunc.h la classe de fitness
  • init.tmpl --> eoMyGenoInit.h la classe d’initialisation du génome
  • stat.tmpl --> eoMyGenoStat.h la classe de la statistique
  • mutation.tmpl --> eoMyGenoMutation.h la classe de la mutation
  • quadCrossover.tmpl --> eoMyGenoQuadCrossover.h la class du croisement
  • make_genotype_MyStruct.h --> make_genotype_MyGeno.h la fonction aide à l’initialisation
  • make_op_MyStruct.h --> make_op_MyGeno.h la fonction aide à la contrôle de paramètres des opérateurs
  • MyStructLibEA.cpp --> MyGenoLibEA.cpp l’autre fichier ‘main’ pour  séparer la représentation et la computation
  • make_MyStruct.cpp --> make_MyGenoEA.cpp ici c’est la source pour les computations

3. Ouvrez le fichier ‘MyGenoEA.cpp’, copiez/collez vers ‘MyGeno.cpp’ dans votre projet VC++.

4. Paramétrez votre projet pour qu’il puisse faire appeler la EO. Allez voir ce tuto pour savoir comment le faire.

5. Une fois que tous les paramètres nécessaires sont établis. Dans VC++ ‘Build\Build Solution’ pour compiler votre projet.

Eh bien…Bravo! Vous venez de créer avec succès un nouveau projet d’EO !!!

Et maintenant passons à la MODIFICATION d’UN NOUVEAU GENOME.

Prenons un exemple disponible dans la Leçon 5 du tutoriel proposé par l’auteur (‘$eo\tutorial\Template’). Ouvrez le fichier eoOneMax.h Il y aura deux points importants à voir attentivement afin de les ajuster:

  • La donnée pour construire un génome (un objet d’EO): La définition de donnée est à la fin de chaque classe et elle devrait être établi en privé (private).
  • Le constructeur défaut : Pour coder un objet d’EO, il faudrait forcement fournir un constructeur défaut et puis après il n’aura aucun constructeur d’autre qui seront appelés dans votre source code programme. Ils sont programmés à fonctionner systématiquement au moment vous déclarez une instance pour l’utilisation. Si vous souhaitez d’avoir quelques constructeurs pour l’initialiser une donnée spéifique, il vous faut coder pour vous même dans une autre classe tel que eoInit, eoEvalFunc…

Et voici un exemple complet de cette MODIFICATION que je voudrais vous donner pour finir cette partie.

Bonne continuation!

Tutu

3 thoughts on “Documentation pour EO: Création d’un nouveau génome

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s