bluemira.optimisation._tools
Collection of utility functions for the module.
Attributes
Functions
|
Approximate the gradient of a function about a point. |
|
|
|
|
|
|
|
|
|
Handle a scipy.minimize OptimizeResult object. Process error codes, if any. |
|
Validate that the bounds have the correct dimensions. |
|
Derive an initial guess for the optimiser. |
Module Contents
- bluemira.optimisation._tools._FloatOrArray
- bluemira.optimisation._tools.NO_CODE = 'Unknown termination code'
- bluemira.optimisation._tools.approx_derivative(func: collections.abc.Callable[[numpy.ndarray], _FloatOrArray], x0: numpy.ndarray, method: str = '3-point', rel_step: _FloatOrArray | None = None, f0: _FloatOrArray | None = None, bounds: collections.abc.Iterable[_FloatOrArray] | None = (-np.inf, np.inf), args: tuple[Any, Ellipsis] | None = ()) numpy.ndarray
Approximate the gradient of a function about a point.
- Parameters:
func (collections.abc.Callable[[numpy.ndarray], _FloatOrArray]) – Function for which to calculate the gradient.
x0 (numpy.ndarray) – Point about which to calculate the gradient.
method (str) – Finite difference method to use.
rel_step (_FloatOrArray | None) – Relative step size to use.
f0 (_FloatOrArray | None) – Result of func(x0). If None, this is recomputed.
bounds (collections.abc.Iterable[_FloatOrArray] | None) – Lower and upper bounds on individual variables.
args (tuple[Any, Ellipsis] | None) – Additional positional arguments to
func.
- Returns:
approximate gradient of the function about a point.
- Return type:
numpy.ndarray
- bluemira.optimisation._tools._log_and_raise(alg: str, msg: str) NoReturn
- Parameters:
alg (str)
msg (str)
- Return type:
NoReturn
- bluemira.optimisation._tools._process_slsqp(res: scipy.optimize._optimize.OptimizeResult) numpy.ndarray
- Parameters:
res (scipy.optimize._optimize.OptimizeResult)
- Return type:
numpy.ndarray
- bluemira.optimisation._tools._process_cobyla(res: scipy.optimize._optimize.OptimizeResult) numpy.ndarray
- Parameters:
res (scipy.optimize._optimize.OptimizeResult)
- Return type:
numpy.ndarray
- bluemira.optimisation._tools._process_cobyqa(res: scipy.optimize._optimize.OptimizeResult) numpy.ndarray
- Parameters:
res (scipy.optimize._optimize.OptimizeResult)
- Return type:
numpy.ndarray
- bluemira.optimisation._tools.process_scipy_result(res: scipy.optimize._optimize.OptimizeResult, alg: str) numpy.ndarray
Handle a scipy.minimize OptimizeResult object. Process error codes, if any.
- Parameters:
res (scipy.optimize._optimize.OptimizeResult) – Scipy optimise result
alg (str)
- Returns:
x – The optimal set of parameters (result of the optimisation)
- Return type:
np.array
- Raises:
OptimisationError – if an error code returned without a usable result.
- bluemira.optimisation._tools._check_bounds(n_dims: int, new_bounds: numpy.ndarray) None
Validate that the bounds have the correct dimensions.
- Raises:
ValueError – New bounds in not 1D and does not have a size of n_dims
- Parameters:
n_dims (int)
new_bounds (numpy.ndarray)
- Return type:
None
- bluemira.optimisation._tools._initial_guess_from_bounds(lower: numpy.ndarray, upper: numpy.ndarray) numpy.ndarray
Derive an initial guess for the optimiser.
Takes the center of the bounds for each parameter.
- Returns:
Initial guess based on the midpoint of the provided bounds.
- Parameters:
lower (numpy.ndarray)
upper (numpy.ndarray)
- Return type:
numpy.ndarray