Inner PANOC and ZeroFPR Solvers#

PANOC#

class alpaqa.PANOCSolver

C++ documentation: alpaqa::PANOCSolver

Params

alias of PANOCParams

__call__(self: alpaqa._alpaqa.float64.PANOCSolver, problem: alpaqa._alpaqa.float64.Problem, opts: alpaqa._alpaqa.float64.InnerSolveOptions = {}, x: numpy.ndarray[numpy.float64[m, 1]] | None = None, y: numpy.ndarray[numpy.float64[m, 1]] | None = None, Σ: numpy.ndarray[numpy.float64[m, 1]] | None = None, *, asynchronous: bool = True, suppress_interrupt: bool = False) tuple

Solve the given problem.

Parameters:
  • problem – Problem to solve

  • opts – Options (such as desired tolerance)

  • x – Optional initial guess for the decision variables

  • y – Lagrange multipliers (when used as ALM inner solver)

  • Σ – Penalty factors (when used as ALM inner solver)

  • asynchronous – Release the GIL and run the solver on a separate thread

  • suppress_interrupt – If the solver is interrupted by a KeyboardInterrupt, don’t propagate this exception back to the Python interpreter, but stop the solver early, and return a solution with the status set to alpaqa.SolverStatus.Interrupted.

Returns:

  • Solution \(x\)

  • Updated Lagrange multipliers (only if parameter y was not None)

  • Constraint violation (only if parameter y was not None)

  • Statistics

__init__(*args, **kwargs)

Overloaded function.

  1. __init__(self: alpaqa._alpaqa.float64.PANOCSolver, other: alpaqa._alpaqa.float64.PANOCSolver) -> None

Create a copy

  1. __init__(self: alpaqa._alpaqa.float64.PANOCSolver, panoc_params: Union[alpaqa._alpaqa.float64.PANOCParams, dict] = {}, lbfgs_params: Union[alpaqa._alpaqa.float64.LBFGS.Params, dict] = {}, direction_params: Union[alpaqa._alpaqa.float64.StructuredLBFGSDirection.DirectionParams, dict] = {}) -> None

Create a PANOC solver using structured L-BFGS directions.

  1. __init__(self: alpaqa._alpaqa.float64.PANOCSolver, panoc_params: Union[alpaqa._alpaqa.float64.PANOCParams, dict], direction: alpaqa._alpaqa.float64.PANOCDirection) -> None

Create a PANOC solver using a custom direction.

property direction
property name
property params
set_progress_callback(self: alpaqa._alpaqa.float64.PANOCSolver, callback: Callable[[alpaqa._alpaqa.float64.PANOCProgressInfo], None]) alpaqa._alpaqa.float64.PANOCSolver

Specify a callable that is invoked with some intermediate results on each iteration of the algorithm.

stop(self: alpaqa._alpaqa.float64.PANOCSolver) None
class alpaqa.PANOCParams

C++ documentation: alpaqa::PANOCParams

property L_max
property L_min
property Lipschitz
__init__(*args, **kwargs)

Overloaded function.

  1. __init__(self: alpaqa._alpaqa.float64.PANOCParams, params: dict) -> None

  2. __init__(self: alpaqa._alpaqa.float64.PANOCParams, **kwargs) -> None

property eager_gradient_eval
property force_linesearch
property linesearch_coefficient_update_factor
property linesearch_strictness_factor
property linesearch_tolerance_factor
property max_iter
property max_no_progress
property max_time
property min_linesearch_coefficient
property print_interval
property print_precision
property quadratic_upperbound_tolerance_factor
property recompute_last_prox_step_after_stepsize_change
property stop_crit
to_dict(self: alpaqa._alpaqa.float64.PANOCParams) dict
property update_direction_in_candidate

ZeroFPR#

class alpaqa.ZeroFPRSolver

C++ documentation: alpaqa::ZeroFPRSolver

Params

alias of ZeroFPRParams

__call__(self: alpaqa._alpaqa.float64.ZeroFPRSolver, problem: alpaqa._alpaqa.float64.Problem, opts: alpaqa._alpaqa.float64.InnerSolveOptions = {}, x: numpy.ndarray[numpy.float64[m, 1]] | None = None, y: numpy.ndarray[numpy.float64[m, 1]] | None = None, Σ: numpy.ndarray[numpy.float64[m, 1]] | None = None, *, asynchronous: bool = True, suppress_interrupt: bool = False) tuple

Solve the given problem.

Parameters:
  • problem – Problem to solve

  • opts – Options (such as desired tolerance)

  • x – Optional initial guess for the decision variables

  • y – Lagrange multipliers (when used as ALM inner solver)

  • Σ – Penalty factors (when used as ALM inner solver)

  • asynchronous – Release the GIL and run the solver on a separate thread

  • suppress_interrupt – If the solver is interrupted by a KeyboardInterrupt, don’t propagate this exception back to the Python interpreter, but stop the solver early, and return a solution with the status set to alpaqa.SolverStatus.Interrupted.

Returns:

  • Solution \(x\)

  • Updated Lagrange multipliers (only if parameter y was not None)

  • Constraint violation (only if parameter y was not None)

  • Statistics

__init__(*args, **kwargs)

Overloaded function.

  1. __init__(self: alpaqa._alpaqa.float64.ZeroFPRSolver, other: alpaqa._alpaqa.float64.ZeroFPRSolver) -> None

Create a copy

  1. __init__(self: alpaqa._alpaqa.float64.ZeroFPRSolver, zerofpr_params: Union[alpaqa._alpaqa.float64.ZeroFPRParams, dict] = {}, lbfgs_params: Union[alpaqa._alpaqa.float64.LBFGS.Params, dict] = {}, direction_params: Union[alpaqa._alpaqa.float64.StructuredLBFGSDirection.DirectionParams, dict] = {}) -> None

Create a ZeroFPR solver using structured L-BFGS directions.

  1. __init__(self: alpaqa._alpaqa.float64.ZeroFPRSolver, zerofpr_params: Union[alpaqa._alpaqa.float64.ZeroFPRParams, dict], direction: alpaqa._alpaqa.float64.PANOCDirection) -> None

Create a ZeroFPR solver using a custom direction.

property direction
property name
property params
set_progress_callback(self: alpaqa._alpaqa.float64.ZeroFPRSolver, callback: Callable[[alpaqa._alpaqa.float64.ZeroFPRProgressInfo], None]) alpaqa._alpaqa.float64.ZeroFPRSolver

Specify a callable that is invoked with some intermediate results on each iteration of the algorithm.

stop(self: alpaqa._alpaqa.float64.ZeroFPRSolver) None
class alpaqa.ZeroFPRParams

C++ documentation: alpaqa::ZeroFPRParams

property L_max
property L_min
property Lipschitz
__init__(*args, **kwargs)

Overloaded function.

  1. __init__(self: alpaqa._alpaqa.float64.ZeroFPRParams, params: dict) -> None

  2. __init__(self: alpaqa._alpaqa.float64.ZeroFPRParams, **kwargs) -> None

property force_linesearch
property linesearch_strictness_factor
property linesearch_tolerance_factor
property max_iter
property max_no_progress
property max_time
property min_linesearch_coefficient
property print_interval
property print_precision
property quadratic_upperbound_tolerance_factor
property recompute_last_prox_step_after_stepsize_change
property stop_crit
to_dict(self: alpaqa._alpaqa.float64.ZeroFPRParams) dict
property update_direction_from_prox_step
property update_direction_in_accel
property update_direction_in_candidate

Accelerators#

L-BFGS#

class alpaqa.LBFGSDirection

C++ documentation: alpaqa::LBFGSDirection

class DirectionParams

C++ documentation: alpaqa::LBFGSDirection::DirectionParams

__init__(*args, **kwargs)

Overloaded function.

  1. __init__(self: alpaqa._alpaqa.float64.LBFGSDirection.DirectionParams, params: dict) -> None

  2. __init__(self: alpaqa._alpaqa.float64.LBFGSDirection.DirectionParams, **kwargs) -> None

property rescale_on_step_size_changes
to_dict(self: alpaqa._alpaqa.float64.LBFGSDirection.DirectionParams) dict
__init__(self: alpaqa._alpaqa.float64.LBFGSDirection, lbfgs_params: alpaqa._alpaqa.float64.LBFGS.Params | dict = {}, direction_params: alpaqa._alpaqa.float64.LBFGSDirection.DirectionParams | dict = {}) None
property params
class alpaqa.LBFGS.Params

C++ documentation alpaqa::LBFGSParams

class CBFGS

C++ documentation alpaqa::CBFGSParams

__init__(*args, **kwargs)

Overloaded function.

  1. __init__(self: alpaqa._alpaqa.float64.LBFGS.Params.CBFGS, params: dict) -> None

  2. __init__(self: alpaqa._alpaqa.float64.LBFGS.Params.CBFGS, **kwargs) -> None

to_dict(self: alpaqa._alpaqa.float64.LBFGS.Params.CBFGS) dict
property α
property ϵ
__init__(*args, **kwargs)

Overloaded function.

  1. __init__(self: alpaqa._alpaqa.float64.LBFGS.Params, params: dict) -> None

  2. __init__(self: alpaqa._alpaqa.float64.LBFGS.Params, **kwargs) -> None

property cbfgs
property force_pos_def
property memory
property min_abs_s
property min_div_fac
property stepsize
to_dict(self: alpaqa._alpaqa.float64.LBFGS.Params) dict

Structured L-BFGS#

class alpaqa.StructuredLBFGSDirection

C++ documentation: alpaqa::StructuredLBFGSDirection

class DirectionParams

C++ documentation: alpaqa::StructuredLBFGSDirection::DirectionParams

__init__(*args, **kwargs)

Overloaded function.

  1. __init__(self: alpaqa._alpaqa.float64.StructuredLBFGSDirection.DirectionParams, params: dict) -> None

  2. __init__(self: alpaqa._alpaqa.float64.StructuredLBFGSDirection.DirectionParams, **kwargs) -> None

property full_augmented_hessian
property hessian_vec_factor
property hessian_vec_finite_differences
to_dict(self: alpaqa._alpaqa.float64.StructuredLBFGSDirection.DirectionParams) dict
__init__(self: alpaqa._alpaqa.float64.StructuredLBFGSDirection, lbfgs_params: alpaqa._alpaqa.float64.LBFGS.Params | dict = {}, direction_params: alpaqa._alpaqa.float64.StructuredLBFGSDirection.DirectionParams | dict = {}) None
property params

Anderson acceleration#

class alpaqa.AndersonDirection

C++ documentation: alpaqa::AndersonDirection

class DirectionParams

C++ documentation: alpaqa::AndersonDirection::DirectionParams

__init__(*args, **kwargs)

Overloaded function.

  1. __init__(self: alpaqa._alpaqa.float64.AndersonDirection.DirectionParams, params: dict) -> None

  2. __init__(self: alpaqa._alpaqa.float64.AndersonDirection.DirectionParams, **kwargs) -> None

property rescale_on_step_size_changes
to_dict(self: alpaqa._alpaqa.float64.AndersonDirection.DirectionParams) dict
__init__(self: alpaqa._alpaqa.float64.AndersonDirection, anderson_params: alpaqa._alpaqa.float64.AndersonAccel.Params | dict = {}, direction_params: alpaqa._alpaqa.float64.AndersonDirection.DirectionParams | dict = {}) None
property params
class alpaqa.AndersonAccel.Params

C++ documentation alpaqa::AndersonAccelParams

__init__(*args, **kwargs)

Overloaded function.

  1. __init__(self: alpaqa._alpaqa.float64.AndersonAccel.Params, params: dict) -> None

  2. __init__(self: alpaqa._alpaqa.float64.AndersonAccel.Params, **kwargs) -> None

property memory
property min_div_fac
to_dict(self: alpaqa._alpaqa.float64.AndersonAccel.Params) dict