====== 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. - [[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/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é. - 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.