Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
groupe-dfo-bbo:projets:nomad:nouvel-algorithme [2021/07/02 15:35] rochvivi créée |
groupe-dfo-bbo:projets:nomad:nouvel-algorithme [2021/07/02 15:42] (Version actuelle) rochvivi |
||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
Supposons que vous vouliez ajouter l'algorithme d'optimisation ''Super'' à nomad. Voici une marche à suivre. | 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. | + | - 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. | + | - 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 fichiers (ex. LH.hpp -> Super.hpp). | ||
- Changer les noms des classes dans les fichiers. | - 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: | - 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; | std::cout << "Bonjour c'est Super!" << std::endl; | ||
- | - Éditer le fichier src/CMakeLists.txt pour ajouter les nouveaux fichiers. | + | |
+ | - Éditer le fichier ''src/CMakeLists.txt'' pour ajouter les nouveaux fichiers. | ||
- [[groupe-dfo-bbo:projets:nomad:ajout-d-un-parametere|Ajouter un paramètre]] pour l'utilisation de l'algorihme, par exemple ''SUPER_OPTIMIZATION''. | - [[groupe-dfo-bbo:projets:nomad:ajout-d-un-parametere|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/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 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! | + | - É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. | - 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é. | - Rouler nomad avec le paramètre ''SUPER_OPTIMIZATION'' à true et vérifier que le message "Bonjour c'est Super!" est affiché. | ||
+ | - Noter que Super est de la classe Algorithm, donc de la classe Step, et qu'un Step a toujours les méthodes ''start'', ''run'' et ''end''. ''runImp'' est l'implémentation spécifique de run pour la classe. Voir l'information sur l'[[groupe-dfo-bbo:projets:nomad:architecture:steps-and-algorithms|architecture]]. | ||
Ensuite, modifier les méthodes runImp, generateTrialPoints, etc, pour implémenter le véritable algorithme Super. | Ensuite, modifier les méthodes runImp, generateTrialPoints, etc, pour implémenter le véritable algorithme Super. | ||