Guide to build Matlab interface for Windows using MinGW
The following guide for building Matlab interface for Windows using MinGW has been provided by a user in GitHub Issue #128.
* Update MATLAB’s MinGW using this link to supported compilers. Follow onscreen instructions (for example, dragging and dropping in MATLAB’s command window) NB: Updates will be displayed in MATLAB’s Command window while installation is in progress.
* Confirm set up by typing mex setup
in command window to verify installation following completion (Please check MATLAB and Simulink requirements on the same page using the link above as well)
* Majority of the other installation procedures would be done using “Command Prompt Window”. This can easily be accessed by typing “Command window” in the search tile on your Windows operating system.
* Download CMake. I recommend using the Windows x64 Installer option to enable you make your own installation settings. Make sure it is available for all users of the PC. Confirm that cmake is on the PC by typing cmake
on command prompt.
* Download your preferred NOMAD version and unzip the file. In the root folder, get a link which is done by easily doubleclicking on the pane which bears the opened folder.
* The interface build is managed by CMake that can be run at NOMAD root. Use the command cd copiedAddress
command in command prompt to change the directory to the location you have copied above (replace copiedAddress with the link obtained)
* To build the MATLAB interface, force the use of the 64bit version of the compiler with the command:
cmake DTEST_OPENMP=OFF DBUILD_INTERFACE_MATLAB=ON S . B build/release A x64
* Following the completion, use the command below that might take some minutes:
cmake build build/release config Release
* Then, finally, use the command:
cmake install build/release
which must be run before using the Matlab nomadOpt function. You can expect to see the following during the build process:
* Make sure to add NOMAD subfolders on MATLAB before testing the installation. On MATLAB’s Home, use the “Set Path” menu to “Add with Subfolders” the whole NOMAD folder so that functions can easily be accessed
* Run examples provided in the installation folder to confirm that the functions can now be called easily from MATLAB’s command window. For example, trying to solve problem three (3) should give you something similar to:
Complete list of parameters
A set of parameters is available in the table below for fine tuning algorithmic settings. Additional information on each parameter is available by typing $NOMAD_HOME/bin/nomad h PARAM_NAME
.
ADD_SEED_TO_FILE_NAMES 
bool 
advanced 

true 
ANISOTROPIC_MESH 
bool 
advanced 

true 
ANISOTROPY_FACTOR 
NOMAD::Double 
advanced 

0.1 
BB_EXE 
std::string 
basic 


BB_INPUT_TYPE 
NOMAD::BBInputTypeList 
basic 


BB_MAX_BLOCK_SIZE 
size_t 
advanced 

1 
BB_OUTPUT_TYPE 
NOMAD::BBOutputTypeList 
basic 

OBJ 
BB_REDIRECTION 
bool 
basic 

true 
CACHE_FILE 
std::string 
basic 


CACHE_SIZE_MAX 
size_t 
advanced 

INF 
CS_OPTIMIZATION 
bool 
basic 

false 
DIMENSION 
size_t 
basic 

0 
DIRECTION_TYPE 
NOMAD::DirectionTypeList 
advanced 

ORTHO N+1 QUAD 
DIRECTION_TYPE_SECONDARY_POLL 
NOMAD::DirectionTypeList 
advanced 

DOUBLE 
DISCO_MADS_DETECTION_RADIUS 
NOMAD::Double 
advanced 

1.0 
DISCO_MADS_EXCLUSION_RADIUS 
NOMAD::Double 
advanced 

1 
DISCO_MADS_LIMIT_RATE 
NOMAD::Double 
advanced 

1 
DISCO_MADS_REVEALING_POLL_NB_POINTS 
size_t 
advanced 

1 
DISCO_MADS_REVEALING_POLL_RADIUS 
NOMAD::Double 
advanced 

2.02 
DISPLAY_ALL_EVAL 
bool 
basic 

false 
DISPLAY_DEGREE 
int 
basic 

2 
DISPLAY_FAILED 
bool 
advanced 

false 
DISPLAY_HEADER 
size_t 
advanced 

40 
DISPLAY_INFEASIBLE 
bool 
advanced 

true 
DISPLAY_MAX_STEP_LEVEL 
size_t 
advanced 

20 
DISPLAY_STATS 
NOMAD::ArrayOfString 
basic 

BBE OBJ 
DISPLAY_UNSUCCESSFUL 
bool 
advanced 

false 
DMULTIMADS_OPTIMIZATION 
bool 
advanced 

false 
EVAL_OPPORTUNISTIC 
bool 
advanced 

true 
EVAL_QUEUE_CLEAR 
bool 
advanced 

true 
EVAL_QUEUE_SORT 
NOMAD::EvalSortType 
advanced 

QUADRATIC_MODEL 
EVAL_STATS_FILE 
string 
basic 


EVAL_SURROGATE_COST 
size_t 
advanced 

INF 
EVAL_SURROGATE_OPTIMIZATION 
bool 
advanced 

false 
EVAL_USE_CACHE 
bool 
advanced 

true 
FIXED_VARIABLE 
NOMAD::Point 
advanced 


FRAME_CENTER_USE_CACHE 
bool 
advanced 

false 
GRANULARITY 
NOMAD::ArrayOfDouble 
advanced 


HISTORY_FILE 
std::string 
basic 


HOT_RESTART_FILE 
std::string 
advanced 

hotrestart.txt 
HOT_RESTART_ON_USER_INTERRUPT 
bool 
advanced 

false 
HOT_RESTART_READ_FILES 
bool 
advanced 

false 
HOT_RESTART_WRITE_FILES 
bool 
advanced 

false 
H_MAX_0 
NOMAD::Double 
advanced 

NOMAD::INF 
INITIAL_FRAME_SIZE 
NOMAD::ArrayOfDouble 
advanced 


INITIAL_MESH_SIZE 
NOMAD::ArrayOfDouble 
advanced 


LH_EVAL 
size_t 
basic 

0 
LH_SEARCH 
NOMAD::LHSearchType 
basic 


LOWER_BOUND 
NOMAD::ArrayOfDouble 
basic 


MAX_BB_EVAL 
size_t 
basic 

INF 
MAX_EVAL 
size_t 
advanced 

INF 
MAX_ITERATIONS 
size_t 
advanced 

INF 
MAX_ITERATION_PER_MEGAITERATION 
size_t 
advanced 

INF 
MAX_SURROGATE_EVAL_OPTIMIZATION 
size_t 
basic 

INF 
MAX_TIME 
size_t 
basic 

INF 
MEGA_SEARCH_POLL 
bool 
advanced 

false 
MIN_FRAME_SIZE 
NOMAD::ArrayOfDouble 
advanced 


MIN_MESH_SIZE 
NOMAD::ArrayOfDouble 
advanced 


NB_THREADS_OPENMP 
int 
advanced 

1 
NM_DELTA_E 
NOMAD::Double 
advanced 

2 
NM_DELTA_IC 
NOMAD::Double 
advanced 

0.5 
NM_DELTA_OC 
NOMAD::Double 
advanced 

0.5 
NM_GAMMA 
NOMAD::Double 
advanced 

0.5 
NM_OPTIMIZATION 
bool 
advanced 

false 
NM_SEARCH 
bool 
advanced 

true 
NM_SEARCH_MAX_TRIAL_PTS_NFACTOR 
size_t 
advanced 

80 
NM_SEARCH_RANK_EPS 
NOMAD::Double 
advanced 

0.01 
NM_SEARCH_STOP_ON_SUCCESS 
bool 
advanced 

false 
NM_SIMPLEX_INCLUDE_FACTOR 
size_t 
advanced 

8 
NM_SIMPLEX_INCLUDE_LENGTH 
NOMAD::Double 
advanced 

INF 
ORTHO_MESH_REFINE_FREQ 
size_t 
advanced 

1 
PSD_MADS_ITER_OPPORTUNISTIC 
bool 
advanced 

true 
PSD_MADS_NB_SUBPROBLEM 
size_t 
advanced 

INF 
PSD_MADS_NB_VAR_IN_SUBPROBLEM 
size_t 
advanced 

2 
PSD_MADS_OPTIMIZATION 
bool 
advanced 

0 
PSD_MADS_ORIGINAL 
bool 
advanced 

false 
PSD_MADS_SUBPROBLEM_MAX_BB_EVAL 
size_t 
advanced 

INF 
PSD_MADS_SUBPROBLEM_PERCENT_COVERAGE 
NOMAD::Double 
advanced 

70 
QP_ABSOLUTETOL 
NOMAD::Double 
advanced 

1e3 
QP_AUGLAG_ETA0 
NOMAD::Double 
advanced 

1.0 
QP_AUGLAG_MAXITERINNER 
size_t 
advanced 

10 
QP_AUGLAG_MAXSUCCESSIVFAIL 
size_t 
advanced 

3 
QP_AUGLAG_MU0 
NOMAD::Double 
advanced 

0.5 
QP_AUGLAG_MUDECREASE 
NOMAD::Double 
advanced 

2 
QP_AUGLAG_OMEGA0 
NOMAD::Double 
advanced 

1.0 
QP_AUGLAG_SUCCESSRATIO 
NOMAD::Double 
advanced 

0.99 
QP_AUGLAG_TOLDISTDXINNER 
NOMAD::Double 
advanced 

1e15 
QP_MAXITER 
size_t 
advanced 

10 
QP_OPTIMIZATION 
bool 
advanced 

false 
QP_RELATIVETOL 
NOMAD::Double 
advanced 

1e3 
QP_SEARCH 
bool 
advanced 

false 
QP_SELECTALGO 
size_t 
advanced 

0 
QP_TOLCOND 
NOMAD::Double 
advanced 

1e15 
QP_TOLDISTDX 
NOMAD::Double 
advanced 

1.0 
QP_TOLMESH 
NOMAD::Double 
advanced 

1.0 
QP_VERBOSE 
bool 
advanced 

false 
QP_VERBOSEFULL 
bool 
advanced 

false 
QUAD_MODEL_AND_LH_SEARCH 
bool 
basic 

false 
QUAD_MODEL_DISPLAY 
std::string 
advanced 


QUAD_MODEL_MAX_BLOCK_SIZE 
size_t 
advanced 

INF 
QUAD_MODEL_MAX_EVAL 
size_t 
advanced 

2000 
QUAD_MODEL_OPTIMIZATION 
bool 
advanced 

false 
QUAD_MODEL_SEARCH 
bool 
basic 

true 
QUAD_MODEL_SLD_SEARCH 
bool 
basic 

false 
RANDOM_ALGO_DUMMY_FACTOR 
size_t 
advanced 

1 
RANDOM_ALGO_OPTIMIZATION 
bool 
advanced 

false 
RANDOM_ALGO_SEARCH 
bool 
advanced 

false 
RANDOM_SIMPLE_SEARCH 
bool 
advanced 

false 
REJECT_UNKNOWN_PARAMETERS 
bool 
advanced 

true 
RHO 
NOMAD::Double 
advanced 

0.1 
SEARCH_METHOD_MESH_PROJECTION 
bool 
advanced 

true 
SEED 
int 
advanced 

0 
SET_FILE 
bool 
advanced 

false 
SET_FILE_NAME 
string 
advanced 


SGTELIB_MAX_POINTS_FOR_MODEL 
size_t 
advanced 

500 
SGTELIB_MIN_POINTS_FOR_MODEL 
size_t 
advanced 

1 
SGTELIB_MODEL_DEFINITION 
NOMAD::ArrayOfString 
advanced 


SGTELIB_MODEL_DISPLAY 
std::string 
advanced 


SGTELIB_MODEL_DIVERSIFICATION 
NOMAD::Double 
advanced 

0.01 
SGTELIB_MODEL_EVAL 
bool 
advanced 

0 
SGTELIB_MODEL_FEASIBILITY 
NOMAD::SgtelibModelFeasibilityType 
advanced 

C 
SGTELIB_MODEL_FORMULATION 
NOMAD::SgtelibModelFormulationType 
advanced 

FS 
SGTELIB_MODEL_MAX_BLOCK_SIZE 
size_t 
advanced 

INF 
SGTELIB_MODEL_MAX_EVAL 
size_t 
advanced 

2000 
SGTELIB_MODEL_SEARCH 
bool 
basic 

false 
SGTELIB_MODEL_SEARCH_CANDIDATES_NB 
int 
advanced 

1 
SGTELIB_MODEL_SEARCH_EXCLUSION_AREA 
NOMAD::Double 
advanced 

0.0 
SGTELIB_MODEL_SEARCH_FILTER 
std::string 
advanced 

2345 
SIMPLE_LINE_SEARCH 
bool 
basic 

false 
SOLUTION_FILE 
std::string 
basic 


SOLUTION_FILE_FINAL 
bool 
basic 

false 
SPECULATIVE_SEARCH 
bool 
basic 

true 
SPECULATIVE_SEARCH_BASE_FACTOR 
NOMAD::Double 
advanced 

4.0 
SPECULATIVE_SEARCH_MAX 
size_t 
advanced 

1 
SSD_MADS_ITER_OPPORTUNISTIC 
bool 
advanced 

true 
SSD_MADS_NB_SUBPROBLEM 
size_t 
advanced 

INF 
SSD_MADS_NB_VAR_IN_SUBPROBLEM 
size_t 
advanced 

2 
SSD_MADS_OPTIMIZATION 
bool 
advanced 

0 
SSD_MADS_RESET_VAR_PICKUP_SUBPROBLEM 
bool 
advanced 

false 
SSD_MADS_SUBPROBLEM_MAX_BB_EVAL 
size_t 
advanced 

INF 
STATS_FILE 
NOMAD::ArrayOfString 
basic 


STOP_IF_FEASIBLE 
bool 
advanced 

false 
STOP_IF_PHASE_ONE_SOLUTION 
bool 
advanced 

false 
SURROGATE_EXE 
std::string 
advanced 


SURROGATE_MAX_BLOCK_SIZE 
size_t 
advanced 

1 
SYSTEM_FILE_NAME 
string 
advanced 


TMP_DIR 
std::string 
advanced 


TRIAL_POINT_MAX_ADD_UP 
size_t 
advanced 

0 
UPPER_BOUND 
NOMAD::ArrayOfDouble 
basic 


USER_CALLS_ENABLED 
bool 
advanced 

true 
USE_CACHE_FILE_FOR_RERUN 
bool 
advanced 

false 
USE_IBEX 
bool 
advanced 

false 
VARIABLE_GROUP 
NOMAD::ListOfVariableGroup 
advanced 


VNSMART_MADS_SEARCH 
bool 
advanced 

false 
VNSMART_MADS_SEARCH_THRESHOLD 
int 
advanced 

3 
VNS_MADS_OPTIMIZATION 
bool 
advanced 

false 
VNS_MADS_SEARCH 
bool 
advanced 

false 
VNS_MADS_SEARCH_MAX_TRIAL_PTS_NFACTOR 
size_t 
advanced 

100 
VNS_MADS_SEARCH_TRIGGER 
NOMAD::Double 
advanced 

0.75 
VNS_MADS_SEARCH_WITH_SURROGATE 
bool 
advanced 

false 
X0 
NOMAD::ArrayOfPoint 
basic 
