Ipopt Documentation  
 
Loading...
Searching...
No Matches
IpTNLPReducer.hpp
Go to the documentation of this file.
1// Copyright (C) 2008 International Business Machines and others.
2// All Rights Reserved.
3// This code is published under the Eclipse Public License.
4//
5// Authors: Andreas Waechter IBM 2008-08-10
6
7#ifndef __IPTNLPREDUCER_HPP__
8#define __IPTNLPREDUCER_HPP__
9
10#include "IpTNLP.hpp"
11
12namespace Ipopt
13{
24{
25public:
28
33 TNLP& tnlp,
35 const Index* index_g_skip,
37 const Index* index_xL_skip,
39 const Index* index_xU_skip,
41 const Index* index_f_fix
42 );
43
45 virtual ~TNLPReducer();
47
50 virtual bool get_nlp_info(
51 Index& n,
52 Index& m,
56 );
57
58 virtual bool get_bounds_info(
59 Index n,
60 Number* x_l,
61 Number* x_u,
62 Index m,
63 Number* g_l,
64 Number* g_u
65 );
66
69 bool& use_x_scaling,
70 Index n,
72 bool& use_g_scaling,
73 Index m,
75 );
76
78 Index n,
80 );
81
83 Index m,
85 );
86
87 virtual bool get_starting_point(
88 Index n,
89 bool init_x,
90 Number* x,
91 bool init_z,
92 Number* z_L,
93 Number* z_U,
94 Index m,
95 bool init_lambda,
97 );
98
101 );
102
103 virtual bool eval_f(
104 Index n,
105 const Number* x,
106 bool new_x,
108 );
109
110 virtual bool eval_grad_f(
111 Index n,
112 const Number* x,
113 bool new_x,
114 Number* grad_f
115 );
116
117 virtual bool eval_g(
118 Index n,
119 const Number* x,
120 bool new_x,
121 Index m,
122 Number* g
123 );
124
125 virtual bool eval_jac_g(
126 Index n,
127 const Number* x,
128 bool new_x,
129 Index m,
131 Index* iRow,
132 Index* jCol,
134 );
135
136 virtual bool eval_h(
137 Index n,
138 const Number* x,
139 bool new_x,
141 Index m,
142 const Number* lambda,
143 bool new_lambda,
145 Index* iRow,
146 Index* jCol,
148 );
149
150 virtual void finalize_solution(
151 SolverReturn status,
152 Index n,
153 const Number* x,
154 const Number* z_L,
155 const Number* z_U,
156 Index m,
157 const Number* g,
158 const Number* lambda,
160 const IpoptData* ip_data,
162 );
163
166 Index iter,
170 Number mu,
176 const IpoptData* ip_data,
178 );
179
181
185 );
187
188private:
199
201
204 const TNLPReducer&
205 );
206
209 const TNLPReducer&
210 );
212
219
222
228
234
240
243
246
249
252
255
258
261
264
267
270};
271
272} // namespace Ipopt
273
274#endif
AlgorithmMode
enum to indicate the mode in which the algorithm is
Templated class which stores one entry for the CachedResult class.
Class for all IPOPT specific calculated quantities.
Class to organize all the data required by the algorithm.
Specialized CompoundVector class specifically for the algorithm iterates.
This is a wrapper around a given TNLP class that takes out a list of constraints that are given to th...
Index n_x_fix_
Number of variables that are to be fixed to initial value.
SmartPtr< TNLP > tnlp_
virtual bool get_warm_start_iterate(IteratesVector &warm_start_iterate)
Method to provide an Ipopt warm start iterate which is already in the form Ipopt requires it internal...
TNLPReducer()
Default Constructor.
void operator=(const TNLPReducer &)
Default Assignment Operator.
virtual bool get_list_of_nonlinear_variables(Index num_nonlin_vars, Index *pos_nonlin_vars)
Return the indices of all nonlinear variables.
Index * index_g_skip_
Array of indices of the constraints that are to be skipped.
Index n_g_skip_
Number of constraints to be skipped.
virtual bool get_starting_point(Index n, bool init_x, Number *x, bool init_z, Number *z_L, Number *z_U, Index m, bool init_lambda, Number *lambda)
Method to request the starting point before iterating.
Index nnz_jac_g_reduced_
Number of Jacobian nonzeros in the reduced NLP.
virtual Index get_number_of_nonlinear_variables()
Return the number of variables that appear nonlinearly in the objective function or in at least one c...
virtual bool eval_f(Index n, const Number *x, bool new_x, Number &obj_value)
Method to request the value of the objective function.
virtual bool get_constraints_linearity(Index m, LinearityType *const_types)
Method to request the constraints linearity.
virtual bool eval_g(Index n, const Number *x, bool new_x, Index m, Number *g)
Method to request the constraint values.
IndexStyleEnum index_style_orig_
Index style for original problem.
Index * index_xL_skip_
Array of indices of the lower variable bounds to be skipped.
virtual bool eval_jac_g(Index n, const Number *x, bool new_x, Index m, Index nele_jac, Index *iRow, Index *jCol, Number *values)
Method to request either the sparsity structure or the values of the Jacobian of the constraints.
Index * index_xU_skip_
Array of indices of the upper variable bounds to be skipped.
Index * index_x_fix_
Array of indices of the variables that are to be fixed.
virtual void finalize_solution(SolverReturn status, Index n, const Number *x, const Number *z_L, const Number *z_U, Index m, const Number *g, const Number *lambda, Number obj_value, const IpoptData *ip_data, IpoptCalculatedQuantities *ip_cq)
This method is called when the algorithm has finished (successfully or not) so the TNLP can digest th...
virtual bool get_scaling_parameters(Number &obj_scaling, bool &use_x_scaling, Index n, Number *x_scaling, bool &use_g_scaling, Index m, Number *g_scaling)
Method to request scaling parameters.
Index n_xL_skip_
Number of lower variable bounds to be skipped.
virtual bool eval_h(Index n, const Number *x, bool new_x, Number obj_factor, Index m, const Number *lambda, bool new_lambda, Index nele_hess, Index *iRow, Index *jCol, Number *values)
Method to request either the sparsity structure or the values of the Hessian of the Lagrangian.
virtual ~TNLPReducer()
Default destructor.
virtual bool eval_grad_f(Index n, const Number *x, bool new_x, Number *grad_f)
Method to request the gradient of the objective function.
TNLPReducer(const TNLPReducer &)
Copy Constructor.
Index m_reduced_
Number of constraints in reduced NLP.
virtual bool intermediate_callback(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, const IpoptData *ip_data, IpoptCalculatedQuantities *ip_cq)
Intermediate Callback method for the user.
virtual bool get_variables_linearity(Index n, LinearityType *var_types)
Method to request the variables linearity.
Index nnz_jac_g_skipped_
Number of Jacobian nonzeros that are skipped.
TNLPReducer(TNLP &tnlp, Index n_g_skip, const Index *index_g_skip, Index n_xL_skip, const Index *index_xL_skip, Index n_xU_skip, const Index *index_xU_skip, Index n_x_fix, const Index *index_f_fix)
Constructor is given the indices of the constraints that should be taken out of the problem statement...
virtual bool get_bounds_info(Index n, Number *x_l, Number *x_u, Index m, Number *g_l, Number *g_u)
Method to request bounds on the variables and constraints.
Index * g_keep_map_
Map from original constraints to new constraints.
virtual bool get_nlp_info(Index &n, Index &m, Index &nnz_jac_g, Index &nnz_h_lag, IndexStyleEnum &index_style)
Method to request the initial information about the problem.
Index n_xU_skip_
Number of upper variable bounds to be skipped.
Index * jac_g_skipped_
Array of Jacobian elements that are to be skipped in increasing order.
Base class for all NLP's that use standard triplet matrix form and dense vectors.
Definition IpTNLP.hpp:48
LinearityType
Linearity-types of variables and constraints.
Definition IpTNLP.hpp:53
#define IPOPTLIB_EXPORT
This file contains a base class for all exceptions and a set of macros to help with exceptions.
SolverReturn
enum for the return from the optimize algorithm
ipindex Index
Type of all indices of vectors, matrices etc.
Definition IpTypes.hpp:20
ipnumber Number
Type of all numbers.
Definition IpTypes.hpp:17