ROL
Toggle main menu visibility
Loading...
Searching...
No Matches
src
algorithm
TypeE
ROL_TypeE_StabilizedLCLAlgorithm.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_STABILIZEDLCLALGORITHM_H
11
#define ROL_TYPEE_STABILIZEDLCLALGORITHM_H
12
13
#include "
ROL_TypeE_Algorithm.hpp
"
14
#include "
ROL_AugmentedLagrangianObjective.hpp
"
15
#include "
ROL_ElasticLinearConstraint.hpp
"
16
#include "
ROL_ElasticObjective.hpp
"
17
#include "
ROL_Secant.hpp
"
18
23
24
namespace
ROL
{
25
namespace
TypeE
{
26
27
28
template
<
typename
Real>
29
class
StabilizedLCLAlgorithm
:
public
TypeE::Algorithm
<Real> {
30
private
:
31
const
Ptr<Secant<Real>>
secant_
;
32
ParameterList
list_
;
33
// Lagrange multiplier update
34
bool
useDefaultInitPen_
;
35
bool
scaleLagrangian_
;
36
Real
penaltyUpdate_
;
37
Real
maxPenaltyParam_
;
38
Real
sigma_
;
39
Real
sigmaMax_
;
40
Real
sigmaUpdate_
;
41
// Optimality tolerance update
42
Real
optIncreaseExponent_
;
43
Real
optDecreaseExponent_
;
44
Real
optToleranceInitial_
;
45
Real
optTolerance_
;
46
// Feasibility tolerance update
47
Real
feasIncreaseExponent_
;
48
Real
feasDecreaseExponent_
;
49
Real
feasToleranceInitial_
;
50
Real
feasTolerance_
;
51
// Subproblem information
52
int
maxit_
;
53
int
subproblemIter_
;
54
std::string
subStep_
;
55
int
HessianApprox_
;
56
Real
outerOptTolerance_
;
57
Real
outerFeasTolerance_
;
58
Real
outerStepTolerance_
;
59
// Scaling information
60
bool
useDefaultScaling_
;
61
Real
fscale_
;
62
Real
cscale_
;
63
// Verbosity flag
64
int
verbosity_
;
65
bool
printHeader_
;
66
bool
hasPolyProj_
;
67
68
using
TypeE::Algorithm
<Real>
::state_
;
69
using
TypeE::Algorithm
<Real>
::status_
;
70
71
void
initialize
(
Vector<Real>
&x,
72
const
Vector<Real>
&g,
73
const
Vector<Real>
&l,
74
const
Vector<Real>
&c,
75
ElasticObjective<Real>
&alobj,
76
Constraint<Real>
&con,
77
std::ostream &outStream = std::cout);
78
79
public
:
80
81
StabilizedLCLAlgorithm
(ParameterList &list,
const
Ptr<
Secant<Real>
> &secant = nullPtr);
82
83
using
TypeE::Algorithm
<Real>
::run
;
84
virtual
void
run
(
Problem<Real>
&problem,
85
std::ostream &outStream = std::cout)
override
;
86
87
virtual
void
run
(
Vector<Real>
&x,
88
const
Vector<Real>
&g,
89
Objective<Real>
&obj,
90
Constraint<Real>
&econ,
91
Vector<Real>
&emul,
92
const
Vector<Real>
&eres,
93
std::ostream &outStream = std::cout)
override
;
94
95
virtual
void
writeHeader
( std::ostream& os )
const override
;
96
97
virtual
void
writeName
( std::ostream& os )
const override
;
98
99
virtual
void
writeOutput
( std::ostream& os,
const
bool
print_header =
false
)
const override
;
100
101
};
// class ROL::TypeE::StabilizedLCLAlgorithm
102
103
}
// namespace TypeE
104
}
// namespace ROL
105
106
#include "
ROL_TypeE_StabilizedLCLAlgorithm_Def.hpp
"
107
108
#endif
ROL_AugmentedLagrangianObjective.hpp
ROL_ElasticLinearConstraint.hpp
ROL_ElasticObjective.hpp
ROL_Secant.hpp
ROL_TypeE_Algorithm.hpp
ROL_TypeE_StabilizedLCLAlgorithm_Def.hpp
ROL::Constraint
Defines the general constraint operator interface.
Definition
ROL_Constraint.hpp:52
ROL::ElasticObjective
Provides the interface to evaluate the elastic augmented Lagrangian.
Definition
ROL_ElasticObjective.hpp:49
ROL::Objective
Provides the interface to evaluate objective functions.
Definition
ROL_Objective.hpp:44
ROL::Problem
Definition
function/prox/ROL_Problem.hpp:27
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::StabilizedLCLAlgorithm::subStep_
std::string subStep_
Definition
ROL_TypeE_StabilizedLCLAlgorithm.hpp:54
ROL::TypeE::StabilizedLCLAlgorithm::HessianApprox_
int HessianApprox_
Definition
ROL_TypeE_StabilizedLCLAlgorithm.hpp:55
ROL::TypeE::StabilizedLCLAlgorithm::printHeader_
bool printHeader_
Definition
ROL_TypeE_StabilizedLCLAlgorithm.hpp:65
ROL::TypeE::StabilizedLCLAlgorithm::penaltyUpdate_
Real penaltyUpdate_
Definition
ROL_TypeE_StabilizedLCLAlgorithm.hpp:36
ROL::TypeE::StabilizedLCLAlgorithm::scaleLagrangian_
bool scaleLagrangian_
Definition
ROL_TypeE_StabilizedLCLAlgorithm.hpp:35
ROL::TypeE::StabilizedLCLAlgorithm::list_
ParameterList list_
Definition
ROL_TypeE_StabilizedLCLAlgorithm.hpp:32
ROL::TypeE::StabilizedLCLAlgorithm::optToleranceInitial_
Real optToleranceInitial_
Definition
ROL_TypeE_StabilizedLCLAlgorithm.hpp:44
ROL::TypeE::StabilizedLCLAlgorithm::fscale_
Real fscale_
Definition
ROL_TypeE_StabilizedLCLAlgorithm.hpp:61
ROL::TypeE::StabilizedLCLAlgorithm::outerOptTolerance_
Real outerOptTolerance_
Definition
ROL_TypeE_StabilizedLCLAlgorithm.hpp:56
ROL::TypeE::StabilizedLCLAlgorithm::cscale_
Real cscale_
Definition
ROL_TypeE_StabilizedLCLAlgorithm.hpp:62
ROL::TypeE::StabilizedLCLAlgorithm::subproblemIter_
int subproblemIter_
Definition
ROL_TypeE_StabilizedLCLAlgorithm.hpp:53
ROL::TypeE::StabilizedLCLAlgorithm::sigma_
Real sigma_
Definition
ROL_TypeE_StabilizedLCLAlgorithm.hpp:38
ROL::TypeE::StabilizedLCLAlgorithm::initialize
void initialize(Vector< Real > &x, const Vector< Real > &g, const Vector< Real > &l, const Vector< Real > &c, ElasticObjective< Real > &alobj, Constraint< Real > &con, std::ostream &outStream=std::cout)
Definition
ROL_TypeE_StabilizedLCLAlgorithm_Def.hpp:67
ROL::TypeE::StabilizedLCLAlgorithm::maxPenaltyParam_
Real maxPenaltyParam_
Definition
ROL_TypeE_StabilizedLCLAlgorithm.hpp:37
ROL::TypeE::StabilizedLCLAlgorithm::sigmaUpdate_
Real sigmaUpdate_
Definition
ROL_TypeE_StabilizedLCLAlgorithm.hpp:40
ROL::TypeE::StabilizedLCLAlgorithm::verbosity_
int verbosity_
Definition
ROL_TypeE_StabilizedLCLAlgorithm.hpp:64
ROL::TypeE::StabilizedLCLAlgorithm::feasToleranceInitial_
Real feasToleranceInitial_
Definition
ROL_TypeE_StabilizedLCLAlgorithm.hpp:49
ROL::TypeE::StabilizedLCLAlgorithm::hasPolyProj_
bool hasPolyProj_
Definition
ROL_TypeE_StabilizedLCLAlgorithm.hpp:66
ROL::TypeE::StabilizedLCLAlgorithm::writeOutput
virtual void writeOutput(std::ostream &os, const bool print_header=false) const override
Print iterate status.
Definition
ROL_TypeE_StabilizedLCLAlgorithm_Def.hpp:340
ROL::TypeE::StabilizedLCLAlgorithm::feasTolerance_
Real feasTolerance_
Definition
ROL_TypeE_StabilizedLCLAlgorithm.hpp:50
ROL::TypeE::StabilizedLCLAlgorithm::outerFeasTolerance_
Real outerFeasTolerance_
Definition
ROL_TypeE_StabilizedLCLAlgorithm.hpp:57
ROL::TypeE::StabilizedLCLAlgorithm::writeHeader
virtual void writeHeader(std::ostream &os) const override
Print iterate header.
Definition
ROL_TypeE_StabilizedLCLAlgorithm_Def.hpp:292
ROL::TypeE::StabilizedLCLAlgorithm::secant_
const Ptr< Secant< Real > > secant_
Definition
ROL_TypeE_StabilizedLCLAlgorithm.hpp:31
ROL::TypeE::StabilizedLCLAlgorithm::optDecreaseExponent_
Real optDecreaseExponent_
Definition
ROL_TypeE_StabilizedLCLAlgorithm.hpp:43
ROL::TypeE::StabilizedLCLAlgorithm::feasDecreaseExponent_
Real feasDecreaseExponent_
Definition
ROL_TypeE_StabilizedLCLAlgorithm.hpp:48
ROL::TypeE::StabilizedLCLAlgorithm::run
virtual void run(Problem< Real > &problem, std::ostream &outStream=std::cout) override
Run algorithm on equality constrained problems (Type-E). This is the primary Type-E interface.
Definition
ROL_TypeE_StabilizedLCLAlgorithm_Def.hpp:147
ROL::TypeE::StabilizedLCLAlgorithm::sigmaMax_
Real sigmaMax_
Definition
ROL_TypeE_StabilizedLCLAlgorithm.hpp:39
ROL::TypeE::StabilizedLCLAlgorithm::feasIncreaseExponent_
Real feasIncreaseExponent_
Definition
ROL_TypeE_StabilizedLCLAlgorithm.hpp:47
ROL::TypeE::StabilizedLCLAlgorithm::useDefaultInitPen_
bool useDefaultInitPen_
Definition
ROL_TypeE_StabilizedLCLAlgorithm.hpp:34
ROL::TypeE::StabilizedLCLAlgorithm::optTolerance_
Real optTolerance_
Definition
ROL_TypeE_StabilizedLCLAlgorithm.hpp:45
ROL::TypeE::StabilizedLCLAlgorithm::outerStepTolerance_
Real outerStepTolerance_
Definition
ROL_TypeE_StabilizedLCLAlgorithm.hpp:58
ROL::TypeE::StabilizedLCLAlgorithm::writeName
virtual void writeName(std::ostream &os) const override
Print step name.
Definition
ROL_TypeE_StabilizedLCLAlgorithm_Def.hpp:331
ROL::TypeE::StabilizedLCLAlgorithm::useDefaultScaling_
bool useDefaultScaling_
Definition
ROL_TypeE_StabilizedLCLAlgorithm.hpp:60
ROL::TypeE::StabilizedLCLAlgorithm::optIncreaseExponent_
Real optIncreaseExponent_
Definition
ROL_TypeE_StabilizedLCLAlgorithm.hpp:42
ROL::TypeE::StabilizedLCLAlgorithm::StabilizedLCLAlgorithm
StabilizedLCLAlgorithm(ParameterList &list, const Ptr< Secant< Real > > &secant=nullPtr)
Definition
ROL_TypeE_StabilizedLCLAlgorithm_Def.hpp:20
ROL::TypeE::StabilizedLCLAlgorithm::maxit_
int maxit_
Definition
ROL_TypeE_StabilizedLCLAlgorithm.hpp:52
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