Search Techniques

A search technique is associated with each simulation when the simulation dictionary is added to the MOOP object. This technique is used for generating simulation data prior to the first iteration of ParMOO, so that the initial surrogate models can be fit.

For most search techniques, it is highly recommended that you supply the following optional hyperparameter keys/values:

  • search_budget (int): specifies how many samples will be generated for this simulation.

from parmoo import searches

Available search techniques are as follows:

Latin Hypercube Sampling

Implementations of the GlobalSearch class.

This module contains implementations of the GlobalSearch ABC, which are based on the Latin hypercube design.

The classes include:
  • LatinHypercube – Latin hypercube sampling

class searches.latin_hypercube.LatinHypercube(m, lb, ub, hyperparams)

Implementation of a Latin hypercube search.

This GlobalSearch strategy uses a Latin hypercube design to sample in the design space.

__init__(m, lb, ub, hyperparams)

Constructor for the LatinHypercube GlobalSearch class.

Parameters:
  • m (int) – The number of simulation outputs (unused by this class).

  • lb (numpy.ndarray) – A 1d array of lower bounds for the design region. The number of design variables is inferred from the dimension of lb.

  • ub (numpy.ndarray) – A 1d array of upper bounds for the design region. The dimension must match ub.

  • hyperparams (dict) –

    A dictionary of hyperparameters for the LatinHypercube design. It may contain:

    • search_budget (int): The sim eval budget for the search

Returns:

A new LatinHypercube object.

Return type:

LatinHypercube

startSearch(lb, ub)

Begin a new Latin hypercube sampling.

Parameters:
  • lb (numpy.ndarray) – A 1d array of lower bounds for the design region. The dimension must match n.

  • ub (numpy.ndarray) – A 1d array of upper bounds for the design region. The dimension must match n.

Returns:

A 2d array, containing the list of design points to be evaluated.

Return type:

np.ndarray

resumeSearch()

Resume a previous Latin hypercube sampling.

Returns:

A 2d array, containing the list of design points to be evaluated.

Return type:

np.ndarray