romtools.workflows.inverse.bfgs_drivers#
Functions
|
Run a finite-difference BFGS optimizer for inverse problems. |
|
Compatibility alias for the common misspelling 'decent'. |
|
Run a finite-difference steepest-descent optimizer for inverse problems. |
- romtools.workflows.inverse.bfgs_drivers.run_bfgs(model, parameter_space, observations, observations_covariance, parameter_mins=None, parameter_maxes=None, absolute_bfgs_directory='/home/runner/work/rom-tools-and-workflows/rom-tools-and-workflows/work/', initial_parameters=None, finite_difference_method='second_order', parameter_step_fraction=0.01, minimum_parameter_step=1e-08, initial_line_search_step_size=1.0, line_search_decay_factor=2.0, armijo_sufficient_decrease=0.0001, covariance_regularization=1e-12, bfgs_curvature_tolerance=1e-12, gradient_norm_tolerance=1e-06, delta_params_tolerance=1e-08, objective_tolerance=1e-12, max_line_search_iterations=20, max_iterations=100, random_seed=1, restart_file=None)[source]#
Run a finite-difference BFGS optimizer for inverse problems.
The objective is a weighted observation misfit: 0.5 * (observations - qoi)^T * C^{-1} * (observations - qoi), where C is observations_covariance (with optional regularization).
- Parameters:
model (QoiModel) – QoiModel to evaluate.
parameter_space (ParameterSpace) – ParameterSpace used for initialization if initial_parameters is not provided.
observations (ndarray) – Observed QoI vector.
observations_covariance (ndarray) – Observation covariance matrix used in objective.
parameter_mins (ndarray) – Optional lower bounds.
parameter_maxes (ndarray) – Optional upper bounds.
absolute_bfgs_directory (str) – Absolute path for optimizer run directories.
initial_parameters (ndarray) – Optional initial parameter vector.
finite_difference_method (str) – One of ‘first_order’, ‘second_order’, or ‘fourth_order’.
parameter_step_fraction – Scalar or per-parameter array defining finite difference step size as a fraction of each parameter value.
minimum_parameter_step (float) – Lower bound on finite difference step size.
initial_line_search_step_size (float) – Initial step size for line search.
line_search_decay_factor (float) – Backtracking divisor (> 1).
armijo_sufficient_decrease (float) – Armijo sufficient decrease constant.
covariance_regularization (float) – Diagonal regularization for covariance inversion.
bfgs_curvature_tolerance (float) – Minimum s^T y for BFGS Hessian update.
gradient_norm_tolerance (float) – Convergence tolerance for gradient norm.
delta_params_tolerance (float) – Convergence tolerance for parameter update norm.
objective_tolerance (float) – Convergence tolerance for objective value.
max_line_search_iterations (int) – Maximum backtracking iterations.
max_iterations (int) – Maximum BFGS iterations.
random_seed (int) – RNG seed for initialization.
restart_file (str) – Optional restart file created by this routine.
- Returns:
Tuple of (parameter_values, qoi) at termination.
- romtools.workflows.inverse.bfgs_drivers.run_steepest_decent(*args, **kwargs)[source]#
Compatibility alias for the common misspelling ‘decent’.
- romtools.workflows.inverse.bfgs_drivers.run_steepest_descent(model, parameter_space, observations, observations_covariance, parameter_mins=None, parameter_maxes=None, absolute_steepest_descent_directory='/home/runner/work/rom-tools-and-workflows/rom-tools-and-workflows/work/', initial_parameters=None, finite_difference_method='second_order', parameter_step_fraction=0.01, minimum_parameter_step=1e-08, initial_line_search_step_size=1.0, line_search_decay_factor=2.0, armijo_sufficient_decrease=0.0001, covariance_regularization=1e-12, gradient_norm_tolerance=1e-06, delta_params_tolerance=1e-08, objective_tolerance=1e-12, max_line_search_iterations=20, max_iterations=100, random_seed=1, restart_file=None)[source]#
Run a finite-difference steepest-descent optimizer for inverse problems.
The objective is a weighted observation misfit: 0.5 * (observations - qoi)^T * C^{-1} * (observations - qoi), where C is observations_covariance (with optional regularization).
- Parameters:
model (QoiModel) – QoiModel to evaluate.
parameter_space (ParameterSpace) – ParameterSpace used for initialization if initial_parameters is not provided.
observations (ndarray) – Observed QoI vector.
observations_covariance (ndarray) – Observation covariance matrix used in objective.
parameter_mins (ndarray) – Optional lower bounds.
parameter_maxes (ndarray) – Optional upper bounds.
absolute_steepest_descent_directory (str) – Absolute path for optimizer runs.
initial_parameters (ndarray) – Optional initial parameter vector.
finite_difference_method (str) – One of ‘first_order’, ‘second_order’, or ‘fourth_order’.
parameter_step_fraction – Scalar or per-parameter array defining finite difference step size as a fraction of each parameter value.
minimum_parameter_step (float) – Lower bound on finite difference step size.
initial_line_search_step_size (float) – Initial step size for line search.
line_search_decay_factor (float) – Backtracking divisor (> 1).
armijo_sufficient_decrease (float) – Armijo sufficient decrease constant.
covariance_regularization (float) – Diagonal regularization for covariance inversion.
gradient_norm_tolerance (float) – Convergence tolerance for gradient norm.
delta_params_tolerance (float) – Convergence tolerance for parameter update norm.
objective_tolerance (float) – Convergence tolerance for objective value.
max_line_search_iterations (int) – Maximum backtracking iterations.
max_iterations (int) – Maximum steepest-descent iterations.
random_seed (int) – RNG seed for initialization.
restart_file (str) – Optional restart file created by this routine.
- Returns:
Tuple of (parameter_values, qoi) at termination.