romtools.workflows.inverse.bfgs_drivers#

Functions

run_bfgs(model, parameter_space, ...[, ...])

Run a finite-difference BFGS optimizer for inverse problems.

run_steepest_decent(*args, **kwargs)

Compatibility alias for the common misspelling 'decent'.

run_steepest_descent(model, parameter_space, ...)

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.