9 #ifndef __IPIPOPTALG_HPP__
10 #define __IPIPOPTALG_HPP__
71 const std::string& prefix);
206 Index& n_only_upper);
216 const Vector& trial_slack,
217 const Vector& trial_compl,
Number * x
Input: Starting point Output: Optimal solution.
Number * x_L
Lower bounds on variables.
Number Number * x_U
Upper bounds on variables.
This is the base class for all algorithm strategy objects.
The main ipopt algorithm class.
SmartPtr< EqMultiplierCalculator > eq_multiplier_calculator_
The multipler calculator (for y_c and y_d) has to be set only if option recalc_y is set to true.
SmartPtr< ConvergenceCheck > conv_check_
IpoptAlgorithm()
Default Constructor.
bool UpdateBarrierParameter()
Method to update the barrier parameter.
SmartPtr< SearchDirectionCalculator > search_dir_calculator_
bool mehrotra_algorithm_
Flag indicating if we want to do Mehrotras's algorithm.
SmartPtr< MuUpdate > mu_update_
SmartPtr< SearchDirectionCalculator > SearchDirCalc()
virtual ~IpoptAlgorithm()
Default destructor.
static void print_copyright_message(const Journalist &jnlst)
void operator=(const IpoptAlgorithm &)
Overloaded Equals Operator.
bool recalc_y_
Flag indicating whether the y multipliers should be recalculated with the eq_mutliplier_calculator ob...
SmartPtr< LineSearch > line_search_
Number correct_bound_multiplier(const Vector &trial_z, const Vector &trial_slack, const Vector &trial_compl, SmartPtr< const Vector > &new_trial_z)
Method for ensuring that the trial multipliers are not too far from the primal estime.
void UpdateHessian()
Method for updating the current Hessian.
void PrintProblemStatistics()
Print the problem size statistics.
IpoptAlgorithm(const IpoptAlgorithm &)
Copy Constructor.
std::string linear_solver_
String specifying linear solver.
Number kappa_sigma_
safeguard factor for bound multipliers.
SolverReturn Optimize(bool isResto=false)
Main solve method.
SmartPtr< IterateInitializer > iterate_initializer_
bool ComputeSearchDirection()
Method to setup the call to the PDSystemSolver.
void ComputeFeasibilityMultipliers()
Compute the Lagrangian multipliers for a feasibility problem.
virtual bool InitializeImpl(const OptionsList &options, const std::string &prefix)
overloaded from AlgorithmStrategyObject
IpoptAlgorithm(const SmartPtr< SearchDirectionCalculator > &search_dir_calculator, 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.
SmartPtr< HessianUpdater > hessian_updater_
SmartPtr< IterationOutput > iter_output_
void InitializeIterates()
Sets up initial values for the iterates, Corrects the initial values for x and s (force in bounds)
void OutputIteration()
Do all the output for one iteration.
void AcceptTrialPoint()
Method for accepting the trial point as the new iteration, possibly after adjusting the variable boun...
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for IpoptType.
Number recalc_y_feas_tol_
Feasibility threshold for recalc_y.
void ComputeAcceptableTrialPoint()
Method computing the new iterate (usually vialine search).
void calc_number_of_bounds(const Vector &x, const Vector &x_L, const Vector &x_U, const Matrix &Px_L, const Matrix &Px_U, Index &n_tot, Index &n_only_lower, Index &n_both, Index &n_only_upper)
bool skip_print_problem_stats_
Flag indicating if the statistic should not be printed.
Class responsible for all message output.
This class stores a list of user set options.
Template class for Smart Pointers.
SolverReturn
enum for the return from the optimize algorithm (obviously we need to add more)
int Index
Type of all indices of vectors, matrices etc.
DECLARE_STD_EXCEPTION(SUFFIX_EMPTY)
double Number
Type of all numbers.