#include <IpIpoptAlg.hpp>
Main Ipopt algorithm class, contains the main optimize method, handles the execution of the optimization. The constructor initializes the data structures through the nlp, and the Optimize method then assumes that everything is initialized and ready to go. After an optimization is complete, the user can access the solution through the passed in ip_data structure. Multiple calls to the Optimize method are allowed as long as the structure of the problem remains the same (i.e. starting point or nlp parameter changes only).
Public Member Functions | |
virtual bool | InitializeImpl (const OptionsList &options, const std::string &prefix) |
overloaded from AlgorithmStrategyObject | |
SolverReturn | Optimize () |
Main solve method. | |
Constructors/Destructors | |
IpoptAlgorithm (const SmartPtr< PDSystemSolver > &pd_solver, const SmartPtr< LineSearch > &line_search, const SmartPtr< MuUpdate > &mu_update, const SmartPtr< ConvergenceCheck > &conv_check, const SmartPtr< IterateInitializer > &iterate_initializer, const SmartPtr< IterationOutput > &iter_output, const SmartPtr< HessianUpdater > &hessian_updater, const SmartPtr< EqMultiplierCalculator > &eq_multiplier_calculator=NULL) | |
Constructor. | |
virtual | ~IpoptAlgorithm () |
Default destructor. | |
Static Public Member Functions | |
static void | RegisterOptions (SmartPtr< RegisteredOptions > roptions) |
Methods for IpoptType. |
IpoptAlgorithm | ( | const SmartPtr< PDSystemSolver > & | pd_solver, | |
const SmartPtr< LineSearch > & | line_search, | |||
const SmartPtr< MuUpdate > & | mu_update, | |||
const SmartPtr< ConvergenceCheck > & | conv_check, | |||
const SmartPtr< IterateInitializer > & | iterate_initializer, | |||
const SmartPtr< IterationOutput > & | iter_output, | |||
const SmartPtr< HessianUpdater > & | hessian_updater, | |||
const SmartPtr< EqMultiplierCalculator > & | eq_multiplier_calculator = NULL | |||
) |
Constructor.
(The IpoptAlgorithm uses smart pointers for these passed-in pieces to make sure that a user of IpoptAlgoroithm cannot pass in an object created on the stack!)
References DBG_ASSERT, DBG_START_METH, and Ipopt::IsValid().
~IpoptAlgorithm | ( | ) | [virtual] |
bool InitializeImpl | ( | const OptionsList & | options, | |
const std::string & | prefix | |||
) | [virtual] |
overloaded from AlgorithmStrategyObject
Implements AlgorithmStrategyObject.
References ASSERT_EXCEPTION, DBG_START_METH, OptionsList::GetBoolValue(), OptionsList::GetEnumValue(), OptionsList::GetNumericValue(), IpoptNLP::Initialize(), IpoptCalculatedQuantities::Initialize(), IpoptData::Initialize(), AlgorithmStrategyObject::IpCq(), AlgorithmStrategyObject::IpData(), AlgorithmStrategyObject::IpNLP(), AlgorithmStrategyObject::Jnlst(), and Ipopt::LIMITED_MEMORY.
SolverReturn Optimize | ( | ) |
Main solve method.
References TimingStatistics::AcceptTrialPoint(), TimingStatistics::CheckConvergence(), TimingStatistics::ComputeAcceptableTrialPoint(), TimingStatistics::ComputeSearchDirection(), ConvergenceCheck::CONTINUE, ConvergenceCheck::CONVERGED, ConvergenceCheck::CONVERGED_TO_ACCEPTABLE_POINT, DBG_ASSERT, DBG_START_METH, ConvergenceCheck::DIVERGING, Ipopt::DIVERGING_ITERATES, TimedTask::End(), TimedTask::EndIfStarted(), Ipopt::ERROR_IN_STEP_COMPUTATION, TimingStatistics::InitializeIterates(), Ipopt::INTERNAL_ERROR, Ipopt::INVALID_NUMBER_DETECTED, AlgorithmStrategyObject::IpData(), Ipopt::J_ERROR, Ipopt::J_MAIN, Ipopt::J_MOREDETAILED, Ipopt::J_WARNING, AlgorithmStrategyObject::Jnlst(), Ipopt::LOCAL_INFEASIBILITY, Ipopt::MAXITER_EXCEEDED, ConvergenceCheck::MAXITER_EXCEEDED, TimingStatistics::OutputIteration(), TimingStatistics::OverallAlgorithm(), Journalist::Printf(), TimingStatistics::PrintProblemStatistics(), IpoptData::ResetInfo(), Ipopt::RESTORATION_FAILURE, IpoptData::Set_iter_count(), TimedTask::Start(), Ipopt::STOP_AT_ACCEPTABLE_POINT, Ipopt::STOP_AT_TINY_STEP, Ipopt::SUCCESS, THROW_EXCEPTION, IpoptData::TimingStats(), Ipopt::TOO_FEW_DEGREES_OF_FREEDOM, TimingStatistics::UpdateBarrierParameter(), TimingStatistics::UpdateHessian(), Ipopt::USER_REQUESTED_STOP, and ConvergenceCheck::USER_STOP.
void RegisterOptions | ( | SmartPtr< RegisteredOptions > | roptions | ) | [static] |