efficient_global

Global Surrogate Based Optimization, a.k.a. EGO

Topics

global_optimization_methods, surrogate_based_optimization_methods

Specification

  • Alias: None

  • Arguments: None

Child Keywords:

Required/Optional

Description of Group

Dakota Keyword

Dakota Keyword Description

Optional

initial_samples

Initial number of samples for sampling-based methods

Optional

seed

Seed of the random number generator

Optional

batch_size

Total batch size in parallel EGO

Optional

max_iterations

Number of iterations allowed for optimizers and adaptive UQ methods

Optional

convergence_tolerance

Expected improvement convergence tolerance

Optional

x_conv_tol

x-convergence tolerance

Optional

gaussian_process

Gaussian Process surrogate model

Optional

use_derivatives

Use derivative data to construct surrogate models

Optional

import_build_points_file

File containing points you wish to use to build a surrogate

Optional

export_approx_points_file

Output file for surrogate model value evaluations

Optional

model_pointer

Identifier for model block to be used by a method

Description

The Efficient Global Optimization (EGO) method was first developed by Jones, Schonlau, and Welch [JSW98]. In EGO, a stochastic response surface approximation for the objective function is developed based on some sample points from the “true” simulation.

Note that several major differences exist between our implementation and that of [JSW98]. First, rather than using a branch and bound method to find the point which maximizes the EIF, we use the DIRECT global optimization method.

Second, we support both global optimization and global nonlinear least squares as well as general nonlinear constraints through abstraction and subproblem recasting.

The efficient global method is in prototype form. Currently, we do not expose any specification controls for the underlying Gaussian process model used or for the optimization of the expected improvement function (which is currently performed by the NCSU DIRECT algorithm using its internal defaults).

By default, EGO uses the Surfpack GP (Kriging) model, but the Dakota implementation may be selected instead. If use_derivatives is specified the GP model will be built using available derivative data (Surfpack GP only).

Expected HDF5 Output

If Dakota was built with HDF5 support and run with the environment-results_output-hdf5 keyword, this method writes the following results to HDF5:

Theory

The particular response surface used is a Gaussian process (GP). The GP allows one to calculate the prediction at a new input location as well as the uncertainty associated with that prediction. The key idea in EGO is to maximize the Expected Improvement Function (EIF). The EIF is used to select the location at which a new training point should be added to the Gaussian process model by maximizing the amount of improvement in the objective function that can be expected by adding that point. A point could be expected to produce an improvement in the objective function if its predicted value is better than the current best solution, or if the uncertainty in its prediction is such that the probability of it producing a better solution is high. Because the uncertainty is higher in regions of the design space with few observations, this provides a balance between exploiting areas of the design space that predict good solutions, and exploring areas where more information is needed. EGO trades off this “exploitation vs. exploration.” The general procedure for these EGO-type methods is:

  • Build an initial Gaussian process model of the objective function

  • Find the point that maximizes the EIF. If the EIF value at this point is sufficiently small, stop.

  • Evaluate the objective function at the point where the EIF is maximized. Update the Gaussian process model using this new point.

  • Return to the previous step.