ROL
|
Provides the interface to apply upper and lower bound constraints. More...
#include <ROL_BoundConstraint.hpp>
Classes | |
class | Active |
class | LowerBinding |
class | PruneBinding |
class | UpperBinding |
Public Member Functions | |
virtual | ~BoundConstraint () |
BoundConstraint (void) | |
BoundConstraint (const Vector< Real > &x) | |
BoundConstraint (const Teuchos::RCP< Vector< Real > > &x_lo, const Teuchos::RCP< Vector< Real > > &x_up, const Real scale=1) | |
Default constructor. More... | |
virtual void | update (const Vector< Real > &x, bool flag=true, int iter=-1) |
Update bounds. More... | |
virtual void | project (Vector< Real > &x) |
Project optimization variables onto the bounds. More... | |
virtual void | pruneUpperActive (Vector< Real > &v, const Vector< Real > &x, Real eps=0) |
Set variables to zero if they correspond to the upper \(\epsilon\)-active set. More... | |
virtual void | pruneUpperActive (Vector< Real > &v, const Vector< Real > &g, const Vector< Real > &x, Real eps=0) |
Set variables to zero if they correspond to the upper \(\epsilon\)-binding set. More... | |
virtual void | pruneLowerActive (Vector< Real > &v, const Vector< Real > &x, Real eps=0) |
Set variables to zero if they correspond to the lower \(\epsilon\)-active set. More... | |
virtual void | pruneLowerActive (Vector< Real > &v, const Vector< Real > &g, const Vector< Real > &x, Real eps=0) |
Set variables to zero if they correspond to the lower \(\epsilon\)-binding set. More... | |
virtual const Teuchos::RCP< const Vector< Real > > | getLowerVectorRCP (void) const |
Return the ref count pointer to the lower bound vector. More... | |
virtual const Teuchos::RCP< const Vector< Real > > | getUpperVectorRCP (void) const |
Return the ref count pointer to the upper bound vector. More... | |
virtual const Teuchos::RCP< Vector< Real > > | getLowerVectorRCP (void) |
Return the ref count pointer to the lower bound vector. More... | |
virtual const Teuchos::RCP< Vector< Real > > | getUpperVectorRCP (void) |
Return the ref count pointer to the upper bound vector. More... | |
virtual void | setVectorToUpperBound (Vector< Real > &u) |
Set the input vector to the upper bound. More... | |
virtual void | setVectorToLowerBound (Vector< Real > &l) |
Set the input vector to the lower bound. More... | |
virtual void | pruneActive (Vector< Real > &v, const Vector< Real > &x, Real eps=0) |
Set variables to zero if they correspond to the \(\epsilon\)-active set. More... | |
virtual void | pruneActive (Vector< Real > &v, const Vector< Real > &g, const Vector< Real > &x, Real eps=0) |
Set variables to zero if they correspond to the \(\epsilon\)-binding set. More... | |
virtual bool | isFeasible (const Vector< Real > &v) |
Check if the vector, v, is feasible. More... | |
void | activate (void) |
Turn on bounds. More... | |
void | deactivate (void) |
Turn off bounds. More... | |
bool | isActivated (void) |
Check if bounds are on. More... | |
void | pruneInactive (Vector< Real > &v, const Vector< Real > &x, Real eps=0) |
Set variables to zero if they correspond to the \(\epsilon\)-inactive set. More... | |
void | pruneLowerInactive (Vector< Real > &v, const Vector< Real > &x, Real eps=0) |
void | pruneUpperInactive (Vector< Real > &v, const Vector< Real > &x, Real eps=0) |
void | pruneInactive (Vector< Real > &v, const Vector< Real > &g, const Vector< Real > &x, Real eps=0) |
Set variables to zero if they correspond to the \(\epsilon\)-nonbinding set. More... | |
void | pruneLowerInactive (Vector< Real > &v, const Vector< Real > &g, const Vector< Real > &x, Real eps=0) |
void | pruneUpperInactive (Vector< Real > &v, const Vector< Real > &g, const Vector< Real > &x, Real eps=0) |
void | computeProjectedGradient (Vector< Real > &g, const Vector< Real > &x) |
Compute projected gradient. More... | |
void | computeProjectedStep (Vector< Real > &v, const Vector< Real > &x) |
Compute projected step. More... | |
Private Attributes | |
int | dim_ |
const Teuchos::RCP< Vector< Real > > | x_lo_ |
const Teuchos::RCP< Vector< Real > > | x_up_ |
const Real | scale_ |
Teuchos::RCP< Vector< Real > > | mask_ |
bool | activated_ |
Flag that determines whether or not the constraints are being used. More... | |
Real | min_diff_ |
Elementwise::ReductionMin< Real > | minimum_ |
ROL::BoundConstraint::PruneBinding | prune_ |
Provides the interface to apply upper and lower bound constraints.
ROL's bound constraint class is to designed to handle point wise bound constraints on optimization variables. That is, let \(\mathcal{X}\) be a Banach space of functions from \(\Xi\) into \(\mathbb{R}\) (for example, \(\Xi\subset\mathbb{R}^d\) for some positive integer \(d\) and \(\mathcal{X}=L^2(\Xi)\) or \(\Xi = \{1,\ldots,n\}\) and \(\mathcal{X}=\mathbb{R}^n\)). For any \(x\in\mathcal{X}\), we consider bounds of the form
\[ a(\xi) \le x(\xi) \le b(\xi) \quad \text{for almost every }\xi\in\Xi. \]
Here, \(a(\xi)\le b(\xi)\) for almost every \(\xi\in\Xi\) and \(a,b\in \mathcal{X}\).
Definition at line 72 of file ROL_BoundConstraint.hpp.
|
inlinevirtual |
Definition at line 126 of file ROL_BoundConstraint.hpp.
|
inline |
Definition at line 128 of file ROL_BoundConstraint.hpp.
|
inline |
Definition at line 132 of file ROL_BoundConstraint.hpp.
References ROL::BoundConstraint< Real >::x_lo_, and ROL::BoundConstraint< Real >::x_up_.
|
inline |
Default constructor.
The default constructor automatically turns the constraints on.
Definition at line 143 of file ROL_BoundConstraint.hpp.
References ROL::BoundConstraint< Real >::mask_, ROL::BoundConstraint< Real >::min_diff_, ROL::BoundConstraint< Real >::minimum_, ROL::BoundConstraint< Real >::x_lo_, and ROL::BoundConstraint< Real >::x_up_.
|
inlinevirtual |
Update bounds.
The update function allows the user to update the bounds at each new iterations.
[in] | x | is the optimization variable. |
[in] | flag | is set to true if control is changed. |
[in] | iter | is the outer algorithm iterations count. |
Reimplemented in ROL::RiskBoundConstraint< Real >, ROL::BoundConstraint_Partitioned< Real >, and ROL::BoundConstraint_SimOpt< Real >.
Definition at line 167 of file ROL_BoundConstraint.hpp.
Referenced by ROL::AugmentedLagrangianStep< Real >::initialize(), and ROL::AugmentedLagrangianStep< Real >::update().
|
inlinevirtual |
Project optimization variables onto the bounds.
This function implements the projection of \(x\) onto the bounds, i.e.,
\[ (P_{[a,b]}(x))(\xi) = \min\{b(\xi),\max\{a(\xi),x(\xi)\}\} \quad \text{for almost every }\xi\in\Xi. \]
[in,out] | x | is the optimization variable. |
Reimplemented in H1BoundConstraint< Real >, H1BoundConstraint< Real >, H1BoundConstraint< Real >, H1BoundConstraint< Real >, L2BoundConstraint< Real >, L2BoundConstraint< Real >, L2BoundConstraint< Real >, L2BoundConstraint< Real >, BoundConstraint_BurgersControl< Real >, ROL::BoundConstraint_Partitioned< Real >, ROL::RiskBoundConstraint< Real >, ROL::BoundConstraint_SimOpt< Real >, and ROL::StdBoundConstraint< Real >.
Definition at line 177 of file ROL_BoundConstraint.hpp.
References ROL::Vector< Real >::applyBinary(), ROL::BoundConstraint< Real >::x_lo_, and ROL::BoundConstraint< Real >::x_up_.
Referenced by ROL::PrimalDualActiveSetStep< Real >::compute(), ROL::PrimalDualActiveSetStep< Real >::computeCriticalityMeasure(), ROL::TrustRegionStep< Real >::computeCriticalityMeasure(), ROL::AugmentedLagrangianStep< Real >::computeGradient(), ROL::BoundConstraint< Real >::computeProjectedStep(), ROL::LineSearchStep< Real >::GradDotStep(), ROL::Step< Real >::initialize(), ROL::AugmentedLagrangianStep< Real >::initialize(), ROL::MoreauYosidaPenaltyStep< Real >::initialize(), ROL::PrimalDualActiveSetStep< Real >::initialize(), ROL::TrustRegionStep< Real >::initialize(), ROL::ProjectedNewtonStep< Real >::update(), ROL::TrustRegion< Real >::update(), ROL::ProjectedSecantStep< Real >::update(), ROL::ProjectedNewtonKrylovStep< Real >::update(), ROL::TrustRegionStep< Real >::update(), ROL::LineSearch< Real >::updateIterate(), and ROL::MoreauYosidaPenaltyStep< Real >::updateState().
|
inlinevirtual |
Set variables to zero if they correspond to the upper \(\epsilon\)-active set.
This function sets \(v(\xi)=0\) if \(\xi\in\mathcal{A}^+_\epsilon(x)\). Here, the upper \(\epsilon\)-active set is defined as
\[ \mathcal{A}^+_\epsilon(x) = \{\,\xi\in\Xi\,:\,x(\xi) = b(\xi)-\epsilon\,\}. \]
[out] | v | is the variable to be pruned. |
[in] | x | is the current optimization variable. |
[in] | eps | is the active-set tolerance \(\epsilon\). |
Reimplemented in H1BoundConstraint< Real >, H1BoundConstraint< Real >, H1BoundConstraint< Real >, H1BoundConstraint< Real >, L2BoundConstraint< Real >, L2BoundConstraint< Real >, L2BoundConstraint< Real >, L2BoundConstraint< Real >, BoundConstraint_BurgersControl< Real >, ROL::BoundConstraint_SimOpt< Real >, ROL::BoundConstraint_Partitioned< Real >, ROL::RiskBoundConstraint< Real >, and ROL::StdBoundConstraint< Real >.
Definition at line 203 of file ROL_BoundConstraint.hpp.
References ROL::Vector< Real >::applyBinary(), ROL::BoundConstraint< Real >::mask_, ROL::BoundConstraint< Real >::min_diff_, ROL::BoundConstraint< Real >::scale_, and ROL::BoundConstraint< Real >::x_up_.
Referenced by ROL::PrimalDualActiveSetStep< Real >::compute(), ROL::BoundConstraint< Real >::pruneActive(), and ROL::BoundConstraint< Real >::pruneUpperInactive().
|
inlinevirtual |
Set variables to zero if they correspond to the upper \(\epsilon\)-binding set.
This function sets \(v(\xi)=0\) if \(\xi\in\mathcal{B}^+_\epsilon(x)\). Here, the upper \(\epsilon\)-binding set is defined as
\[ \mathcal{B}^+_\epsilon(x) = \{\,\xi\in\Xi\,:\,x(\xi) = b(\xi)-\epsilon,\; g(\xi) < 0 \,\}. \]
[out] | v | is the variable to be pruned. |
[in] | g | is the negative search direction. |
[in] | x | is the current optimization variable. |
[in] | eps | is the active-set tolerance \(\epsilon\). |
Reimplemented in H1BoundConstraint< Real >, H1BoundConstraint< Real >, H1BoundConstraint< Real >, H1BoundConstraint< Real >, L2BoundConstraint< Real >, L2BoundConstraint< Real >, L2BoundConstraint< Real >, L2BoundConstraint< Real >, BoundConstraint_BurgersControl< Real >, ROL::BoundConstraint_SimOpt< Real >, ROL::BoundConstraint_Partitioned< Real >, ROL::StdBoundConstraint< Real >, and ROL::RiskBoundConstraint< Real >.
Definition at line 228 of file ROL_BoundConstraint.hpp.
References ROL::Vector< Real >::applyBinary(), ROL::BoundConstraint< Real >::mask_, ROL::BoundConstraint< Real >::min_diff_, ROL::BoundConstraint< Real >::prune_, ROL::BoundConstraint< Real >::scale_, and ROL::BoundConstraint< Real >::x_up_.
|
inlinevirtual |
Set variables to zero if they correspond to the lower \(\epsilon\)-active set.
This function sets \(v(\xi)=0\) if \(\xi\in\mathcal{A}^-_\epsilon(x)\). Here, the lower \(\epsilon\)-active set is defined as
\[ \mathcal{A}^-_\epsilon(x) = \{\,\xi\in\Xi\,:\,x(\xi) = a(\xi)+\epsilon\,\}. \]
[out] | v | is the variable to be pruned. |
[in] | x | is the current optimization variable. |
[in] | eps | is the active-set tolerance \(\epsilon\). |
Reimplemented in H1BoundConstraint< Real >, H1BoundConstraint< Real >, H1BoundConstraint< Real >, H1BoundConstraint< Real >, L2BoundConstraint< Real >, L2BoundConstraint< Real >, L2BoundConstraint< Real >, L2BoundConstraint< Real >, BoundConstraint_BurgersControl< Real >, ROL::BoundConstraint_SimOpt< Real >, ROL::BoundConstraint_Partitioned< Real >, ROL::RiskBoundConstraint< Real >, and ROL::StdBoundConstraint< Real >.
Definition at line 253 of file ROL_BoundConstraint.hpp.
References ROL::Vector< Real >::applyBinary(), ROL::BoundConstraint< Real >::mask_, ROL::BoundConstraint< Real >::min_diff_, ROL::BoundConstraint< Real >::scale_, and ROL::BoundConstraint< Real >::x_lo_.
Referenced by ROL::PrimalDualActiveSetStep< Real >::compute(), ROL::BoundConstraint< Real >::pruneActive(), and ROL::BoundConstraint< Real >::pruneLowerInactive().
|
inlinevirtual |
Set variables to zero if they correspond to the lower \(\epsilon\)-binding set.
This function sets \(v(\xi)=0\) if \(\xi\in\mathcal{B}^-_\epsilon(x)\). Here, the lower \(\epsilon\)-binding set is defined as
\[ \mathcal{B}^-_\epsilon(x) = \{\,\xi\in\Xi\,:\,x(\xi) = a(\xi)+\epsilon,\; g(\xi) > 0 \,\}. \]
[out] | v | is the variable to be pruned. |
[in] | g | is the negative search direction. |
[in] | x | is the current optimization variable. |
[in] | eps | is the active-set tolerance \(\epsilon\). |
Reimplemented in H1BoundConstraint< Real >, H1BoundConstraint< Real >, H1BoundConstraint< Real >, H1BoundConstraint< Real >, L2BoundConstraint< Real >, L2BoundConstraint< Real >, L2BoundConstraint< Real >, L2BoundConstraint< Real >, BoundConstraint_BurgersControl< Real >, ROL::BoundConstraint_SimOpt< Real >, ROL::BoundConstraint_Partitioned< Real >, ROL::RiskBoundConstraint< Real >, and ROL::StdBoundConstraint< Real >.
Definition at line 278 of file ROL_BoundConstraint.hpp.
References ROL::Vector< Real >::applyBinary(), ROL::BoundConstraint< Real >::mask_, ROL::BoundConstraint< Real >::min_diff_, ROL::BoundConstraint< Real >::prune_, ROL::BoundConstraint< Real >::scale_, and ROL::BoundConstraint< Real >::x_lo_.
|
inlinevirtual |
Return the ref count pointer to the lower bound vector.
Reimplemented in ROL::BoundConstraint_SimOpt< Real >, ROL::BoundConstraint_Partitioned< Real >, and ROL::RiskBoundConstraint< Real >.
Definition at line 293 of file ROL_BoundConstraint.hpp.
References ROL::BoundConstraint< Real >::x_lo_.
Referenced by ROL::TrustRegionStep< Real >::initialize().
|
inlinevirtual |
Return the ref count pointer to the upper bound vector.
Reimplemented in ROL::BoundConstraint_SimOpt< Real >, ROL::BoundConstraint_Partitioned< Real >, and ROL::RiskBoundConstraint< Real >.
Definition at line 298 of file ROL_BoundConstraint.hpp.
References ROL::BoundConstraint< Real >::x_up_.
Referenced by ROL::TrustRegionStep< Real >::initialize().
|
inlinevirtual |
Return the ref count pointer to the lower bound vector.
Reimplemented in ROL::BoundConstraint_Partitioned< Real >.
Definition at line 303 of file ROL_BoundConstraint.hpp.
References ROL::BoundConstraint< Real >::x_lo_.
|
inlinevirtual |
Return the ref count pointer to the upper bound vector.
Reimplemented in ROL::BoundConstraint_Partitioned< Real >.
Definition at line 308 of file ROL_BoundConstraint.hpp.
References ROL::BoundConstraint< Real >::x_up_.
|
inlinevirtual |
Set the input vector to the upper bound.
This function sets the input vector \(u\) to the upper bound \(b\).
[out] | u | is the vector to be set to the upper bound. |
Reimplemented in H1BoundConstraint< Real >, H1BoundConstraint< Real >, H1BoundConstraint< Real >, H1BoundConstraint< Real >, L2BoundConstraint< Real >, L2BoundConstraint< Real >, L2BoundConstraint< Real >, L2BoundConstraint< Real >, BoundConstraint_BurgersControl< Real >, ROL::BoundConstraint_SimOpt< Real >, ROL::BoundConstraint_Partitioned< Real >, ROL::RiskBoundConstraint< Real >, and ROL::StdBoundConstraint< Real >.
Definition at line 319 of file ROL_BoundConstraint.hpp.
References ROL::Vector< Real >::applyUnary(), ROL::Vector< Real >::set(), and ROL::BoundConstraint< Real >::x_up_.
Referenced by ROL::PrimalDualActiveSetStep< Real >::compute(), and ROL::UpperBoundInequalityConstraint< Real >::UpperBoundInequalityConstraint().
|
inlinevirtual |
Set the input vector to the lower bound.
This function sets the input vector \(l\) to the lower bound \(a\).
[out] | l | is the vector to be set to the lower bound. |
Reimplemented in H1BoundConstraint< Real >, H1BoundConstraint< Real >, H1BoundConstraint< Real >, H1BoundConstraint< Real >, L2BoundConstraint< Real >, L2BoundConstraint< Real >, L2BoundConstraint< Real >, L2BoundConstraint< Real >, BoundConstraint_BurgersControl< Real >, ROL::BoundConstraint_SimOpt< Real >, ROL::BoundConstraint_Partitioned< Real >, ROL::RiskBoundConstraint< Real >, and ROL::StdBoundConstraint< Real >.
Definition at line 333 of file ROL_BoundConstraint.hpp.
References ROL::Vector< Real >::applyUnary(), ROL::Vector< Real >::set(), and ROL::BoundConstraint< Real >::x_lo_.
Referenced by ROL::PrimalDualActiveSetStep< Real >::compute(), and ROL::LowerBoundInequalityConstraint< Real >::LowerBoundInequalityConstraint().
|
inlinevirtual |
Set variables to zero if they correspond to the \(\epsilon\)-active set.
This function sets \(v(\xi)=0\) if \(\xi\in\mathcal{A}_\epsilon(x)\). Here, the \(\epsilon\)-active set is defined as
\[ \mathcal{A}_\epsilon(x) = \mathcal{A}^+_\epsilon(x)\cap\mathcal{A}^-_\epsilon(x). \]
[out] | v | is the variable to be pruned. |
[in] | x | is the current optimization variable. |
[in] | eps | is the active-set tolerance \(\epsilon\). |
Reimplemented in H1BoundConstraint< Real >, H1BoundConstraint< Real >, H1BoundConstraint< Real >, H1BoundConstraint< Real >, L2BoundConstraint< Real >, L2BoundConstraint< Real >, L2BoundConstraint< Real >, L2BoundConstraint< Real >, ROL::BoundConstraint_SimOpt< Real >, ROL::BoundConstraint_Partitioned< Real >, ROL::RiskBoundConstraint< Real >, and ROL::StdBoundConstraint< Real >.
Definition at line 353 of file ROL_BoundConstraint.hpp.
References ROL::BoundConstraint< Real >::pruneLowerActive(), and ROL::BoundConstraint< Real >::pruneUpperActive().
Referenced by ROL::ProjectedNewtonStep< Real >::compute(), ROL::ProjectedSecantStep< Real >::compute(), ROL::PrimalDualActiveSetStep< Real >::compute(), ROL::BoundConstraint< Real >::computeProjectedGradient(), ROL::LineSearchStep< Real >::GradDotStep(), ROL::BoundConstraint< Real >::pruneInactive(), ROL::LineSearch< Real >::status(), and ROL::TrustRegion< Real >::update().
|
inlinevirtual |
Set variables to zero if they correspond to the \(\epsilon\)-binding set.
This function sets \(v(\xi)=0\) if \(\xi\in\mathcal{B}_\epsilon(x)\). Here, the \(\epsilon\)-binding set is defined as
\[ \mathcal{B}^+_\epsilon(x) = \mathcal{B}^+_\epsilon(x)\cap\mathcal{B}^-_\epsilon(x). \]
[out] | v | is the variable to be pruned. |
[in] | g | is the negative search direction. |
[in] | x | is the current optimization variable. |
[in] | eps | is the active-set tolerance \(\epsilon\). |
Reimplemented in H1BoundConstraint< Real >, H1BoundConstraint< Real >, H1BoundConstraint< Real >, H1BoundConstraint< Real >, L2BoundConstraint< Real >, L2BoundConstraint< Real >, L2BoundConstraint< Real >, L2BoundConstraint< Real >, ROL::BoundConstraint_SimOpt< Real >, ROL::BoundConstraint_Partitioned< Real >, ROL::RiskBoundConstraint< Real >, and ROL::StdBoundConstraint< Real >.
Definition at line 370 of file ROL_BoundConstraint.hpp.
References ROL::BoundConstraint< Real >::pruneLowerActive(), and ROL::BoundConstraint< Real >::pruneUpperActive().
|
inlinevirtual |
Check if the vector, v, is feasible.
This function returns true if \(v = P_{[a,b]}(v)\).
[in] | v | is the vector to be checked. |
Reimplemented in H1BoundConstraint< Real >, H1BoundConstraint< Real >, H1BoundConstraint< Real >, H1BoundConstraint< Real >, L2BoundConstraint< Real >, L2BoundConstraint< Real >, L2BoundConstraint< Real >, L2BoundConstraint< Real >, BoundConstraint_BurgersControl< Real >, ROL::BoundConstraint_SimOpt< Real >, ROL::BoundConstraint_Partitioned< Real >, ROL::RiskBoundConstraint< Real >, and ROL::StdBoundConstraint< Real >.
Definition at line 380 of file ROL_BoundConstraint.hpp.
References ROL::BoundConstraint< Real >::activated_, ROL::BoundConstraint< Real >::mask_, ROL::BoundConstraint< Real >::minimum_, ROL::BoundConstraint< Real >::x_lo_, and ROL::BoundConstraint< Real >::x_up_.
Referenced by ROL::TrustRegion< Real >::update(), and ROL::PrimalDualActiveSetStep< Real >::update().
|
inline |
Turn on bounds.
This function turns the bounds on.
Definition at line 401 of file ROL_BoundConstraint.hpp.
References ROL::BoundConstraint< Real >::activated_.
Referenced by ROL::BoundConstraint_Partitioned< Real >::BoundConstraint_Partitioned(), ROL::BoundConstraint_SimOpt< Real >::BoundConstraint_SimOpt(), and ROL::RiskBoundConstraint< Real >::RiskBoundConstraint().
|
inline |
Turn off bounds.
This function turns the bounds off.
Definition at line 407 of file ROL_BoundConstraint.hpp.
References ROL::BoundConstraint< Real >::activated_.
Referenced by ROL::BoundConstraint_Partitioned< Real >::BoundConstraint_Partitioned(), ROL::BoundConstraint_SimOpt< Real >::BoundConstraint_SimOpt(), main(), ROL::RiskBoundConstraint< Real >::RiskBoundConstraint(), and ROL::Algorithm< Real >::run().
|
inline |
Check if bounds are on.
This function returns true if the bounds are turned on.
Definition at line 413 of file ROL_BoundConstraint.hpp.
References ROL::BoundConstraint< Real >::activated_.
Referenced by ROL::BoundConstraint_Partitioned< Real >::BoundConstraint_Partitioned(), ROL::AugmentedLagrangianStep< Real >::compute(), ROL::TrustRegionStep< Real >::compute(), ROL::TrustRegionStep< Real >::computeCriticalityMeasure(), ROL::AugmentedLagrangianStep< Real >::computeGradient(), ROL::LineSearchStep< Real >::GradDotStep(), ROL::Step< Real >::initialize(), ROL::AugmentedLagrangianStep< Real >::initialize(), ROL::MoreauYosidaPenaltyStep< Real >::initialize(), ROL::LineSearchStep< Real >::initialize(), ROL::TrustRegionStep< Real >::initialize(), ROL::BoundConstraint_Partitioned< Real >::isFeasible(), ROL::BoundConstraint_Partitioned< Real >::project(), ROL::BoundConstraint_Partitioned< Real >::pruneActive(), ROL::BoundConstraint_Partitioned< Real >::pruneLowerActive(), ROL::BoundConstraint_Partitioned< Real >::pruneUpperActive(), ROL::LineSearch< Real >::status(), ROL::BoundConstraint_Partitioned< Real >::update(), ROL::TrustRegion< Real >::update(), ROL::TrustRegionStep< Real >::update(), ROL::LineSearch< Real >::updateIterate(), and ROL::MoreauYosidaPenaltyStep< Real >::updateState().
|
inline |
Set variables to zero if they correspond to the \(\epsilon\)-inactive set.
This function sets \(v(\xi)=0\) if \(\xi\in\Xi\setminus\mathcal{A}_\epsilon(x)\). Here,
[out] | v | is the variable to be pruned. |
[in] | x | is the current optimization variable. |
[in] | eps | is the active-set tolerance \(\epsilon\). |
Definition at line 422 of file ROL_BoundConstraint.hpp.
References ROL::Vector< Real >::axpy(), ROL::Vector< Real >::clone(), and ROL::BoundConstraint< Real >::pruneActive().
Referenced by ROL::ProjectedNewtonStep< Real >::compute(), ROL::ProjectedSecantStep< Real >::compute(), ROL::LineSearchStep< Real >::GradDotStep(), and ROL::LineSearch< Real >::status().
|
inline |
Definition at line 429 of file ROL_BoundConstraint.hpp.
References ROL::Vector< Real >::axpy(), ROL::Vector< Real >::clone(), and ROL::BoundConstraint< Real >::pruneLowerActive().
|
inline |
Definition at line 436 of file ROL_BoundConstraint.hpp.
References ROL::Vector< Real >::axpy(), ROL::Vector< Real >::clone(), and ROL::BoundConstraint< Real >::pruneUpperActive().
|
inline |
Set variables to zero if they correspond to the \(\epsilon\)-nonbinding set.
This function sets \(v(\xi)=0\) if \(\xi\in\Xi\setminus\mathcal{B}_\epsilon(x)\).
[out] | v | is the variable to be pruned. |
[in] | x | is the current optimization variable. |
[in] | g | is the negative search direction. |
[in] | eps | is the active-set tolerance \(\epsilon\). |
Definition at line 453 of file ROL_BoundConstraint.hpp.
References ROL::Vector< Real >::axpy(), ROL::Vector< Real >::clone(), and ROL::BoundConstraint< Real >::pruneActive().
|
inline |
Definition at line 460 of file ROL_BoundConstraint.hpp.
References ROL::Vector< Real >::axpy(), ROL::Vector< Real >::clone(), and ROL::BoundConstraint< Real >::pruneLowerActive().
|
inline |
Definition at line 467 of file ROL_BoundConstraint.hpp.
References ROL::Vector< Real >::axpy(), ROL::Vector< Real >::clone(), and ROL::BoundConstraint< Real >::pruneUpperActive().
|
inline |
Compute projected gradient.
This function projects the gradient \(g\) onto the tangent cone.
[in,out] | g | is the gradient of the objective function at x. |
[in] | x | is the optimization variable |
Definition at line 481 of file ROL_BoundConstraint.hpp.
References ROL::Vector< Real >::clone(), and ROL::BoundConstraint< Real >::pruneActive().
Referenced by ROL::TrustRegionStep< Real >::computeCriticalityMeasure(), ROL::ProjectedNewtonStep< Real >::update(), ROL::ProjectedSecantStep< Real >::update(), and ROL::ProjectedNewtonKrylovStep< Real >::update().
|
inline |
Compute projected step.
This function computes the projected step \(P_{[a,b]}(x+v) - x\).
[in,out] | v | is the step variable. |
[in] | x | is the optimization variable. |
Definition at line 493 of file ROL_BoundConstraint.hpp.
References ROL::Vector< Real >::axpy(), ROL::Vector< Real >::plus(), and ROL::BoundConstraint< Real >::project().
|
private |
Definition at line 74 of file ROL_BoundConstraint.hpp.
|
private |
Definition at line 76 of file ROL_BoundConstraint.hpp.
Referenced by ROL::BoundConstraint< Real >::BoundConstraint(), ROL::BoundConstraint< Real >::getLowerVectorRCP(), ROL::BoundConstraint< Real >::isFeasible(), ROL::BoundConstraint< Real >::project(), ROL::BoundConstraint< Real >::pruneLowerActive(), and ROL::BoundConstraint< Real >::setVectorToLowerBound().
|
private |
Definition at line 77 of file ROL_BoundConstraint.hpp.
Referenced by ROL::BoundConstraint< Real >::BoundConstraint(), ROL::BoundConstraint< Real >::getUpperVectorRCP(), ROL::BoundConstraint< Real >::isFeasible(), ROL::BoundConstraint< Real >::project(), ROL::BoundConstraint< Real >::pruneUpperActive(), and ROL::BoundConstraint< Real >::setVectorToUpperBound().
|
private |
Definition at line 78 of file ROL_BoundConstraint.hpp.
Referenced by ROL::BoundConstraint< Real >::pruneLowerActive(), and ROL::BoundConstraint< Real >::pruneUpperActive().
|
private |
Definition at line 80 of file ROL_BoundConstraint.hpp.
Referenced by ROL::BoundConstraint< Real >::BoundConstraint(), ROL::BoundConstraint< Real >::isFeasible(), ROL::BoundConstraint< Real >::pruneLowerActive(), and ROL::BoundConstraint< Real >::pruneUpperActive().
|
private |
Flag that determines whether or not the constraints are being used.
Definition at line 82 of file ROL_BoundConstraint.hpp.
Referenced by ROL::BoundConstraint< Real >::activate(), ROL::BoundConstraint< Real >::deactivate(), ROL::BoundConstraint< Real >::isActivated(), and ROL::BoundConstraint< Real >::isFeasible().
|
private |
Definition at line 83 of file ROL_BoundConstraint.hpp.
Referenced by ROL::BoundConstraint< Real >::BoundConstraint(), ROL::BoundConstraint< Real >::pruneLowerActive(), and ROL::BoundConstraint< Real >::pruneUpperActive().
|
private |
Definition at line 85 of file ROL_BoundConstraint.hpp.
Referenced by ROL::BoundConstraint< Real >::BoundConstraint(), and ROL::BoundConstraint< Real >::isFeasible().
|
private |