ROL
Toggle main menu visibility
Loading...
Searching...
No Matches
src
algorithm
TypeG
ROL_TypeG_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_TYPEG_STABILIZEDLCLALGORITHM_H
11
#define ROL_TYPEG_STABILIZEDLCLALGORITHM_H
12
13
#include "
ROL_TypeG_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
TypeG
{
26
27
template
<
typename
Real>
28
class
StabilizedLCLAlgorithm
:
public
TypeG::Algorithm
<Real> {
29
private
:
30
const
Ptr<Secant<Real>>
secant_
;
31
ParameterList
list_
;
32
// Lagrange multiplier update
33
bool
useDefaultInitPen_
;
34
bool
scaleLagrangian_
;
35
Real
penaltyUpdate_
;
36
Real
maxPenaltyParam_
;
37
Real
sigma_
;
38
Real
sigmaMax_
;
39
Real
sigmaUpdate_
;
40
// Optimality tolerance update
41
Real
optIncreaseExponent_
;
42
Real
optDecreaseExponent_
;
43
Real
optToleranceInitial_
;
44
Real
optTolerance_
;
45
// Feasibility tolerance update
46
Real
feasIncreaseExponent_
;
47
Real
feasDecreaseExponent_
;
48
Real
feasToleranceInitial_
;
49
Real
feasTolerance_
;
50
// Subproblem information
51
int
maxit_
;
52
int
subproblemIter_
;
53
std::string
subStep_
;
54
int
HessianApprox_
;
55
Real
outerOptTolerance_
;
56
Real
outerFeasTolerance_
;
57
Real
outerStepTolerance_
;
58
// Scaling information
59
bool
useDefaultScaling_
;
60
Real
fscale_
;
61
Real
cscale_
;
62
// Verbosity flag
63
int
verbosity_
;
64
bool
printHeader_
;
65
bool
hasPolyProj_
;
66
67
using
TypeG::Algorithm
<Real>
::state_
;
68
using
TypeG::Algorithm
<Real>
::status_
;
69
using
TypeG::Algorithm
<Real>
::proj_
;
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
BoundConstraint<Real>
&bnd,
77
Constraint<Real>
&con,
78
std::ostream &outStream = std::cout);
79
80
public
:
81
82
StabilizedLCLAlgorithm
(ParameterList &list,
const
Ptr<
Secant<Real>
> &secant = nullPtr);
83
84
using
TypeG::Algorithm
<Real>
::run
;
85
virtual
void
run
(
Problem<Real>
&problem,
86
std::ostream &outStream = std::cout)
override
;
87
88
virtual
void
run
(
Vector<Real>
&x,
89
const
Vector<Real>
&g,
90
Objective<Real>
&obj,
91
BoundConstraint<Real>
&bnd,
92
Constraint<Real>
&econ,
93
Vector<Real>
&emul,
94
const
Vector<Real>
&eres,
95
std::ostream &outStream = std::cout)
override
;
96
97
virtual
void
writeHeader
( std::ostream& os )
const override
;
98
99
virtual
void
writeName
( std::ostream& os )
const override
;
100
101
virtual
void
writeOutput
( std::ostream& os,
const
bool
print_header =
false
)
const override
;
102
103
};
// class ROL::TypeG::StabilizedLCLAlgorithm
104
105
}
// namespace TypeG
106
}
// namespace ROL
107
108
#include "
ROL_TypeG_StabilizedLCLAlgorithm_Def.hpp
"
109
110
#endif
ROL_AugmentedLagrangianObjective.hpp
ROL_ElasticLinearConstraint.hpp
ROL_ElasticObjective.hpp
ROL_Secant.hpp
ROL_TypeG_Algorithm.hpp
ROL_TypeG_StabilizedLCLAlgorithm_Def.hpp
ROL::BoundConstraint
Provides the interface to apply upper and lower bound constraints.
Definition
ROL_BoundConstraint.hpp:39
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::Secant
Provides interface for and implements limited-memory secant operators.
Definition
ROL_Secant.hpp:45
ROL::TypeG::Algorithm
Provides an interface to run general constrained optimization algorithms.
Definition
ROL_TypeG_Algorithm.hpp:56
ROL::TypeG::Algorithm::status_
const Ptr< CombinedStatusTest< Real > > status_
Definition
ROL_TypeG_Algorithm.hpp:58
ROL::TypeG::Algorithm::proj_
Ptr< PolyhedralProjection< Real > > proj_
Definition
ROL_TypeG_Algorithm.hpp:60
ROL::TypeG::Algorithm::state_
const Ptr< AlgorithmState< Real > > state_
Definition
ROL_TypeG_Algorithm.hpp:59
ROL::TypeG::StabilizedLCLAlgorithm::maxit_
int maxit_
Definition
ROL_TypeG_StabilizedLCLAlgorithm.hpp:51
ROL::TypeG::StabilizedLCLAlgorithm::optDecreaseExponent_
Real optDecreaseExponent_
Definition
ROL_TypeG_StabilizedLCLAlgorithm.hpp:42
ROL::TypeG::StabilizedLCLAlgorithm::outerOptTolerance_
Real outerOptTolerance_
Definition
ROL_TypeG_StabilizedLCLAlgorithm.hpp:55
ROL::TypeG::StabilizedLCLAlgorithm::printHeader_
bool printHeader_
Definition
ROL_TypeG_StabilizedLCLAlgorithm.hpp:64
ROL::TypeG::StabilizedLCLAlgorithm::run
virtual void run(Problem< Real > &problem, std::ostream &outStream=std::cout) override
Run algorithm on general constrained problems (Type-G). This is the primary Type-G interface.
Definition
ROL_TypeG_StabilizedLCLAlgorithm_Def.hpp:159
ROL::TypeG::StabilizedLCLAlgorithm::subStep_
std::string subStep_
Definition
ROL_TypeG_StabilizedLCLAlgorithm.hpp:53
ROL::TypeG::StabilizedLCLAlgorithm::initialize
void initialize(Vector< Real > &x, const Vector< Real > &g, const Vector< Real > &l, const Vector< Real > &c, ElasticObjective< Real > &alobj, BoundConstraint< Real > &bnd, Constraint< Real > &con, std::ostream &outStream=std::cout)
Definition
ROL_TypeG_StabilizedLCLAlgorithm_Def.hpp:67
ROL::TypeG::StabilizedLCLAlgorithm::sigmaUpdate_
Real sigmaUpdate_
Definition
ROL_TypeG_StabilizedLCLAlgorithm.hpp:39
ROL::TypeG::StabilizedLCLAlgorithm::verbosity_
int verbosity_
Definition
ROL_TypeG_StabilizedLCLAlgorithm.hpp:63
ROL::TypeG::StabilizedLCLAlgorithm::sigmaMax_
Real sigmaMax_
Definition
ROL_TypeG_StabilizedLCLAlgorithm.hpp:38
ROL::TypeG::StabilizedLCLAlgorithm::hasPolyProj_
bool hasPolyProj_
Definition
ROL_TypeG_StabilizedLCLAlgorithm.hpp:65
ROL::TypeG::StabilizedLCLAlgorithm::feasTolerance_
Real feasTolerance_
Definition
ROL_TypeG_StabilizedLCLAlgorithm.hpp:49
ROL::TypeG::StabilizedLCLAlgorithm::scaleLagrangian_
bool scaleLagrangian_
Definition
ROL_TypeG_StabilizedLCLAlgorithm.hpp:34
ROL::TypeG::StabilizedLCLAlgorithm::penaltyUpdate_
Real penaltyUpdate_
Definition
ROL_TypeG_StabilizedLCLAlgorithm.hpp:35
ROL::TypeG::StabilizedLCLAlgorithm::outerFeasTolerance_
Real outerFeasTolerance_
Definition
ROL_TypeG_StabilizedLCLAlgorithm.hpp:56
ROL::TypeG::StabilizedLCLAlgorithm::list_
ParameterList list_
Definition
ROL_TypeG_StabilizedLCLAlgorithm.hpp:31
ROL::TypeG::StabilizedLCLAlgorithm::optIncreaseExponent_
Real optIncreaseExponent_
Definition
ROL_TypeG_StabilizedLCLAlgorithm.hpp:41
ROL::TypeG::StabilizedLCLAlgorithm::feasIncreaseExponent_
Real feasIncreaseExponent_
Definition
ROL_TypeG_StabilizedLCLAlgorithm.hpp:46
ROL::TypeG::StabilizedLCLAlgorithm::fscale_
Real fscale_
Definition
ROL_TypeG_StabilizedLCLAlgorithm.hpp:60
ROL::TypeG::StabilizedLCLAlgorithm::writeName
virtual void writeName(std::ostream &os) const override
Print step name.
Definition
ROL_TypeG_StabilizedLCLAlgorithm_Def.hpp:348
ROL::TypeG::StabilizedLCLAlgorithm::maxPenaltyParam_
Real maxPenaltyParam_
Definition
ROL_TypeG_StabilizedLCLAlgorithm.hpp:36
ROL::TypeG::StabilizedLCLAlgorithm::useDefaultInitPen_
bool useDefaultInitPen_
Definition
ROL_TypeG_StabilizedLCLAlgorithm.hpp:33
ROL::TypeG::StabilizedLCLAlgorithm::optTolerance_
Real optTolerance_
Definition
ROL_TypeG_StabilizedLCLAlgorithm.hpp:44
ROL::TypeG::StabilizedLCLAlgorithm::feasDecreaseExponent_
Real feasDecreaseExponent_
Definition
ROL_TypeG_StabilizedLCLAlgorithm.hpp:47
ROL::TypeG::StabilizedLCLAlgorithm::useDefaultScaling_
bool useDefaultScaling_
Definition
ROL_TypeG_StabilizedLCLAlgorithm.hpp:59
ROL::TypeG::StabilizedLCLAlgorithm::subproblemIter_
int subproblemIter_
Definition
ROL_TypeG_StabilizedLCLAlgorithm.hpp:52
ROL::TypeG::StabilizedLCLAlgorithm::optToleranceInitial_
Real optToleranceInitial_
Definition
ROL_TypeG_StabilizedLCLAlgorithm.hpp:43
ROL::TypeG::StabilizedLCLAlgorithm::StabilizedLCLAlgorithm
StabilizedLCLAlgorithm(ParameterList &list, const Ptr< Secant< Real > > &secant=nullPtr)
Definition
ROL_TypeG_StabilizedLCLAlgorithm_Def.hpp:20
ROL::TypeG::StabilizedLCLAlgorithm::writeHeader
virtual void writeHeader(std::ostream &os) const override
Print iterate header.
Definition
ROL_TypeG_StabilizedLCLAlgorithm_Def.hpp:309
ROL::TypeG::StabilizedLCLAlgorithm::HessianApprox_
int HessianApprox_
Definition
ROL_TypeG_StabilizedLCLAlgorithm.hpp:54
ROL::TypeG::StabilizedLCLAlgorithm::cscale_
Real cscale_
Definition
ROL_TypeG_StabilizedLCLAlgorithm.hpp:61
ROL::TypeG::StabilizedLCLAlgorithm::writeOutput
virtual void writeOutput(std::ostream &os, const bool print_header=false) const override
Print iterate status.
Definition
ROL_TypeG_StabilizedLCLAlgorithm_Def.hpp:357
ROL::TypeG::StabilizedLCLAlgorithm::sigma_
Real sigma_
Definition
ROL_TypeG_StabilizedLCLAlgorithm.hpp:37
ROL::TypeG::StabilizedLCLAlgorithm::feasToleranceInitial_
Real feasToleranceInitial_
Definition
ROL_TypeG_StabilizedLCLAlgorithm.hpp:48
ROL::TypeG::StabilizedLCLAlgorithm::outerStepTolerance_
Real outerStepTolerance_
Definition
ROL_TypeG_StabilizedLCLAlgorithm.hpp:57
ROL::TypeG::StabilizedLCLAlgorithm::secant_
const Ptr< Secant< Real > > secant_
Definition
ROL_TypeG_StabilizedLCLAlgorithm.hpp:30
ROL::Vector
Defines the linear algebra or vector space interface.
Definition
ROL_Vector.hpp:51
ROL::TypeG
Definition
ROL_TypeG_Algorithm.hpp:25
ROL
Definition
ROL_ElementwiseVector.hpp:27
Generated by
1.17.0