/*---------------------------------------------------------------------------------*/
/*  NOMAD - Nonlinear Optimization by Mesh Adaptive Direct Search -                */
/*                                                                                 */
/*  NOMAD - Version 4 has been created and developed by                            */
/*                 Viviane Rochon Montplaisir  - Polytechnique Montreal            */
/*                 Christophe Tribes           - Polytechnique Montreal            */
/*                                                                                 */
/*  The copyright of NOMAD - version 4 is owned by                                 */
/*                 Charles Audet               - Polytechnique Montreal            */
/*                 Sebastien Le Digabel        - Polytechnique Montreal            */
/*                 Viviane Rochon Montplaisir  - Polytechnique Montreal            */
/*                 Christophe Tribes           - Polytechnique Montreal            */
/*                                                                                 */
/*  NOMAD 4 has been funded by Rio Tinto, Hydro-Québec, Huawei-Canada,             */
/*  NSERC (Natural Sciences and Engineering Research Council of Canada),           */
/*  InnovÉÉ (Innovation en Énergie Électrique) and IVADO (The Institute            */
/*  for Data Valorization)                                                         */
/*                                                                                 */
/*  NOMAD v3 was created and developed by Charles Audet, Sebastien Le Digabel,     */
/*  Christophe Tribes and Viviane Rochon Montplaisir and was funded by AFOSR       */
/*  and Exxon Mobil.                                                               */
/*                                                                                 */
/*  NOMAD v1 and v2 were created and developed by Mark Abramson, Charles Audet,    */
/*  Gilles Couture, and John E. Dennis Jr., and were funded by AFOSR and           */
/*  Exxon Mobil.                                                                   */
/*                                                                                 */
/*  Contact information:                                                           */
/*    Polytechnique Montreal - GERAD                                               */
/*    C.P. 6079, Succ. Centre-ville, Montreal (Quebec) H3C 3A7 Canada              */
/*    e-mail: nomad@gerad.ca                                                       */
/*                                                                                 */
/*  This program is free software: you can redistribute it and/or modify it        */
/*  under the terms of the GNU Lesser General Public License as published by       */
/*  the Free Software Foundation, either version 3 of the License, or (at your     */
/*  option) any later version.                                                     */
/*                                                                                 */
/*  This program is distributed in the hope that it will be useful, but WITHOUT    */
/*  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or          */
/*  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License    */
/*  for more details.                                                              */
/*                                                                                 */
/*  You should have received a copy of the GNU Lesser General Public License       */
/*  along with this program. If not, see <http://www.gnu.org/licenses/>.           */
/*                                                                                 */
/*  You can find information on the NOMAD software at www.gerad.ca/nomad           */
/*---------------------------------------------------------------------------------*/
//////////// THIS FILE MUST BE CREATED BY EXECUTING WriteAttributeDefinitionFile ////////////
//////////// DO NOT MODIFY THIS FILE MANUALLY ///////////////////////////////////////////////

#ifndef __NOMAD_4_5_RUNATTRIBUTESDEFINITION__
#define __NOMAD_4_5_RUNATTRIBUTESDEFINITION__

_definition = {
{ "ADD_SEED_TO_FILE_NAMES",  "bool",  "true",  " The flag to add seed to the file names ",  " \n  \n . If \'yes\', the seed is added to the name of output file provided by STATS_FILE \n  \n . Argument: one boolean (\'yes\' or \'no\') \n  \n . Example: ADD_SEED_TO_FILE_NAMES no \n  \n . Default: true\n\n",  "  advanced seed seeds random number run stat stats file history solution solutions  "  , "false" , "false" , "true" },
{ "ANISOTROPIC_MESH",  "bool",  "true",  " MADS uses anisotropic mesh for generating directions ",  " \n  \n . MADS uses anisotropic mesh for generating directions \n  \n . Argument: one boolean ('yes' or 'no') \n  \n . Example: ANISOTROPIC_MESH no \n  \n . Default: true\n\n",  "  advanced mads direction directions anisotropic anisotropy aniso  "  , "true" , "true" , "true" },
{ "ANISOTROPY_FACTOR",  "NOMAD::Double",  "0.1",  " MADS anisotropy factor for mesh size change ",  " \n  \n . Set anisotropy_factor for mesh relative coarsening/refining if the anisotropic \n   mesh is enabled. \n  \n . Argument: one positive real \n  \n . Example: ANISOTROPY_FACTOR 0.05 \n  \n . Default: 0.1\n\n",  "  advanced mads direction directions anisotropic anisotropy aniso  "  , "true" , "true" , "true" },
{ "SEARCH_METHOD_MESH_PROJECTION",  "bool",  "true",  " Projection on mesh for trial points from a search method ",  " \n  \n . Flag to project on mesh search methods trial points. \n  \n . Disabling mesh projection breaks Mads theory. \n  \n . Need mesh projection if some variables are granular. \n  \n . Argument: bool \n  \n . Example: SEARCH_METHOD_MESH_PROJECTION false \n  \n . Default: true\n\n",  "  advanced mads mesh search projection project trial points  "  , "true" , "true" , "true" },
{ "DIRECTION_TYPE",  "NOMAD::DirectionTypeList",  "ORTHO N+1 QUAD",  " Direction types for Poll steps ",  " \n . Direction types used by Poll steps (Mads and CS) to generate trial points. \n  \n . Several direction types can be defined (one direction type per line). \n  \n . Arguments: direction type in: \n     ORTHO 2N      : OrthoMADS, 2n \n     ORTHO N+1 NEG : OrthoMADS, n+1, with (n+1)th dir = negative sum of \n                                                        the first n dirs \n     ORTHO N+1 QUAD: OrthoMADS, n+1, with (n+1)th dir from quad \n                                                      model optimization \n     N+1 UNI       : MADS with n+1, uniform distribution of dirs \n     SINGLE        : Single direction \n     DOUBLE        : Two opposite directions \n     CS            : Coordinate directions (only with CS_OPTIMIZATION) \n     USER_POLL     : Poll method for generating unit direction(s) must be \n                     implemented in a callback function. This is available \n                     only in library mode. See example in \n                     $NOMAD_HOME/examples/advanced/library/CustomPollMethod. \n  \n . Examples: \n     . DIRECTION_TYPE N+1 UNI \n     . DIRECTION_TYPE ORTHO 2N \n     . DIRECTION_TYPE DOUBLE \n  \n . Default: ORTHO N+1 QUAD\n\n",  "  advanced poll direction ortho  "  , "true" , "false" , "false" },
{ "DIRECTION_TYPE_SECONDARY_POLL",  "NOMAD::DirectionTypeList",  "DOUBLE",  " Direction types for Mads secondary poll ",  " \n . Direction types for the secondary poll \n  \n . Several direction types can be defined (one direction type per line). \n  \n . Arguments: same as DIRECTION_TYPE \n  \n . If DIRECTION_TYPE is ORTHO 2N or ORTHO N+1 NEG is defined, then the default \n   value for DIRECTION_TYPE_SECONDARY_POLL is DOUBLE. Otherwise, it is SINGLE. \n  \n . Examples: \n     . DIRECTION_TYPE_SECONDARY_POLL ORTHO 2N \n     . DIRECTION_TYPE_SECONDARY_POLL SINGLE \n  \n . See also: DIRECTION_TYPE RHO \n  \n . Default: DOUBLE\n\n",  "  advanced poll direction primary secondary  "  , "true" , "false" , "false" },
{ "TRIAL_POINT_MAX_ADD_UP",  "size_t",  "0",  " Max number of trial points ",  " \n . Complete the trial points obtained from the primary and secondary poll \n   directions to reached the given target number. \n  \n . D \n  \n . Added trial points are obtained by repeating SINGLE direction \n  (see DIRECTION_TYPE) trial point creation. \n  \n . If the number is not increased by a adding a SINGLE direction we stop adding. \n  \n . When the number of trial points obtained from poll directions (primary and \n   secondary) is above the given target nothing is done. \n  \n . This strategy can be used to complete the number of trial points in a block \n   (see BB_MAX_BLOCK_SIZE). In this case, both attributes can have the same value. \n  \n . Arguments: size_t \n  \n . Example: \n     . DIMENSION 2 \n     . DIRECTION_TYPE ORTHO N+1 NEG \n     . BB_MAX_BLOCK_SIZE 10 \n     . TRIAL_POINT_MAX_ADD_UP 10 \n  \n . See also: DIRECTION_TYPE BB_MAX_BLOCK_SIZE \n  \n . Default: 0\n\n",  "  advanced poll direction primary secondary block parallel  "  , "true" , "true" , "true" },
{ "ORTHO_MESH_REFINE_FREQ",  "size_t",  "1",  " Control mesh refinement frequency ",  " \n . When mesh refinement is called, perform it once every given frequency value. \n  \n . Frequency value below 1 has no effect. Increase frequency value to prevent \n   the mesh to collapse to quickly when the cone of progress directions is narrow. \n  \n . Arguments: size_t \n  \n . Examples: \n     . ORTHO_MESH_REFINE_FREQ 10 \n  \n . Default: 1\n\n",  "  advanced mesh refine refinement ortho  "  , "true" , "false" , "false" },
{ "FRAME_CENTER_USE_CACHE",  "bool",  "false",  " Find best points in the cache and use them as frame centers ",  " \n . When this parameter is true, when the Update step occurs, the points with \n   the best values are found in the Cache. Multiple points may have the same \n   value. These points are all used as frame centers for the next Search and \n   Poll steps. \n  \n . When this parameter is false, the frame centers (one feasible and one \n   infeasible) are kept from previous iterations. This is the classical \n   MADS algorithm. \n  \n . Default: false\n\n",  "  advanced  "  , "true" , "true" , "true" },
{ "H_MAX_0",  "NOMAD::Double",  "NOMAD::INF",  " Initial value of hMax. ",  " \n . Initial value of hMax. Used for progressive barrier (PB) constraints. \n  \n . Argument: one positive real. \n  \n . Points x such that h(x) > hMax are rejected. h measures the feasibility, or \n   how much the constraints are violated. \n  \n . Example: H_MAX_0 100.0 \n  \n . Default: NOMAD::INF\n\n",  "  advanced hmax h_max constraint constraints pb feasibility progressive barrier  "  , "true" , "false" , "true" },
{ "HOT_RESTART_FILE",  "std::string",  "hotrestart.txt",  " The name of the hot restart file ",  " \n  \n . Name of the file where the information about hot restart is kept. \n  \n  \n . Default: hotrestart.txt\n\n",  "  advanced hot restart file files file interrupt  "  , "false" , "false" , "true" },
{ "HOT_RESTART_ON_USER_INTERRUPT",  "bool",  "false",  " Flag to perform a hot restart on user interrupt ",  " \n  \n . If true, when NOMAD runs and the user does an interruption (CTRL+C), \n   then the parameters can be modified. Upon pressing CTRL+D, the resolution \n   continues where it was stopped, using the modified parameters. \n  \n . If false, when NOMAD runs and the user does an interruption (CTRL+C), \n   the resolution ends. \n  \n . Default: false\n\n",  "  advanced hot restart file files interrupt  "  , "false" , "false" , "true" },
{ "HOT_RESTART_READ_FILES",  "bool",  "false",  " Flag to read hot restart files ",  " \n  \n . If true, the hot restart files (hotRestart.txt and CACHE_FILE) are read \n   when NOMAD is started. If NOMAD is ran twice, the second run starts from \n   where the first run ended. \n  \n . If false, the hot restart files are ignored when NOMAD is started. Two runs \n   in a row will start from the same configuration. \n  \n . See also: HOT_RESTART_WRITE_FILES, CACHE_FILE \n  \n . Default: false\n\n",  "  advanced hot restart file files interrupt  "  , "false" , "false" , "true" },
{ "HOT_RESTART_WRITE_FILES",  "bool",  "false",  " Flag to write hot restart files ",  " \n  \n . If true, when NOMAD ends, write the hot restart files (hotRestart.txt and \n   CACHE_FILE). \n  \n . See also: HOT_RESTART_READ_FILES, CACHE_FILE \n  \n . Default: false\n\n",  "  advanced hot restart file files interrupt  "  , "false" , "false" , "true" },
{ "MAX_ITERATIONS",  "size_t",  "INF",  " The maximum number of iterations of the MADS algorithm ",  " \n  \n . Maximum number of iterations \n  \n . Argument: one positive integer. \n  \n . Example: MAX_ITERATIONS 1000 \n  \n . Default: INF\n\n",  "  advanced max maximum iteration iterations stop stops stopping criterion criterions  "  , "true" , "true" , "true" },
{ "MAX_ITERATION_PER_MEGAITERATION",  "size_t",  "INF",  " Maximum number of Iterations to generate for each MegaIteration. ",  " \n . Maximum number of Iterations to generate for each MegaIteration. \n  \n . Argument: one positive integer. \n  \n . If there are few points in the barrier, this parameter has no effect. \n  \n . If FRAME_CENTER_USE_CACHE is false, this parameter has no effect. \n  \n . If there are many points in the barrier, this parameter limits \n   the number of iterations generated. \n   A mixture of feasible and infeasible points of the barrier is used to \n   generate iterations. \n   Each iteration uses a point of the barrier as frame center. \n  \n . Default: INF\n\n",  "  advanced  "  , "true" , "true" , "true" },
{ "MAX_TIME",  "size_t",  "INF",  " Maximum wall-clock time in seconds ",  " \n . Argument: one positive integer. \n  \n . Example: MAX_TIME 3600 # one hour max \n  \n . Default: INF\n\n",  "  basic clock stop time  "  , "false" , "true" , "true" },
{ "MEGA_SEARCH_POLL",  "bool",  "false",  " Evaluate points generated from Search and Poll steps all at once ",  " \n . If true, generate all points from Search and Poll steps, and then \n   start evaluation. This method is preferred when multiple processes \n   are available in parallel to evaluate points. This way, more processes \n   will work on evaluating points simultaneously. \n  \n . If false, generate points from Search, evaluate them, and then continue \n   to Poll, or to next Search. This is the classic way of evaluation. \n   If multiple processes are available for evaluation, and the Search step \n   generated a single point, only that point is evaluated while the other \n   processes do nothing. \n  \n . Default: false\n\n",  "  advanced  "  , "true" , "true" , "true" },
{ "REJECT_UNKNOWN_PARAMETERS",  "bool",  "true",  " Flag to reject unknown parameters when checking validity of parameters ",  " \n  \n . If false, when reading a parameters file, NOMAD will ignore unknown parameters. \n  \n . If true, when reading a parameters file, NOMAD will exit if unknown \n   parameters are present. \n  \n . Default: true\n\n",  "  advanced valid param params parameter parameters ignore  "  , "false" , "false" , "true" },
{ "RHO",  "NOMAD::Double",  "0.1",  " Rho parameter of the progressive barrier ",  " \n . Used to choose if the primary frame center is the feasible or infeasible \n   incumbent. \n  \n . Argument: real \n  \n . If the value is negative, both feasible and infeasible incumbents are \n   treated as primary poll centers. \n  \n . Example: RHO 0.5 \n . Default: 0.1\n\n",  "  advanced primary secondary  "  , "true" , "false" , "true" },
{ "SEED",  "int",  "0",  " The seed for the pseudo-random number generator ",  " \n  \n . Random seed \n  \n . Argument: one nonnegative integer (max UINT32_MAX) or -1 to generate a \n   different seed for each run. \n  \n . The default value is used for each run if the parameter is not provided. \n  \n . The seed is used in the output file names \n  \n . Example: SEED 123456 \n            SEED -1 \n  \n . Default: 0\n\n",  "  advanced seed seeds random number run  "  , "true" , "true" , "true" },
{ "RNG_ALT_SEEDING",  "bool",  "false",  " With this option the seed is used to set xdef ",  " \n  \n . Random number generator advanced option. \n  \n . This option cannot be used with the default seed, that is 0. \n  \n . Argument: one bool. \n  \n . Default: false\n\n",  "  advanced seed seeds random number run  "  , "true" , "true" , "true" },
{ "SIMPLE_LINE_SEARCH",  "bool",  "false",  " MADS simple line search method complement speculative search ",  " \n  \n . A line search method that add a point after unsuccessful speculative \n search.The direction of last success is used for each frame center. Three points \n are considered to build a quadratic model of the objective along this direction. \n The minimum of the quadratic is used to construct a new point. Done if all three \n points are feasible. \n  \n . Argument: one boolean ('yes' or 'no') \n  \n . Example: SIMPLE_LINE_SEARCH yes \n  \n . Default: false\n\n",  "  basic mads search speculative line  "  , "true" , "true" , "true" },
{ "SPECULATIVE_SEARCH",  "bool",  "true",  " MADS speculative search method ",  " \n  \n . MADS speculative search (optimistic strategy) \n  \n . Argument: one boolean ('yes' or 'no') \n  \n . Example: SPECULATIVE_SEARCH no \n  \n . Default: true\n\n",  "  basic mads search speculative  "  , "true" , "true" , "true" },
{ "SPECULATIVE_SEARCH_BASE_FACTOR",  "NOMAD::Double",  "4.0",  " Distance of the MADS speculative search method ",  " \n  \n . The MADS speculative search creates a point in a direction of success from the \n   best incumbent(s). The distance depends on the frame size, the number of search \n   points to be generated and a base factor (>1). \n  \n . Argument: one NOMAD::Double strictly greater than 1. \n  \n . Example: SPECULATIVE_SEARCH_BASE_FACTOR 3.0 \n  \n . Default: 4.0\n\n",  "  advanced mads search speculative  "  , "true" , "true" , "true" },
{ "SPECULATIVE_SEARCH_MAX",  "size_t",  "1",  " MADS speculative search method ",  " \n  \n . Number of points to generate using the MADS speculative search (optimistic \n   strategy) \n  \n . Argument: one positive integer < INF. \n  \n . Example: SPECULATIVE_SEARCH_MAX 2 \n  \n . Default: 1\n\n",  "  advanced mads search speculative  "  , "true" , "true" , "true" },
{ "USER_SEARCH",  "bool",  "false",  " MADS user search method provided as callback function ",  " \n  \n . This option is only available in library mode (see NOMAD documentation). \n  \n . To enable, a user search method for Mads, this parameter must be set to true \n   and a callback function must be added to Mads. \n  \n . An example is provided in $NOMAD_HOME/examples/advanced/library/CustomPollMethod \n  \n . The user search method is disabled within another search method using Mads. \n  \n . By default the user-defined search method will position first in the list \n   of search method. \n  \n . Argument: boolean \n  \n . Example: USER_SEARCH true \n  \n . Default: false\n\n",  "  advanced mads user search  "  , "true" , "true" , "true" },
{ "STOP_IF_FEASIBLE",  "bool",  "false",  " Stop algorithm once a feasible point is obtained ",  " \n  \n . Stopping criterion on feasibility. \n  \n . See H_NORM and H_MIN for computation of h and feasibility criterion. \n  \n . Argument: boolean. \n  \n . Example: \n     . STOP_IF_FEASIBLE true. \n  \n . Default: false\n\n",  "  advanced stopping terminate terminates termination terminations  "  , "false" , "false" , "true" },
{ "STOP_IF_PHASE_ONE_SOLUTION",  "bool",  "false",  " Stop algorithm once a phase one solution is obtained ",  " \n  \n . Stopping criterion on feasibility. Used by the Phase One algorithm \n   to obtain a feasible point when EB (Extreme Barrier) constraints \n   are set and the starting point is infeasible. \n  \n . A Phase One solution is a point for which the EB constraints are \n   satisfied. Any PB (Progressive Barrier) constraints are ignored. \n  \n . Argument: boolean. \n  \n . Example: \n     . STOP_IF_PHASE_ONE_SOLUTION true. \n  \n . Default: false\n\n",  "  advanced stopping terminate terminates termination terminations phase one   "  , "false" , "false" , "true" },
{ "USER_CALLS_ENABLED",  "bool",  "true",  " Controls the automatic calls to user function ",  " \n . If true the user functions are called (update_iteration, ...) \n  \n . Default: true\n\n",  "  advanced user users callback function functions  "  , "false" , "true" , "true" },
{ "RANDOM_ALGO_SEARCH",  "bool",  "false",  " A random search step for Mads using an algo (several iterations) ",  " \n  \n . A random search step for Mads that several trial points from the poll center \n  \n . Use this as a template to develop a new search method \n  \n . Argument: bool \n  \n . Example: RANDOM_ALGO_SEARCH true \n  \n . Default: false\n\n",  "  advanced template algorithm search dummy  "  , "true" , "true" , "true" },
{ "RANDOM_ALGO_OPTIMIZATION",  "bool",  "false",  " A standalone random optimization algo (several iterations) ",  " \n  \n . Use this random algo as a template to implement a new algo. \n  \n . By default this algorithm generates iteratively ramdom points around the \n   best incumbent. \n  \n . Argument: bool \n  \n . Example: RANDOM_ALGO_OPTIMIZATION true \n  \n . Default: false\n\n",  "  advanced template algorithm search dummy random  "  , "true" , "true" , "true" },
{ "RANDOM_ALGO_DUMMY_FACTOR",  "size_t",  "1",  " Dummy factor for random algo (used as template) ",  " \n  \n . This is dummy factor used by random algo. \n  \n . Use this as a template for a parameter controling the behavior of a new search \n   method \n  \n . Argument: one positive integer < INF. \n  \n . Example: RANDOM_ALGO_DUMMY_FACTOR 2 \n  \n . Default: 1\n\n",  "  advanced mads algorithm search template dummy  "  , "true" , "true" , "true" },
{ "H_NORM",  "NOMAD::HNormType",  "L2",  " Norm type for infeasibility measure (h) computation ",  " \n  \n . The norm used for combining constraint violation of all PB constraints. \n  \n . The norm can be L2 (default), L1 or Linf. \n  \n . If a single EB constraint is violated, h is set to infinity. \n  \n . If no EB constraint is violated, and the c_j are constraints evaluation, h \n   is computed as follows: \n     - for L2: h = sum(max(c_j,0)^2) \n     - for L1: h = sum(max(c_j,0)) \n     - for Linf: h = max(max(c_j,0)) \n  \n . Default: L2\n\n",  "  advanced infeasibility norm h  "  , "true" , "false" , "true" },
{ "H_MIN",  "NOMAD::Double",  "0",  " Min h value for detecting infeasibility ",  " \n  \n . H_MIN is the parameter provided to user to relax feasibility criterion. \n   The feasibility test is h(x) < h_min at a precision of epsilon. \n  \n . Epsilon is used for the comparison of NOMAD::Double (epsilon = 1E-13) and \n   is hardcoded in NOMAD. Modifying epsilon is not recommended and requires to \n   rebuild NOMAD. \n  \n . See parameter H_NORM for the computation of h. \n  \n . Argument: one positive real. \n  \n . Example: H_MIN 0.1 \n  \n . Default: 0\n\n",  "  advanced infeasibility norm h hmin feasibility epsilon  "  , "true" , "false" , "true" } };

#endif
