Source code for smt_optim.utils.initial_design

import copy

import numpy as np
from smt.sampling_methods import LHS
from smt.applications import NestedLHS

from smt_optim.core.state import State


[docs] def generate_initial_design(state: State, evaluator, config) -> None: if config.xt_init is None: if state.problem.num_fidelity == 1: sampler = LHS(xlimits=state.problem.design_space, criterion="ese", seed=config.seed) else: sampler = NestedLHS(xlimits=state.problem.design_space, nlevel=state.problem.num_fidelity, seed=config.seed) if config.nt_init is None: nt_init = max(5, state.problem.num_dim+1) else: nt_init = config.nt_init doe = sampler(nt_init) if state.problem.num_fidelity == 1: doe = [doe] infill = doe * state.problem.num_fidelity else: infill = doe else: infill = copy.deepcopy(config.xt_init) evaluator.sample_func(infill, state)