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/Rare created, where P, S, R arePROBLEM_NUMBER,DIMENSIONALITYand 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_HYPEROPTCreating convergence plots.
FIRST_RUN, N_RUNSindicate the folders with experiments to look in;SMAC_HYPEROPTindicates 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