Paper: Arkadiy Dushatskiy, Adriënne M. Mendrik, Tanja Alderliesten, and Peter A. N. Bosman. 2019. Convolutional neural network surrogate-assisted GOMEA. In Proceedings of the Genetic and Evolutionary Computation Conference (GECCO '19), Manuel López-Ibáñez (Ed.). ACM, New York, NY, USA, 753-761. DOI: https://doi.org/10.1145/3321707.3321760
Link to the paper: https://dl.acm.org/citation.cfm?id=3321760
To compile CS-GOMEA: ./m_cs_gomea
To compile vanilla GOMEA: ./m_vanilla_gomea
Problems:
- Onemax
- Tight Trap4
- Loose Trap4
- NK Landscapes
- HIFF
Several runs can be made, folders with results are created automatically:
-
Convolutional Neural Net Surrogate-Assisted GOMEA (CS-GOMEA):
python run_cs_gomea.py PROBLEM_NUMBER DIMENSIONALITY FOS_TYPE MAX_EVALUATIONS DELTA WARMUP_PERIOD FIRST_RUN N_RUNS DEVICE_ID TIME_LIMIT
-
Vanilla GOMEA:
python run_vanilla_gomea.py PROBLEM_NUMBER DIMENSIONALITY FOS_TYPE MAX_EVALUATIONS FIRST_RUN N_RUNS
-
SMAC (https://github.com/automl/pysmac):
python run_vanilla_gomea.py PROBLEM_NUMBER DIMENSIONALITY FIRST_RUN N_RUNS N_EVALUATIONS
-
Hyperopt (implementation of Tree Parzen Estimator, https://github.com/hyperopt/hyperopt):
python run_vanilla_gomea.py PROBLEM_NUMBER DIMENSIONALITY FIRST_RUN N_RUNS N_EVALUATIONS
Parameters description:
PROBLEM_NUMBER
- problem number chosen from above-mentioned problemsDIMENSIONALITY
- number of variablesFOS_TYPE
- FOS algorithm of GOMEA, 1 (the Linkage Tree) is recommendedMAX_EVALUATIONS
- maximum number of function evaluations (real ones) allowedDELTA
- a parameter of CS-GOMEA determining how aggressive real evaluations are. The recommended value is 1.02WARMUP_PERIOD
- the number of solutions in warm-up period of CS-GOMEA. This parameter is problem dependent, but it is suggested to generate at least 100 solutions to train the surrogate model.FIRST_RUN
- the id of the first run of in a series of runs. While running experiments, folders with namesP_S/R
are created, where P, S, R arePROBLEM_NUMBER
,DIMENSIONALITY
and id of run respectively.N_RUNS
- number of algorithm runs.DEVICE_ID
- If there any CUDA devices, the device id. -1 means CPU usage. It is recommended to use a GPU for acceleration.TIME_LIMIT
- algorithm time limit (in minutes)
-
Convergence plots:
python convergence_plots.py PROBLEM_NUMBER FIRST_RUN N_RUNS SMAC_HYPEROPT
Creating convergence plots.
FIRST_RUN, N_RUNS
indicate the folders with experiments to look in;SMAC_HYPEROPT
indicates whether to include SMAC and Hyperopt runs on plots -
Scalability plots:
python scalability_plots.py
.Simply creating all scalability plots for all available problems instances