9 #ifndef __IPORIGIPOPTNLP_HPP__
10 #define __IPORIGIPOPTNLP_HPP__
53 const std::string& prefix);
74 return nlp_->GetWarmStartIterate(warm_start_iterate);
247 Number regularization_size,
AlgorithmMode
enum to indicate the mode in which the algorithm is
Number * x
Input: Starting point Output: Optimal solution.
Class for all IPOPT specific calculated quantities.
Class to organize all the data required by the algorithm.
This is the abstract base class for classes that map the traditional NLP into something that is more ...
Specialized CompoundVector class specifically for the algorithm iterates.
Class responsible for all message output.
This class stores a list of user set options.
This class maps the traditional NLP into something that is more useful by Ipopt.
void operator=(const OrigIpoptNLP &)
Overloaded Equals Operator.
SmartPtr< const Matrix > Px_U_
Permutation matrix (x_U_ -> x.
virtual SmartPtr< const Vector > x_L() const
Lower bounds on x.
virtual Number f(const Vector &x)
Accessor methods for model data.
OrigIpoptNLP()
Default Constructor.
virtual SmartPtr< const SymMatrix > uninitialized_h()
Provides a Hessian matrix from the correct matrix space with uninitialized values.
SmartPtr< const VectorSpace > d_l_space_
CachedResults< Number > f_cache_
Objective function.
CachedResults< SmartPtr< const SymMatrix > > h_cache_
Hessian of the lagrangian (current iteration)
CachedResults< SmartPtr< const Vector > > unscaled_x_cache_
Unscaled version of x vector.
SmartPtr< const VectorSpace > x_u_space_
SmartPtr< const MatrixSpace > px_l_space_
Number TotalFunctionEvaluationCpuTime() const
SmartPtr< const Vector > orig_x_L_
Original unmodified lower bounds on x.
bool jac_d_constant_
Flag indicating if we need to ask for inequality constraint Jacobians only once.
virtual bool GetWarmStartIterate(IteratesVector &warm_start_iterate)
Method accessing the GetWarmStartIterate of the NLP.
CachedResults< SmartPtr< const Matrix > > jac_d_cache_
Jacobian Matrix for inequality constraints (current iteration)
SmartPtr< const Vector > x_L_
Lower bounds on x.
CachedResults< SmartPtr< const Matrix > > jac_c_cache_
Jacobian Matrix for equality constraints (current iteration)
const TimedTask & d_eval_time() const
SmartPtr< NLP > nlp_
Pointer to the NLP.
virtual SmartPtr< const Matrix > jac_c(const Vector &x)
Jacobian Matrix for equality constraints.
bool honor_original_bounds_
Flag indicating whether the primal variables should be projected back into original bounds are optimi...
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Called by IpoptType to register the options.
SmartPtr< const Matrix > Pd_U_
Permutation matrix (d_U_ -> d.
HessianApproximationType hessian_approximation_
Flag indicating what Hessian information is to be used.
virtual Index grad_f_evals() const
virtual SmartPtr< const Vector > d_U() const
Upper bounds on d.
virtual SmartPtr< const Vector > grad_f(const Vector &x, Number mu)
Gradient of the objective (depending in mu) - incorrect version for OrigIpoptNLP.
bool IntermediateCallBack(AlgorithmMode mode, Index iter, Number obj_value, Number inf_pr, Number inf_du, Number mu, Number d_norm, Number regularization_size, Number alpha_du, Number alpha_pr, Index ls_trials, SmartPtr< const IpoptData > ip_data, SmartPtr< IpoptCalculatedQuantities > ip_cq)
bool initialized_
Flag indicating if initialization method has been called.
void relax_bounds(Number bound_relax_factor, Vector &bounds)
relax the bounds by a relative move of relax_bound_factor.
virtual void GetSpaces(SmartPtr< const VectorSpace > &x_space, SmartPtr< const VectorSpace > &c_space, SmartPtr< const VectorSpace > &d_space, SmartPtr< const VectorSpace > &x_l_space, SmartPtr< const MatrixSpace > &px_l_space, SmartPtr< const VectorSpace > &x_u_space, SmartPtr< const MatrixSpace > &px_u_space, SmartPtr< const VectorSpace > &d_l_space, SmartPtr< const MatrixSpace > &pd_l_space, SmartPtr< const VectorSpace > &d_u_space, SmartPtr< const MatrixSpace > &pd_u_space, SmartPtr< const MatrixSpace > &Jac_c_space, SmartPtr< const MatrixSpace > &Jac_d_space, SmartPtr< const SymMatrixSpace > &Hess_lagrangian_space)
Accessor method for vector/matrix spaces pointers.
bool hessian_constant_
Flag indicating if we need to ask for Hessian only once.
virtual Index jac_c_evals() const
SmartPtr< const MatrixSpace > jac_d_space_
SmartPtr< const Vector > orig_x_U_
Original unmodified upper bounds on x.
TimedTask grad_f_eval_time_
CachedResults< SmartPtr< const Vector > > grad_f_cache_
Gradient of the objective function.
virtual ~OrigIpoptNLP()
Default destructor.
SmartPtr< const Vector > get_unscaled_x(const Vector &x)
Method for getting the unscaled version of the x vector.
HessianApproximationSpace hessian_approximation_space_
Flag indicating in which space Hessian is to be approximated.
void FinalizeSolution(SolverReturn status, const Vector &x, const Vector &z_L, const Vector &z_U, const Vector &c, const Vector &d, const Vector &y_c, const Vector &y_d, Number obj_value, const IpoptData *ip_data, IpoptCalculatedQuantities *ip_cq)
Solution Routines - overloaded from IpoptNLP.
SmartPtr< const Vector > x_U_
Upper bounds on x.
virtual SmartPtr< const SymMatrixSpace > HessianMatrixSpace() const
Accessor method to obtain the MatrixSpace for the Hessian matrix (or it's approximation)
virtual void AdjustVariableBounds(const Vector &new_x_L, const Vector &new_x_U, const Vector &new_d_L, const Vector &new_d_U)
Method for adapting the variable bounds.
SmartPtr< const Vector > d_L_
Lower bounds on d.
SmartPtr< const Matrix > Pd_L_
Permutation matrix (d_L_ -> d)
virtual Index h_evals() const
virtual SmartPtr< const Matrix > Px_L() const
Permutation matrix (x_L_ -> x)
SmartPtr< const VectorSpace > d_u_space_
bool jac_c_constant_
Flag indicating if we need to ask for equality constraint Jacobians only once.
virtual SmartPtr< const SymMatrix > h(const Vector &x, Number obj_factor, const Vector &yc, const Vector &yd)
Hessian of the Lagrangian.
virtual SmartPtr< const SymMatrix > h(const Vector &x, Number obj_factor, const Vector &yc, const Vector &yd, Number mu)
Hessian of the Lagrangian (depending in mu) - incorrect version for OrigIpoptNLP.
const TimedTask & c_eval_time() const
virtual bool InitializeStructures(SmartPtr< Vector > &x, bool init_x, SmartPtr< Vector > &y_c, bool init_y_c, SmartPtr< Vector > &y_d, bool init_y_d, SmartPtr< Vector > &z_L, bool init_z_L, SmartPtr< Vector > &z_U, bool init_z_U, SmartPtr< Vector > &v_L, SmartPtr< Vector > &v_U)
Initialize (create) structures for the iteration data.
const TimedTask & h_eval_time() const
Number TotalFunctionEvaluationWallclockTime() const
CachedResults< SmartPtr< const Vector > > c_cache_
Equality constraint residuals.
virtual SmartPtr< const Vector > d_L() const
Lower bounds on d.
virtual Number f(const Vector &x, Number mu)
Objective value (depending in mu) - incorrect version for OrigIpoptNLP.
const TimedTask & jac_d_eval_time() const
virtual SmartPtr< const Vector > d(const Vector &x)
Inequality constraint residual (reformulated as equalities with slacks.
void ResetTimes()
Reset the timing statistics.
virtual bool Initialize(const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
Initialize - overloaded from IpoptNLP.
SmartPtr< const MatrixSpace > pd_u_space_
const TimedTask & f_eval_time() const
virtual SmartPtr< const Matrix > Pd_U() const
Permutation matrix (d_U_ -> d.
SmartPtr< const SymMatrixSpace > h_space_
SmartPtr< const MatrixSpace > scaled_jac_d_space_
Number TotalFunctionEvaluationSysTime() const
bool check_derivatives_for_naninf_
Flag indicating whether it is desired to check if there are Nan or Inf entries in first and second de...
virtual SmartPtr< const Matrix > jac_d(const Vector &x)
Jacobian Matrix for inequality constraints.
SmartPtr< const Vector > d_U_
Upper bounds on d.
SmartPtr< const VectorSpace > x_space_
Necessary Vector/Matrix spaces.
SmartPtr< const Matrix > Px_L_
Permutation matrix (x_L_ -> x)
virtual SmartPtr< const Vector > x_U() const
Upper bounds on x.
const TimedTask & grad_f_eval_time() const
virtual Index f_evals() const
SmartPtr< NLP > nlp()
Accessor method to the underlying NLP.
virtual Index d_evals() const
Number bound_relax_factor_
relaxation factor for the bounds
void PrintTimingStatistics(Journalist &jnlst, EJournalLevel level, EJournalCategory category) const
virtual SmartPtr< const Matrix > Px_U() const
Permutation matrix (x_U_ -> x.
virtual SmartPtr< const Vector > c(const Vector &x)
Equality constraint residual.
SmartPtr< const VectorSpace > c_space_
SmartPtr< const SymMatrixSpace > scaled_h_space_
SmartPtr< const MatrixSpace > pd_l_space_
virtual Index c_evals() const
virtual SmartPtr< const Vector > grad_f(const Vector &x)
Gradient of the objective.
SmartPtr< const Journalist > jnlst_
journalist
SmartPtr< const VectorSpace > d_space_
bool warm_start_same_structure_
Flag indicating whether the TNLP with identical structure has already been solved before.
TimedTask jac_d_eval_time_
const TimedTask & jac_c_eval_time() const
SmartPtr< const VectorSpace > x_l_space_
SmartPtr< const MatrixSpace > jac_c_space_
virtual SmartPtr< const Matrix > Pd_L() const
Permutation matrix (d_L_ -> d)
TimedTask jac_c_eval_time_
SmartPtr< const MatrixSpace > scaled_jac_c_space_
OrigIpoptNLP(const SmartPtr< const Journalist > &jnlst, const SmartPtr< NLP > &nlp, const SmartPtr< NLPScalingObject > &nlp_scaling)
virtual Index jac_d_evals() const
OrigIpoptNLP(const OrigIpoptNLP &)
Copy Constructor.
CachedResults< SmartPtr< const Vector > > d_cache_
Inequality constraint residual (reformulated as equalities with slacks.
SmartPtr< const MatrixSpace > px_u_space_
Template class for Smart Pointers.
This class is used to collect timing information for a particular task.
HessianApproximationSpace
enumeration for the Hessian approximation space.
HessianApproximationType
enumeration for the Hessian information type.
SolverReturn
enum for the return from the optimize algorithm (obviously we need to add more)
EJournalCategory
Category Selection Enum.
int Index
Type of all indices of vectors, matrices etc.
EJournalLevel
Print Level Enum.
double Number
Type of all numbers.