Ajout d'un paramètre
Voici les étapes à suivre pour ajouter un nouveau paramètre:
- Éditer un fichier
.txt
dans le répertoiresrc/Attributes
. Pour ajouter un paramètre d'algorithme ou de search, on peut utiliser le fichierrunAttributesDefinition.txt
. - Noter qu'il y a des paramètres pour la définition du problème, pour la cache, pour l'output, etc. La majorité du temps, ce sera un paramètre d'algorithme que l'on veut ajouter, donc un paramètre de “run”.
- Les paramètres de run sont divisés en plusieurs fichiers selon leur algorithme. Pour le développement, utiliser
runAttributesDefinition.txt
est suffisant, quitte à créer un nouveau fichier plus tard si jugé nécessaire. - Se baser sur la syntaxe des autres paramètres pour ajouter un nouveau paramètre. Les détails de la syntaxe sont indiqués au début du fichier.
- Nom du paramètre (ex.
MY_NEW_SEARCH
) - Type du paramètre (ex.
bool
) - Valeur par défaut (ex.
false
) - Short info
- Long info (description lorsqu'on exécute la commande
nomad -h MY_NEW_SEARCH
) - keywords
- flags optionnels.
- Les champs short info, long info et keywords sont délimités par
\(
et\)
. - Compiler nomad.
- Vérifier que le paramètre est bien reconnu:
nomad -h MY_NEW_SEARCH
. - Pour utiliser le paramètre dans le code, utiliser la méthode
getAttributeValue
avec le type du paramètre. Par exemple:runParams→getAttributeValue<bool>(“MY_NEW_SEARCH”)
. - S'il y a des validation à faire sur la valeur du paramètre, elles peuvent être rajoutées dans la méthode
checkAndComply()
correspondante. Par exemple, voir:RunParameters::checkAndComply()
dans le fichierParam/RunParameters.cpp
. Exemple de validation:
auto seed = getAttributeValueProtected<int>("SEED" ,false); if ( seed < 0) { throw NOMAD::Exception(__FILE__,__LINE__, "Parameters check: SEED must be non-negative" ); }