Ceci est une ancienne révision du document !
Ajout d'un nouvel algorithme
Supposons que vous vouliez ajouter l'algorithme d'optimisation Super
à nomad. Voici une marche à suivre.
- Créer un nouveau répertoire Super sous src/Algos/, soit src/algos/Super.
- Pour se simplifier la tâche, on peut se baser sur un algorithme simple, soit LatinHypercubeSampling. Copier les fichiers de LatinHypercubeSampling dans le répertoire Super.
- Changer les noms des fichiers (ex. LH.hpp → Super.hpp).
- Changer les noms des classes dans les fichiers.
- Enlever le code pour garder une coquille vide. Dans la méthode runImp, ajouter une ligne de vérification:
std::cout « “Bonjour c'est Super!” « std::endl;
- Éditer le fichier src/CMakeLists.txt pour ajouter les nouveaux fichiers.
- Ajouter un paramètre pour l'utilisation de l'algorihme, par exemple
SUPER_OPTIMIZATION
. - Éditer les fichiers src/Util/StopReason.hpp et StopReason.cpp pour ajouter des StopReasons de base: se baser sur LH pour commencer.
- Éditer les fichiers src/Type/StepType.hpp et StepType.cpp pour ajouter un StepType, par exemple ALGORITHM_SUPER: se baser sur ALGORITHM_LH.
- Éditer le fichier src/MainStep.cpp pour s'assurer que lorsque le paramètre
SUPER_OPTIMIZATION
est true, l'optimization Super est exécutée. Se baser sur LH! - Compiler le tout. Résoudre les problèmes de compilation.
- Rouler nomad avec le paramètre
SUPER_OPTIMIZATION
à true et vérifier que le message “Bonjour c'est Super!” est affiché.
Ensuite, modifier les méthodes runImp, generateTrialPoints, etc, pour implémenter le véritable algorithme Super.