SMBO_TeachingTool: A modular code for teaching Surrogate Modeling-Based Optimization.
This code is designed for students to understand basic concept of Surrogate Modeling-Based Optimization.
Yong Hoon Lee
Engineering System Design Laboratory (PI: Professor James T. Allison),
University of Illinois at Urbana-Champaign
- MATLAB with Optimization and Global Optimization Toolboxes
- (optional for plot export) Ghostscript
-
Run "main_SMBO.m" Script
-
Specify the problem name (= problem folder name) in the "prob" variable before run the script to solve a different problem.
- Example (in "main_SMBO.m" file):
prob = 'AckleyFn';
- Example (in "main_SMBO.m" file):
-
Create a folder with problem name (e.g., "MatyasFn").
-
Create a MATLAB function file: "obj.m" in the created problem folder.
- Example:
function f = obj(x) f = 0.26*(x(1)^2 + x(2)^2) - 0.48*x(1)*x(2); end
- Example:
-
Create a MATLAB function file: "conf.m" in the created problem folder.
- Example:
function pc = conf() pc.nvar = 2; % Number of variables pc.lb = [-10,-10]; % Lower bounds pc.ub = [5,5]; % Upper bounds pc.fs_g = 0.75; % Shrink factor for global sample range pc.xtrue = [0,0]; % True soltuion in x (for comparison) pc.ftrue = 0; % True solution in f (for comparison) end
- Example:
- Wang, G. G. and Shan, S. (2006) Review of Metamodeling Techniques in Support of Engineering Design Optimization. J. Mech. Design 129:4, pp. 370-380. doi: 10.1115/1.2429697
- Koziel, S. and Leifsson, L. (2016) Introduction to Surrogate Modeling and Surrogate-Based Optimization. In: Simulation-Driven Design by Knowledge-Based Response Correction Techniques. Springer, Cham. pp. 31-61. doi: 10.1007/978-3-319-30115-0_4
- Forrester, A., Sobester, A., Keane, A. (2008) Engineering Design via Surrogate Modelling: A Practical Guide. Wiley.
- Lee, Y. H. (2017) SMBO_TeachingTool: A modular code for teaching Surrogate Modeling-Based Optimization v1.5 (April 17, 2017). https://github.com/yonghoonlee/SMBO_TeachingTool/releases
-
Conventional Optimization
Koziel, S. and Leifsson, L. (2016)
-
Surrogate-Based Optimization
Koziel, S. and Leifsson, L. (2016)
: utility function, which is a scalar value
: objective function, values could be a scalar or vector
In this code, we are only looking at a single-objective optimization problem. If the problem has multiple objective functions, the utility function can be formulated for the SMBO tool, which is developed for single-objective problem.
While-loop: Adaptive surrogate modeling refinement (Line 94-177)
Design Space Sampling (Line 97-124)
High Fidelity Model Evaluation (Line 126-132)
Surrogate Modeling-Based Optimization (Line 134-176)
Compile results of (1) Current and (2) Previous iterations (Line 135-144)
Surrogate-model construction / Surrogate-based optimization (Line 146-158)
Error evaluation using high fidelity model (Line 160-172)
Run high fidelity model evaluation for predicted optimum (Line 161-162)
Save high fidelity function result at the predicted optimum (Line 164-166)
Adjust sampling range for the next iteration (Line 174-176)
End while
----------------README.md file not completed yet----------------