ROL
|
ROL's functional interface. More...
Classes | |
class | ROL::Objective< Real > |
Provides the interface to evaluate objective functions. More... | |
class | ROL::BoundConstraint< Real > |
Provides the interface to apply upper and lower bound constraints. More... | |
class | ROL::EqualityConstraint< Real > |
Defines the equality constraint operator interface. More... | |
class | ROL::LinearOperator< Real > |
Provides the interface to apply a linear operator. More... | |
class | ROL::Objective_SimOpt< Real > |
Provides the interface to evaluate simulation-based objective functions. More... | |
class | ROL::EqualityConstraint_SimOpt< Real > |
Defines the equality constraint operator interface for simulation-based optimization. More... | |
class | ROL::AugmentedLagrangian< Real > |
Provides the interface to evaluate the augmented Lagrangian. More... | |
class | ROL::AugmentedLagrangian_SimOpt< Real > |
Provides the interface to evaluate the SimOpt augmented Lagrangian. More... | |
class | ROL::BlockOperator< Real > |
Provides the interface to apply a block operator to a partitioned vector. More... | |
class | ROL::BoundConstraint_Partitioned< Real > |
A composite composite BoundConstraint formed from bound constraints on subvectors of a PartitionedVector. More... | |
class | ROL::BoundInequalityConstraint< Real > |
Provides an implementation for bound inequality constraints. More... | |
class | ROL::ColemanLiModel< Real > |
Provides the interface to evaluate interior trust-region model functions from the Coleman-Li bound constrained trust-region algorithm. More... | |
class | ROL::CompositeConstraint< Real > |
Has both inequality and equality constraints. Treat inequality constraint as equality with slack variable. More... | |
class | ROL::CompositeEqualityConstraint_SimOpt< Real > |
Defines a composite equality constraint operator interface for simulation-based optimization. More... | |
class | ROL::CompositeObjective< Real > |
Provides the interface to evaluate composite objective functions. More... | |
class | ROL::CompositeObjective_SimOpt< Real > |
Provides the interface to evaluate simulation-based composite objective functions. More... | |
class | ROL::DiagonalOperator< Real > |
Provides the interface to apply a diagonal operator which acts like elementwise multiplication when apply() is used and elementwise division when applyInverse() is used. More... | |
class | ROL::EqualityConstraint_Partitioned< Real > |
Allows composition of equality constraints. More... | |
class | ROL::InequalityConstraint< Real > |
Provides a unique argument for inequality constraints, which otherwise behave exactly as equality constraints. More... | |
class | ROL::KelleySachsModel< Real > |
Provides the interface to evaluate projected trust-region model functions from the Kelley-Sachs bound constrained trust-region algorithm. More... | |
class | ROL::LinearObjective< Real > |
Provides the interface to evaluate linear objective functions. More... | |
class | ROL::LogBarrierObjective< Real > |
Log barrier objective for interior point methods. More... | |
class | ROL::LowerBoundInequalityConstraint< Real > |
Provides an implementation for lower bound inequality constraints. More... | |
class | ROL::MoreauYosidaPenalty< Real > |
Provides the interface to evaluate the Moreau-Yosida penalty function. More... | |
class | ROL::NonlinearLeastSquaresObjective< Real > |
Provides the interface to evaluate nonlinear least squares objective functions. More... | |
class | ROL::ObjectiveFromBoundConstraint< Real > |
Create a penalty objective from upper and lower bound vectors. More... | |
class | ROL::QuadraticObjective< Real > |
Provides the interface to evaluate quadratic objective functions. More... | |
class | ROL::QuadraticPenalty< Real > |
Provides the interface to evaluate the quadratic constraint penalty. More... | |
class | ROL::QuadraticPenalty_SimOpt< Real > |
Provides the interface to evaluate the quadratic SimOpt constraint penalty. More... | |
class | ROL::Reduced_AugmentedLagrangian_SimOpt< Real > |
Provides the interface to evaluate the reduced SimOpt augmented Lagrangian. More... | |
class | ROL::ScalarLinearEqualityConstraint< Real > |
This equality constraint defines an affine hyperplane. More... | |
class | ROL::SlacklessObjective< Real > |
This class strips out the slack variables from objective evaluations to create the new objective \( F(x,s) = f(x) \). More... | |
class | ROL::StdObjective< Real > |
Specializes the ROL::Objective interface for objective functions that operate on ROL::StdVector's. More... | |
class | ROL::TrustRegionModel< Real > |
Provides the interface to evaluate trust-region model functions. More... | |
class | ROL::UpperBoundInequalityConstraint< Real > |
Provides an implementation for upper bound inequality constraints. More... | |
class | ROL::PenalizedObjective |
Adds barrier term to generic objective. More... | |
class | ROL::InteriorPoint::CompositeConstraint< Real > |
Has both inequality and equality constraints. Treat inequality constraint as equality with slack variable. More... | |
class | ROL::InteriorPoint::PrimalDualResidual< Real > |
Express the Primal-Dual Interior Point gradient as an equality constraint. More... | |
class | ROL::ParametrizedCompositeObjective< Real > |
Provides the interface to evaluate parametrized composite objective functions. More... | |
class | ROL::ParametrizedStdObjective< Real > |
Specializes the ROL::Objective interface for objective functions that operate on ROL::StdVector's. More... | |
ROL's functional interface.
ROL is used for the numerical solution of smooth optimization problems
\[ \begin{array}{rl} \displaystyle \min_{x} & f(x) \\ \mbox{subject to} & c(x) = 0 \,, \\ & a \le x \le b \,, \end{array} \]
where:
This formulation encompasses a variety of useful problem scenarios.
First, the vector spaces \(\mathcal{X}\) and \(\mathcal{C}\), to be defined by the user through the Linear Algebra Interface, can represent real spaces, such as \(\mathcal{X} = \mathbb{R}^n\) and \(\mathcal{C} = \mathbb{R}^m\), and function spaces, such as Hilbert and Banach function spaces. ROL's vector space abstractions enable efficent implementations of general optimization algorithms, spanning traditional nonlinear programming (NLP), optimization with partial differential equation (PDE) or differential algebraic equation (DAE) constraints, and stochastic optimization.
Second, ROL's core methods can solve four types of smooth optimization problems, depending on the structure of the constraints.
\[ \begin{array}{rl} \displaystyle \min_{x} & f(x) \end{array} \]
These problems are known as unconstrained optimization problems. The user implements the methods of the ROL::Objective interface.\[ \begin{array}{rl} \displaystyle \min_{x} & f(x) \\ \mbox{subject to} & a \le x \le b \,. \end{array} \]
This problem is typically handled using projections on active sets or primal-dual active-set methods. ROL provides example implementations of the projections for simple box constraints. Other projections are defined by the user. The user implements the methods of the ROL::BoundConstraint interface.\[ \begin{array}{rl} \displaystyle \min_{x} & f(x) \\ \mbox{subject to} & c(x) = 0 \,. \end{array} \]
Equality constraints are handled in ROL using, for example, matrix-free composite-step methods, including sequential quadratic programming (SQP). The user implements the methods of the ROL::EqualityConstraint interface.\[ \begin{array}{rl} \displaystyle \min_{x} & f(x) \\ \mbox{subject to} & c(x) = 0 \\ & a \le x \le b \,. \end{array} \]
This formulation includes general inequality constraints. For example, we can consider the reformulation:\[ \begin{array}{rlcccrl} \displaystyle \min_{x} & f(x) &&&& \displaystyle \min_{x,s} & f(x) \\ \mbox{subject to} & c(x) \le 0 & & \quad \longleftrightarrow \quad & & \mbox{subject to} & c(x) + s = 0 \,, \\ &&&&&& s \ge 0 \,. \end{array} \]
ROL uses a combination of matrix-free composite-step methods, projection methods and primal-dual active set methods to solve these problems. The user implements the methods of the ROL::EqualityConstraint and the ROL::BoundConstraint interfaces.Third, ROL's design enables streamlined algorithmic extensions, such as the Stochastic Optimization capability.