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.
This file contains a base class for all exceptions and a set of macros to help with exceptions.
ipindex Index
Type of all indices of vectors, matrices etc.
Definition IpTypes.hpp:20
ipnumber Number
Type of all numbers.
Definition IpTypes.hpp:17