opentps.core.processing.planOptimization.acceleration package

Submodules

opentps.core.processing.planOptimization.acceleration.backtracking module

class Backtracking(eta=0.5, **kwargs)

Bases: Dummy

Backtracking based on a local quadratic approximation of the smooth part of the objective. This is the backtracking strategy used in the original FISTA paper. Input: eta: (float) A number between 0 and 1 representing the ratio of the geometric

sequence formed by successive step sizes. In other words, it establishes the relation step_new = eta * step_old. Default is 0.5.

Inherits from Dummy. Code from EPFL LTS2 toolbox.

Variables:

eta (float) – A number between 0 and 1 representing the ratio of the geometric sequence formed by successive step sizes.

opentps.core.processing.planOptimization.acceleration.baseAccel module

class Accel

Bases: object

acceleration scheme object interface The instanced objects are meant to be passed to a solver inheriting from “pyOpti.solvers.solver” Code from EPFL LTS2 toolbox.

post()

Post-processing specific to the acceleration scheme. Mainly used to delete references added during initialization so that the garbage collector can free the memory.

pre(functions, x0)

Pre-processing specific to the acceleration scheme.

update_sol(solver, objective, niter)

Update the solution point for the next iteration.

Parameters:
  • solver (Solver) – Solver on which to act.

  • objective (list) – List of evaluations of the objective function since the beginning of the iterative process.

  • niter (int) – Current iteration number.

Returns:

sol – Updated solution point.

Return type:

array

update_step(solver, objective, niter)

Update the step size for the next iteration

Parameters:
  • solver (Solver) – Solver on which to act.

  • objective (list) – List of evaluations of the objective function since the beginning of the iterative process.

  • niter (int) – Current iteration number.

Returns:

step – Updated step size.

Return type:

float

class Dummy

Bases: Accel

Dummy acceleration scheme which does nothing. Inherit from Accel.

opentps.core.processing.planOptimization.acceleration.fistaAccel module

class FistaAccel(**kwargs)

Bases: Dummy

acceleration scheme for forward-backward solvers. Inherit from Dummy. Code from EPFL LTS2 toolbox.

Variables:

t (float) – Restart variable t

class FistaBacktracking(eta=0.5, **kwargs)

Bases: Backtracking, FistaAccel

acceleration scheme with backtracking for forward-backward solvers. For details about the acceleration scheme and backtracking strategy, see A. Beck and M. Teboulle, “A fast iterative shrinkage-thresholding algorithm for linear inverse problems”, SIAM Journal on Imaging Sciences, vol. 2, no. 1, pp. 183–202, 2009. Inherit from Backtracking and FistaAccel. Code from EPFL LTS2 toolbox.

opentps.core.processing.planOptimization.acceleration.linesearch module

class LineSearch(c1=0.0001, c2=0.8, eps=0.0001, **kwargs)

Bases: Dummy

Backtracking lines earch acceleration based on the Armijo–Goldstein condition, is a line search method to determine the amount to move along a given search direction. It starts withca relatively large estimate of the step size for movement along the search direction, and iteratively shrinking the step size (i.e., “backtracking”) until a decrease of the objective function is observed that adequately corresponds to the decrease that is expected, based on the local gradient of the objective function. Inheriting from Dummy. Code from EPFL LTS2 toolbox.

Parameters:
  • c1 (float) – backtracking parameter

  • c2 (float) – backtracking parameter

  • eps (float) – (Optional) quit if norm of step produced is less than this

Module contents