pybop.optimisers._result#

Classes#

OptimisationResult

Stores the result of the optimisation.

Module Contents#

class pybop.optimisers._result.OptimisationResult(optim: pybop.BaseOptimiser, x: pybop.Inputs | numpy.ndarray = None, final_cost: float | None = None, sensitivities: dict | None = None, n_iterations: int | None = None, n_evaluations: int | None = None, time: float | None = None, message: str | None = None, scipy_result=None)[source]#

Stores the result of the optimisation.

optim[source]#

The optimisation object used to generate the results.

Type:

pybop.BaseOptimiser

x[source]#

The solution of the optimisation.

Type:

ndarray

final_cost[source]#

The cost associated with the solution x.

Type:

float

n_iterations[source]#

Number of iterations performed by the optimiser.

Type:

int

message[source]#

The reason for stopping given by the optimiser.

Type:

str

scipy_result[source]#

The result obtained from a SciPy optimiser.

Type:

scipy.optimize.OptimizeResult, optional

pybamm_solution[source]#

The best solution object(s) obtained from the optimisation.

Type:

pybamm.Solution or list[pybamm.Solution], optional

__str__() str[source]#

A string representation of the OptimisationResult object.

Returns:

A formatted string containing optimisation result information.

Return type:

str

_extend(x: list[pybop.Inputs] | list[numpy.ndarray], final_cost: list[float], fisher: list, n_iterations: list[int], n_evaluations: list[int], time: list[float], message: list[str], scipy_result: list, x0: list, pybamm_solution: list[pybamm.Solution])[source]#
_get_single_or_all(attr)[source]#
add_result(result)[source]#

Add a preprocessed OptimisationResult.

average_iterations() float | None[source]#

Calculates the average number of iterations across all runs.

check_for_finite_cost() None[source]#

Validate the optimised parameters and ensure they produce a finite cost value.

Raises:

ValueError – If the optimised parameters do not produce a finite cost value.

check_physical_viability(x)[source]#

Check if the optimised parameters are physically viable.

Parameters:

x (array-like) – Optimised parameter values.

total_runtime() float | None[source]#

Calculates the total runtime across all runs.

_best_run = None[source]#
_final_cost = [][source]#
_fisher = [][source]#
_message = [][source]#
_n_evaluations = [][source]#
_n_iterations = [][source]#
_pybamm_solution = [][source]#
_scipy_result = [][source]#
_sensitivities = None[source]#
_time = [][source]#
_transformation[source]#
_x = [][source]#
_x0 = [][source]#
cost[source]#
property final_cost[source]#
property final_cost_best[source]#
property fisher[source]#
property fisher_best[source]#
property message[source]#
property message_best[source]#
minimising[source]#
property n_evaluations[source]#
property n_evaluations_best[source]#
property n_iterations[source]#
property n_iterations_best[source]#
n_runs = 0[source]#
optim[source]#
property pybamm_solution[source]#
property pybamm_solution_best[source]#
property scipy_result[source]#
property scipy_result_best[source]#
property sensitivities[source]#
property time[source]#
property time_best[source]#
property x[source]#
property x0[source]#
property x0_best[source]#
property x_best[source]#