Ipopt Documentation  
 
Loading...
Searching...
No Matches
IpPDPerturbationHandler.hpp
Go to the documentation of this file.
1// Copyright (C) 2005, 2007 International Business Machines and others.
2// All Rights Reserved.
3// This code is published under the Eclipse Public License.
4//
5// Authors: Carl Laird, Andreas Waechter IBM 2005-08-04
6
7#ifndef __IPPDPERTURBATIONHANDLER_HPP__
8#define __IPPDPERTURBATIONHANDLER_HPP__
9
10#include "IpAlgStrategy.hpp"
11
12namespace Ipopt
13{
14
24{
25public:
28
30
33 { }
35
36 /* overloaded from AlgorithmStrategyObject */
37 virtual bool InitializeImpl(
38 const OptionsList& options,
39 const std::string& prefix
40 );
41
51 virtual bool ConsiderNewSystem(
52 Number& delta_x,
53 Number& delta_s,
54 Number& delta_c,
55 Number& delta_d
56 );
57
64 Number& delta_x,
65 Number& delta_s,
66 Number& delta_c,
67 Number& delta_d
68 );
69
77 Number& delta_x,
78 Number& delta_s,
79 Number& delta_c,
80 Number& delta_d);
81
85 virtual void CurrentPerturbation(
86 Number& delta_x,
87 Number& delta_s,
88 Number& delta_c,
89 Number& delta_d
90 );
91
92 static void RegisterOptions(
94 );
95
96protected:
107
110 );
111
115 );
117
120
129
134
143
148
151
158
163
168
176
186
190
193
221
224
230 Number& delta_x,
231 Number& delta_s,
232 Number& delta_c,
233 Number& delta_d
234 );
235
242
246
247};
248
249} // namespace Ipopt
250
251#endif
This is the base class for all algorithm strategy objects.
This class stores a list of user set options.
Class for handling the perturbation factors delta_x, delta_s, delta_c, and delta_d in the primal dual...
Number delta_d_last_
The last nonzero value for delta_d.
virtual void CurrentPerturbation(Number &delta_x, Number &delta_s, Number &delta_c, Number &delta_d)
Just return the perturbation values that have been determined most recently.
Index degen_iters_
Flag counting matrices in which degeneracy was observed in the first successive iterations.
bool get_deltas_for_wrong_inertia(Number &delta_x, Number &delta_s, Number &delta_c, Number &delta_d)
Internal version of PerturbForWrongInertia with the difference, that finalize_test is not called.
virtual bool PerturbForSingularity(Number &delta_x, Number &delta_s, Number &delta_c, Number &delta_d)
This method returns perturbation factors for the case when the most recent factorization resulted in ...
DegenType hess_degenerate_
Flag indicating whether the reduced Hessian matrix is thought to be structurally singular.
virtual bool InitializeImpl(const OptionsList &options, const std::string &prefix)
Implementation of the initialization method that has to be overloaded by for each derived class.
virtual bool PerturbForWrongInertia(Number &delta_x, Number &delta_s, Number &delta_c, Number &delta_d)
This method returns perturbation factors for the case when the most recent factorization resulted in ...
DegenType jac_degenerate_
Flag indicating whether the Jacobian of the constraints is thought to be structurally rank-deficient.
Number delta_xs_dec_fact_
Decrease factor for delta_xs for later perturbations.
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
void operator=(const PDPerturbationHandler &)
Default Assignment Operator.
Number delta_cd_exp_
Exponent on mu in formula for of perturbation for c and d blocks.
Number delta_x_curr_
The current value for delta_x.
Number delta_xs_init_
Very first trial value for delta_xs perturbation.
Number delta_cd_val_
Size of perturbation for c and d blocks.
Number delta_c_curr_
The current value for delta_c.
Number delta_s_curr_
The current value for delta_s.
virtual bool ConsiderNewSystem(Number &delta_x, Number &delta_s, Number &delta_c, Number &delta_d)
This method must be called for each new matrix, and before any other method for generating perturbati...
Number delta_d_curr_
The current value for delta_d.
Number delta_s_last_
The last nonzero value for delta_s.
Number delta_xs_inc_fact_
Increase factor for delta_xs for later perturbations.
bool reset_last_
Flag indicating whether the new values are based on the perturbations in the last iteration or in the...
bool perturb_always_cd_
Flag indicating that the delta_c, delta_d perturbation should always be used.
Index degen_iters_max_
Required number of iterations for degeneracy conclusions.
Number delta_xs_first_inc_fact_
Increase factor for delta_xs for first required perturbation.
Number delta_xs_min_
Smallest possible perturbation for x and s.
PDPerturbationHandler(const PDPerturbationHandler &)
Copy Constructor.
PDPerturbationHandler()
Default Constructor.
TrialStatus test_status_
Current status.
Number delta_cd()
Compute perturbation value for constraints.
Number delta_x_last_
The last nonzero value for delta_x.
Number delta_c_last_
The last nonzero value for delta_c.
TrialStatus
Status of current trial configuration.
void finalize_test()
This method is call whenever a matrix had been factorization and is not singular.
Number delta_xs_max_
Maximal perturbation for x and s.
bool get_deltas_for_wrong_inertia_called_
Flag indicating if for the given matrix the perturb for wrong inertia method has already been called.
Template class for Smart Pointers.
ipindex Index
Type of all indices of vectors, matrices etc.
Definition IpTypes.hpp:20
ipnumber Number
Type of all numbers.
Definition IpTypes.hpp:17