This class maps a IpoptNLP into one that is used for the restoration phase of Ipopt. More...
#include <IpRestoIpoptNLP.hpp>
Static Public Member Functions | |
static void | RegisterOptions (SmartPtr< RegisteredOptions > roptions) |
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. | |
RestoIpoptNLP () | |
Default Constructor. | |
RestoIpoptNLP (const RestoIpoptNLP &) | |
Copy Constructor. | |
void | operator= (const RestoIpoptNLP &) |
Default Assignment Operator. | |
Private Attributes | |
bool | initialized_ |
Flag indicating if initialization method has been called. | |
Pointers for the original NLP information. | |
SmartPtr< IpoptNLP > | orig_ip_nlp_ |
Pointer to the original IpoptNLP. | |
SmartPtr< IpoptData > | orig_ip_data_ |
Pointer to the original IpoptData. | |
SmartPtr< IpoptCalculatedQuantities > | orig_ip_cq_ |
Pointer to the original IpoptCalculatedQuantities. | |
SmartPtr< CompoundVectorSpace > | x_space_ |
Necessary Vector/Matrix spaces. | |
SmartPtr< CompoundVectorSpace > | c_space_ |
SmartPtr< CompoundVectorSpace > | d_space_ |
SmartPtr< CompoundVectorSpace > | x_l_space_ |
SmartPtr< CompoundMatrixSpace > | px_l_space_ |
SmartPtr< CompoundVectorSpace > | x_u_space_ |
SmartPtr< CompoundMatrixSpace > | px_u_space_ |
SmartPtr< CompoundVectorSpace > | d_l_space_ |
SmartPtr< CompoundMatrixSpace > | pd_l_space_ |
SmartPtr< CompoundVectorSpace > | d_u_space_ |
SmartPtr< CompoundMatrixSpace > | pd_u_space_ |
SmartPtr< CompoundMatrixSpace > | jac_c_space_ |
SmartPtr< CompoundMatrixSpace > | jac_d_space_ |
SmartPtr< CompoundSymMatrixSpace > | h_space_ |
Storage for Model Quantities | |
SmartPtr< CompoundVector > | x_L_ |
Lower bounds on x. | |
SmartPtr< CompoundMatrix > | Px_L_ |
Permutation matrix (x_L_ -> x) | |
SmartPtr< CompoundVector > | x_U_ |
Upper bounds on x. | |
SmartPtr< CompoundMatrix > | Px_U_ |
Permutation matrix (x_U_ -> x) | |
SmartPtr< CompoundVector > | d_L_ |
Lower bounds on d. | |
SmartPtr< CompoundMatrix > | Pd_L_ |
Permutation matrix (d_L_ -> d) | |
SmartPtr< CompoundVector > | d_U_ |
Upper bounds on d. | |
SmartPtr< CompoundMatrix > | Pd_U_ |
Permutation matrix (d_U_ -> d. | |
Values particular to the restoration phase problem statement | |
Number | rho_ |
Penalty parameter for the $l_1$ norm, given by resto_penalty_parameter. | |
Number | eta_factor_ |
scaling factor for eta calculation | |
Number | eta_mu_exponent_ |
exponent for mu in eta calculation | |
SmartPtr< const Vector > | dr_x_ |
Scaling factors for the $x$ part of the regularization term. | |
SmartPtr< const Vector > | dr2_x_ |
Squared scaling factors for the $x$ part of the regularization term, for grad_f. | |
SmartPtr< const DiagMatrix > | DR2_x_ |
Matrix with squared scaling factors, for h() | |
SmartPtr< const Vector > | x_ref_ |
$x$ part of the reference point in the regularization term | |
Algorithmic parameter | |
bool | evaluate_orig_obj_at_resto_trial_ |
Flag indicating if evaluation of the objective should be performed for every restoration phase objective function evaluation. | |
HessianApproximationType | hessian_approximation_ |
Flag indicating how Hessian information is obtained. | |
Counters for the function evaluations | |
Index | f_evals_ |
Index | grad_f_evals_ |
Index | c_evals_ |
Index | jac_c_evals_ |
Index | d_evals_ |
Index | jac_d_evals_ |
Index | h_evals_ |
This class maps a IpoptNLP into one that is used for the restoration phase of Ipopt.
Given a IpoptNLP
\begin{eqnarray*} \mathrm{min} && f(x), \\ \mathrm{s.t.} && c(x) = 0, &\qquad y_c\\ && d_L \leq d(x) \leq d_U, &\qquad y_d \\ && x_L \leq x \leq x_U, &\qquad z_L, z_U \end{eqnarray*}
parameters \(\rho\), \(\eta\), and a reference point \(x_r\), a RestoIpoptNLP is the NLP
\begin{eqnarray*} \mathrm{min} && \rho (p_c^Te + n_c^Te + p_d^Te + n_d^Te) + \frac{\eta}{2} \Vert D_r (x-x_r) \Vert_2^2, \\ \mathrm{s.t.} && c(x) - p_c + n_c = 0, &\qquad y_c\\ && d_L \leq d(x) - p_d + n_d \leq d_U, &\qquad y_d \\ && x_L \leq x \leq x_U, &\qquad z_L, z_U \\ && p_c, n_c, p_d, n_d \geq 0. &\qquad ... \end{eqnarray*}
where \(D_r = \mathrm{diag}(\frac{1}{\max\{1,|x_{r,i}|\}},\ldots,\frac{1}{\max\{1,|x_{r,n}|\}})\).
Parameter \(\rho\) is determined by option resto_penalty_parameter
(default = 1000). Parameter \(\eta = \eta_f \sqrt{\mu}\), where \(\eta_f\) is determined by option resto_proximity_weight
(default = 1).
Definition at line 47 of file IpRestoIpoptNLP.hpp.
Ipopt::RestoIpoptNLP::RestoIpoptNLP | ( | IpoptNLP & | orig_ip_nlp, |
IpoptData & | orig_ip_data, | ||
IpoptCalculatedQuantities & | orig_ip_cq | ||
) |
Ipopt::RestoIpoptNLP::~RestoIpoptNLP | ( | ) |
Destructor.
|
private |
Default Constructor.
|
private |
Copy Constructor.
|
virtual |
Initialization method.
Set the internal options and initialize internal data structures.
Reimplemented from Ipopt::IpoptNLP.
|
virtual |
Initialize (create) structures for the iteration data.
Implements Ipopt::IpoptNLP.
|
inlinevirtual |
Method accessing the GetWarmStartIterate of the NLP.
Implements Ipopt::IpoptNLP.
Definition at line 84 of file IpRestoIpoptNLP.hpp.
|
inlinevirtual |
Implements Ipopt::IpoptNLP.
Definition at line 91 of file IpRestoIpoptNLP.hpp.
Accessor methods for model data.
Method for telling IpoptCalculatedQuantities that the restoration phase objective function depends on the barrier parameter
Reimplemented from Ipopt::IpoptNLP.
Definition at line 112 of file IpRestoIpoptNLP.hpp.
Objective value (incorrect version for restoration phase)
Implements Ipopt::IpoptNLP.
Objective value.
Implements Ipopt::IpoptNLP.
Gradient of the objective (incorrect version for restoration phase)
Implements Ipopt::IpoptNLP.
|
virtual |
Gradient of the objective.
Implements Ipopt::IpoptNLP.
Equality constraint residual.
Implements Ipopt::IpoptNLP.
Jacobian Matrix for equality constraints.
Implements Ipopt::IpoptNLP.
Inequality constraint residual (reformulated as equalities with slacks.
Implements Ipopt::IpoptNLP.
Jacobian Matrix for inequality constraints.
Implements Ipopt::IpoptNLP.
|
virtual |
Hessian of the Lagrangian (incorrect version for restoration phase)
Implements Ipopt::IpoptNLP.
|
virtual |
Hessian of the Lagrangian.
Implements Ipopt::IpoptNLP.
Provides a Hessian matrix from the correct matrix space with uninitialized values.
This can be used in LeastSquareMults to obtain a "zero Hessian".
Implements Ipopt::IpoptNLP.
Permutation matrix (x_L_ -> x)
Implements Ipopt::IpoptNLP.
Definition at line 191 of file IpRestoIpoptNLP.hpp.
Permutation matrix (x_U_ -> x.
Implements Ipopt::IpoptNLP.
Definition at line 203 of file IpRestoIpoptNLP.hpp.
Permutation matrix (d_L_ -> d)
Implements Ipopt::IpoptNLP.
Definition at line 215 of file IpRestoIpoptNLP.hpp.
Permutation matrix (d_U_ -> d.
Implements Ipopt::IpoptNLP.
Definition at line 227 of file IpRestoIpoptNLP.hpp.
|
inlinevirtual |
Accessor method to obtain the MatrixSpace for the Hessian matrix (or it's approximation)
Implements Ipopt::IpoptNLP.
Definition at line 232 of file IpRestoIpoptNLP.hpp.
|
inlinevirtual |
|
virtual |
Accessor method for vector/matrix spaces pointers.
Implements Ipopt::IpoptNLP.
|
virtual |
Method for adapting the variable bounds.
This is called if slacks are becoming too small.
Implements Ipopt::IpoptNLP.
|
virtual |
User callback method.
Implements Ipopt::IpoptNLP.
|
inline |
Definition at line 292 of file IpRestoIpoptNLP.hpp.
|
inline |
Definition at line 297 of file IpRestoIpoptNLP.hpp.
|
inline |
Definition at line 302 of file IpRestoIpoptNLP.hpp.
|
inline |
Accessor Method for obtaining the Rho penalization factor for the ell_1 norm.
Definition at line 311 of file IpRestoIpoptNLP.hpp.
Implements Ipopt::IpoptNLP.
Definition at line 318 of file IpRestoIpoptNLP.hpp.
Implements Ipopt::IpoptNLP.
Definition at line 322 of file IpRestoIpoptNLP.hpp.
Implements Ipopt::IpoptNLP.
Definition at line 326 of file IpRestoIpoptNLP.hpp.
Implements Ipopt::IpoptNLP.
Definition at line 330 of file IpRestoIpoptNLP.hpp.
Implements Ipopt::IpoptNLP.
Definition at line 334 of file IpRestoIpoptNLP.hpp.
Implements Ipopt::IpoptNLP.
Definition at line 338 of file IpRestoIpoptNLP.hpp.
Implements Ipopt::IpoptNLP.
Definition at line 342 of file IpRestoIpoptNLP.hpp.
Method to calculate eta, the factor for the regularization term.
Method returning the scaling factors for the 2-norm penalization term.
Definition at line 356 of file IpRestoIpoptNLP.hpp.
|
static |
|
private |
Default Assignment Operator.
Pointer to the original IpoptNLP.
Definition at line 369 of file IpRestoIpoptNLP.hpp.
Pointer to the original IpoptData.
Definition at line 372 of file IpRestoIpoptNLP.hpp.
|
private |
Pointer to the original IpoptCalculatedQuantities.
Definition at line 375 of file IpRestoIpoptNLP.hpp.
|
private |
Necessary Vector/Matrix spaces.
Definition at line 380 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 382 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 384 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 386 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 388 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 390 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 392 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 394 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 396 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 398 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 400 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 402 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 404 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 406 of file IpRestoIpoptNLP.hpp.
|
private |
Lower bounds on x.
Definition at line 412 of file IpRestoIpoptNLP.hpp.
|
private |
Permutation matrix (x_L_ -> x)
Definition at line 415 of file IpRestoIpoptNLP.hpp.
|
private |
Upper bounds on x.
Definition at line 418 of file IpRestoIpoptNLP.hpp.
|
private |
Permutation matrix (x_U_ -> x)
Definition at line 421 of file IpRestoIpoptNLP.hpp.
|
private |
Lower bounds on d.
Definition at line 424 of file IpRestoIpoptNLP.hpp.
|
private |
Permutation matrix (d_L_ -> d)
Definition at line 427 of file IpRestoIpoptNLP.hpp.
|
private |
Upper bounds on d.
Definition at line 430 of file IpRestoIpoptNLP.hpp.
|
private |
Permutation matrix (d_U_ -> d.
Definition at line 433 of file IpRestoIpoptNLP.hpp.
|
private |
Penalty parameter for the $l_1$ norm, given by resto_penalty_parameter.
Definition at line 439 of file IpRestoIpoptNLP.hpp.
|
private |
scaling factor for eta calculation
Definition at line 442 of file IpRestoIpoptNLP.hpp.
|
private |
exponent for mu in eta calculation
Definition at line 445 of file IpRestoIpoptNLP.hpp.
Scaling factors for the $x$ part of the regularization term.
Definition at line 448 of file IpRestoIpoptNLP.hpp.
Squared scaling factors for the $x$ part of the regularization term, for grad_f.
Definition at line 450 of file IpRestoIpoptNLP.hpp.
|
private |
Matrix with squared scaling factors, for h()
Definition at line 452 of file IpRestoIpoptNLP.hpp.
$x$ part of the reference point in the regularization term
Definition at line 455 of file IpRestoIpoptNLP.hpp.
|
private |
Flag indicating if evaluation of the objective should be performed for every restoration phase objective function evaluation.
Definition at line 487 of file IpRestoIpoptNLP.hpp.
|
private |
Flag indicating how Hessian information is obtained.
Definition at line 490 of file IpRestoIpoptNLP.hpp.
|
private |
Flag indicating if initialization method has been called.
Definition at line 494 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 498 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 499 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 500 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 501 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 502 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 503 of file IpRestoIpoptNLP.hpp.
|
private |
Definition at line 504 of file IpRestoIpoptNLP.hpp.