ROL
Toggle main menu visibility
Loading...
Searching...
No Matches
src
algorithm
TypeB
ROL_TypeB_QuasiNewtonAlgorithm.hpp
Go to the documentation of this file.
1
// @HEADER
2
// *****************************************************************************
3
// Rapid Optimization Library (ROL) Package
4
//
5
// Copyright 2014 NTESS and the ROL contributors.
6
// SPDX-License-Identifier: BSD-3-Clause
7
// *****************************************************************************
8
// @HEADER
9
10
#ifndef ROL_TYPEB_QUASINEWTONALGORITHM_HPP
11
#define ROL_TYPEB_QUASINEWTONALGORITHM_HPP
12
13
#include "
ROL_TypeB_Algorithm.hpp
"
14
#include "
ROL_SecantFactory.hpp
"
15
19
20
namespace
ROL
{
21
namespace
TypeB
{
22
23
template
<
typename
Real>
24
class
QuasiNewtonAlgorithm
:
public
TypeB::Algorithm
<Real> {
25
private
:
26
Ptr<Secant<Real>>
secant_
;
27
ESecant
esec_
;
28
std::string
secantName_
;
29
30
int
maxit_
;
31
Real
rhodec_
;
32
Real
c1_
;
33
Real
sigma1_
;
34
Real
sigma2_
;
35
Real
sp_tol1_
;
36
Real
sp_tol2_
;
37
Real
sp_tol_min_
;
38
std::string
algoName_
;
39
40
ParameterList
list_
;
41
42
bool
hasLEC_
;
43
int
ls_nfval_
,
spgIter_
;
44
int
verbosity_
;
45
bool
writeHeader_
;
46
47
using
TypeB::Algorithm
<Real>
::status_
;
48
using
TypeB::Algorithm
<Real>
::state_
;
49
using
TypeB::Algorithm
<Real>
::proj_
;
50
51
void
initialize
(
Vector<Real>
&x,
52
const
Vector<Real>
&g,
53
Objective<Real>
&obj,
54
BoundConstraint<Real>
&bnd,
55
std::ostream &outStream = std::cout);
56
57
public
:
58
59
QuasiNewtonAlgorithm
(ParameterList &list,
const
Ptr<
Secant<Real>
> &secant = nullPtr);
60
61
using
TypeB::Algorithm
<Real>
::run
;
62
63
void
run
(
Vector<Real>
&x,
64
const
Vector<Real>
&g,
65
Objective<Real>
&obj,
66
BoundConstraint<Real>
&bnd,
67
std::ostream &outStream = std::cout)
override
;
68
69
void
writeHeader
( std::ostream& os )
const override
;
70
71
void
writeName
( std::ostream& os )
const override
;
72
73
void
writeOutput
( std::ostream &os,
const
bool
write_header =
false
)
const override
;
74
75
};
// class ROL::TypeB::QuasiNewtonAlgorithm
76
77
}
// namespace TypeB
78
}
// namespace ROL
79
80
#include "
ROL_TypeB_QuasiNewtonAlgorithm_Def.hpp
"
81
82
#endif
ROL_SecantFactory.hpp
ROL_TypeB_Algorithm.hpp
ROL_TypeB_QuasiNewtonAlgorithm_Def.hpp
ROL::BoundConstraint
Provides the interface to apply upper and lower bound constraints.
Definition
ROL_BoundConstraint.hpp:39
ROL::Objective
Provides the interface to evaluate objective functions.
Definition
ROL_Objective.hpp:44
ROL::Secant
Provides interface for and implements limited-memory secant operators.
Definition
ROL_Secant.hpp:45
ROL::TypeB::Algorithm
Provides an interface to run bound constrained optimization algorithms.
Definition
ROL_TypeB_Algorithm.hpp:50
ROL::TypeB::Algorithm::proj_
Ptr< PolyhedralProjection< Real > > proj_
Definition
ROL_TypeB_Algorithm.hpp:54
ROL::TypeB::Algorithm::state_
const Ptr< AlgorithmState< Real > > state_
Definition
ROL_TypeB_Algorithm.hpp:53
ROL::TypeB::Algorithm::status_
const Ptr< CombinedStatusTest< Real > > status_
Definition
ROL_TypeB_Algorithm.hpp:52
ROL::TypeB::QuasiNewtonAlgorithm::list_
ParameterList list_
Definition
ROL_TypeB_QuasiNewtonAlgorithm.hpp:40
ROL::TypeB::QuasiNewtonAlgorithm::sigma2_
Real sigma2_
Upper safeguard for quadratic line search (default: 0.9).
Definition
ROL_TypeB_QuasiNewtonAlgorithm.hpp:34
ROL::TypeB::QuasiNewtonAlgorithm::sp_tol1_
Real sp_tol1_
Definition
ROL_TypeB_QuasiNewtonAlgorithm.hpp:35
ROL::TypeB::QuasiNewtonAlgorithm::c1_
Real c1_
Sufficient Decrease Parameter (default: 1e-4).
Definition
ROL_TypeB_QuasiNewtonAlgorithm.hpp:32
ROL::TypeB::QuasiNewtonAlgorithm::maxit_
int maxit_
Maximum number of line search steps (default: 20).
Definition
ROL_TypeB_QuasiNewtonAlgorithm.hpp:30
ROL::TypeB::QuasiNewtonAlgorithm::sp_tol2_
Real sp_tol2_
Definition
ROL_TypeB_QuasiNewtonAlgorithm.hpp:36
ROL::TypeB::QuasiNewtonAlgorithm::sigma1_
Real sigma1_
Lower safeguard for quadratic line search (default: 0.1).
Definition
ROL_TypeB_QuasiNewtonAlgorithm.hpp:33
ROL::TypeB::QuasiNewtonAlgorithm::secant_
Ptr< Secant< Real > > secant_
Secant object (used for quasi-Newton).
Definition
ROL_TypeB_QuasiNewtonAlgorithm.hpp:26
ROL::TypeB::QuasiNewtonAlgorithm::algoName_
std::string algoName_
Definition
ROL_TypeB_QuasiNewtonAlgorithm.hpp:38
ROL::TypeB::QuasiNewtonAlgorithm::writeOutput
void writeOutput(std::ostream &os, const bool write_header=false) const override
Print iterate status.
Definition
ROL_TypeB_QuasiNewtonAlgorithm_Def.hpp:249
ROL::TypeB::QuasiNewtonAlgorithm::writeHeader
void writeHeader(std::ostream &os) const override
Print iterate header.
Definition
ROL_TypeB_QuasiNewtonAlgorithm_Def.hpp:207
ROL::TypeB::QuasiNewtonAlgorithm::writeName
void writeName(std::ostream &os) const override
Print step name.
Definition
ROL_TypeB_QuasiNewtonAlgorithm_Def.hpp:242
ROL::TypeB::QuasiNewtonAlgorithm::verbosity_
int verbosity_
Definition
ROL_TypeB_QuasiNewtonAlgorithm.hpp:44
ROL::TypeB::QuasiNewtonAlgorithm::hasLEC_
bool hasLEC_
Definition
ROL_TypeB_QuasiNewtonAlgorithm.hpp:42
ROL::TypeB::QuasiNewtonAlgorithm::rhodec_
Real rhodec_
Backtracking rate (default: 0.5).
Definition
ROL_TypeB_QuasiNewtonAlgorithm.hpp:31
ROL::TypeB::QuasiNewtonAlgorithm::run
void run(Vector< Real > &x, const Vector< Real > &g, Objective< Real > &obj, BoundConstraint< Real > &bnd, std::ostream &outStream=std::cout) override
Run algorithm on bound constrained problems (Type-B). This general interface supports the use of dual...
Definition
ROL_TypeB_QuasiNewtonAlgorithm_Def.hpp:92
ROL::TypeB::QuasiNewtonAlgorithm::QuasiNewtonAlgorithm
QuasiNewtonAlgorithm(ParameterList &list, const Ptr< Secant< Real > > &secant=nullPtr)
Definition
ROL_TypeB_QuasiNewtonAlgorithm_Def.hpp:25
ROL::TypeB::QuasiNewtonAlgorithm::writeHeader_
bool writeHeader_
Definition
ROL_TypeB_QuasiNewtonAlgorithm.hpp:45
ROL::TypeB::QuasiNewtonAlgorithm::spgIter_
int spgIter_
Definition
ROL_TypeB_QuasiNewtonAlgorithm.hpp:43
ROL::TypeB::QuasiNewtonAlgorithm::initialize
void initialize(Vector< Real > &x, const Vector< Real > &g, Objective< Real > &obj, BoundConstraint< Real > &bnd, std::ostream &outStream=std::cout)
Definition
ROL_TypeB_QuasiNewtonAlgorithm_Def.hpp:64
ROL::TypeB::QuasiNewtonAlgorithm::sp_tol_min_
Real sp_tol_min_
Definition
ROL_TypeB_QuasiNewtonAlgorithm.hpp:37
ROL::TypeB::QuasiNewtonAlgorithm::secantName_
std::string secantName_
Secant name.
Definition
ROL_TypeB_QuasiNewtonAlgorithm.hpp:28
ROL::TypeB::QuasiNewtonAlgorithm::ls_nfval_
int ls_nfval_
Definition
ROL_TypeB_QuasiNewtonAlgorithm.hpp:43
ROL::TypeB::QuasiNewtonAlgorithm::esec_
ESecant esec_
Secant type.
Definition
ROL_TypeB_QuasiNewtonAlgorithm.hpp:27
ROL::Vector
Defines the linear algebra or vector space interface.
Definition
ROL_Vector.hpp:51
ROL::TypeB
Definition
ROL_TypeB_Algorithm.hpp:25
ROL
Definition
ROL_ElementwiseVector.hpp:27
ROL::ESecant
ESecant
Definition
ROL_Types.hpp:456
Generated by
1.17.0