sporco.admm.ppp

Classes for ADMM variant of the Plug and Play Priors (PPP) algorithm.

Classes

GenericPPP(*args, **kwargs)

Base class for Plug and Play Priors (PPP) ADMM solvers [48] [44].

PPP(*args, **kwargs)

Plug and Play Priors (PPP) solver [48] [44] that can be used without the need to derive a new class.

GenericPPPConsensus(*args, **kwargs)

Base class for Plug and Play Priors (PPP) ADMM Consensus solvers

PPPConsensus(*args, **kwargs)

Plug and Play Priors (PPP) ADMM Consensus solver that can be used without the need to derive a new class.


Class Descriptions

class sporco.admm.ppp.GenericPPP(*args, **kwargs)[source]

Bases: ADMMEqual

Base class for Plug and Play Priors (PPP) ADMM solvers [48] [44].

Parameters:
xshapetuple of ints

Shape of working variable X

optGenericPPP.Options object

Algorithm options

itstat_fields_objfn = ('FVal',)

Fields in IterationStats associated with the objective function; see eval_objfn

hdrtxt_objfn = ('FVal',)

Display column headers associated with the objective function; see eval_objfn

hdrval_objfun = {'FVal': 'FVal'}

Dictionary mapping display column headers in hdrtxt_objfn to IterationStats entries

xstep()[source]

Minimise Augmented Lagrangian with respect to \(\mathbf{x}\).

ystep()[source]

Minimise Augmented Lagrangian with respect to \(\mathbf{y}\).

eval_objfn()[source]

Compute components of objective function.

In this case the regularisation term is implicit so we can only evaluate the data fidelity term represented by the \(f(\cdot)\) component of the functional to be minimised.

proxf(X, rho)[source]

Compute the proximal operator of \(\rho^{-1} f(\cdot)\).

Overriding this method is required. Note that this method should compute the proximal operator of \(\rho^{-1} f(\cdot)\), not the proximal operator of \(\rho f(\cdot)\).

proxg(X, rho)[source]

Compute the proximal operator of \(\rho^{-1} g(\cdot)\).

Overriding this method is required. Note that this method should compute the proximal operator of \(\rho^{-1} g(\cdot)\), not the proximal operator of \(\rho g(\cdot)\).

f(X)[source]

Evauate the data fidelity term \(f(\mathbf{x})\).

Overriding this method is required.

class sporco.admm.ppp.PPP(*args, **kwargs)[source]

Bases: GenericPPP

Plug and Play Priors (PPP) solver [48] [44] that can be used without the need to derive a new class.

Parameters:
xshapetuple of ints

Shape of working variable X

ffunction

Function evaluating the data fidelity term

proxffunction

Function computing the proximal operator of the data fidelity term

proxgfunction

Function computing the proximal operator of the regularisation term

optPPP.Options object

Algorithm options

class sporco.admm.ppp.GenericPPPConsensus(*args, **kwargs)[source]

Bases: WeightedADMMConsensus

Base class for Plug and Play Priors (PPP) ADMM Consensus solvers

This class solves the Multi-Agent Consensus Equilibrium problem [10] via ADMM Consensus instead of the Douglas-Rachford algorithm used in [10]. It can also be viewed as a variant of the Plug and Play Priors (PPP) approach [48] [44] based on a weighted version of the ADMM Consensus (see Ch. 7 of [9]) problem instead of the simpler ADMM problem of the original PPP approach.

Parameters:
xshapetuple of ints

Shape of working variable X

Nbint

Number of consensus blocks

muarray_like

Array of scalar weights

optGenericPPPConsensus.Options object

Algorithm options

itstat_fields_objfn = ()

Fields in IterationStats associated with the objective function; see eval_objfn

hdrtxt_objfn = ()

Display column headers associated with the objective function; see eval_objfn

hdrval_objfun = {}

Dictionary mapping display column headers in hdrtxt_objfn to IterationStats entries

eval_objfn()[source]

Compute components of objective function as well as total contribution to objective function.

In this case we assume that there are no components that can be computed.

xistep(i)[source]

Minimise Augmented Lagrangian with respect to ADMM Consensus component \(\mathbf{x}_i\).

prox_fi(X, rho)[source]

Compute the proximal operator of \(\rho^{-1} f_i(\cdot)\).

Overriding this method is required. Note that this method should compute the proximal operator of \(\rho^{-1} f_i(\cdot)\), not the proximal operator of \(\rho f_i(\cdot)\).

prox_g(X, rho)[source]

Compute the proximal operator of \(\rho^{-1} g(\cdot)\).

If this method is not overridden, the default is to assume \(g(\mathbf{y}) = 0\), so that the corresponding proximal operator is the identity mapping. Note that this method should compute the proximal operator of \(\rho^{-1} g(\cdot)\), not the proximal operator of \(\rho g(\cdot)\).

class sporco.admm.ppp.PPPConsensus(*args, **kwargs)[source]

Bases: GenericPPPConsensus

Plug and Play Priors (PPP) ADMM Consensus solver that can be used without the need to derive a new class.

This class solves the Multi-Agent Consensus Equilibrium problem [10] via ADMM Consensus instead of the Douglas-Rachford algorithm used in [10].

Parameters:
xshapetuple of ints

Shape of working variable X

proxfituple of functions

Tuple of functions that compute the proximal operators for each consensus block

proxgfunction

Function computing the proximal operator of the regularisation term

optPPPConsensus.Options object

Algorithm options

prox_fi(Xi, rho, i)[source]

Compute the proximal operator of \(\rho^{-1} f_i(\cdot)\).