#include <IpAlgStrategy.hpp>
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.
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. | |
Constructors/Destructors | |
AlgorithmStrategyObject () | |
Default Constructor. | |
virtual | ~AlgorithmStrategyObject () |
Default Destructor. | |
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 Journalist & | Jnlst () const |
IpoptNLP & | IpNLP () const |
IpoptData & | IpData () const |
IpoptCalculatedQuantities & | IpCq () const |
AlgorithmStrategyObject | ( | ) | [inline] |
Default Constructor.
virtual ~AlgorithmStrategyObject | ( | ) | [inline, virtual] |
Default Destructor.
bool 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 instanciation 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.
References AlgorithmStrategyObject::InitializeImpl().
virtual bool InitializeImpl | ( | const OptionsList & | options, | |
const std::string & | prefix | |||
) | [protected, pure virtual] |
Implementation of the initialization method that has to be overloaded by for each derived class.
Implemented in AdaptiveMuUpdate, AugRestoSystemSolver, AugSystemSolver, BacktrackingLineSearch, BacktrackingLSAcceptor, ConvergenceCheck, DefaultIterateInitializer, EqMultiplierCalculator, ExactHessianUpdater, FilterLSAcceptor, HessianUpdater, IpoptAlgorithm, IterateInitializer, IterationOutput, LapackSolverInterface, LeastSquareMultipliers, LimMemQuasiNewtonUpdater, LoqoMuOracle, LowRankAugSystemSolver, MonotoneMuUpdate, MuOracle, MuUpdate, OptimalityErrorConvergenceCheck, OrigIterationOutput, PDFullSpaceSolver, PDPerturbationHandler, PDSystemSolver, ProbingMuOracle, QualityFunctionMuOracle, RestoFilterConvergenceCheck, RestoIterateInitializer, RestoIterationOutput, MinC_1NrmRestorationPhase, RestorationPhase, RestoRestorationPhase, SparseSymLinearSolverInterface, StdAugSystemSolver, SymLinearSolver, TSymLinearSolver, TSymScalingMethod, and WarmStartIterateInitializer.
Referenced by AlgorithmStrategyObject::Initialize().
const Journalist& Jnlst | ( | ) | const [inline, protected] |
References DBG_ASSERT.
Referenced by BacktrackingLineSearch::ActivateFallbackMechanism(), QualityFunctionMuOracle::CalculateMu(), ProbingMuOracle::CalculateMu(), LoqoMuOracle::CalculateMu(), FilterLSAcceptor::CheckAcceptabilityOfTrialPoint(), RestoFilterConvergenceCheck::CheckConvergence(), BacktrackingLineSearch::FindAcceptableTrialPoint(), TSymLinearSolver::IncreaseQuality(), TSymLinearSolver::InitializeImpl(), StdAugSystemSolver::InitializeImpl(), MinC_1NrmRestorationPhase::InitializeImpl(), RestoIterationOutput::InitializeImpl(), RestoIterateInitializer::InitializeImpl(), PDFullSpaceSolver::InitializeImpl(), LowRankAugSystemSolver::InitializeImpl(), LeastSquareMultipliers::InitializeImpl(), IpoptAlgorithm::InitializeImpl(), DefaultIterateInitializer::InitializeImpl(), BacktrackingLineSearch::InitializeImpl(), AugRestoSystemSolver::InitializeImpl(), AdaptiveMuUpdate::InitializeImpl(), FilterLSAcceptor::InitThisLineSearch(), FilterLSAcceptor::IsAcceptableToCurrentIterate(), StdAugSystemSolver::MultiSolve(), IpoptAlgorithm::Optimize(), RestoRestorationPhase::PerformRestoration(), MinC_1NrmRestorationPhase::PerformRestoration(), PDPerturbationHandler::PerturbForSingularity(), WarmStartIterateInitializer::SetInitialIterates(), RestoIterateInitializer::SetInitialIterates(), DefaultIterateInitializer::SetInitialIterates(), PDFullSpaceSolver::Solve(), LowRankAugSystemSolver::Solve(), FilterLSAcceptor::TryCorrector(), FilterLSAcceptor::TrySecondOrderCorrection(), MonotoneMuUpdate::UpdateBarrierParameter(), AdaptiveMuUpdate::UpdateBarrierParameter(), LimMemQuasiNewtonUpdater::UpdateHessian(), RestoIterationOutput::WriteOutput(), and OrigIterationOutput::WriteOutput().
IpoptNLP& IpNLP | ( | ) | const [inline, protected] |
References DBG_ASSERT.
Referenced by QualityFunctionMuOracle::CalculateMu(), LeastSquareMultipliers::CalculateMultipliers(), RestoFilterConvergenceCheck::CheckConvergence(), OptimalityErrorConvergenceCheck::CheckConvergence(), TSymLinearSolver::InitializeImpl(), StdAugSystemSolver::InitializeImpl(), MinC_1NrmRestorationPhase::InitializeImpl(), RestoIterationOutput::InitializeImpl(), RestoIterateInitializer::InitializeImpl(), PDFullSpaceSolver::InitializeImpl(), LowRankAugSystemSolver::InitializeImpl(), LeastSquareMultipliers::InitializeImpl(), IpoptAlgorithm::InitializeImpl(), DefaultIterateInitializer::InitializeImpl(), BacktrackingLineSearch::InitializeImpl(), AugRestoSystemSolver::InitializeImpl(), AdaptiveMuUpdate::InitializeImpl(), RestoRestorationPhase::PerformRestoration(), MinC_1NrmRestorationPhase::PerformRestoration(), WarmStartIterateInitializer::SetInitialIterates(), RestoIterateInitializer::SetInitialIterates(), DefaultIterateInitializer::SetInitialIterates(), PDFullSpaceSolver::Solve(), FilterLSAcceptor::TryCorrector(), AdaptiveMuUpdate::UpdateBarrierParameter(), LimMemQuasiNewtonUpdater::UpdateHessian(), and RestoIterationOutput::WriteOutput().
IpoptData& IpData | ( | ) | const [inline, protected] |
References DBG_ASSERT.
Referenced by BacktrackingLineSearch::ActivateFallbackMechanism(), QualityFunctionMuOracle::CalculateMu(), ProbingMuOracle::CalculateMu(), LoqoMuOracle::CalculateMu(), LeastSquareMultipliers::CalculateMultipliers(), FilterLSAcceptor::CheckAcceptabilityOfTrialPoint(), RestoFilterConvergenceCheck::CheckConvergence(), OptimalityErrorConvergenceCheck::CheckConvergence(), PDPerturbationHandler::ConsiderNewSystem(), OptimalityErrorConvergenceCheck::CurrentIsAcceptable(), BacktrackingLineSearch::FindAcceptableTrialPoint(), TSymLinearSolver::IncreaseQuality(), TSymLinearSolver::InitializeImpl(), StdAugSystemSolver::InitializeImpl(), MinC_1NrmRestorationPhase::InitializeImpl(), RestoIterationOutput::InitializeImpl(), RestoIterateInitializer::InitializeImpl(), PDFullSpaceSolver::InitializeImpl(), MonotoneMuUpdate::InitializeImpl(), LowRankAugSystemSolver::InitializeImpl(), LeastSquareMultipliers::InitializeImpl(), IpoptAlgorithm::InitializeImpl(), DefaultIterateInitializer::InitializeImpl(), BacktrackingLineSearch::InitializeImpl(), AugRestoSystemSolver::InitializeImpl(), AdaptiveMuUpdate::InitializeImpl(), TSymLinearSolver::MultiSolve(), IpoptAlgorithm::Optimize(), RestoRestorationPhase::PerformRestoration(), MinC_1NrmRestorationPhase::PerformRestoration(), PDPerturbationHandler::PerturbForSingularity(), WarmStartIterateInitializer::SetInitialIterates(), RestoIterateInitializer::SetInitialIterates(), DefaultIterateInitializer::SetInitialIterates(), PDFullSpaceSolver::Solve(), FilterLSAcceptor::TryCorrector(), FilterLSAcceptor::TrySecondOrderCorrection(), MonotoneMuUpdate::UpdateBarrierParameter(), AdaptiveMuUpdate::UpdateBarrierParameter(), LimMemQuasiNewtonUpdater::UpdateHessian(), ExactHessianUpdater::UpdateHessian(), RestoIterationOutput::WriteOutput(), and OrigIterationOutput::WriteOutput().
IpoptCalculatedQuantities& IpCq | ( | ) | const [inline, protected] |
References DBG_ASSERT.
Referenced by FilterLSAcceptor::CalculateAlphaMin(), QualityFunctionMuOracle::CalculateMu(), ProbingMuOracle::CalculateMu(), LoqoMuOracle::CalculateMu(), LeastSquareMultipliers::CalculateMultipliers(), FilterLSAcceptor::CheckAcceptabilityOfTrialPoint(), RestoFilterConvergenceCheck::CheckConvergence(), OptimalityErrorConvergenceCheck::CheckConvergence(), OptimalityErrorConvergenceCheck::CurrentIsAcceptable(), BacktrackingLineSearch::FindAcceptableTrialPoint(), TSymLinearSolver::InitializeImpl(), StdAugSystemSolver::InitializeImpl(), MinC_1NrmRestorationPhase::InitializeImpl(), RestoIterationOutput::InitializeImpl(), RestoIterateInitializer::InitializeImpl(), PDFullSpaceSolver::InitializeImpl(), LowRankAugSystemSolver::InitializeImpl(), LeastSquareMultipliers::InitializeImpl(), IpoptAlgorithm::InitializeImpl(), DefaultIterateInitializer::InitializeImpl(), BacktrackingLineSearch::InitializeImpl(), AugRestoSystemSolver::InitializeImpl(), AdaptiveMuUpdate::InitializeImpl(), FilterLSAcceptor::InitThisLineSearch(), RestoRestorationPhase::PerformRestoration(), MinC_1NrmRestorationPhase::PerformRestoration(), WarmStartIterateInitializer::SetInitialIterates(), RestoIterateInitializer::SetInitialIterates(), DefaultIterateInitializer::SetInitialIterates(), PDFullSpaceSolver::Solve(), FilterLSAcceptor::StartWatchDog(), FilterLSAcceptor::TryCorrector(), FilterLSAcceptor::TrySecondOrderCorrection(), MonotoneMuUpdate::UpdateBarrierParameter(), AdaptiveMuUpdate::UpdateBarrierParameter(), LimMemQuasiNewtonUpdater::UpdateHessian(), ExactHessianUpdater::UpdateHessian(), RestoIterationOutput::WriteOutput(), and OrigIterationOutput::WriteOutput().