Ipopt 3.12.10

- Main Page
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
IpCGSearchDirCalc.hpp
Go to the documentation of this file.
1 // Copyright (C) 2005, 2008 International Business Machines and others.
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // $Id: IpCGSearchDirCalc.hpp 1861 2010-12-21 21:34:47Z andreasw $
6 //
7 // Authors: Andreas Waechter IBM 2005-10-13
8 //
9 // Lifeng Chen/Zaiwen Wen Columbia Univ
10
11 #ifndef __IPCGSEARCHDIRCALC_HPP__
12 #define __IPCGSEARCHDIRCALC_HPP__
13
14 #include "IpSearchDirCalculator.hpp"
15 #include "IpPDSystemSolver.hpp"
16 #include "IpCGPenaltyCq.hpp"
17
18 namespace Ipopt
19 {
20
25 class CGSearchDirCalculator : public SearchDirectionCalculator
26 {
27 public:
31 CGSearchDirCalculator(const SmartPtr<PDSystemSolver>& pd_solver);
32
34 virtual ~CGSearchDirCalculator();
36
38 virtual bool InitializeImpl(const OptionsList& options,
39 const std::string& prefix);
40
44 virtual bool ComputeSearchDirection();
45
48 static void RegisterOptions(SmartPtr<RegisteredOptions> roptions);
50
51 private:
61 CGSearchDirCalculator();
62
64 CGSearchDirCalculator(const CGSearchDirCalculator&);
65
67 void operator=(const CGSearchDirCalculator&);
69
71 CGPenaltyData& CGPenData()
72 {
73 CGPenaltyData& cg_pen_data =
74 static_cast<CGPenaltyData&>(IpData().AdditionalData());
75 DBG_ASSERT(dynamic_cast<CGPenaltyData*>(&IpData().AdditionalData()));
76 return cg_pen_data;
77 }
78
80 CGPenaltyCq& CGPenCq()
81 {
82 CGPenaltyCq& cg_pen_cq =
83 static_cast<CGPenaltyCq&>(IpCq().AdditionalCq());
84 DBG_ASSERT(dynamic_cast<CGPenaltyCq*>(&IpCq().AdditionalCq()));
85 return cg_pen_cq;
86 }
87
94 Number penalty_init_min_;
96 Number penalty_init_max_;
98 Number penalty_max_;
99
100
101
104 Number pen_des_fact_;
105
107 bool penalty_backward_;
108
111 Number kappa_x_dis_;
112 Number kappa_y_dis_;
113 Number vartheta_;
114 Number delta_y_max_;
115 Number fast_des_fact_;
116 Number pen_init_fac_;
117
120 bool never_use_fact_cgpen_direction_;
121
123 Index nonmonotone_pen_update_counter_;
125
128 SmartPtr<PDSystemSolver> pd_solver_;
130 };
131
132 } // namespace Ipopt
133
134 #endif
Ipopt::CGSearchDirCalculator::pen_des_fact_
Number pen_des_fact_
parameters used in computation of line search penalty parameter and KKT perturbation parameters ...
Definition: IpCGSearchDirCalc.hpp:104
Ipopt::CGSearchDirCalculator::~CGSearchDirCalculator
virtual ~CGSearchDirCalculator()
Default destructor.
Ipopt::CGSearchDirCalculator::pen_init_fac_
Number pen_init_fac_
Definition: IpCGSearchDirCalc.hpp:116
Ipopt::CGSearchDirCalculator::fast_des_fact_
Number fast_des_fact_
Definition: IpCGSearchDirCalc.hpp:115
Ipopt::CGSearchDirCalculator
Implementation of the search direction calculator that computes the Chen-Goldfarb step for the curren...
Definition: IpCGSearchDirCalc.hpp:25
IpPDSystemSolver.hpp
Ipopt::CGSearchDirCalculator::penalty_init_max_
Number penalty_init_max_
Maximal value for initial penalty parameter.
Definition: IpCGSearchDirCalc.hpp:96
Ipopt::CGSearchDirCalculator::CGSearchDirCalculator
CGSearchDirCalculator()
Default Constructor.
Ipopt::CGSearchDirCalculator::kappa_x_dis_
Number kappa_x_dis_
parameters used to check if the fast direction can be used as the line search direction ...
Definition: IpCGSearchDirCalc.hpp:111
Ipopt::CGSearchDirCalculator::ComputeSearchDirection
virtual bool ComputeSearchDirection()
Method for computing the search direction.
Ipopt::CGSearchDirCalculator::nonmonotone_pen_update_counter_
Index nonmonotone_pen_update_counter_
Counter for how many times the pen para is updated nonmonotonically.
Definition: IpCGSearchDirCalc.hpp:123
Ipopt::Number
double Number
Type of all numbers.
Definition: IpTypes.hpp:17
Ipopt::CGSearchDirCalculator::kappa_y_dis_
Number kappa_y_dis_
Definition: IpCGSearchDirCalc.hpp:112
Ipopt::SearchDirectionCalculator
Base class for computing the search direction for the line search.
Definition: IpSearchDirCalculator.hpp:20
Ipopt::CGSearchDirCalculator::penalty_init_min_
Number penalty_init_min_
safeguard factor for bound multipliers.
Definition: IpCGSearchDirCalc.hpp:94
Ipopt::IpoptCalculatedQuantities::AdditionalCq
IpoptAdditionalCq & AdditionalCq()
Definition: IpIpoptCalculatedQuantities.hpp:452
IpCGPenaltyCq.hpp
Ipopt::CGSearchDirCalculator::CGPenData
CGPenaltyData & CGPenData()
Method to easily access CGPenalty data.
Definition: IpCGSearchDirCalc.hpp:71
Ipopt::SmartPtr
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:172
Ipopt::OptionsList
This class stores a list of user set options.
Definition: IpOptionsList.hpp:32
Ipopt::CGPenaltyData
Class to organize all the additional data required by the Chen-Goldfarb penalty function algorithm...
Definition: IpCGPenaltyData.hpp:22
Ipopt::CGSearchDirCalculator::operator=
void operator=(const CGSearchDirCalculator &)
Overloaded Equals Operator.
Ipopt::CGPenaltyCq
Class for all Chen-Goldfarb penalty method specific calculated quantities.
Definition: IpCGPenaltyCq.hpp:22
Ipopt::CGSearchDirCalculator::InitializeImpl
virtual bool InitializeImpl(const OptionsList &options, const std::string &prefix)
overloaded from AlgorithmStrategyObject
Ipopt::IpoptData::AdditionalData
IpoptAdditionalData & AdditionalData()
Get access to additional data object.
Definition: IpIpoptData.hpp:502
Ipopt::CGSearchDirCalculator::penalty_backward_
bool penalty_backward_
Algorithm type.
Definition: IpCGSearchDirCalc.hpp:107
Ipopt::CGSearchDirCalculator::RegisterOptions
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for IpoptType.
Ipopt::Index
int Index
Type of all indices of vectors, matrices etc.
Definition: IpTypes.hpp:19
DBG_ASSERT
#define DBG_ASSERT(test)
Definition: IpDebug.hpp:38
Ipopt::CGSearchDirCalculator::delta_y_max_
Number delta_y_max_
Definition: IpCGSearchDirCalc.hpp:114
Ipopt::AlgorithmStrategyObject::IpData
IpoptData & IpData() const
Definition: IpAlgStrategy.hpp:131
Ipopt::CGSearchDirCalculator::vartheta_
Number vartheta_
Definition: IpCGSearchDirCalc.hpp:113
Ipopt::AlgorithmStrategyObject::IpCq
IpoptCalculatedQuantities & IpCq() const
Definition: IpAlgStrategy.hpp:137
Ipopt::CGSearchDirCalculator::CGPenCq
CGPenaltyCq & CGPenCq()
Method to easily access CGPenalty calculated quantities.
Definition: IpCGSearchDirCalc.hpp:80
IpSearchDirCalculator.hpp
Ipopt::CGSearchDirCalculator::never_use_fact_cgpen_direction_
bool never_use_fact_cgpen_direction_
Flag indicating whether the fast Chen-Goldfarb direction should never be used.
Definition: IpCGSearchDirCalc.hpp:120
Ipopt::CGSearchDirCalculator::pd_solver_
SmartPtr< PDSystemSolver > pd_solver_
Definition: IpCGSearchDirCalc.hpp:128
Ipopt::CGSearchDirCalculator::penalty_max_
Number penalty_max_
Maximal value for penalty parameters.
Definition: IpCGSearchDirCalc.hpp:98