Ipopt
3.11.8
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Algorithm
IpFilterLSAcceptor.hpp
Go to the documentation of this file.
1
// Copyright (C) 2005, 2006 International Business Machines and others.
2
// All Rights Reserved.
3
// This code is published under the Eclipse Public License.
4
//
5
// $Id: IpFilterLSAcceptor.hpp 1861 2010-12-21 21:34:47Z andreasw $
6
//
7
// Authors: Andreas Waechter IBM 2005-10-13
8
// derived file from IpFilterLineSearch.hpp
9
10
#ifndef __IPFILTERLSACCEPTOR_HPP__
11
#define __IPFILTERLSACCEPTOR_HPP__
12
13
#include "
IpFilter.hpp
"
14
#include "
IpBacktrackingLSAcceptor.hpp
"
15
#include "
IpPDSystemSolver.hpp
"
16
17
namespace
Ipopt
18
{
19
23
class
FilterLSAcceptor
:
public
BacktrackingLSAcceptor
24
{
25
public
:
31
FilterLSAcceptor
(
const
SmartPtr<PDSystemSolver>
& pd_solver);
32
34
virtual
~FilterLSAcceptor
();
36
38
virtual
bool
InitializeImpl
(
const
OptionsList
& options,
39
const
std::string& prefix);
40
47
virtual
void
Reset
();
48
52
virtual
void
InitThisLineSearch
(
bool
in_watchdog);
53
58
virtual
void
PrepareRestoPhaseStart
();
59
61
virtual
Number
CalculateAlphaMin
();
62
68
virtual
bool
CheckAcceptabilityOfTrialPoint
(
Number
alpha_primal);
69
81
virtual
bool
TrySecondOrderCorrection
(
Number
alpha_primal_test,
82
Number
& alpha_primal,
83
SmartPtr<IteratesVector>
& actual_delta);
84
91
virtual
bool
TryCorrector
(
Number
alpha_primal_test,
92
Number
& alpha_primal,
93
SmartPtr<IteratesVector>
& actual_delta);
94
99
virtual
char
UpdateForNextIteration
(
Number
alpha_primal_test);
100
103
virtual
void
StartWatchDog
();
104
107
virtual
void
StopWatchDog
();
108
115
bool
IsAcceptableToCurrentIterate
(
Number
trial_barr,
Number
trial_theta,
116
bool
called_from_restoration=
false
)
const
;
117
119
bool
IsAcceptableToCurrentFilter
(
Number
trial_barr,
Number
trial_theta)
const
;
121
124
static
void
RegisterOptions
(
SmartPtr<RegisteredOptions>
roptions);
126
127
private
:
137
FilterLSAcceptor
(
const
FilterLSAcceptor
&);
138
140
void
operator=
(
const
FilterLSAcceptor
&);
142
146
Number
theta_max_
;
147
Number
theta_max_fact_
;
148
150
Number
theta_min_
;
151
Number
theta_min_fact_
;
153
158
bool
IsFtype
(
Number
alpha_primal_test);
159
164
bool
ArmijoHolds
(
Number
alpha_primal_test);
165
168
void
AugmentFilter
();
169
173
Number
eta_phi_
;
175
Number
delta_
;
177
Number
s_phi_
;
179
Number
s_theta_
;
181
Number
gamma_phi_
;
183
Number
gamma_theta_
;
185
Number
alpha_min_frac_
;
187
Index
max_soc_
;
191
Number
kappa_soc_
;
196
Number
obj_max_inc_
;
197
199
enum
CorrectorTypeEnum
200
{
201
NO_CORRECTOR
=0,
202
AFFINE_CORRECTOR
,
203
PRIMAL_DUAL_CORRECTOR
204
};
206
CorrectorTypeEnum
corrector_type_
;
209
Number
corrector_compl_avrg_red_fact_
;
212
bool
skip_corr_if_neg_curv_
;
215
bool
skip_corr_in_monotone_mode_
;
217
Index
max_filter_resets_
;
222
Index
filter_reset_trigger_
;
224
229
Number
reference_theta_
;
232
Number
reference_barr_
;
235
Number
reference_gradBarrTDelta_
;
237
Number
watchdog_theta_
;
239
Number
watchdog_barr_
;
241
Number
watchdog_gradBarrTDelta_
;
243
245
Filter
filter_
;
246
250
Number
last_rejection_due_to_filter_
;
253
Index
count_successive_filter_rejections_
;
255
Index
n_filter_resets_
;
257
260
SmartPtr<PDSystemSolver>
pd_solver_
;
262
};
263
264
}
// namespace Ipopt
265
266
#endif
Generated by
1.8.3.1