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
IpDefaultIterateInitializer.hpp
Go to the documentation of this file.
1
// Copyright (C) 2004, 2008 International Business Machines and others.
2
// All Rights Reserved.
3
// This code is published under the Eclipse Public License.
4
//
5
// $Id: IpDefaultIterateInitializer.hpp 1861 2010-12-21 21:34:47Z andreasw $
6
//
7
// Authors: Carl Laird, Andreas Waechter IBM 2004-09-24
8
9
#ifndef __IPDEFAULTITERATEINITIALIZER_HPP__
10
#define __IPDEFAULTITERATEINITIALIZER_HPP__
11
12
#include "
IpIterateInitializer.hpp
"
13
#include "
IpEqMultCalculator.hpp
"
14
#include "
IpAugSystemSolver.hpp
"
15
16
namespace
Ipopt
17
{
18
24
class
DefaultIterateInitializer
:
public
IterateInitializer
25
{
26
public
:
34
DefaultIterateInitializer
35
(
const
SmartPtr<EqMultiplierCalculator>
& eq_mult_calculator,
36
const
SmartPtr<IterateInitializer>
& warm_start_initializer,
37
const
SmartPtr<AugSystemSolver>
aug_system_solver = NULL);
38
40
virtual
~DefaultIterateInitializer
()
41
{}
43
45
virtual
bool
InitializeImpl
(
const
OptionsList
& options,
46
const
std::string& prefix);
47
50
virtual
bool
SetInitialIterates
();
51
55
static
void
push_variables
(
const
Journalist
& jnlst,
56
Number
bound_push,
57
Number
bound_frac,
58
std::string name,
59
const
Vector
& orig_x,
60
SmartPtr<const Vector>
& new_x,
61
const
Vector
&
x_L
,
62
const
Vector
&
x_U
,
63
const
Matrix
& Px_L,
64
const
Matrix
& Px_U);
65
73
static
void
least_square_mults
(
const
Journalist
& jnlst,
74
IpoptNLP
& ip_nlp,
75
IpoptData
& ip_data,
76
IpoptCalculatedQuantities
& ip_cq,
77
const
SmartPtr<EqMultiplierCalculator>
& eq_mult_calculator,
78
Number
constr_mult_init_max);
79
80
83
static
void
RegisterOptions
(
SmartPtr<RegisteredOptions>
reg_options);
85
88
enum
BoundMultInitMethod
89
{
90
B_CONSTANT
=0,
91
B_MU_BASED
92
};
94
private
:
104
DefaultIterateInitializer
();
105
107
DefaultIterateInitializer
(
const
DefaultIterateInitializer
&);
108
110
void
operator=
(
const
DefaultIterateInitializer
&);
112
116
Number
bound_push_
;
118
Number
bound_frac_
;
120
Number
slack_bound_push_
;
122
Number
slack_bound_frac_
;
123
127
Number
constr_mult_init_max_
;
129
Number
bound_mult_init_val_
;
132
bool
warm_start_init_point_
;
136
bool
least_square_init_primal_
;
140
bool
least_square_init_duals_
;
142
BoundMultInitMethod
bound_mult_init_method_
;
144
Number
mu_init_
;
146
149
SmartPtr<EqMultiplierCalculator>
eq_mult_calculator_
;
150
152
SmartPtr<IterateInitializer>
warm_start_initializer_
;
153
157
SmartPtr<AugSystemSolver>
aug_system_solver_
;
158
161
bool
CalculateLeastSquarePrimals
(
Vector
& x_ls,
Vector
& s_ls);
162
165
bool
CalculateLeastSquareDuals
(
Vector
& zL_new,
Vector
& zU_new,
166
Vector
& vL_new,
Vector
& vU_new,
167
Vector
& yc_new,
Vector
& yd_new);
168
169
};
170
171
}
// namespace Ipopt
172
173
#endif
Generated by
1.8.3.1