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
IpIpoptAlg.hpp
Go to the documentation of this file.
1
// Copyright (C) 2004, 2010 International Business Machines and others.
2
// All Rights Reserved.
3
// This code is published under the Eclipse Public License.
4
//
5
// $Id: IpIpoptAlg.hpp 1861 2010-12-21 21:34:47Z andreasw $
6
//
7
// Authors: Carl Laird, Andreas Waechter IBM 2004-08-13
8
9
#ifndef __IPIPOPTALG_HPP__
10
#define __IPIPOPTALG_HPP__
11
12
#include "
IpIpoptNLP.hpp
"
13
#include "
IpAlgStrategy.hpp
"
14
#include "
IpSearchDirCalculator.hpp
"
15
#include "
IpLineSearch.hpp
"
16
#include "
IpMuUpdate.hpp
"
17
#include "
IpConvCheck.hpp
"
18
#include "
IpOptionsList.hpp
"
19
#include "
IpIterateInitializer.hpp
"
20
#include "
IpIterationOutput.hpp
"
21
#include "
IpAlgTypes.hpp
"
22
#include "
IpHessianUpdater.hpp
"
23
#include "
IpEqMultCalculator.hpp
"
24
25
namespace
Ipopt
26
{
27
30
DECLARE_STD_EXCEPTION
(STEP_COMPUTATION_FAILED);
32
45
class
IpoptAlgorithm
:
public
AlgorithmStrategyObject
46
{
47
public
:
48
55
IpoptAlgorithm
(
const
SmartPtr<SearchDirectionCalculator>
& search_dir_calculator,
56
const
SmartPtr<LineSearch>
& line_search,
57
const
SmartPtr<MuUpdate>
& mu_update,
58
const
SmartPtr<ConvergenceCheck>
& conv_check,
59
const
SmartPtr<IterateInitializer>
& iterate_initializer,
60
const
SmartPtr<IterationOutput>
& iter_output,
61
const
SmartPtr<HessianUpdater>
& hessian_updater,
62
const
SmartPtr<EqMultiplierCalculator>
& eq_multiplier_calculator = NULL);
63
65
virtual
~IpoptAlgorithm
();
67
68
70
virtual
bool
InitializeImpl
(
const
OptionsList
& options,
71
const
std::string& prefix);
72
74
SolverReturn
Optimize
(
bool
isResto =
false
);
75
78
static
void
RegisterOptions
(
SmartPtr<RegisteredOptions>
roptions);
80
83
SmartPtr<SearchDirectionCalculator>
SearchDirCalc
()
84
{
85
return
search_dir_calculator_
;
86
}
88
89
static
void
print_copyright_message
(
const
Journalist
& jnlst);
90
91
private
:
101
IpoptAlgorithm
();
102
104
IpoptAlgorithm
(
const
IpoptAlgorithm
&);
105
107
void
operator=
(
const
IpoptAlgorithm
&);
109
112
SmartPtr<SearchDirectionCalculator>
search_dir_calculator_
;
113
SmartPtr<LineSearch>
line_search_
;
114
SmartPtr<MuUpdate>
mu_update_
;
115
SmartPtr<ConvergenceCheck>
conv_check_
;
116
SmartPtr<IterateInitializer>
iterate_initializer_
;
117
SmartPtr<IterationOutput>
iter_output_
;
118
SmartPtr<HessianUpdater>
hessian_updater_
;
121
SmartPtr<EqMultiplierCalculator>
eq_multiplier_calculator_
;
123
130
void
UpdateHessian
();
131
136
bool
UpdateBarrierParameter
();
137
142
bool
ComputeSearchDirection
();
143
147
void
ComputeAcceptableTrialPoint
();
148
151
void
AcceptTrialPoint
();
152
154
void
OutputIteration
();
155
159
void
InitializeIterates
();
160
162
void
PrintProblemStatistics
();
163
165
void
ComputeFeasibilityMultipliers
();
167
171
bool
skip_print_problem_stats_
;
173
180
Number
kappa_sigma_
;
184
bool
recalc_y_
;
186
Number
recalc_y_feas_tol_
;
190
bool
mehrotra_algorithm_
;
192
std::string
linear_solver_
;
194
197
void
calc_number_of_bounds
(
198
const
Vector
&
x
,
199
const
Vector
&
x_L
,
200
const
Vector
&
x_U
,
201
const
Matrix
& Px_L,
202
const
Matrix
& Px_U,
203
Index
& n_tot,
204
Index
& n_only_lower,
205
Index
& n_both,
206
Index
& n_only_upper);
207
215
Number
correct_bound_multiplier
(
const
Vector
& trial_z,
216
const
Vector
& trial_slack,
217
const
Vector
& trial_compl,
218
SmartPtr<const Vector>
& new_trial_z);
220
};
221
222
}
// namespace Ipopt
223
224
#endif
Generated on Mon Mar 17 2014 19:49:12 by
1.8.1.2