#include <IpDefaultIterateInitializer.hpp>
It is used at the very beginning of the optimization for determine the starting point for all variables.
Public Member Functions | |
virtual bool | InitializeImpl (const OptionsList &options, const std::string &prefix) |
overloaded from AlgorithmStrategyObject | |
virtual bool | SetInitialIterates () |
Compute the initial iterates and set the into the curr field of the ip_data object. | |
Constructors/Destructors | |
DefaultIterateInitializer (const SmartPtr< EqMultiplierCalculator > &eq_mult_calculator, const SmartPtr< IterateInitializer > &warm_start_initializer) | |
Constructor. | |
virtual | ~DefaultIterateInitializer () |
Default destructor. | |
Static Public Member Functions | |
static void | push_variables (const Journalist &jnlst, Number bound_push, Number bound_frac, std::string name, const Vector &orig_x, SmartPtr< const Vector > &new_x, const Vector &x_L, const Vector &x_U, const Matrix &Px_L, const Matrix &Px_U) |
Auxilliary function for moving the initial point. | |
static void | least_square_mults (const Journalist &jnlst, IpoptNLP &ip_nlp, IpoptData &ip_data, IpoptCalculatedQuantities &ip_cq, const SmartPtr< EqMultiplierCalculator > &eq_mult_calculator, Number constr_mult_init_max) |
Auxilliary function for computing least_square multipliers. | |
static void | RegisterOptions (SmartPtr< RegisteredOptions > reg_options) |
Methods for IpoptType. |
DefaultIterateInitializer | ( | const SmartPtr< EqMultiplierCalculator > & | eq_mult_calculator, | |
const SmartPtr< IterateInitializer > & | warm_start_initializer | |||
) |
Constructor.
If eq_mult_calculator is not NULL, it will be used to compute the initial values for equality constraint multipliers. If warm_start_initializer is not NULL, it will be used to compute the initial values if the option warm_start_init_point is chosen.
virtual ~DefaultIterateInitializer | ( | ) | [inline, virtual] |
Default destructor.
bool InitializeImpl | ( | const OptionsList & | options, | |
const std::string & | prefix | |||
) | [virtual] |
overloaded from AlgorithmStrategyObject
Implements IterateInitializer.
References OptionsList::GetBoolValue(), OptionsList::GetNumericValue(), AlgorithmStrategyObject::IpCq(), AlgorithmStrategyObject::IpData(), AlgorithmStrategyObject::IpNLP(), Ipopt::IsValid(), and AlgorithmStrategyObject::Jnlst().
bool SetInitialIterates | ( | ) | [virtual] |
Compute the initial iterates and set the into the curr field of the ip_data object.
Implements IterateInitializer.
References IpoptData::AcceptTrialPoint(), IpoptData::curr(), DBG_ASSERT, DBG_PRINT_VECTOR, DBG_START_METH, IpoptData::InitializeDataStructures(), AlgorithmStrategyObject::IpCq(), AlgorithmStrategyObject::IpData(), AlgorithmStrategyObject::IpNLP(), Ipopt::IsValid(), AlgorithmStrategyObject::Jnlst(), DefaultIterateInitializer::least_square_mults(), DefaultIterateInitializer::push_variables(), IpoptNLP::Px_L(), IpoptNLP::Px_U(), IpoptData::set_trial(), IpoptData::trial(), IpoptCalculatedQuantities::trial_d(), IpoptNLP::x_L(), and IpoptNLP::x_U().
void push_variables | ( | const Journalist & | jnlst, | |
Number | bound_push, | |||
Number | bound_frac, | |||
std::string | name, | |||
const Vector & | orig_x, | |||
SmartPtr< const Vector > & | new_x, | |||
const Vector & | x_L, | |||
const Vector & | x_U, | |||
const Matrix & | Px_L, | |||
const Matrix & | Px_U | |||
) | [static] |
Auxilliary function for moving the initial point.
This is declared static so that it can also be used from WarmStartIterateInitializer.
References Ipopt::ConstPtr(), DBG_PRINT_MATRIX, DBG_PRINT_VECTOR, DBG_START_FUN, Ipopt::J_DETAILED, Ipopt::J_INITIALIZATION, Ipopt::J_VECTOR, Vector::MakeNew(), SimTK::min(), Matrix::MultVector(), Vector::Print(), Journalist::Printf(), and Matrix::TransMultVector().
Referenced by WarmStartIterateInitializer::SetInitialIterates(), and DefaultIterateInitializer::SetInitialIterates().
void least_square_mults | ( | const Journalist & | jnlst, | |
IpoptNLP & | ip_nlp, | |||
IpoptData & | ip_data, | |||
IpoptCalculatedQuantities & | ip_cq, | |||
const SmartPtr< EqMultiplierCalculator > & | eq_mult_calculator, | |||
Number | constr_mult_init_max | |||
) | [static] |
Auxilliary function for computing least_square multipliers.
The multipliers are computed based on the values in the trial fields (current is overwritten). On return, the multipliers are in the trial fields as well. The value of constr_mult_init_max determines if the computed least square estimate should be used, or if the initial multipliers are set to zero.
References IpoptData::Append_info_string(), IpoptData::CopyTrialToCurrent(), DBG_PRINT_VECTOR, DBG_START_FUN, Ipopt::IsValid(), Ipopt::J_DETAILED, Ipopt::J_INITIALIZATION, Ipopt::Max(), Journalist::Printf(), IpoptData::set_trial(), and IpoptData::trial().
Referenced by MinC_1NrmRestorationPhase::PerformRestoration(), RestoIterateInitializer::SetInitialIterates(), and DefaultIterateInitializer::SetInitialIterates().
void RegisterOptions | ( | SmartPtr< RegisteredOptions > | reg_options | ) | [static] |