|
ROL
|
Symmetrized form of the KKT operator for the Type-EB problem with equality and bound multipliers. More...
#include <ROL_PrimalDualInteriorPointReducedResidual.hpp>
Inheritance diagram for ROL::PrimalDualInteriorPointResidual< Real >:Classes | |
| class | InFill |
| class | SafeDivide |
| class | SetZeros |
Public Member Functions | |
| PrimalDualInteriorPointResidual (const Teuchos::RCP< PENALTY > &penalty, const Teuchos::RCP< CON > &con, const V &x, Teuchos::RCP< V > &scratch) | |
| void | update (const Vector< Real > &x, bool flag=true, int iter=-1) |
| Update constraint functions. x is the optimization variable, flag = true if optimization variable is changed, iter is the outer algorithm iterations count. More... | |
| void | value (V &c, const V &x, Real &tol) |
| Evaluate the constraint operator \(c:\mathcal{X} \rightarrow \mathcal{C}\) at \(x\). More... | |
| void | applyJacobian (V &jv, const V &v, const V &x, Real &tol) |
| Apply the constraint Jacobian at \(x\), \(c'(x) \in L(\mathcal{X}, \mathcal{C})\), to vector \(v\). More... | |
| int | getNumberFunctionEvaluations (void) const |
| int | getNumberGradientEvaluations (void) const |
| int | getNumberConstraintEvaluations (void) const |
| PrimalDualInteriorPointResidual (const Teuchos::RCP< OBJ > &obj, const Teuchos::RCP< CON > &con, const Teuchos::RCP< BND > &bnd, const V &x, const Teuchos::RCP< const V > &maskL, const Teuchos::RCP< const V > &maskU, Teuchos::RCP< V > &scratch, Real mu, bool symmetrize) | |
| void | update (const Vector< Real > &x, bool flag=true, int iter=-1) |
| Update constraint functions. x is the optimization variable, flag = true if optimization variable is changed, iter is the outer algorithm iterations count. More... | |
| void | value (V &c, const V &x, Real &tol) |
| Evaluate the constraint operator \(c:\mathcal{X} \rightarrow \mathcal{C}\) at \(x\). More... | |
| void | applyJacobian (V &jv, const V &v, const V &x, Real &tol) |
| Apply the constraint Jacobian at \(x\), \(c'(x) \in L(\mathcal{X}, \mathcal{C})\), to vector \(v\). More... | |
| void | reset (const Real mu) |
| int | getNumberFunctionEvaluations (void) const |
| int | getNumberGradientEvaluations (void) const |
| int | getNumberConstraintEvaluations (void) const |
Public Member Functions inherited from ROL::EqualityConstraint< Real > | |
| virtual | ~EqualityConstraint () |
| virtual void | applyAdjointJacobian (Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) |
| Apply the adjoint of the the constraint Jacobian at \(x\), \(c'(x)^* \in L(\mathcal{C}^*, \mathcal{X}^*)\), to vector \(v\). More... | |
| virtual void | applyAdjointJacobian (Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &x, const Vector< Real > &dualv, Real &tol) |
| Apply the adjoint of the the constraint Jacobian at \(x\), \(c'(x)^* \in L(\mathcal{C}^*, \mathcal{X}^*)\), to vector \(v\). More... | |
| virtual void | applyAdjointHessian (Vector< Real > &ahuv, const Vector< Real > &u, const Vector< Real > &v, const Vector< Real > &x, Real &tol) |
| Apply the derivative of the adjoint of the constraint Jacobian at \(x\) to vector \(u\) in direction \(v\), according to \( v \mapsto c''(x)(v,\cdot)^*u \). More... | |
| virtual std::vector< Real > | solveAugmentedSystem (Vector< Real > &v1, Vector< Real > &v2, const Vector< Real > &b1, const Vector< Real > &b2, const Vector< Real > &x, Real &tol) |
| Approximately solves the augmented system \[ \begin{pmatrix} I & c'(x)^* \\ c'(x) & 0 \end{pmatrix} \begin{pmatrix} v_{1} \\ v_{2} \end{pmatrix} = \begin{pmatrix} b_{1} \\ b_{2} \end{pmatrix} \] where \(v_{1} \in \mathcal{X}\), \(v_{2} \in \mathcal{C}^*\), \(b_{1} \in \mathcal{X}^*\), \(b_{2} \in \mathcal{C}\), \(I : \mathcal{X} \rightarrow \mathcal{X}^*\) is an identity or Riesz operator, and \(0 : \mathcal{C}^* \rightarrow \mathcal{C}\) is a zero operator. More... | |
| virtual void | applyPreconditioner (Vector< Real > &pv, const Vector< Real > &v, const Vector< Real > &x, const Vector< Real > &g, Real &tol) |
| Apply a constraint preconditioner at \(x\), \(P(x) \in L(\mathcal{C}, \mathcal{C}^*)\), to vector \(v\). Ideally, this preconditioner satisfies the following relationship: \[ \left[c'(x) \circ R \circ c'(x)^* \circ P(x)\right] v = v \,, \] where R is the appropriate Riesz map in \(L(\mathcal{X}^*, \mathcal{X})\). It is used by the solveAugmentedSystem method. More... | |
| EqualityConstraint (void) | |
| virtual bool | isFeasible (const Vector< Real > &v) |
| Check if the vector, v, is feasible. More... | |
| void | activate (void) |
| Turn on constraints. More... | |
| void | deactivate (void) |
| Turn off constraints. More... | |
| bool | isActivated (void) |
| Check if constraints are on. More... | |
| virtual std::vector< std::vector< Real > > | checkApplyJacobian (const Vector< Real > &x, const Vector< Real > &v, const Vector< Real > &jv, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1) |
| Finite-difference check for the constraint Jacobian application. More... | |
| virtual std::vector< std::vector< Real > > | checkApplyJacobian (const Vector< Real > &x, const Vector< Real > &v, const Vector< Real > &jv, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1) |
| Finite-difference check for the constraint Jacobian application. More... | |
| virtual std::vector< std::vector< Real > > | checkApplyAdjointJacobian (const Vector< Real > &x, const Vector< Real > &v, const Vector< Real > &c, const Vector< Real > &ajv, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS) |
| Finite-difference check for the application of the adjoint of constraint Jacobian. More... | |
| virtual Real | checkAdjointConsistencyJacobian (const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &x, const bool printToStream=true, std::ostream &outStream=std::cout) |
| virtual Real | checkAdjointConsistencyJacobian (const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &x, const Vector< Real > &dualw, const Vector< Real > &dualv, const bool printToStream=true, std::ostream &outStream=std::cout) |
| virtual std::vector< std::vector< Real > > | checkApplyAdjointHessian (const Vector< Real > &x, const Vector< Real > &u, const Vector< Real > &v, const Vector< Real > &hv, const std::vector< Real > &step, const bool printToScreen=true, std::ostream &outStream=std::cout, const int order=1) |
| Finite-difference check for the application of the adjoint of constraint Hessian. More... | |
| virtual std::vector< std::vector< Real > > | checkApplyAdjointHessian (const Vector< Real > &x, const Vector< Real > &u, const Vector< Real > &v, const Vector< Real > &hv, const bool printToScreen=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1) |
| Finite-difference check for the application of the adjoint of constraint Hessian. More... | |
| virtual void | setParameter (const std::vector< Real > ¶m) |
Private Types | |
| typedef Teuchos::ParameterList | PL |
| typedef Vector< Real > | V |
| typedef PartitionedVector< Real > | PV |
| typedef Objective< Real > | OBJ |
| typedef EqualityConstraint< Real > | CON |
| typedef BoundConstraint< Real > | BND |
| typedef LinearOperator< Real > | LOP |
| typedef InteriorPointPenalty< Real > | PENALTY |
| typedef Elementwise::ValueSet< Real > | ValueSet |
| typedef PV::size_type | size_type |
| typedef Teuchos::ParameterList | PL |
| typedef Vector< Real > | V |
| typedef PartitionedVector< Real > | PV |
| typedef Objective< Real > | OBJ |
| typedef EqualityConstraint< Real > | CON |
| typedef BoundConstraint< Real > | BND |
| typedef Elementwise::ValueSet< Real > | ValueSet |
| typedef PV::size_type | size_type |
Private Member Functions | |
| Teuchos::RCP< V > | getOptMult (V &vec) |
| Teuchos::RCP< const V > | getOptMult (const V &vec) |
Private Attributes | |
| Teuchos::RCP< const V > | x_ |
| Teuchos::RCP< const V > | l_ |
| Teuchos::RCP< const V > | zl_ |
| Teuchos::RCP< const V > | zu_ |
| Teuchos::RCP< const V > | xl_ |
| Teuchos::RCP< const V > | xu_ |
| const Teuchos::RCP< const V > | maskL_ |
| const Teuchos::RCP< const V > | maskU_ |
| Teuchos::RPC< V > | scratch_ |
| const Teuchos::RCP< PENALTY > | penalty_ |
| const Teuchos::RCP< OBJ > | obj_ |
| const Teuchos::RCP< CON > | con_ |
| const Teuchos::RCP< BND > | bnd_ |
| Teuchos::RCP< V > | scratch_ |
| Real | mu_ |
| bool | symmetrize_ |
| Real | one_ |
| Real | zero_ |
| int | nfval_ |
| int | ngrad_ |
| int | ncval_ |
| Elementwise::Multiply< Real > | mult_ |
| SafeDivide | div_ |
| SetZeros | setZeros_ |
| InFill | inFill_ |
Static Private Attributes | |
| static const size_type | OPT = 0 |
| static const size_type | EQUAL = 1 |
| static const size_type | LOWER = 2 |
| static const size_type | UPPER = 3 |
Additional Inherited Members | |
Protected Member Functions inherited from ROL::EqualityConstraint< Real > | |
| const std::vector< Real > | getParameter (void) const |
Symmetrized form of the KKT operator for the Type-EB problem with equality and bound multipliers.
The system is symmetrized by multiplying through by
S = [ I 0 0 0 ] [ 0 I 0 0 ] [ 0 0 -inv(Zl) 0 ] [ 0 0 0 -inv(Zu) ]
Where Zl and Zu are diagonal matrices containing the lower and upper bound multipliers respectively
Infinite bounds have identically zero-valued lagrange multipliers.
Definition at line 111 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
|
private |
Definition at line 113 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
|
private |
Definition at line 115 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
|
private |
Definition at line 116 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
|
private |
Definition at line 117 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
|
private |
Definition at line 118 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
|
private |
Definition at line 119 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
|
private |
Definition at line 120 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
|
private |
Definition at line 121 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
|
private |
Definition at line 123 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
|
private |
Definition at line 125 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
|
private |
Definition at line 80 of file ROL_PrimalDualInteriorPointResidual.hpp.
|
private |
Definition at line 82 of file ROL_PrimalDualInteriorPointResidual.hpp.
|
private |
Definition at line 83 of file ROL_PrimalDualInteriorPointResidual.hpp.
|
private |
Definition at line 84 of file ROL_PrimalDualInteriorPointResidual.hpp.
|
private |
Definition at line 85 of file ROL_PrimalDualInteriorPointResidual.hpp.
|
private |
Definition at line 86 of file ROL_PrimalDualInteriorPointResidual.hpp.
|
private |
Definition at line 88 of file ROL_PrimalDualInteriorPointResidual.hpp.
|
private |
Definition at line 90 of file ROL_PrimalDualInteriorPointResidual.hpp.
|
inline |
Definition at line 154 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
References ROL::PartitionedVector< Real >::get().
|
inline |
Definition at line 176 of file ROL_PrimalDualInteriorPointResidual.hpp.
References ROL::PartitionedVector< Real >::get().
|
inlinevirtual |
Update constraint functions. x is the optimization variable, flag = true if optimization variable is changed, iter is the outer algorithm iterations count.
Reimplemented from ROL::EqualityConstraint< Real >.
Definition at line 180 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
References ROL::PartitionedVector< Real >::get().
|
inlinevirtual |
Evaluate the constraint operator \(c:\mathcal{X} \rightarrow \mathcal{C}\) at \(x\).
| [out] | c | is the result of evaluating the constraint operator at x; a constraint-space vector |
| [in] | x | is the constraint argument; an optimization-space vector |
| [in,out] | tol | is a tolerance for inexact evaluations; currently unused |
On return, \(\mathsf{c} = c(x)\), where \(\mathsf{c} \in \mathcal{C}\), \(\mathsf{x} \in \mathcal{X}\).
Implements ROL::EqualityConstraint< Real >.
Definition at line 196 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
References ROL::PartitionedVector< Real >::get().
|
inlinevirtual |
Apply the constraint Jacobian at \(x\), \(c'(x) \in L(\mathcal{X}, \mathcal{C})\), to vector \(v\).
| [out] | jv | is the result of applying the constraint Jacobian to v at x; a constraint-space vector |
| [in] | v | is an optimization-space vector |
| [in] | x | is the constraint argument; an optimization-space vector |
| [in,out] | tol | is a tolerance for inexact evaluations; currently unused |
On return, \(\mathsf{jv} = c'(x)v\), where \(v \in \mathcal{X}\), \(\mathsf{jv} \in \mathcal{C}\).
The default implementation is a finite-difference approximation.
Reimplemented from ROL::EqualityConstraint< Real >.
Definition at line 221 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
References ROL::PartitionedVector< Real >::get().
|
inline |
Definition at line 282 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
References ROL::PrimalDualInteriorPointResidual< Real >::nfval_.
|
inline |
Definition at line 286 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
References ROL::PrimalDualInteriorPointResidual< Real >::ngrad_.
|
inline |
Definition at line 290 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
References ROL::PrimalDualInteriorPointResidual< Real >::ncval_.
|
inlineprivate |
Definition at line 158 of file ROL_PrimalDualInteriorPointResidual.hpp.
References ROL::PartitionedVector< Real >::get().
|
inlineprivate |
Definition at line 165 of file ROL_PrimalDualInteriorPointResidual.hpp.
References ROL::PartitionedVector< Real >::get().
|
inlinevirtual |
Update constraint functions. x is the optimization variable, flag = true if optimization variable is changed, iter is the outer algorithm iterations count.
Reimplemented from ROL::EqualityConstraint< Real >.
Definition at line 200 of file ROL_PrimalDualInteriorPointResidual.hpp.
References ROL::PartitionedVector< Real >::get().
|
inlinevirtual |
Evaluate the constraint operator \(c:\mathcal{X} \rightarrow \mathcal{C}\) at \(x\).
| [out] | c | is the result of evaluating the constraint operator at x; a constraint-space vector |
| [in] | x | is the constraint argument; an optimization-space vector |
| [in,out] | tol | is a tolerance for inexact evaluations; currently unused |
On return, \(\mathsf{c} = c(x)\), where \(\mathsf{c} \in \mathcal{C}\), \(\mathsf{x} \in \mathcal{X}\).
Implements ROL::EqualityConstraint< Real >.
Definition at line 217 of file ROL_PrimalDualInteriorPointResidual.hpp.
References ROL::PartitionedVector< Real >::get().
|
inlinevirtual |
Apply the constraint Jacobian at \(x\), \(c'(x) \in L(\mathcal{X}, \mathcal{C})\), to vector \(v\).
| [out] | jv | is the result of applying the constraint Jacobian to v at x; a constraint-space vector |
| [in] | v | is an optimization-space vector |
| [in] | x | is the constraint argument; an optimization-space vector |
| [in,out] | tol | is a tolerance for inexact evaluations; currently unused |
On return, \(\mathsf{jv} = c'(x)v\), where \(v \in \mathcal{X}\), \(\mathsf{jv} \in \mathcal{C}\).
The default implementation is a finite-difference approximation.
Reimplemented from ROL::EqualityConstraint< Real >.
Definition at line 314 of file ROL_PrimalDualInteriorPointResidual.hpp.
References ROL::PartitionedVector< Real >::get().
|
inline |
Definition at line 445 of file ROL_PrimalDualInteriorPointResidual.hpp.
|
inline |
Definition at line 452 of file ROL_PrimalDualInteriorPointResidual.hpp.
References ROL::PrimalDualInteriorPointResidual< Real >::nfval_.
|
inline |
Definition at line 456 of file ROL_PrimalDualInteriorPointResidual.hpp.
References ROL::PrimalDualInteriorPointResidual< Real >::ngrad_.
|
inline |
Definition at line 460 of file ROL_PrimalDualInteriorPointResidual.hpp.
References ROL::PrimalDualInteriorPointResidual< Real >::ncval_.
|
staticprivate |
Definition at line 129 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
|
staticprivate |
Definition at line 130 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
|
staticprivate |
Definition at line 131 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
|
staticprivate |
Definition at line 132 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
|
private |
Definition at line 134 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
|
private |
Definition at line 135 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
|
private |
Definition at line 136 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
|
private |
Definition at line 137 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
|
private |
Definition at line 139 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
|
private |
Definition at line 140 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
|
private |
Definition at line 142 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
|
private |
Definition at line 143 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
|
private |
Definition at line 145 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
|
private |
Definition at line 147 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
|
private |
Definition at line 148 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
|
private |
Definition at line 149 of file ROL_PrimalDualInteriorPointReducedResidual.hpp.
|
private |
Definition at line 101 of file ROL_PrimalDualInteriorPointResidual.hpp.
|
private |
Definition at line 114 of file ROL_PrimalDualInteriorPointResidual.hpp.
|
private |
Definition at line 116 of file ROL_PrimalDualInteriorPointResidual.hpp.
|
private |
Definition at line 118 of file ROL_PrimalDualInteriorPointResidual.hpp.
|
private |
Definition at line 120 of file ROL_PrimalDualInteriorPointResidual.hpp.
|
private |
Definition at line 121 of file ROL_PrimalDualInteriorPointResidual.hpp.
|
private |
Definition at line 123 of file ROL_PrimalDualInteriorPointResidual.hpp.
Referenced by ROL::PrimalDualInteriorPointResidual< Real >::getNumberFunctionEvaluations().
|
private |
Definition at line 124 of file ROL_PrimalDualInteriorPointResidual.hpp.
Referenced by ROL::PrimalDualInteriorPointResidual< Real >::getNumberGradientEvaluations().
|
private |
Definition at line 125 of file ROL_PrimalDualInteriorPointResidual.hpp.
Referenced by ROL::PrimalDualInteriorPointResidual< Real >::getNumberConstraintEvaluations().
|
private |
Definition at line 127 of file ROL_PrimalDualInteriorPointResidual.hpp.
|
private |
Definition at line 136 of file ROL_PrimalDualInteriorPointResidual.hpp.
|
private |
Definition at line 145 of file ROL_PrimalDualInteriorPointResidual.hpp.
|
private |
Definition at line 155 of file ROL_PrimalDualInteriorPointResidual.hpp.
1.8.13