ROL
Toggle main menu visibility
Loading...
Searching...
No Matches
src
algorithm
TypeU
ROL_TypeU_BundleAlgorithm.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_TYPEU_BUNDLEALGORITHM_H
11
#define ROL_TYPEU_BUNDLEALGORITHM_H
12
13
#include "
ROL_TypeU_Algorithm.hpp
"
14
#include "
ROL_Bundle_U.hpp
"
15
#include "
ROL_LineSearch_U.hpp
"
16
21
22
namespace
ROL
{
23
namespace
TypeU
{
24
25
template
<
typename
Real>
26
class
BundleAlgorithm
:
public
Algorithm
<Real> {
27
private
:
28
// Bundle
29
Ptr<Bundle_U<Real>>
bundle_
;
// Bundle of subgradients and linearization errors
30
Ptr<LineSearch_U<Real>>
lineSearch_
;
// Line-search object for nonconvex problems
31
32
// Dual cutting plane solution
33
unsigned
QPiter_
;
// Number of QP solver iterations
34
unsigned
QPmaxit_
;
// Maximum number of QP iterations
35
Real
QPtol_
;
// QP subproblem tolerance
36
37
// Step flag
38
int
step_flag_
;
// Whether serious or null step
39
40
// Aggregate subgradients, linearizations, and distance measures
41
42
// Algorithmic parameters
43
Real
T_
;
44
Real
tol_
;
45
Real
m1_
;
46
Real
m2_
;
47
Real
m3_
;
48
Real
nu_
;
49
50
// Line-search parameters
51
int
ls_maxit_
;
52
53
bool
first_print_
;
54
bool
isConvex_
;
55
56
int
verbosity_
;
57
bool
printHeader_
;
58
59
using
Algorithm
<Real>
::state_
;
60
using
Algorithm
<Real>
::status_
;
61
using
Algorithm
<Real>
::initialize
;
62
63
public
:
64
65
BundleAlgorithm
( ParameterList &parlist,
66
const
Ptr<
LineSearch_U<Real>
> &lineSearch = nullPtr );
67
68
void
run
(
Vector<Real>
&x,
69
const
Vector<Real>
&g,
70
Objective<Real>
&obj,
71
std::ostream &outStream = std::cout)
override
;
72
73
void
writeHeader
( std::ostream& os )
const override
;
74
75
void
writeName
( std::ostream& os)
const override
;
76
77
void
writeOutput
( std::ostream& os,
const
bool
print_header =
false
)
const override
;
78
79
private
:
80
81
void
initialize
(
const
Vector<Real>
&x,
const
Vector<Real>
&g,
82
Objective<Real>
&obj, std::ostream &outStream = std::cout);
83
84
};
// class ROL::BundleAlgorithm
85
}
// namespace TypeU
86
}
// namespace ROL
87
88
#include "
ROL_TypeU_BundleAlgorithm_Def.hpp
"
89
90
#endif
ROL_Bundle_U.hpp
ROL_LineSearch_U.hpp
ROL_TypeU_Algorithm.hpp
ROL_TypeU_BundleAlgorithm_Def.hpp
ROL::LineSearch_U
Provides interface for and implements line searches.
Definition
ROL_LineSearch_U.hpp:27
ROL::Objective
Provides the interface to evaluate objective functions.
Definition
ROL_Objective.hpp:44
ROL::ROL::TypeU::Algorithm::Algorithm
Algorithm()
Constructor, given a step and a status test.
Definition
ROL_Constraint_SerialSimOpt.hpp:21
ROL::ROL::TypeU::Algorithm::status_
const Ptr< CombinedStatusTest< Real > > status_
Definition
ROL_Constraint_SerialSimOpt.hpp:51
ROL::ROL::TypeU::Algorithm::state_
const Ptr< AlgorithmState< Real > > state_
Definition
ROL_Constraint_SerialSimOpt.hpp:52
ROL::TypeU::BundleAlgorithm::T_
Real T_
Definition
ROL_TypeU_BundleAlgorithm.hpp:43
ROL::TypeU::BundleAlgorithm::QPtol_
Real QPtol_
Definition
ROL_TypeU_BundleAlgorithm.hpp:35
ROL::TypeU::BundleAlgorithm::BundleAlgorithm
BundleAlgorithm(ParameterList &parlist, const Ptr< LineSearch_U< Real > > &lineSearch=nullPtr)
Definition
ROL_TypeU_BundleAlgorithm_Def.hpp:23
ROL::TypeU::BundleAlgorithm::lineSearch_
Ptr< LineSearch_U< Real > > lineSearch_
Definition
ROL_TypeU_BundleAlgorithm.hpp:30
ROL::TypeU::BundleAlgorithm::QPmaxit_
unsigned QPmaxit_
Definition
ROL_TypeU_BundleAlgorithm.hpp:34
ROL::TypeU::BundleAlgorithm::QPiter_
unsigned QPiter_
Definition
ROL_TypeU_BundleAlgorithm.hpp:33
ROL::TypeU::BundleAlgorithm::writeOutput
void writeOutput(std::ostream &os, const bool print_header=false) const override
Print iterate status.
Definition
ROL_TypeU_BundleAlgorithm_Def.hpp:378
ROL::TypeU::BundleAlgorithm::printHeader_
bool printHeader_
Definition
ROL_TypeU_BundleAlgorithm.hpp:57
ROL::TypeU::BundleAlgorithm::writeHeader
void writeHeader(std::ostream &os) const override
Print iterate header.
Definition
ROL_TypeU_BundleAlgorithm_Def.hpp:353
ROL::TypeU::BundleAlgorithm::m3_
Real m3_
Definition
ROL_TypeU_BundleAlgorithm.hpp:47
ROL::TypeU::BundleAlgorithm::nu_
Real nu_
Definition
ROL_TypeU_BundleAlgorithm.hpp:48
ROL::TypeU::BundleAlgorithm::tol_
Real tol_
Definition
ROL_TypeU_BundleAlgorithm.hpp:44
ROL::TypeU::BundleAlgorithm::initialize
void initialize(const Vector< Real > &x, const Vector< Real > &g, Objective< Real > &obj, std::ostream &outStream=std::cout)
Definition
ROL_TypeU_BundleAlgorithm_Def.hpp:77
ROL::TypeU::BundleAlgorithm::bundle_
Ptr< Bundle_U< Real > > bundle_
Definition
ROL_TypeU_BundleAlgorithm.hpp:29
ROL::TypeU::BundleAlgorithm::isConvex_
bool isConvex_
Definition
ROL_TypeU_BundleAlgorithm.hpp:54
ROL::TypeU::BundleAlgorithm::ls_maxit_
int ls_maxit_
Definition
ROL_TypeU_BundleAlgorithm.hpp:51
ROL::TypeU::BundleAlgorithm::step_flag_
int step_flag_
Definition
ROL_TypeU_BundleAlgorithm.hpp:38
ROL::TypeU::BundleAlgorithm::writeName
void writeName(std::ostream &os) const override
Print step name.
Definition
ROL_TypeU_BundleAlgorithm_Def.hpp:371
ROL::TypeU::BundleAlgorithm::m2_
Real m2_
Definition
ROL_TypeU_BundleAlgorithm.hpp:46
ROL::TypeU::BundleAlgorithm::m1_
Real m1_
Definition
ROL_TypeU_BundleAlgorithm.hpp:45
ROL::TypeU::BundleAlgorithm::verbosity_
int verbosity_
Definition
ROL_TypeU_BundleAlgorithm.hpp:56
ROL::TypeU::BundleAlgorithm::run
void run(Vector< Real > &x, const Vector< Real > &g, Objective< Real > &obj, std::ostream &outStream=std::cout) override
Definition
ROL_TypeU_BundleAlgorithm_Def.hpp:98
ROL::TypeU::BundleAlgorithm::first_print_
bool first_print_
Definition
ROL_TypeU_BundleAlgorithm.hpp:53
ROL::Vector
Defines the linear algebra or vector space interface.
Definition
ROL_Vector.hpp:51
ROL::TypeU
Definition
ROL_TypeU_Algorithm.hpp:23
ROL
Definition
ROL_ElementwiseVector.hpp:27
Generated by
1.17.0