ROL
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
17#include "ROL_Secant.hpp"
18
24namespace ROL {
25namespace TypeG {
26
27template<typename Real>
29private:
30 const Ptr<Secant<Real>> secant_;
31 ParameterList list_;
32 // Lagrange multiplier update
37 Real sigma_;
40 // Optimality tolerance update
45 // Feasibility tolerance update
50 // Subproblem information
51 int maxit_;
53 std::string subStep_;
58 // Scaling information
60 Real fscale_;
61 Real cscale_;
62 // Verbosity flag
66
67 using TypeG::Algorithm<Real>::state_;
68 using TypeG::Algorithm<Real>::status_;
69 using TypeG::Algorithm<Real>::proj_;
70
72 const Vector<Real> &g,
73 const Vector<Real> &l,
74 const Vector<Real> &c,
78 std::ostream &outStream = std::cout);
79
80public:
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,
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
109
110#endif
Provides the interface to apply upper and lower bound constraints.
Defines the general constraint operator interface.
Provides the interface to evaluate the elastic augmented Lagrangian.
Provides the interface to evaluate objective functions.
Provides interface for and implements limited-memory secant operators.
Provides an interface to run general constrained optimization algorithms.
const Ptr< CombinedStatusTest< Real > > status_
Ptr< PolyhedralProjection< Real > > proj_
const Ptr< AlgorithmState< Real > > state_
Provides an interface to run general constrained optimization algorithms using Stabilized LCL.
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.
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)
virtual void writeName(std::ostream &os) const override
Print step name.
virtual void writeHeader(std::ostream &os) const override
Print iterate header.
virtual void writeOutput(std::ostream &os, const bool print_header=false) const override
Print iterate status.
Defines the linear algebra or vector space interface.