ROL
Toggle main menu visibility
Loading...
Searching...
No Matches
src
algorithm
TypeE
ROL_TypeE_AugmentedLagrangianAlgorithm.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_TYPEE_AUGMENTEDLAGRANGIANALGORITHM_H
11
#define ROL_TYPEE_AUGMENTEDLAGRANGIANALGORITHM_H
12
13
#include "
ROL_TypeE_Algorithm.hpp
"
14
#include "
ROL_AugmentedLagrangianObjective.hpp
"
15
#include "
ROL_Secant.hpp
"
16
21
22
namespace
ROL
{
23
namespace
TypeE
{
24
25
template
<
typename
Real>
26
class
AugmentedLagrangianAlgorithm
:
public
TypeE::Algorithm
<Real> {
27
private
:
28
const
Ptr<Secant<Real>>
secant_
;
29
ParameterList
list_
;
30
bool
useRelTol_
;
31
// Lagrange multiplier update
32
bool
useDefaultInitPen_
;
33
bool
scaleLagrangian_
;
34
Real
minPenaltyReciprocal_
;
35
Real
minPenaltyLowerBound_
;
36
Real
penaltyUpdate_
;
37
Real
maxPenaltyParam_
;
38
// Optimality tolerance update
39
Real
optIncreaseExponent_
;
40
Real
optDecreaseExponent_
;
41
Real
optToleranceInitial_
;
42
Real
optTolerance_
;
43
// Feasibility tolerance update
44
Real
feasIncreaseExponent_
;
45
Real
feasDecreaseExponent_
;
46
Real
feasToleranceInitial_
;
47
Real
feasTolerance_
;
48
// Subproblem information
49
bool
print_
;
50
int
maxit_
;
51
int
subproblemIter_
;
52
std::string
subStep_
;
53
int
HessianApprox_
;
54
Real
outerOptTolerance_
;
55
Real
outerFeasTolerance_
;
56
Real
outerStepTolerance_
;
57
// Scaling information
58
bool
useDefaultScaling_
;
59
Real
fscale_
;
60
Real
cscale_
;
61
// Verbosity flag
62
int
verbosity_
;
63
bool
printHeader_
;
64
65
using
TypeE::Algorithm
<Real>
::state_
;
66
using
TypeE::Algorithm
<Real>
::status_
;
67
68
void
initialize
(
Vector<Real>
&x,
69
const
Vector<Real>
&g,
70
const
Vector<Real>
&l,
71
const
Vector<Real>
&c,
72
AugmentedLagrangianObjective<Real>
&alobj,
73
Constraint<Real>
&con,
74
std::ostream &outStream = std::cout);
75
76
public
:
77
78
AugmentedLagrangianAlgorithm
(ParameterList &list,
const
Ptr<
Secant<Real>
> &secant = nullPtr);
79
80
using
TypeE::Algorithm
<Real>
::run
;
81
virtual
void
run
(
Vector<Real>
&x,
82
const
Vector<Real>
&g,
83
Objective<Real>
&obj,
84
Constraint<Real>
&econ,
85
Vector<Real>
&emul,
86
const
Vector<Real>
&eres,
87
std::ostream &outStream = std::cout)
override
;
88
89
virtual
void
writeHeader
( std::ostream& os )
const override
;
90
91
virtual
void
writeName
( std::ostream& os )
const override
;
92
93
virtual
void
writeOutput
( std::ostream& os,
const
bool
print_header =
false
)
const override
;
94
95
};
// class ROL::TypeE::AugmentedLagrangianAlgorithm
96
97
}
// namespace TypeE
98
}
// namespace ROL
99
100
#include "
ROL_TypeE_AugmentedLagrangianAlgorithm_Def.hpp
"
101
102
#endif
ROL_AugmentedLagrangianObjective.hpp
ROL_Secant.hpp
ROL_TypeE_Algorithm.hpp
ROL_TypeE_AugmentedLagrangianAlgorithm_Def.hpp
ROL::AugmentedLagrangianObjective
Provides the interface to evaluate the augmented Lagrangian.
Definition
ROL_AugmentedLagrangianObjective.hpp:54
ROL::Constraint
Defines the general constraint operator interface.
Definition
ROL_Constraint.hpp:52
ROL::Objective
Provides the interface to evaluate objective functions.
Definition
ROL_Objective.hpp:44
ROL::ROL::TypeE::Algorithm::status_
const Ptr< CombinedStatusTest< Real > > status_
Definition
ROL_Constraint_SerialSimOpt.hpp:56
ROL::ROL::TypeE::Algorithm::state_
const Ptr< AlgorithmState< Real > > state_
Definition
ROL_Constraint_SerialSimOpt.hpp:57
ROL::Secant
Provides interface for and implements limited-memory secant operators.
Definition
ROL_Secant.hpp:45
ROL::TypeE::Algorithm
Definition
ROL_TypeE_Algorithm.hpp:54
ROL::TypeE::AugmentedLagrangianAlgorithm::print_
bool print_
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm.hpp:49
ROL::TypeE::AugmentedLagrangianAlgorithm::writeName
virtual void writeName(std::ostream &os) const override
Print step name.
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm_Def.hpp:267
ROL::TypeE::AugmentedLagrangianAlgorithm::minPenaltyLowerBound_
Real minPenaltyLowerBound_
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm.hpp:35
ROL::TypeE::AugmentedLagrangianAlgorithm::writeHeader
virtual void writeHeader(std::ostream &os) const override
Print iterate header.
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm_Def.hpp:230
ROL::TypeE::AugmentedLagrangianAlgorithm::HessianApprox_
int HessianApprox_
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm.hpp:53
ROL::TypeE::AugmentedLagrangianAlgorithm::outerOptTolerance_
Real outerOptTolerance_
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm.hpp:54
ROL::TypeE::AugmentedLagrangianAlgorithm::useRelTol_
bool useRelTol_
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm.hpp:30
ROL::TypeE::AugmentedLagrangianAlgorithm::feasDecreaseExponent_
Real feasDecreaseExponent_
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm.hpp:45
ROL::TypeE::AugmentedLagrangianAlgorithm::AugmentedLagrangianAlgorithm
AugmentedLagrangianAlgorithm(ParameterList &list, const Ptr< Secant< Real > > &secant=nullPtr)
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm_Def.hpp:19
ROL::TypeE::AugmentedLagrangianAlgorithm::useDefaultInitPen_
bool useDefaultInitPen_
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm.hpp:32
ROL::TypeE::AugmentedLagrangianAlgorithm::initialize
void initialize(Vector< Real > &x, const Vector< Real > &g, const Vector< Real > &l, const Vector< Real > &c, AugmentedLagrangianObjective< Real > &alobj, Constraint< Real > &con, std::ostream &outStream=std::cout)
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm_Def.hpp:68
ROL::TypeE::AugmentedLagrangianAlgorithm::feasTolerance_
Real feasTolerance_
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm.hpp:47
ROL::TypeE::AugmentedLagrangianAlgorithm::subproblemIter_
int subproblemIter_
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm.hpp:51
ROL::TypeE::AugmentedLagrangianAlgorithm::outerFeasTolerance_
Real outerFeasTolerance_
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm.hpp:55
ROL::TypeE::AugmentedLagrangianAlgorithm::outerStepTolerance_
Real outerStepTolerance_
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm.hpp:56
ROL::TypeE::AugmentedLagrangianAlgorithm::scaleLagrangian_
bool scaleLagrangian_
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm.hpp:33
ROL::TypeE::AugmentedLagrangianAlgorithm::penaltyUpdate_
Real penaltyUpdate_
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm.hpp:36
ROL::TypeE::AugmentedLagrangianAlgorithm::optIncreaseExponent_
Real optIncreaseExponent_
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm.hpp:39
ROL::TypeE::AugmentedLagrangianAlgorithm::printHeader_
bool printHeader_
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm.hpp:63
ROL::TypeE::AugmentedLagrangianAlgorithm::feasToleranceInitial_
Real feasToleranceInitial_
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm.hpp:46
ROL::TypeE::AugmentedLagrangianAlgorithm::maxit_
int maxit_
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm.hpp:50
ROL::TypeE::AugmentedLagrangianAlgorithm::maxPenaltyParam_
Real maxPenaltyParam_
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm.hpp:37
ROL::TypeE::AugmentedLagrangianAlgorithm::secant_
const Ptr< Secant< Real > > secant_
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm.hpp:28
ROL::TypeE::AugmentedLagrangianAlgorithm::optDecreaseExponent_
Real optDecreaseExponent_
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm.hpp:40
ROL::TypeE::AugmentedLagrangianAlgorithm::optTolerance_
Real optTolerance_
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm.hpp:42
ROL::TypeE::AugmentedLagrangianAlgorithm::verbosity_
int verbosity_
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm.hpp:62
ROL::TypeE::AugmentedLagrangianAlgorithm::minPenaltyReciprocal_
Real minPenaltyReciprocal_
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm.hpp:34
ROL::TypeE::AugmentedLagrangianAlgorithm::fscale_
Real fscale_
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm.hpp:59
ROL::TypeE::AugmentedLagrangianAlgorithm::cscale_
Real cscale_
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm.hpp:60
ROL::TypeE::AugmentedLagrangianAlgorithm::useDefaultScaling_
bool useDefaultScaling_
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm.hpp:58
ROL::TypeE::AugmentedLagrangianAlgorithm::writeOutput
virtual void writeOutput(std::ostream &os, const bool print_header=false) const override
Print iterate status.
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm_Def.hpp:276
ROL::TypeE::AugmentedLagrangianAlgorithm::subStep_
std::string subStep_
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm.hpp:52
ROL::TypeE::AugmentedLagrangianAlgorithm::optToleranceInitial_
Real optToleranceInitial_
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm.hpp:41
ROL::TypeE::AugmentedLagrangianAlgorithm::run
virtual void run(Vector< Real > &x, const Vector< Real > &g, Objective< Real > &obj, Constraint< Real > &econ, Vector< Real > &emul, const Vector< Real > &eres, std::ostream &outStream=std::cout) override
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm_Def.hpp:149
ROL::TypeE::AugmentedLagrangianAlgorithm::list_
ParameterList list_
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm.hpp:29
ROL::TypeE::AugmentedLagrangianAlgorithm::feasIncreaseExponent_
Real feasIncreaseExponent_
Definition
ROL_TypeE_AugmentedLagrangianAlgorithm.hpp:44
ROL::Vector
Defines the linear algebra or vector space interface.
Definition
ROL_Vector.hpp:51
ROL::TypeE
Definition
ROL_TypeE_Algorithm.hpp:23
ROL
Definition
ROL_ElementwiseVector.hpp:27
Generated by
1.17.0