sporco.pgm.backtrack

Backtracking methods for PGM algorithms

Classes

BacktrackBase()

Base class for computing step size for proximal gradient method via backtracking.

BacktrackStandard([gamma_u, maxiter])

Class to estimate step size L by computing a linesearch that guarantees that F <= Q according to the standard PGM backtracking strategy in [6].

BacktrackRobust([gamma_d, gamma_u, maxiter])

Class to estimate step size L by computing a linesearch that guarantees that F <= Q according to the robust PGM backtracking strategy in [22].


Class Descriptions

class sporco.pgm.backtrack.BacktrackBase[source]

Bases: object

Base class for computing step size for proximal gradient method via backtracking.

This class is intended to be a base class of other classes that specialise to specific backtracking options.

After termination of the update method the new state in the proximal gradient method is computed. This also updates all the supporting variables.

update(solverobj)[source]

Update step size via backtracking.

Overriding this method is required.

class sporco.pgm.backtrack.BacktrackStandard(gamma_u=1.2, maxiter=50)[source]

Bases: BacktrackBase

Class to estimate step size L by computing a linesearch that guarantees that F <= Q according to the standard PGM backtracking strategy in [6].

After termination of the update method the new state in the proximal gradient method is computed. This also updates all the supporting variables.

Parameters:
gamma_ufloat

Multiplier applied to increase L when backtracking in standard PGM (corresponding to \(\eta\) in [6]).

maxiterint

Maximum iterations of updating L when backtracking.

update(solverobj)[source]
Parameters:
solverobjPGM object

object containing state and functions required to adjust the step size

class sporco.pgm.backtrack.BacktrackRobust(gamma_d=0.9, gamma_u=2.0, maxiter=50)[source]

Bases: BacktrackBase

Class to estimate step size L by computing a linesearch that guarantees that F <= Q according to the robust PGM backtracking strategy in [22].

After termination of the update method the new state in the proximal gradient method is computed. This also updates all the supporting variables.

Parameters:
gamma_dfloat

Multiplier applied to decrease L when backtracking in robust PGM (\(\gamma_d\) in [22]).

gamma_ufloat

Multiplier applied to increase L when backtracking in robust PGM (corresponding Total \(\gamma_u\) in [22]).

maxiterint

Maximum iterations of updating L when backtracking.

update(solverobj)[source]
Parameters:
solverobjPGM object

object containing state and functions required to adjust the step size