Class for all IPOPT specific calculated quantities. More...
#include <IpIpoptCalculatedQuantities.hpp>
Public Member Functions | |
void | SetAddCq (SmartPtr< IpoptAdditionalCq > add_cq) |
Method for setting pointer for additional calculated quantities. | |
bool | HaveAddCq () |
Method detecting if additional object for calculated quantities has already been set. | |
bool | Initialize (const Journalist &jnlst, const OptionsList &options, const std::string &prefix) |
This method must be called to initialize the global algorithmic parameters. | |
Number | curr_avrg_compl () |
average of current values of the complementarities | |
Number | trial_avrg_compl () |
average of trial values of the complementarities | |
Number | curr_gradBarrTDelta () |
inner_product of current barrier obj. | |
Number | CalcNormOfType (ENormType NormType, std::vector< SmartPtr< const Vector > > vecs) |
Compute the norm of a specific type of a set of vectors (uncached) | |
Number | CalcNormOfType (ENormType NormType, const Vector &vec1, const Vector &vec2) |
Compute the norm of a specific type of two vectors (uncached) | |
ENormType | constr_viol_normtype () const |
Norm type used for calculating constraint violation. | |
bool | IsSquareProblem () const |
Method returning true if this is a square problem. | |
SmartPtr< IpoptNLP > & | GetIpoptNLP () |
Method returning the IpoptNLP object. | |
IpoptAdditionalCq & | AdditionalCq () |
Constructors/Destructors | |
IpoptCalculatedQuantities (const SmartPtr< IpoptNLP > &ip_nlp, const SmartPtr< IpoptData > &ip_data) | |
Constructor. | |
virtual | ~IpoptCalculatedQuantities () |
Destructor. | |
Slacks | |
SmartPtr< const Vector > | curr_slack_x_L () |
Slacks for x_L (at current iterate) | |
SmartPtr< const Vector > | curr_slack_x_U () |
Slacks for x_U (at current iterate) | |
SmartPtr< const Vector > | curr_slack_s_L () |
Slacks for s_L (at current iterate) | |
SmartPtr< const Vector > | curr_slack_s_U () |
Slacks for s_U (at current iterate) | |
SmartPtr< const Vector > | trial_slack_x_L () |
Slacks for x_L (at trial point) | |
SmartPtr< const Vector > | trial_slack_x_U () |
Slacks for x_U (at trial point) | |
SmartPtr< const Vector > | trial_slack_s_L () |
Slacks for s_L (at trial point) | |
SmartPtr< const Vector > | trial_slack_s_U () |
Slacks for s_U (at trial point) | |
Index | AdjustedTrialSlacks () |
Indicating whether or not we "fudged" the slacks. | |
void | ResetAdjustedTrialSlacks () |
Reset the flags for "fudged" slacks. | |
Objective function | |
virtual Number | curr_f () |
Value of objective function (at current point) | |
virtual Number | unscaled_curr_f () |
Unscaled value of the objective function (at the current point) | |
virtual Number | trial_f () |
Value of objective function (at trial point) | |
virtual Number | unscaled_trial_f () |
Unscaled value of the objective function (at the trial point) | |
SmartPtr< const Vector > | curr_grad_f () |
Gradient of objective function (at current point) | |
SmartPtr< const Vector > | trial_grad_f () |
Gradient of objective function (at trial point) | |
Barrier Objective Function | |
virtual Number | curr_barrier_obj () |
Barrier Objective Function Value (at current iterate with current mu) | |
virtual Number | trial_barrier_obj () |
Barrier Objective Function Value (at trial point with current mu) | |
SmartPtr< const Vector > | curr_grad_barrier_obj_x () |
Gradient of barrier objective function with respect to x (at current point with current mu) | |
SmartPtr< const Vector > | curr_grad_barrier_obj_s () |
Gradient of barrier objective function with respect to s (at current point with current mu) | |
SmartPtr< const Vector > | grad_kappa_times_damping_x () |
Gradient of the damping term with respect to x (times kappa_d) | |
SmartPtr< const Vector > | grad_kappa_times_damping_s () |
Gradient of the damping term with respect to s (times kappa_d) | |
Constraints | |
SmartPtr< const Vector > | curr_c () |
c(x) (at current point) | |
SmartPtr< const Vector > | unscaled_curr_c () |
unscaled c(x) (at current point) | |
SmartPtr< const Vector > | trial_c () |
c(x) (at trial point) | |
SmartPtr< const Vector > | unscaled_trial_c () |
unscaled c(x) (at trial point) | |
SmartPtr< const Vector > | curr_d () |
d(x) (at current point) | |
SmartPtr< const Vector > | unscaled_curr_d () |
unscaled d(x) (at current point) | |
SmartPtr< const Vector > | trial_d () |
d(x) (at trial point) | |
SmartPtr< const Vector > | curr_d_minus_s () |
d(x) - s (at current point) | |
SmartPtr< const Vector > | trial_d_minus_s () |
d(x) - s (at trial point) | |
SmartPtr< const Matrix > | curr_jac_c () |
Jacobian of c (at current point) | |
SmartPtr< const Matrix > | trial_jac_c () |
Jacobian of c (at trial point) | |
SmartPtr< const Matrix > | curr_jac_d () |
Jacobian of d (at current point) | |
SmartPtr< const Matrix > | trial_jac_d () |
Jacobian of d (at trial point) | |
SmartPtr< const Vector > | curr_jac_cT_times_vec (const Vector &vec) |
Product of Jacobian (evaluated at current point) of C transpose with general vector. | |
SmartPtr< const Vector > | trial_jac_cT_times_vec (const Vector &vec) |
Product of Jacobian (evaluated at trial point) of C transpose with general vector. | |
SmartPtr< const Vector > | curr_jac_dT_times_vec (const Vector &vec) |
Product of Jacobian (evaluated at current point) of D transpose with general vector. | |
SmartPtr< const Vector > | trial_jac_dT_times_vec (const Vector &vec) |
Product of Jacobian (evaluated at trial point) of D transpose with general vector. | |
SmartPtr< const Vector > | curr_jac_cT_times_curr_y_c () |
Product of Jacobian (evaluated at current point) of C transpose with current y_c. | |
SmartPtr< const Vector > | trial_jac_cT_times_trial_y_c () |
Product of Jacobian (evaluated at trial point) of C transpose with trial y_c. | |
SmartPtr< const Vector > | curr_jac_dT_times_curr_y_d () |
Product of Jacobian (evaluated at current point) of D transpose with current y_d. | |
SmartPtr< const Vector > | trial_jac_dT_times_trial_y_d () |
Product of Jacobian (evaluated at trial point) of D transpose with trial y_d. | |
SmartPtr< const Vector > | curr_jac_c_times_vec (const Vector &vec) |
Product of Jacobian (evaluated at current point) of C with general vector. | |
SmartPtr< const Vector > | curr_jac_d_times_vec (const Vector &vec) |
Product of Jacobian (evaluated at current point) of D with general vector. | |
virtual Number | curr_constraint_violation () |
Constraint Violation (at current iterate). | |
virtual Number | trial_constraint_violation () |
Constraint Violation (at trial point). | |
virtual Number | curr_nlp_constraint_violation (ENormType NormType) |
Real constraint violation in a given norm (at current iterate). | |
virtual Number | unscaled_curr_nlp_constraint_violation (ENormType NormType) |
Unscaled real constraint violation in a given norm (at current iterate). | |
virtual Number | unscaled_trial_nlp_constraint_violation (ENormType NormType) |
Unscaled real constraint violation in a given norm (at trial iterate). | |
Variable bounds | |
| |
SmartPtr< Vector > | unscaled_orig_x_L_violation (const Vector &x) |
Violation of original variable lower bounds x_L. | |
SmartPtr< Vector > | unscaled_orig_x_U_violation (const Vector &x) |
Violation of original variable upper bounds x_U. | |
SmartPtr< const Vector > | unscaled_curr_orig_x_L_violation () |
Violation of original variable lower bounds x_L. | |
SmartPtr< const Vector > | unscaled_curr_orig_x_U_violation () |
Violation of original variable upper bounds x_U. | |
virtual Number | unscaled_curr_orig_bounds_violation (ENormType NormType) |
Violation of (unscaled) original variable bounds. | |
SmartPtr< Vector > | orig_x_L_violation (const Vector &x) |
Violation of scaled original variable lower bounds x_L. | |
SmartPtr< Vector > | orig_x_U_violation (const Vector &x) |
Violation of scaled original variable upper bounds x_U. | |
SmartPtr< const Vector > | curr_orig_x_L_violation () |
Violation of scaled original variable lower bounds x_L. | |
SmartPtr< const Vector > | curr_orig_x_U_violation () |
Violation of scaled original variable upper bounds x_U. | |
virtual Number | curr_orig_bounds_violation (ENormType NormType) |
Violation of scaled original variable bounds. | |
Hessian matrices | |
SmartPtr< const SymMatrix > | curr_exact_hessian () |
exact Hessian at current iterate (uncached) | |
primal-dual error and its components | |
SmartPtr< const Vector > | curr_grad_lag_x () |
x-part of gradient of Lagrangian function (at current point) | |
SmartPtr< const Vector > | trial_grad_lag_x () |
x-part of gradient of Lagrangian function (at trial point) | |
SmartPtr< const Vector > | curr_grad_lag_s () |
s-part of gradient of Lagrangian function (at current point) | |
SmartPtr< const Vector > | trial_grad_lag_s () |
s-part of gradient of Lagrangian function (at trial point) | |
SmartPtr< const Vector > | curr_grad_lag_with_damping_x () |
x-part of gradient of Lagrangian function (at current point) including linear damping term | |
SmartPtr< const Vector > | curr_grad_lag_with_damping_s () |
s-part of gradient of Lagrangian function (at current point) including linear damping term | |
SmartPtr< const Vector > | curr_compl_x_L () |
Complementarity for x_L (for current iterate) | |
SmartPtr< const Vector > | curr_compl_x_U () |
Complementarity for x_U (for current iterate) | |
SmartPtr< const Vector > | curr_compl_s_L () |
Complementarity for s_L (for current iterate) | |
SmartPtr< const Vector > | curr_compl_s_U () |
Complementarity for s_U (for current iterate) | |
SmartPtr< const Vector > | trial_compl_x_L () |
Complementarity for x_L (for trial iterate) | |
SmartPtr< const Vector > | trial_compl_x_U () |
Complementarity for x_U (for trial iterate) | |
SmartPtr< const Vector > | trial_compl_s_L () |
Complementarity for s_L (for trial iterate) | |
SmartPtr< const Vector > | trial_compl_s_U () |
Complementarity for s_U (for trial iterate) | |
SmartPtr< const Vector > | curr_relaxed_compl_x_L () |
Relaxed complementarity for x_L (for current iterate and current mu) | |
SmartPtr< const Vector > | curr_relaxed_compl_x_U () |
Relaxed complementarity for x_U (for current iterate and current mu) | |
SmartPtr< const Vector > | curr_relaxed_compl_s_L () |
Relaxed complementarity for s_L (for current iterate and current mu) | |
SmartPtr< const Vector > | curr_relaxed_compl_s_U () |
Relaxed complementarity for s_U (for current iterate and current mu) | |
virtual Number | curr_primal_infeasibility (ENormType NormType) |
Primal infeasibility in a given norm (at current iterate). | |
virtual Number | trial_primal_infeasibility (ENormType NormType) |
Primal infeasibility in a given norm (at trial point) | |
virtual Number | curr_dual_infeasibility (ENormType NormType) |
Dual infeasibility in a given norm (at current iterate) | |
virtual Number | trial_dual_infeasibility (ENormType NormType) |
Dual infeasibility in a given norm (at trial iterate) | |
virtual Number | unscaled_curr_dual_infeasibility (ENormType NormType) |
Unscaled dual infeasibility in a given norm (at current iterate) | |
virtual Number | curr_complementarity (Number mu, ENormType NormType) |
Complementarity (for all complementarity conditions together) in a given norm (at current iterate) | |
virtual Number | trial_complementarity (Number mu, ENormType NormType) |
Complementarity (for all complementarity conditions together) in a given norm (at trial iterate) | |
virtual Number | unscaled_curr_complementarity (Number mu, ENormType NormType) |
Complementarity (for all complementarity conditions together) in a given norm (at current iterate) without NLP scaling. | |
Number | CalcCentralityMeasure (const Vector &compl_x_L, const Vector &compl_x_U, const Vector &compl_s_L, const Vector &compl_s_U) |
Centrality measure (in spirit of the -infinity-neighborhood. | |
virtual Number | curr_centrality_measure () |
Centrality measure at current point. | |
virtual Number | curr_nlp_error () |
Total optimality error for the original NLP at the current iterate, using scaling factors based on multipliers. | |
virtual Number | unscaled_curr_nlp_error () |
Total optimality error for the original NLP at the current iterate, but using no scaling based on multipliers, and no scaling for the NLP. | |
virtual Number | curr_barrier_error () |
Total optimality error for the barrier problem at the current iterate, using scaling factors based on multipliers. | |
virtual Number | curr_primal_dual_system_error (Number mu) |
Norm of the primal-dual system for a given mu (at current iterate). | |
virtual Number | trial_primal_dual_system_error (Number mu) |
Norm of the primal-dual system for a given mu (at trial iterate). | |
Computing fraction-to-the-boundary step sizes | |
Number | primal_frac_to_the_bound (Number tau, const Vector &delta_x, const Vector &delta_s) |
Fraction to the boundary from (current) primal variables x and s for a given step. | |
Number | curr_primal_frac_to_the_bound (Number tau) |
Fraction to the boundary from (current) primal variables x and s for internal (current) step. | |
Number | dual_frac_to_the_bound (Number tau, const Vector &delta_z_L, const Vector &delta_z_U, const Vector &delta_v_L, const Vector &delta_v_U) |
Fraction to the boundary from (current) dual variables z and v for a given step. | |
Number | uncached_dual_frac_to_the_bound (Number tau, const Vector &delta_z_L, const Vector &delta_z_U, const Vector &delta_v_L, const Vector &delta_v_U) |
Fraction to the boundary from (current) dual variables z and v for a given step, without caching. | |
Number | curr_dual_frac_to_the_bound (Number tau) |
Fraction to the boundary from (current) dual variables z and v for internal (current) step. | |
Number | uncached_slack_frac_to_the_bound (Number tau, const Vector &delta_x_L, const Vector &delta_x_U, const Vector &delta_s_L, const Vector &delta_s_U) |
Fraction to the boundary from (current) slacks for a given step in the slacks. | |
Sigma matrices | |
SmartPtr< const Vector > | curr_sigma_x () |
SmartPtr< const Vector > | curr_sigma_s () |
Public Member Functions inherited from Ipopt::ReferencedObject | |
ReferencedObject () | |
virtual | ~ReferencedObject () |
Index | ReferenceCount () const |
void | AddRef (const Referencer *referencer) const |
void | ReleaseRef (const Referencer *referencer) const |
Static Public Member Functions | |
static void | RegisterOptions (SmartPtr< RegisteredOptions > roptions) |
Called by IpoptType to register the options. | |
Private Member Functions | |
Default Compiler Generated Methods | |
(Hidden to avoid implicit creation/calling). These methods are not implemented and we do not want the compiler to implement them for us, so we declare them private and do not define them. This ensures that they will not be implicitly created/called. | |
IpoptCalculatedQuantities () | |
Default Constructor. | |
IpoptCalculatedQuantities (const IpoptCalculatedQuantities &) | |
Copy Constructor. | |
void | operator= (const IpoptCalculatedQuantities &) |
Default Assignment Operator. | |
Auxiliary functions | |
SmartPtr< Vector > | CalcSlack_L (const Matrix &P, const Vector &x, const Vector &x_bound) |
Compute new vector containing the slack to a lower bound (uncached) | |
SmartPtr< Vector > | CalcSlack_U (const Matrix &P, const Vector &x, const Vector &x_bound) |
Compute new vector containing the slack to a upper bound (uncached) | |
Number | CalcBarrierTerm (Number mu, const Vector &slack_x_L, const Vector &slack_x_U, const Vector &slack_s_L, const Vector &slack_s_U) |
Compute barrier term at given point (uncached) | |
SmartPtr< const Vector > | CalcCompl (const Vector &slack, const Vector &mult) |
Compute complementarity for slack / multiplier pair. | |
Number | CalcFracToBound (const Vector &slack_L, Vector &tmp_L, const Matrix &P_L, const Vector &slack_U, Vector &tmp_U, const Matrix &P_U, const Vector &delta, Number tau) |
Compute fraction to the boundary parameter for lower and upper bounds. | |
void | ComputeOptimalityErrorScaling (const Vector &y_c, const Vector &y_d, const Vector &z_L, const Vector &z_U, const Vector &v_L, const Vector &v_U, Number s_max, Number &s_d, Number &s_c) |
Compute the scaling factors for the optimality error. | |
Index | CalculateSafeSlack (SmartPtr< Vector > &slack, const SmartPtr< const Vector > &bound, const SmartPtr< const Vector > &curr_point, const SmartPtr< const Vector > &multiplier) |
Check if slacks are becoming too small. | |
void | ComputeDampingIndicators (SmartPtr< const Vector > &dampind_x_L, SmartPtr< const Vector > &dampind_x_U, SmartPtr< const Vector > &dampind_s_L, SmartPtr< const Vector > &dampind_s_U) |
Computes the indicator vectors that can be used to filter out those entries in the slack_... variables, that correspond to variables with only lower and upper bounds. | |
Temporary vectors for intermediate calculations. | |
We keep these around to avoid unnecessarily many new allocations of Vectors. | |
SmartPtr< Vector > | tmp_x_ |
SmartPtr< Vector > | tmp_s_ |
SmartPtr< Vector > | tmp_c_ |
SmartPtr< Vector > | tmp_d_ |
SmartPtr< Vector > | tmp_x_L_ |
SmartPtr< Vector > | tmp_x_U_ |
SmartPtr< Vector > | tmp_s_L_ |
SmartPtr< Vector > | tmp_s_U_ |
Vector & | Tmp_x () |
Accessor methods for the temporary vectors. | |
Vector & | Tmp_s () |
Vector & | Tmp_c () |
Vector & | Tmp_d () |
Vector & | Tmp_x_L () |
Vector & | Tmp_x_U () |
Vector & | Tmp_s_L () |
Vector & | Tmp_s_U () |
Class for all IPOPT specific calculated quantities.
Definition at line 86 of file IpIpoptCalculatedQuantities.hpp.
Ipopt::IpoptCalculatedQuantities::IpoptCalculatedQuantities | ( | const SmartPtr< IpoptNLP > & | ip_nlp, |
const SmartPtr< IpoptData > & | ip_data | ||
) |
Constructor.
|
virtual |
Destructor.
|
private |
Default Constructor.
|
private |
Copy Constructor.
|
inline |
Method for setting pointer for additional calculated quantities.
This needs to be called before Initialized.
Definition at line 106 of file IpIpoptCalculatedQuantities.hpp.
|
inline |
Method detecting if additional object for calculated quantities has already been set.
Definition at line 118 of file IpIpoptCalculatedQuantities.hpp.
bool Ipopt::IpoptCalculatedQuantities::Initialize | ( | const Journalist & | jnlst, |
const OptionsList & | options, | ||
const std::string & | prefix | ||
) |
This method must be called to initialize the global algorithmic parameters.
The parameters are taken from the OptionsList object.
Slacks for x_L (at current iterate)
Slacks for x_U (at current iterate)
Slacks for s_L (at current iterate)
Slacks for s_U (at current iterate)
Slacks for x_L (at trial point)
Slacks for x_U (at trial point)
Slacks for s_L (at trial point)
Slacks for s_U (at trial point)
Index Ipopt::IpoptCalculatedQuantities::AdjustedTrialSlacks | ( | ) |
Indicating whether or not we "fudged" the slacks.
void Ipopt::IpoptCalculatedQuantities::ResetAdjustedTrialSlacks | ( | ) |
Reset the flags for "fudged" slacks.
Value of objective function (at current point)
Unscaled value of the objective function (at the current point)
Value of objective function (at trial point)
Unscaled value of the objective function (at the trial point)
Gradient of objective function (at current point)
Gradient of objective function (at trial point)
Barrier Objective Function Value (at current iterate with current mu)
Barrier Objective Function Value (at trial point with current mu)
Gradient of barrier objective function with respect to x (at current point with current mu)
Gradient of barrier objective function with respect to s (at current point with current mu)
Gradient of the damping term with respect to x (times kappa_d)
Gradient of the damping term with respect to s (times kappa_d)
unscaled c(x) (at current point)
unscaled c(x) (at trial point)
unscaled d(x) (at current point)
d(x) - s (at current point)
d(x) - s (at trial point)
Jacobian of c (at current point)
Jacobian of c (at trial point)
Jacobian of d (at current point)
Jacobian of d (at trial point)
SmartPtr< const Vector > Ipopt::IpoptCalculatedQuantities::curr_jac_cT_times_vec | ( | const Vector & | vec | ) |
Product of Jacobian (evaluated at current point) of C transpose with general vector.
SmartPtr< const Vector > Ipopt::IpoptCalculatedQuantities::trial_jac_cT_times_vec | ( | const Vector & | vec | ) |
Product of Jacobian (evaluated at trial point) of C transpose with general vector.
SmartPtr< const Vector > Ipopt::IpoptCalculatedQuantities::curr_jac_dT_times_vec | ( | const Vector & | vec | ) |
Product of Jacobian (evaluated at current point) of D transpose with general vector.
SmartPtr< const Vector > Ipopt::IpoptCalculatedQuantities::trial_jac_dT_times_vec | ( | const Vector & | vec | ) |
Product of Jacobian (evaluated at trial point) of D transpose with general vector.
Product of Jacobian (evaluated at current point) of C transpose with current y_c.
Product of Jacobian (evaluated at trial point) of C transpose with trial y_c.
Product of Jacobian (evaluated at current point) of D transpose with current y_d.
Product of Jacobian (evaluated at trial point) of D transpose with trial y_d.
SmartPtr< const Vector > Ipopt::IpoptCalculatedQuantities::curr_jac_c_times_vec | ( | const Vector & | vec | ) |
Product of Jacobian (evaluated at current point) of C with general vector.
SmartPtr< const Vector > Ipopt::IpoptCalculatedQuantities::curr_jac_d_times_vec | ( | const Vector & | vec | ) |
Product of Jacobian (evaluated at current point) of D with general vector.
Constraint Violation (at current iterate).
This considers the inequality constraints with slacks, i.e., the violation of c(x) = 0, d(x) - s = 0,
This value should be used in the line search instead of curr_primal_infeasibility(). What type of norm is used depends on constr_viol_normtype
Constraint Violation (at trial point).
This considers the inequality constraints with slacks, i.e., the violation of c(x) = 0, d(x) - s = 0,
This value should be used in the line search instead of curr_primal_infeasibility(). What type of norm is used depends on constr_viol_normtype
|
virtual |
Real constraint violation in a given norm (at current iterate).
This considers the inequality constraints without slacks, i.e., the violation of c(x) = 0, d_L <= d(x) <= d_U, with scaling applied.
|
virtual |
Unscaled real constraint violation in a given norm (at current iterate).
This considers the inequality constraints without slacks, i.e., the violation of c(x) = 0, d_L <= d(x) <= d_U, without scaling applied.
|
virtual |
Unscaled real constraint violation in a given norm (at trial iterate).
This considers the inequality constraints without slacks, i.e., the violation of c(x) = 0, d_L <= d(x) <= d_U, with scaling applied.
SmartPtr< Vector > Ipopt::IpoptCalculatedQuantities::unscaled_orig_x_L_violation | ( | const Vector & | x | ) |
Violation of original variable lower bounds x_L.
Computes violation of given unscaled solution w.r.t. OrigIpoptNLP::orig_x_L() if current NLP is a OrigIpoptNLP. If current NLP is not an original OrigIpoptNLP, returns zero vector.
SmartPtr< Vector > Ipopt::IpoptCalculatedQuantities::unscaled_orig_x_U_violation | ( | const Vector & | x | ) |
Violation of original variable upper bounds x_U.
Computes violation of given unscaled solution w.r.t. OrigIpoptNLP::orig_x_U() if current NLP is a OrigIpoptNLP. If current NLP is not an original OrigIpoptNLP, returns zero vector.
Violation of original variable lower bounds x_L.
Computes violation of current (unscaled) solution w.r.t. OrigIpoptNLP::orig_x_L() if current NLP is a OrigIpoptNLP. If current NLP is not an original OrigIpoptNLP, returns zero vector.
Violation of original variable upper bounds x_U.
Computes violation of current (unscaled) solution w.r.t. OrigIpoptNLP::orig_x_U() if current NLP is a OrigIpoptNLP. If current NLP is not an original OrigIpoptNLP, returns zero vector.
|
virtual |
Violation of (unscaled) original variable bounds.
Norm of unscaled_curr_violation_x_L() and unscaled_curr_violation_x_U().
Violation of scaled original variable lower bounds x_L.
Computes violation of given scaled solution w.r.t. OrigIpoptNLP::orig_x_L() if current NLP is a OrigIpoptNLP. If current NLP is not an original OrigIpoptNLP, returns zero vector.
Violation of scaled original variable upper bounds x_U.
Computes violation of given scaled solution w.r.t. OrigIpoptNLP::orig_x_U() if current NLP is a OrigIpoptNLP. If current NLP is not an original OrigIpoptNLP, returns zero vector.
Violation of scaled original variable lower bounds x_L.
Computes violation of current (scaled) solution w.r.t. OrigIpoptNLP::orig_x_L() if current NLP is a OrigIpoptNLP. If current NLP is not an original OrigIpoptNLP, returns zero vector.
Violation of scaled original variable upper bounds x_U.
Computes violation of current (scaled) solution w.r.t. OrigIpoptNLP::orig_x_U() if current NLP is a OrigIpoptNLP. If current NLP is not an original OrigIpoptNLP, returns zero vector.
|
virtual |
Violation of scaled original variable bounds.
Norm of curr_violation_x_L() and curr_violation_x_U().
exact Hessian at current iterate (uncached)
x-part of gradient of Lagrangian function (at current point)
x-part of gradient of Lagrangian function (at trial point)
s-part of gradient of Lagrangian function (at current point)
s-part of gradient of Lagrangian function (at trial point)
x-part of gradient of Lagrangian function (at current point) including linear damping term
s-part of gradient of Lagrangian function (at current point) including linear damping term
Complementarity for x_L (for current iterate)
Complementarity for x_U (for current iterate)
Complementarity for s_L (for current iterate)
Complementarity for s_U (for current iterate)
Complementarity for x_L (for trial iterate)
Complementarity for x_U (for trial iterate)
Complementarity for s_L (for trial iterate)
Complementarity for s_U (for trial iterate)
Relaxed complementarity for x_L (for current iterate and current mu)
Relaxed complementarity for x_U (for current iterate and current mu)
Relaxed complementarity for s_L (for current iterate and current mu)
Relaxed complementarity for s_U (for current iterate and current mu)
|
virtual |
Primal infeasibility in a given norm (at current iterate).
|
virtual |
Primal infeasibility in a given norm (at trial point)
|
virtual |
Dual infeasibility in a given norm (at current iterate)
|
virtual |
Dual infeasibility in a given norm (at trial iterate)
|
virtual |
Unscaled dual infeasibility in a given norm (at current iterate)
|
virtual |
Complementarity (for all complementarity conditions together) in a given norm (at current iterate)
|
virtual |
Complementarity (for all complementarity conditions together) in a given norm (at trial iterate)
|
virtual |
Complementarity (for all complementarity conditions together) in a given norm (at current iterate) without NLP scaling.
Number Ipopt::IpoptCalculatedQuantities::CalcCentralityMeasure | ( | const Vector & | compl_x_L, |
const Vector & | compl_x_U, | ||
const Vector & | compl_s_L, | ||
const Vector & | compl_s_U | ||
) |
Centrality measure (in spirit of the -infinity-neighborhood.
Centrality measure at current point.
Total optimality error for the original NLP at the current iterate, using scaling factors based on multipliers.
Note that here the constraint violation is measured without slacks (nlp_constraint_violation)
Total optimality error for the barrier problem at the current iterate, using scaling factors based on multipliers.
Norm of the primal-dual system for a given mu (at current iterate).
The norm is defined as the sum of the 1-norms of dual infeasibiliy, primal infeasibility, and complementarity, all divided by the number of elements of the vectors of which the norm is taken.
|
virtual |
Norm of the primal-dual system for a given mu (at trial iterate).
The norm is defined as the sum of the 1-norms of dual infeasibiliy, primal infeasibility, and complementarity, all divided by the number of elements of the vectors of which the norm is taken.
Number Ipopt::IpoptCalculatedQuantities::primal_frac_to_the_bound | ( | Number | tau, |
const Vector & | delta_x, | ||
const Vector & | delta_s | ||
) |
Fraction to the boundary from (current) primal variables x and s for a given step.
Fraction to the boundary from (current) primal variables x and s for internal (current) step.
Number Ipopt::IpoptCalculatedQuantities::dual_frac_to_the_bound | ( | Number | tau, |
const Vector & | delta_z_L, | ||
const Vector & | delta_z_U, | ||
const Vector & | delta_v_L, | ||
const Vector & | delta_v_U | ||
) |
Fraction to the boundary from (current) dual variables z and v for a given step.
Number Ipopt::IpoptCalculatedQuantities::uncached_dual_frac_to_the_bound | ( | Number | tau, |
const Vector & | delta_z_L, | ||
const Vector & | delta_z_U, | ||
const Vector & | delta_v_L, | ||
const Vector & | delta_v_U | ||
) |
Fraction to the boundary from (current) dual variables z and v for a given step, without caching.
Fraction to the boundary from (current) dual variables z and v for internal (current) step.
Number Ipopt::IpoptCalculatedQuantities::uncached_slack_frac_to_the_bound | ( | Number | tau, |
const Vector & | delta_x_L, | ||
const Vector & | delta_x_U, | ||
const Vector & | delta_s_L, | ||
const Vector & | delta_s_U | ||
) |
Fraction to the boundary from (current) slacks for a given step in the slacks.
Usually, one will use the primal_frac_to_the_bound method to compute the primal fraction to the boundary step size, but if it is cheaper to provide the steps in the slacks directly (e.g. when the primal step sizes are only temporary), the this method is more efficient. This method does not cache computations.
Number Ipopt::IpoptCalculatedQuantities::curr_avrg_compl | ( | ) |
average of current values of the complementarities
Number Ipopt::IpoptCalculatedQuantities::trial_avrg_compl | ( | ) |
average of trial values of the complementarities
Number Ipopt::IpoptCalculatedQuantities::curr_gradBarrTDelta | ( | ) |
inner_product of current barrier obj.
fn. gradient with current search direction
Number Ipopt::IpoptCalculatedQuantities::CalcNormOfType | ( | ENormType | NormType, |
std::vector< SmartPtr< const Vector > > | vecs | ||
) |
Compute the norm of a specific type of a set of vectors (uncached)
Number Ipopt::IpoptCalculatedQuantities::CalcNormOfType | ( | ENormType | NormType, |
const Vector & | vec1, | ||
const Vector & | vec2 | ||
) |
Compute the norm of a specific type of two vectors (uncached)
|
inline |
Norm type used for calculating constraint violation.
Definition at line 650 of file IpIpoptCalculatedQuantities.hpp.
bool Ipopt::IpoptCalculatedQuantities::IsSquareProblem | ( | ) | const |
Method returning true if this is a square problem.
Method returning the IpoptNLP object.
This should only be used with care!
Definition at line 662 of file IpIpoptCalculatedQuantities.hpp.
|
inline |
Definition at line 667 of file IpIpoptCalculatedQuantities.hpp.
|
static |
Called by IpoptType to register the options.
|
private |
Default Assignment Operator.
|
private |
Accessor methods for the temporary vectors.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Compute new vector containing the slack to a lower bound (uncached)
|
private |
Compute new vector containing the slack to a upper bound (uncached)
|
private |
Compute barrier term at given point (uncached)
|
private |
Compute complementarity for slack / multiplier pair.
|
private |
Compute fraction to the boundary parameter for lower and upper bounds.
|
private |
Compute the scaling factors for the optimality error.
|
private |
Check if slacks are becoming too small.
If slacks are becoming too small, they are changed.
|
private |
Computes the indicator vectors that can be used to filter out those entries in the slack_... variables, that correspond to variables with only lower and upper bounds.
This is required for the linear damping term in the barrier objective function to handle unbounded solution sets.
Definition at line 706 of file IpIpoptCalculatedQuantities.hpp.
Ipopt Data object.
Definition at line 708 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Chen-Goldfarb specific calculated quantities.
Definition at line 710 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Parameter in formula for computing overall primal-dual optimality error.
Definition at line 722 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Weighting factor for the linear damping term added to the barrier objective function.
Definition at line 726 of file IpIpoptCalculatedQuantities.hpp.
|
private |
fractional movement allowed in bounds
Definition at line 728 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Norm type to be used when calculating the constraint violation.
Definition at line 730 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Flag indicating whether the TNLP with identical structure has already been solved before.
Definition at line 734 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Desired value of the barrier parameter.
Definition at line 736 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 741 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 742 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 743 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 744 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 745 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 746 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 747 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 748 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 749 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 750 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 751 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 752 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 757 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 758 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 759 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 760 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 765 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 766 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 767 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 768 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 769 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 770 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 775 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 776 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 777 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 778 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 779 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 780 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 781 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 782 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 783 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 784 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 785 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 786 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 787 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 788 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 789 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 790 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 791 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 792 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 793 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 794 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 795 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Cache for the exact Hessian.
Definition at line 799 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 803 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 804 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 805 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 806 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 807 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 808 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 809 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 810 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 811 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 812 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 813 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 814 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 815 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 816 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 817 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 818 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 819 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 820 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 821 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 822 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 823 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 824 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 825 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 826 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 827 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 828 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 829 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 830 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 831 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 832 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 833 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 838 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 839 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 840 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 841 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 842 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 847 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 848 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 853 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Definition at line 854 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Cache for average of current complementarity.
Definition at line 858 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Cache for average of trial complementarity.
Definition at line 860 of file IpIpoptCalculatedQuantities.hpp.
|
private |
Cache for grad barrier obj.
fn inner product with step
Definition at line 863 of file IpIpoptCalculatedQuantities.hpp.
Indicator vector for selecting the elements in x that have only lower bounds.
Definition at line 871 of file IpIpoptCalculatedQuantities.hpp.
Indicator vector for selecting the elements in x that have only upper bounds.
Definition at line 875 of file IpIpoptCalculatedQuantities.hpp.
Indicator vector for selecting the elements in s that have only lower bounds.
Definition at line 879 of file IpIpoptCalculatedQuantities.hpp.
Indicator vector for selecting the elements in s that have only upper bounds.
Definition at line 883 of file IpIpoptCalculatedQuantities.hpp.
Definition at line 892 of file IpIpoptCalculatedQuantities.hpp.
Definition at line 893 of file IpIpoptCalculatedQuantities.hpp.
Definition at line 894 of file IpIpoptCalculatedQuantities.hpp.
Definition at line 895 of file IpIpoptCalculatedQuantities.hpp.
Definition at line 896 of file IpIpoptCalculatedQuantities.hpp.
Definition at line 897 of file IpIpoptCalculatedQuantities.hpp.
Definition at line 898 of file IpIpoptCalculatedQuantities.hpp.
Definition at line 899 of file IpIpoptCalculatedQuantities.hpp.
|
private |
flag indicating if Initialize method has been called (for debugging)
Definition at line 915 of file IpIpoptCalculatedQuantities.hpp.