Skip to content

ensemble_base⚓︎

Base ensemble for optimisation: the control vector as state, objective evaluation over the members, and multilevel bookkeeping.

EnsembleOptimizationBase ⚓︎

Bases: BaseEnsemble

Base class for the popt ensemble

__init__(options, simulator, objective) ⚓︎

Parameters:

Name Type Description Default
options dict

Options for the ensemble class

required
simulator callable

The forward simulator (e.g. flow). If None, no simulation is performed.

required
objective callable

The objective function (e.g. npv)

required

function(x, *args, **kwargs) ⚓︎

Evaluate objective values for a single state vector or an ensemble.

Parameters:

Name Type Description Default
x ndarray

Control vector with shape (n_controls,) or ensemble matrix with shape (n_controls, n_perturbations).

required

Returns:

Type Description
ndarray

Objective function values, or inf when the simulation crashed, so the optimizer rejects the point instead of the run ending. A crashed single-point evaluation leaves stateF at its last good value.

Raises:

Type Description
ValueError

If x is not one- or two-dimensional.

get_bounds() ⚓︎

Returns:

Name Type Description
bounds list

(min, max) pairs for each element in x. None is used to specify no bound.

get_cov() ⚓︎

Returns:

Name Type Description
cov ndarray

Covariance matrix, shape (number of controls, number of controls)

get_state() ⚓︎

Returns:

Name Type Description
x ndarray

Control vector as ndarray, shape (number of controls, number of perturbations)

save_stateX(state=None, path='./', filetype='npz') ⚓︎

Save the state vector.

Parameters:

Name Type Description Default
path str

Path to save the state vector. Default is current directory.

'./'
filetype str

File type to save the state vector. Options are 'csv', 'npz' or 'npy'. Default is 'npz'.

'npz'