Main Page
Namespaces
Classes
Files
File List
File Members
var
build
temp
tmp.niCloInx4p
4.0-0-0
coinor-ipopt
coinor-ipopt-3.10.2
Ipopt
src
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 on Mon Mar 17 2014 19:49:12 by
1.8.1.2