44 #ifndef ROL_OPTIMIZATIONPROBLEMREFACTOR_HPP 45 #define ROL_OPTIMIZATIONPROBLEMREFACTOR_HPP 69 typedef Elementwise::AbsoluteValue<Real>
ABS;
70 typedef Elementwise::Fill<Real>
FILL;
95 const Teuchos::RCP<Teuchos::ParameterList> &parlist = Teuchos::null ) :
98 using Teuchos::RCP;
using Teuchos::rcp;
101 if( incon != Teuchos::null ) {
106 RCP<V> s = li->dual().clone();
107 incon->value(*s,*x,tol);
108 s->applyUnary(
ABS());
114 RCP<V> sl = s->clone();
115 RCP<V> su = s->clone();
117 sl->applyUnary(
FILL(0.0) );
118 su->applyUnary(
FILL(ROL_INF<Real>()) );
120 sbnd = rcp(
new BND(sl,su) );
123 if( bnd == Teuchos::null ) {
124 xbnd = rcp(
new BND(*x) );
134 if( eqcon == Teuchos::null ) {
140 con_ = rcp(
new CCON(incon,eqcon) );
162 const Teuchos::RCP<Teuchos::ParameterList> &parlist = Teuchos::null ) :
171 const Teuchos::RCP<Teuchos::ParameterList> &parlist = Teuchos::null ) :
181 const Teuchos::RCP<Teuchos::ParameterList> &parlist = Teuchos::null ) :
188 const Teuchos::RCP<Teuchos::ParameterList> &parlist = Teuchos::null ) :
189 OptimizationProblem( obj, x, bnd, Teuchos::null, Teuchos::null, Teuchos::null, Teuchos::null, parlist ) { }
195 const Teuchos::RCP<Teuchos::ParameterList> &parlist = Teuchos::null ) :
196 OptimizationProblem( obj, x, Teuchos::null, eqcon, le, Teuchos::null, Teuchos::null, parlist ) { }
203 const Teuchos::RCP<Teuchos::ParameterList> &parlist = Teuchos::null ) :
204 OptimizationProblem( obj, x, Teuchos::null, Teuchos::null, Teuchos::null, incon, li, parlist ) { }
209 const Teuchos::RCP<Teuchos::ParameterList> &parlist = Teuchos::null ) :
211 Teuchos::null, Teuchos::null, parlist ) { }
269 #endif // ROL_OPTIMIZATIONPROBLEMREFACTOR_HPP Provides the interface to evaluate objective functions.
void setParameterList(const Teuchos::RCP< Teuchos::ParameterList > &parlist)
void setMultiplierVector(const Teuchos::RCP< Vector< Real > > &mul)
CompositeConstraint< Real > CCON
Teuchos::RCP< BoundConstraint< Real > > CreateBoundConstraint_Partitioned(const Teuchos::RCP< BoundConstraint< Real > > &bnd1, const Teuchos::RCP< BoundConstraint< Real > > &bnd2)
OptimizationProblem(const Teuchos::RCP< Objective< Real > > &obj, const Teuchos::RCP< Vector< Real > > &x, const Teuchos::RCP< EqualityConstraint< Real > > &eqcon, const Teuchos::RCP< Vector< Real > > &le, const Teuchos::RCP< InequalityConstraint< Real > > &incon, const Teuchos::RCP< Vector< Real > > &li, const Teuchos::RCP< Teuchos::ParameterList > &parlist=Teuchos::null)
Defines the linear algebra of vector space on a generic partitioned vector.
OptimizationProblem(const Teuchos::RCP< Objective< Real > > &obj, const Teuchos::RCP< Vector< Real > > &x, const Teuchos::RCP< InequalityConstraint< Real > > &incon, const Teuchos::RCP< Vector< Real > > &li, const Teuchos::RCP< Teuchos::ParameterList > &parlist=Teuchos::null)
Teuchos::RCP< BoundConstraint< Real > > getBoundConstraint(void)
Elementwise::AbsoluteValue< Real > ABS
void setEqualityConstraint(const Teuchos::RCP< EqualityConstraint< Real > > &con)
OptimizationProblem(const Teuchos::RCP< Objective< Real > > &obj, const Teuchos::RCP< Vector< Real > > &x, const Teuchos::RCP< BoundConstraint< Real > > &bnd, const Teuchos::RCP< EqualityConstraint< Real > > &eqcon, const Teuchos::RCP< Vector< Real > > &le, const Teuchos::RCP< InequalityConstraint< Real > > &incon, const Teuchos::RCP< Vector< Real > > &li, const Teuchos::RCP< Teuchos::ParameterList > &parlist=Teuchos::null)
OptimizationProblem(const Teuchos::RCP< Objective< Real > > &obj, const Teuchos::RCP< Vector< Real > > &x, const Teuchos::RCP< EqualityConstraint< Real > > &eqcon, const Teuchos::RCP< Vector< Real > > &le, const Teuchos::RCP< Teuchos::ParameterList > &parlist=Teuchos::null)
Teuchos::RCP< Vector< Real > > CreatePartitionedVector(const Teuchos::RCP< Vector< Real > > &a)
BoundConstraint< Real > BND
Defines the linear algebra or vector space interface.
void setObjective(const Teuchos::RCP< Objective< Real > > &obj)
Teuchos::RCP< Vector< Real > > getMultiplierVector(void)
InequalityConstraint< Real > INCON
Defines the equality constraint operator interface.
Teuchos::RCP< EqualityConstraint< Real > > getEqualityConstraint(void)
OptimizationProblem(const Teuchos::RCP< Objective< Real > > &obj, const Teuchos::RCP< Vector< Real > > &x, const Teuchos::RCP< BoundConstraint< Real > > &bnd, const Teuchos::RCP< EqualityConstraint< Real > > &eqcon, const Teuchos::RCP< Vector< Real > > &le, const Teuchos::RCP< Teuchos::ParameterList > &parlist=Teuchos::null)
Has both inequality and equality constraints. Treat inequality constraint as equality with slack vari...
PartitionedVector< Real > PV
Teuchos::RCP< Teuchos::ParameterList > parlist_
Provides the interface to apply upper and lower bound constraints.
This class strips out the slack variables from objective evaluations to create the new objective ...
Elementwise::Fill< Real > FILL
Teuchos::RCP< Vector< Real > > getSolutionVector(void)
OptimizationProblem(const Teuchos::RCP< Objective< Real > > &obj, const Teuchos::RCP< Vector< Real > > &x, const Teuchos::RCP< BoundConstraint< Real > > &bnd, const Teuchos::RCP< Teuchos::ParameterList > &parlist=Teuchos::null)
virtual ~OptimizationProblem(void)
EqualityConstraint< Real > EQCON
std::vector< PV >::size_type size_type
Provides a unique argument for inequality constraints, which otherwise behave exactly as equality con...
OptimizationProblem(const Teuchos::RCP< Objective< Real > > &obj, const Teuchos::RCP< Vector< Real > > &x, const Teuchos::RCP< Teuchos::ParameterList > &parlist=Teuchos::null)
Teuchos::RCP< Teuchos::ParameterList > getParameterList(void)
void setBoundConstraint(const Teuchos::RCP< BoundConstraint< Real > > &bnd)
OptimizationProblem(const Teuchos::RCP< Objective< Real > > &obj, const Teuchos::RCP< Vector< Real > > &x, const Teuchos::RCP< BoundConstraint< Real > > &bnd, const Teuchos::RCP< InequalityConstraint< Real > > &incon, const Teuchos::RCP< Vector< Real > > &li, const Teuchos::RCP< Teuchos::ParameterList > &parlist=Teuchos::null)
SlacklessObjective< Real > SLOBJ
void setSolutionVector(const Teuchos::RCP< Vector< Real > > &sol)
Teuchos::RCP< EQCON > con_
Teuchos::RCP< Objective< Real > > getObjective(void)