[Ipopt] A small bug
darknesswind
darknesswind at qq.com
Fri Nov 8 02:48:13 EST 2013
When I run the solver on a problem with all fixed variables, I found the DenseVector "ip_data_->curr()->z_L()" is uninitialized in function IpoptCalculatedQuantities::trial_slack_x_L.It may cause a crash in release version because of access violation.
The problem is:
y = x1 * x2
subject to:
x1 * x2 = 0
x1 = 0
x2 = 0
Here is the call stack: The dense_x->homogeneous_ equal to false but the dense_x->values_ is null.
> ipopt.dll!Ipopt::DenseVector::ElementWiseDivideImpl(const Ipopt::Vector & x) Line 240 C++
ipopt.dll!Ipopt::Vector::ElementWiseDivide(const Ipopt::Vector & x) Line 602 + 0x13 bytes C++
ipopt.dll!Ipopt::IpoptCalculatedQuantities::CalculateSafeSlack(Ipopt::SmartPtr<Ipopt::Vector> & slack, const Ipopt::SmartPtr<Ipopt::Vector const > & bound, const Ipopt::SmartPtr<Ipopt::Vector const > & curr_point, const Ipopt::SmartPtr<Ipopt::Vector const > & multiplier) Line 481 C++
ipopt.dll!Ipopt::IpoptCalculatedQuantities::trial_slack_x_L() Line 365 + 0x5b bytes C++
ipopt.dll!Ipopt::DefaultIterateInitializer::SetInitialIterates() Line 278 + 0x16 bytes C++
ipopt.dll!Ipopt::IpoptAlgorithm::InitializeIterates() Line 545 + 0x26 bytes C++
ipopt.dll!Ipopt::IpoptAlgorithm::Optimize(bool isResto) Line 274 C++
ipopt.dll!Ipopt::IpoptApplication::call_optimize() Line 860 + 0xd bytes C++
ipopt.dll!Ipopt::IpoptApplication::OptimizeNLP(const Ipopt::SmartPtr<Ipopt::NLP> & nlp, Ipopt::SmartPtr<Ipopt::AlgorithmBuilder> & alg_builder) Line 754 + 0x8 bytes C++
ipopt.dll!Ipopt::IpoptApplication::OptimizeNLP(const Ipopt::SmartPtr<Ipopt::NLP> & nlp) Line 717 + 0x17 bytes C++
ipopt.dll!Ipopt::IpoptApplication::OptimizeTNLP(const Ipopt::SmartPtr<Ipopt::TNLP> & tnlp) Line 696 + 0x16 bytes C++
More information about the Ipopt
mailing list