Ipopt Documentation  
 
Loading...
Searching...
No Matches
Ipopt::AlgorithmStrategyObject Class Referenceabstract

This is the base class for all algorithm strategy objects. More...

#include <IpAlgStrategy.hpp>

+ Inheritance diagram for Ipopt::AlgorithmStrategyObject:

Public Member Functions

bool Initialize (const Journalist &jnlst, IpoptNLP &ip_nlp, IpoptData &ip_data, IpoptCalculatedQuantities &ip_cq, const OptionsList &options, const std::string &prefix)
 This method is called every time the algorithm starts again - it is used to reset any internal state.
 
bool ReducedInitialize (const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
 Reduced version of the Initialize method, which does not require special Ipopt information.
 
Constructors/Destructors
 AlgorithmStrategyObject ()
 Default Constructor.
 
virtual ~AlgorithmStrategyObject ()
 Destructor.
 
- Public Member Functions inherited from Ipopt::ReferencedObject
 ReferencedObject ()
 
virtual ~ReferencedObject ()
 
Index ReferenceCount () const
 
void AddRef (const Referencer *referencer) const
 
void ReleaseRef (const Referencer *referencer) const
 

Protected Member Functions

virtual bool InitializeImpl (const OptionsList &options, const std::string &prefix)=0
 Implementation of the initialization method that has to be overloaded by for each derived class.
 
Accessor methods for the problem defining objects.

Those should be used by the derived classes.

const JournalistJnlst () const
 
IpoptNLPIpNLP () const
 
IpoptDataIpData () const
 
IpoptCalculatedQuantitiesIpCq () const
 
bool HaveIpData () const
 

Private Member Functions

Default Compiler Generated Methods

(Hidden to avoid implicit creation/calling).

These methods are not implemented and we do not want the compiler to implement them for us, so we declare them private and do not define them. This ensures that they will not be implicitly created/called.

 AlgorithmStrategyObject (const AlgorithmStrategyObject &)
 Default Constructor.
 
void operator= (const AlgorithmStrategyObject &)
 Default Assignment Operator.
 

Private Attributes

bool initialize_called_
 flag indicating if Initialize method has been called (for debugging)
 
Pointers to objects defining a particular optimization problem
SmartPtr< const Journalistjnlst_
 
SmartPtr< IpoptNLPip_nlp_
 
SmartPtr< IpoptDataip_data_
 
SmartPtr< IpoptCalculatedQuantitiesip_cq_
 

Detailed Description

This is the base class for all algorithm strategy objects.

The AlgorithmStrategyObject base class implements a common interface for all algorithm strategy objects. A strategy object is a component of the algorithm for which different alternatives or implementations exists. It allows to compose the algorithm before execution for a particular configuration, without the need to call alternatives based on enums. For example, the LineSearch object is a strategy object, since different line search options might be used for different runs.

This interface is used for things that are done to all strategy objects, like initialization and setting options.

Definition at line 34 of file IpAlgStrategy.hpp.

Constructor & Destructor Documentation

◆ AlgorithmStrategyObject() [1/2]

Ipopt::AlgorithmStrategyObject::AlgorithmStrategyObject ( )
inline

Default Constructor.

Definition at line 40 of file IpAlgStrategy.hpp.

◆ ~AlgorithmStrategyObject()

virtual Ipopt::AlgorithmStrategyObject::~AlgorithmStrategyObject ( )
inlinevirtual

Destructor.

Definition at line 45 of file IpAlgStrategy.hpp.

◆ AlgorithmStrategyObject() [2/2]

Ipopt::AlgorithmStrategyObject::AlgorithmStrategyObject ( const AlgorithmStrategyObject )
private

Default Constructor.

Copy Constructor

Member Function Documentation

◆ Initialize()

bool Ipopt::AlgorithmStrategyObject::Initialize ( const Journalist jnlst,
IpoptNLP ip_nlp,
IpoptData ip_data,
IpoptCalculatedQuantities ip_cq,
const OptionsList options,
const std::string &  prefix 
)
inline

This method is called every time the algorithm starts again - it is used to reset any internal state.

The pointers to the Journalist, as well as to the IpoptNLP, IpoptData, and IpoptCalculatedQuantities objects should be stored in the instantiation of this base class. This method is also used to get all required user options from the OptionsList. Here, if prefix is given, each tag (identifying the options) is first looked for with the prefix in front, and if not found, without the prefix. Note: you should not cue off of the iteration count to indicate the "start" of an algorithm!

Do not overload this method, since it does some general initialization that is common for all strategy objects. Overload the protected InitializeImpl method instead.

Definition at line 66 of file IpAlgStrategy.hpp.

◆ ReducedInitialize()

bool Ipopt::AlgorithmStrategyObject::ReducedInitialize ( const Journalist jnlst,
const OptionsList options,
const std::string &  prefix 
)
inline

Reduced version of the Initialize method, which does not require special Ipopt information.

This is useful for algorithm objects that could be used outside Ipopt, such as linear solvers.

Definition at line 97 of file IpAlgStrategy.hpp.

◆ InitializeImpl()

virtual bool Ipopt::AlgorithmStrategyObject::InitializeImpl ( const OptionsList options,
const std::string &  prefix 
)
protectedpure virtual

Implementation of the initialization method that has to be overloaded by for each derived class.

Implemented in Ipopt::PCalculator, Ipopt::SchurDriver, Ipopt::SensAlgorithm, Ipopt::IndexPCalculator, Ipopt::MetadataMeasurement, Ipopt::ReducedHessianCalculator, Ipopt::SimpleBacksolver, Ipopt::StdStepCalculator, Ipopt::SensitivityStepCalculator, Ipopt::InexactDoglegNormalStep, Ipopt::InexactLSAcceptor, Ipopt::InexactNewtonNormalStep, Ipopt::InexactNormalTerminationTester, Ipopt::InexactPDSolver, Ipopt::InexactPDTerminationTester, Ipopt::InexactSearchDirCalculator, Ipopt::InexactTSymScalingMethod, Ipopt::IterativePardisoSolverInterface, Ipopt::AdaptiveMuUpdate, Ipopt::AugRestoSystemSolver, Ipopt::BacktrackingLineSearch, Ipopt::DefaultIterateInitializer, Ipopt::ExactHessianUpdater, Ipopt::FilterLSAcceptor, Ipopt::GenAugSystemSolver, Ipopt::IpoptAlgorithm, Ipopt::LeastSquareMultipliers, Ipopt::LimMemQuasiNewtonUpdater, Ipopt::LoqoMuOracle, Ipopt::LowRankAugSystemSolver, Ipopt::LowRankSSAugSystemSolver, Ipopt::MonotoneMuUpdate, Ipopt::OptimalityErrorConvergenceCheck, Ipopt::OrigIterationOutput, Ipopt::PDFullSpaceSolver, Ipopt::PDPerturbationHandler, Ipopt::PDSearchDirCalculator, Ipopt::PenaltyLSAcceptor, Ipopt::ProbingMuOracle, Ipopt::QualityFunctionMuOracle, Ipopt::RestoConvergenceCheck, Ipopt::RestoFilterConvergenceCheck, Ipopt::RestoIterateInitializer, Ipopt::RestoIterationOutput, Ipopt::MinC_1NrmRestorationPhase, Ipopt::RestoPenaltyConvergenceCheck, Ipopt::RestoRestorationPhase, Ipopt::StdAugSystemSolver, Ipopt::WarmStartIterateInitializer, Ipopt::IterativeWsmpSolverInterface, Ipopt::Ma27TSolverInterface, Ipopt::Ma28TDependencyDetector, Ipopt::Ma57TSolverInterface, Ipopt::Ma77SolverInterface, Ipopt::Ma86SolverInterface, Ipopt::Ma97SolverInterface, Ipopt::Mc19TSymScalingMethod, Ipopt::MumpsSolverInterface, Ipopt::PardisoMKLSolverInterface, Ipopt::PardisoSolverInterface, Ipopt::SlackBasedTSymScalingMethod, Ipopt::SpralSolverInterface, Ipopt::TSymDependencyDetector, Ipopt::TSymLinearSolver, Ipopt::WsmpSolverInterface, Ipopt::CGPenaltyLSAcceptor, Ipopt::CGPerturbationHandler, Ipopt::CGSearchDirCalculator, Ipopt::InexactNormalStepCalculator, Ipopt::IterativeSolverTerminationTester, Ipopt::AugSystemSolver, Ipopt::BacktrackingLSAcceptor, Ipopt::ConvergenceCheck, Ipopt::EqMultiplierCalculator, Ipopt::HessianUpdater, Ipopt::IterateInitializer, Ipopt::IterationOutput, Ipopt::MuOracle, Ipopt::MuUpdate, Ipopt::PDSystemSolver, Ipopt::RestorationPhase, Ipopt::SearchDirectionCalculator, Ipopt::GenKKTSolverInterface, Ipopt::SparseSymLinearSolverInterface, Ipopt::SymLinearSolver, Ipopt::TDependencyDetector, and Ipopt::TSymScalingMethod.

◆ Jnlst()

const Journalist & Ipopt::AlgorithmStrategyObject::Jnlst ( ) const
inlineprotected

Definition at line 133 of file IpAlgStrategy.hpp.

◆ IpNLP()

IpoptNLP & Ipopt::AlgorithmStrategyObject::IpNLP ( ) const
inlineprotected

Definition at line 138 of file IpAlgStrategy.hpp.

◆ IpData()

IpoptData & Ipopt::AlgorithmStrategyObject::IpData ( ) const
inlineprotected

Definition at line 144 of file IpAlgStrategy.hpp.

◆ IpCq()

IpoptCalculatedQuantities & Ipopt::AlgorithmStrategyObject::IpCq ( ) const
inlineprotected

Definition at line 150 of file IpAlgStrategy.hpp.

◆ HaveIpData()

bool Ipopt::AlgorithmStrategyObject::HaveIpData ( ) const
inlineprotected

Definition at line 156 of file IpAlgStrategy.hpp.

◆ operator=()

void Ipopt::AlgorithmStrategyObject::operator= ( const AlgorithmStrategyObject )
private

Default Assignment Operator.

Member Data Documentation

◆ jnlst_

SmartPtr<const Journalist> Ipopt::AlgorithmStrategyObject::jnlst_
private

Definition at line 189 of file IpAlgStrategy.hpp.

◆ ip_nlp_

SmartPtr<IpoptNLP> Ipopt::AlgorithmStrategyObject::ip_nlp_
private

Definition at line 190 of file IpAlgStrategy.hpp.

◆ ip_data_

SmartPtr<IpoptData> Ipopt::AlgorithmStrategyObject::ip_data_
private

Definition at line 191 of file IpAlgStrategy.hpp.

◆ ip_cq_

SmartPtr<IpoptCalculatedQuantities> Ipopt::AlgorithmStrategyObject::ip_cq_
private

Definition at line 192 of file IpAlgStrategy.hpp.

◆ initialize_called_

bool Ipopt::AlgorithmStrategyObject::initialize_called_
private

flag indicating if Initialize method has been called (for debugging)

Definition at line 196 of file IpAlgStrategy.hpp.


The documentation for this class was generated from the following file: