The toolbox is organized around two classes hierarchies: the functions and the
solvers. Instantiated functions represent convex functions to optimize.
Instantiated solvers represent solving algorithms. The
pyunlocbox.solvers.solve() solving function takes as parameters a solver
object and some function objects to actually solve the optimization problem.
See this function’s documentation for a typical usage example.
pyunlocbox package is divided into the following modules :
This module implements function objects which are then passed to solvers. The
func base class defines the interface whereas specialised classes who
inherit from it implement the methods. These classes include :
dummy: A dummy function object which returns 0 for the
norm: Norm operators base class.
proj: Projection operators base class.
proj_b2: Projection on the L2-ball who implements the
This module implements solver objects who minimize an objective function. Call
solve() to solve your convex optimization problem using your instantiated
solver and functions objects. The
solver base class defines the
interface of all solver objects. The specialized solver objects inherit from
it and implement the class methods. The following solvers are included :
forward_backward: Forward-backward proximal splitting algorithm.
douglas_rachford: Douglas-Rachford proximal splitting algorithm.
generalized_forward_backward: Generalized Forward-Backward.
primal_dual: Primal-dual algorithms.