Main Page
Namespaces
Classes
Files
File List
File Members
build
buildd
coinor-ipopt-3.10.2
Ipopt
src
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 on Fri Jun 29 2012 06:35:12 by
1.8.1.1