ROL
|
ROL's functional interface. More...
Classes | |
class | ROL::BoundConstraint< Real > |
Provides the interface to apply upper and lower bound constraints. More... | |
class | ROL::BoundConstraint_Partitioned< Real > |
A composite composite BoundConstraint formed from bound constraints on subvectors of a PartitionedVector. More... | |
class | ROL::Bounds< Real > |
Provides the elementwise interface to apply upper and lower bound constraints. 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::BoundToConstraint< Real > |
Provides an implementation for bound constraints. More... | |
class | ROL::Constraint< Real > |
Defines the general constraint operator interface. More... | |
class | ROL::Constraint_Partitioned< Real > |
Has both inequality and equality constraints. Treat inequality constraint as equality with slack variable. More... | |
class | ROL::ConstraintFromObjective< Real > |
Creates a constraint from an objective function and a offset value. More... | |
class | ROL::LinearConstraint< Real > |
Provides the interface to evaluate linear constraints. More... | |
class | ROL::LowerBoundToConstraint< Real > |
Provides an implementation for lower bound constraints. More... | |
class | ROL::ScalarLinearConstraint< Real > |
This equality constraint defines an affine hyperplane. More... | |
class | ROL::UpperBoundToConstraint< Real > |
Provides an implementation for upper bound constraints. More... | |
class | ROL::DynamicObjective< Real > |
Defines the time-dependent objective function interface for simulation-based optimization. Computes time-local contributions of value, gradient, Hessian-vector product etc to a larger composite objective defined over the simulation time. In contrast to other objective classes Objective_TimeSimOpt has a default implementation of value which returns zero, as time-dependent simulation based optimization problems may have an objective value which depends only on the final state of the system. More... | |
class | ROL::DynamicTrackingObjective< Real > |
Defines the time-local contribution to a quadratic tracking objective. More... | |
class | ROL::NonlinearLeastSquaresObjective_Dynamic< Real > |
Provides the interface to evaluate nonlinear least squares objective functions. More... | |
class | ROL::ReducedDynamicObjective< Real > |
Defines the reduced time-dependent objective function interface for simulation-based optimization. More... | |
class | ROL::SerialConstraint |
Evaluates ROL::DynamicConstraint over a sequential set of time intervals. More... | |
class | ROL::NonlinearLeastSquaresObjective< Real > |
Provides the interface to evaluate nonlinear least squares objective functions. More... | |
class | ROL::CompositeObjective< Real > |
Provides the interface to evaluate composite objective functions. More... | |
class | ROL::LinearObjective< Real > |
Provides the interface to evaluate linear objective functions. More... | |
class | ROL::Objective< Real > |
Provides the interface to evaluate objective functions. More... | |
class | ROL::ObjectiveFromConstraint< Real > |
Form an objective function from a ROL::Constraint and a vector in the dual constraint space \(\lambda\in \mathcal{C}^\ast\). More... | |
class | ROL::QuadraticObjective< Real > |
Provides the interface to evaluate quadratic objective functions. 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::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::LinearOperatorFromConstraint< 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::ConstraintManager< Real > |
Provides a wrapper for multiple constraints. More... | |
class | ROL::ObjectiveMMA< Real > |
Provides the interface to to Method of Moving Asymptotes Objective function. More... | |
class | ROL::CompositeConstraint_SimOpt< Real > |
Defines a composite equality constraint operator interface for simulation-based optimization. More... | |
class | ROL::CompositeObjective_SimOpt< Real > |
Provides the interface to evaluate simulation-based composite objective functions. More... | |
class | ROL::Constraint_SerialSimOpt< Real > |
Unifies the constraint defined on a single time step that are defined through the Constraint_TimeSimOpt interface into a SimOpt constraint for all time. Primarily intended for use in testing the parallel-in-time implementation. More... | |
class | ROL::NonlinearLeastSquaresObjective_SimOpt< Real > |
Provides the interface to evaluate nonlinear least squares objective functions. More... | |
class | ROL::Constraint_SimOpt< Real > |
Defines the constraint operator interface for simulation-based optimization. More... | |
class | ROL::Constraint_TimeSimOpt< Real > |
Defines the time dependent constraint operator interface for simulation-based optimization. More... | |
class | ROL::Objective_SimOpt< Real > |
Provides the interface to evaluate simulation-based objective functions. More... | |
class | ROL::Objective_TimeSimOpt< Real > |
Defines the time-dependent objective function interface for simulation-based optimization. Computes time-local contributions of value, gradient, Hessian-vector product etc to a larger composite objective defined over the simulation time. In contrast to other objective classes Objective_TimeSimOpt has a default implementation of value which returns zero, as time-dependent simulation based optimization problems may have an objective value which depends only on the final state of the system. More... | |
class | ROL::Sketch< Real > |
Provides an interface for randomized sketching. More... | |
class | ROL::StdConstraint< Real > |
Defines the equality constraint operator interface for StdVectors. 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::StdObjective< Real > |
Specializes the ROL::Objective interface for objective functions that operate on ROL::StdVector's. More... | |
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::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::PenalizedObjective |
Adds barrier term to generic objective. 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::LogBarrierObjective< Real > |
Log barrier objective for interior point methods. More... | |
class | ROL::ObjectiveFromBoundConstraint< Real > |
Create a penalty objective from upper and lower bound vectors. 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::MoreauYosidaPenalty< Real > |
Provides the interface to evaluate the Moreau-Yosida penalty function. 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 | ConicApproximationModel |
Provides the interface to evaluate conic approximation function. 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::LinMoreModel< Real > |
Provides the interface to evaluate projected trust-region model functions from the Kelley-Sachs bound constrained trust-region algorithm. More... | |
class | ROL::SemismoothNewtonDualModel |
Implements the dual variable model function for a semismooth Newton step. More... | |
class | ROL::TrustRegionModel< Real > |
Provides the interface to evaluate trust-region model functions. More... | |
class | ROL::PH_bPOEObjective< Real > |
Provides the interface for the progressive hedging probability objective. More... | |
class | ROL::PH_DeviationObjective< Real > |
Provides the interface for the progressive hedging deviation objective. More... | |
class | ROL::PH_ErrorObjective< Real > |
Provides the interface for the progressive hedging error objective. More... | |
class | ROL::PH_Objective< Real > |
Provides the interface for the progressive hedging objective. More... | |
class | ROL::PH_ProbObjective< Real > |
Provides the interface for the progressive hedging probability objective. More... | |
class | ROL::PH_RegretObjective< Real > |
Provides the interface for the progressive hedging regret objective. More... | |
class | ROL::PH_RiskObjective< Real > |
Provides the interface for the progressive hedging risk objective. More... | |
class | ROL::RegressionError< Real > |
Provides the interface to evaluate linear regression error. More... | |
class | ROL::SimulatedBoundConstraint< Real > |
A BoundConstraint formed from a single bound constraint replacated according to a SampleGenerator. 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.