|
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::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::BlockOperator< Real > |
| Provides the interface to apply a block operator to a partitioned vector. More... | |
| class | ROL::BlockOperator2< Real > |
| Provides the interface to apply a 2x2 block operator to a partitioned vector. More... | |
| class | ROL::BlockOperator2Determinant< Real > |
Provides the interface to the block determinant of a 2x2 block operatorMore... | |
| class | ROL::BlockOperator2Diagonal< Real > |
| Provides the interface to apply a 2x2 block diagonal operator to a partitioned vector. More... | |
| class | ROL::BlockOperator2UnitLower< Real > |
| Provides the interface to apply a 2x2 block unit lower operator to a partitioned vector. More... | |
| class | ROL::BlockOperator2UnitUpper< Real > |
| Provides the interface to apply a 2x2 block unit upper operator to a partitioned vector. 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::DyadicOperator< Real > |
| Interface to apply a dyadic operator to a vector. More... | |
| class | ROL::HouseholderReflector< Real > |
| Provides the interface to create a Householder reflector operator, that when applied to a vector x, produces a vector parallel to y. More... | |
| class | ROL::IdentityOperator< Real > |
| Multiplication by unity. More... | |
| class | ROL::LinearOperator< Real > |
| Provides the interface to apply a linear operator. More... | |
| class | ROL::LinearOperatorFromEqualityConstraint< Real > |
| A simple wrapper which allows application of constraint Jacobians through the LinearOperator interface. More... | |
| class | ROL::LinearOperatorProduct< Real > |
Provides the interface to the sequential application of linear operators.More... | |
| class | ROL::LinearOperatorSum< Real > |
Provides the interface to sum of linear operators applied to a vectorMore... | |
| class | ROL::NullOperator< Real > |
| Multiplication by zero. More... | |
| class | ROL::SchurComplement |
| Given a 2x2 block operator, perform the Schur reduction and return the decoupled system components. More... | |
| class | ROL::StdLinearOperator< Real > |
| Provides the std::vector implementation to apply a linear operator, which is a std::vector representation of column-stacked matrix. More... | |
| class | ROL::StdLinearOperatorFactory |
Creates StdLinearOperator objects which wrap random matrices of the desired size and propertyMore... | |
| class | ROL::StdTridiagonalOperator< Real > |
| Provides the std::vector implementation to apply a linear operator, which encapsulates a tridiagonal matrix. 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::BinaryConstraint< Real > |
| Implements an equality constraint function that evaluates to zero on the surface of a bounded parallelpiped and is positive in the interior. 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::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::LinearEqualityConstraint< Real > |
| Provides the interface to evaluate linear equality constraints. 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::NonlinearLeastSquaresObjective_SimOpt< 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::ObjectiveMMA< Real > |
| Provides the interface to to Method of Moving Asymptotes Objective function. 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::StdEqualityConstraint< Real > |
| Defines the equality constraint operator interface for StdVectors. More... | |
| class | ROL::StdInequalityConstraint< Real > |
| Provides a unique argument for inequality constraints using std::vector types, which otherwise behave exactly as equality constraints. 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::InteriorPointPenalty< Real > |
| Provides the interface to evaluate the Interior Pointy log barrier penalty function with upper and lower bounds on some elements. More... | |
| class | ROL::InteriorPoint::PrimalDualResidual< Real > |
| Express the Primal-Dual Interior Point gradient as an equality constraint. More... | |
| class | ROL::PrimalDualInteriorPointReducedResidual |
| Reduced form of the Primal Dual Interior Point residual and the action of its Jacobian. More... | |
| class | ROL::PrimalDualInteriorPointResidual< Real > |
| Symmetrized form of the KKT operator for the Type-EB problem with equality and bound multipliers. 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.
1.8.13