[Ipopt] IPOPT Cycling?

Vivek Periaraj vivek.periaraj at gmail.com
Wed Dec 12 09:12:11 EST 2012


Hi List, 


I am trying to solve a NLP but there seems to be lot of cycling and IPOPT doesn't seem to converge. The following is the iteration summary: 

x----------------------------------------------------------------------------x
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls 
570 -1.2479562e+05 0.00e+00 2.14e-01 -4.3 1.76e+02 - 2.21e-02 9.14e-04f 6 
571 -1.2479548e+05 0.00e+00 3.36e-01 -3.1 6.99e+01 - 3.49e-02 6.81e-04f 6 
572 -1.2479552e+05 0.00e+00 2.66e-01 -4.1 5.88e+00 - 2.86e-01 7.51e-03f 7 
573 -1.2479557e+05 0.00e+00 3.38e-01 -4.1 3.67e+00 - 1.35e-01 2.11e-03f 8 
574 -1.2479537e+05 0.00e+00 4.34e-01 -4.1 1.66e+00 - 8.12e-01 6.25e-02f 5 
575 -1.2479557e+05 0.00e+00 5.31e-01 -4.1 4.55e+01 - 1.17e-01 2.77e-03f 6 
576 -1.2479711e+05 0.00e+00 1.21e-01 -4.1 2.95e+02 - 1.15e-02 4.62e-04f 6 
577 -1.2479718e+05 0.00e+00 4.38e-01 -3.5 8.43e+01 - 6.21e-02 1.38e-03f 6 
578 -1.2479567e+05 0.00e+00 2.95e-01 -2.9 5.95e+01 - 2.71e-02 9.16e-04f 5 
579 -1.2479598e+05 0.00e+00 2.23e-01 -4.0 2.88e+00 - 5.36e-01 8.58e-03f 7 
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls 
580 -1.2479606e+05 0.00e+00 2.46e-01 -4.0 4.45e-01 - 5.11e-01 4.50e-03f 7 
581 -1.2479729e+05 0.00e+00 1.10e-01 -4.0 2.64e-01 - 1.00e+00 1.00e+00f 1 
582 -1.2479693e+05 0.00e+00 1.80e-01 -2.7 3.33e+01 - 3.12e-01 1.65e-03f 6 
583 -1.2479244e+05 0.00e+00 4.94e-01 -3.3 8.35e-01 - 2.74e-01 1.25e-01f 4 
584 -1.2479273e+05 0.00e+00 3.06e-01 -3.3 8.46e+00 - 3.58e-01 8.08e-03f 7 
585 -1.2479480e+05 0.00e+00 1.79e+00 -3.3 2.07e+01 - 2.59e-01 3.06e-02f 4 
586 -1.2479895e+05 0.00e+00 1.13e+00 -3.3 4.11e+02 - 1.80e-02 9.92e-04f 5 
587 -1.2480084e+05 0.00e+00 6.18e-01 -2.1 5.17e+02 - 4.25e-02 7.48e-04f 4 
588 -1.2479357e+05 0.00e+00 9.31e-01 -2.3 5.79e+01 - 6.13e-02 4.15e-03f 4 
589 -1.2479538e+05 0.00e+00 5.07e-01 -3.1 6.10e+01 - 1.31e-01 9.00e-03f 5 
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls 
590 -1.2479727e+05 0.00e+00 4.56e-01 -3.1 1.30e+02 - 3.50e-02 2.03e-03f 5 
591 -1.2479775e+05 0.00e+00 6.86e-01 -3.1 5.05e+01 - 3.94e-01 8.96e-03f 5 
592 -1.2480239e+05 0.00e+00 5.98e-01 -3.1 8.50e+01 - 1.22e-02 5.87e-04f 5 
593 -1.2480333e+05 0.00e+00 8.14e-01 -3.0 2.58e+00 - 5.43e-01 3.74e-02f 4 
594 -1.2478691e+05 0.00e+00 1.08e+00 -2.3 9.48e+00 - 1.98e-01 2.61e-02f 4 
595 -1.2478912e+05 0.00e+00 1.42e+00 -2.9 4.80e+01 - 4.41e-02 6.19e-03f 4 
596 -1.2479133e+05 0.00e+00 1.04e+00 -2.9 3.71e+01 - 1.02e-01 6.60e-03f 6 
597 -1.2479134e+05 0.00e+00 1.37e+00 -2.9 4.91e+01 - 9.87e-02 1.11e-02f 4 
598 -1.2479283e+05 0.00e+00 7.40e-01 -2.9 1.66e+01 - 3.66e-02 2.20e-03f 7 
599 -1.2479215e+05 0.00e+00 1.32e+00 -2.9 8.76e-01 - 7.63e-01 1.25e-01f 4 
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls 
600 -1.2479899e+05 0.00e+00 3.71e-01 -2.9 6.70e+00 - 2.91e-01 5.66e-02f 4 
601 -1.2480288e+05 0.00e+00 1.07e+00 -2.9 6.47e+01 - 4.38e-02 3.27e-03f 4 
602 -1.2480809e+05 0.00e+00 4.91e-01 -2.9 7.88e+01 - 6.02e-02 4.74e-03f 5 
603 -1.2480957e+05 0.00e+00 5.29e-01 -8.9 8.57e+01 - 3.74e-02 3.01e-03f 6 
604 -1.2477400e+05 0.00e+00 1.38e+00 -1.8 1.66e+01 - 1.07e-01 8.70e-03f 4 
605 -1.2477378e+05 0.00e+00 1.07e+00 -2.7 9.08e+00 - 3.23e-01 4.30e-02f 5 
606 -1.2478318e+05 0.00e+00 1.46e+00 -2.7 2.25e+01 - 1.11e-01 5.90e-03f 4 
607 -1.2478236e+05 0.00e+00 1.46e+00 -2.7 1.07e+01 - 4.24e-01 2.46e-02f 3 
608 -1.2478702e+05 0.00e+00 1.72e+00 -2.7 1.86e+01 - 1.22e-01 1.72e-02f 5 
609 -1.2479785e+05 0.00e+00 1.05e+00 -2.7 4.29e+01 - 1.28e-01 9.50e-03f 4 
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls 
610 -1.2480806e+05 0.00e+00 1.39e+00 -2.7 5.54e+01 - 1.16e-01 9.02e-03f 4 
611 -1.2481100e+05 0.00e+00 6.40e-01 -2.7 4.53e+01 - 1.84e-01 1.92e-02f 4 
612 -1.2478336e+05 0.00e+00 5.80e-01 -2.0 6.03e+01 - 8.74e-02 1.10e-02f 5 
613 -1.2478520e+05 0.00e+00 4.93e-01 -2.6 6.22e+01 - 1.22e-01 2.07e-03f 5 
614 -1.2478910e+05 0.00e+00 1.20e+00 -2.6 4.65e+01 - 2.25e-02 1.97e-03f 6 
615 -1.2479081e+05 0.00e+00 1.19e+00 -2.6 5.57e+00 - 5.67e-01 1.32e-02f 5 
616 -1.2479074e+05 0.00e+00 6.63e-01 -2.6 1.30e+01 - 1.99e-01 1.41e-02f 5 
617 -1.2479039e+05 0.00e+00 7.37e-01 -2.6 7.78e+00 - 1.28e-01 1.03e-02f 5 
618 -1.2479642e+05 0.00e+00 4.89e-01 -2.6 8.52e+00 - 3.12e-01 2.11e-02f 5 
619 -1.2481748e+05 0.00e+00 4.34e-01 -2.6 1.01e+02 - 8.11e-02 3.80e-03f 4 


<Snip> 



1979 -1.2532592e+05 0.00e+00 1.12e-01 -2.6 8.01e-04 - 1.00e+00 1.00e+00f 1 
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls 
1980 -1.2532585e+05 0.00e+00 1.13e-01 -2.6 7.67e-02 - 1.00e+00 6.25e-02f 5 
1981 -1.2532472e+05 0.00e+00 2.35e-01 -2.6 1.51e-01 - 1.00e+00 2.50e-01f 3 
1982 -1.2532465e+05 0.00e+00 1.13e-01 -2.6 2.49e+00 - 1.00e+00 3.12e-02f 6 
1983 -1.2532472e+05 0.00e+00 1.01e-01 -2.6 4.16e+00 - 5.26e-01 9.44e-03f 6 
1984 -1.2532456e+05 0.00e+00 9.94e-02 -2.6 6.62e-01 - 1.00e+00 3.12e-02f 6 
1985 -1.2532460e+05 0.00e+00 1.62e-01 -2.6 3.23e-01 - 1.00e+00 1.07e-02f 6 
1986 -1.2532417e+05 0.00e+00 4.50e-02 -2.6 5.72e-02 - 1.00e+00 1.00e+00f 1 
1987 -1.2532439e+05 0.00e+00 7.95e-02 -2.6 7.60e+00 - 4.89e-01 5.70e-03f 7 
1988 -1.2532448e+05 0.00e+00 1.00e-01 -2.6 3.87e+00 - 1.00e+00 6.94e-03f 7 
1989 -1.2532475e+05 0.00e+00 1.18e-01 -2.6 3.96e+00 - 9.16e-01 3.12e-02f 6 
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls 
1990 -1.2532495e+05 0.00e+00 7.27e-02 -2.6 5.02e+00 - 5.23e-01 5.73e-03f 8 
1991 -1.2532496e+05 0.00e+00 7.87e-02 -2.6 6.54e-01 - 1.00e+00 1.50e-02f 7 
1992 -1.2532497e+05 0.00e+00 5.46e-02 -2.6 4.90e-01 - 1.00e+00 1.56e-02f 7 
1993 -1.2532497e+05 0.00e+00 4.32e-02 -2.6 4.48e-01 - 1.00e+00 7.81e-03f 8 
1994 -1.2532477e+05 0.00e+00 6.58e-02 -2.6 3.41e-01 - 1.00e+00 6.25e-02f 5 
1995 -1.2532471e+05 0.00e+00 6.79e-02 -2.6 3.56e+00 - 4.89e-01 7.81e-03f 8 
1996 -1.2532475e+05 0.00e+00 4.55e-02 -2.6 3.82e+00 - 1.00e+00 1.56e-02f 7 
1997 -1.2020689e+05 0.00e+00 1.57e+03 -2.6 3.83e+00 - 1.00e+00 6.49e-01w 1 
1998 -1.2532217e+05 0.00e+00 1.42e-01 -2.6 2.39e+00 - 4.93e-03 1.00e+00w 1 
1999 -1.2507173e+05 0.00e+00 2.06e+00 -2.6 7.70e-01 - 1.00e+00 1.00e+00w 1 
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls 
2000 -1.2532488e+05 0.00e+00 3.69e-02 -2.6 4.81e+00 - 1.00e+00 1.01e-02f 6 
2001 -1.2532494e+05 0.00e+00 7.91e-02 -2.6 1.71e+00 - 1.00e+00 1.26e-02f 7 
2002 -1.2532509e+05 0.00e+00 5.34e-02 -2.6 4.20e+00 - 1.00e+00 8.38e-03f 7 
2003 -1.2532519e+05 0.00e+00 2.42e-02 -2.6 5.46e+00 - 7.12e-01 5.89e-03f 7 
2004 -1.2532604e+05 0.00e+00 1.94e-01 -3.9 7.77e-01 - 7.50e-01 3.06e-02f 6 
2005 -1.2532857e+05 0.00e+00 4.90e-01 -3.9 3.07e-01 - 7.49e-01 2.29e-01f 3 
2006 -1.2535210e+05 0.00e+00 4.94e-01 -3.9 1.58e-01 - 1.00e+00 9.06e-01f 1 
2007 -1.2535529e+05 0.00e+00 3.68e-01 -3.0 6.00e+00 - 1.00e+00 1.04e-02f 5 
2008 -1.2534981e+05 0.00e+00 5.05e-01 -2.8 6.55e-01 - 1.00e+00 1.10e-01f 4 
2009 -1.2534543e+05 0.00e+00 5.01e-01 -2.9 9.96e-02 - 3.32e-01 5.00e-01f 2 
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls 
2010 -1.2534928e+05 0.00e+00 2.20e-01 -2.9 7.53e-01 - 7.89e-01 5.69e-02f 5 
2011 -1.2535069e+05 0.00e+00 2.30e-01 -2.9 3.91e-01 - 6.52e-01 3.12e-02f 6 
2012 -1.2535124e+05 0.00e+00 3.68e-01 -2.9 1.03e-01 - 1.00e+00 2.50e-01f 3 
2013 -1.2535094e+05 0.00e+00 2.11e-01 -2.9 8.23e-02 - 1.00e+00 1.25e-01f 4 
2014 -1.2535040e+05 0.00e+00 1.37e-01 -2.9 2.24e-02 - 1.00e+00 5.00e-01f 2 
2015 -1.2535043e+05 0.00e+00 9.09e-02 -2.9 2.86e-02 - 1.00e+00 2.50e-01f 3 
2016 -1.2535031e+05 0.00e+00 3.39e-02 -2.9 9.81e-03 - 1.00e+00 2.50e-01f 3 
2017 -1.2534988e+05 0.00e+00 3.15e-02 -2.9 2.93e-03 - 1.00e+00 1.00e+00f 1 
2018 -1.2534989e+05 0.00e+00 1.68e-02 -2.9 4.77e-03 - 1.00e+00 5.00e-01f 2 
2019 -1.2534976e+05 0.00e+00 2.56e-02 -2.9 3.44e-03 - 1.00e+00 2.50e-01f 3 


<Snip> 



iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls 
2990 -1.2550690e+05 0.00e+00 1.70e-02 -11.0 4.63e-03 - 1.00e+00 1.00e+00f 1 
2991 -1.2550691e+05 0.00e+00 1.42e-01 -11.0 3.53e-01 - 1.00e+00 1.25e-01f 4 
2992 -1.2550692e+05 0.00e+00 8.49e-02 -10.7 1.30e+01 - 1.00e+00 4.57e-03f 5 
2993 -1.2550696e+05 0.00e+00 9.13e-02 -9.9 1.45e+01 - 1.00e+00 1.04e-03f 7 
2994 -1.2550702e+05 0.00e+00 8.53e-02 -9.2 1.12e+01 - 1.00e+00 2.89e-03f 6 
2995 -1.2550717e+05 0.00e+00 6.38e-02 -8.5 1.03e+01 - 1.00e+00 3.28e-03f 6 
2996 -1.2550750e+05 0.00e+00 5.27e-02 -7.9 1.72e+01 - 1.00e+00 4.13e-03f 5 
2997 -1.2550763e+05 0.00e+00 5.03e-02 -8.4 9.63e+00 - 1.98e-01 3.28e-03f 7 
2998 -1.2550768e+05 0.00e+00 1.55e-01 -6.7 3.26e+00 - 1.00e+00 1.56e-02f 7 
2999 -1.2550775e+05 0.00e+00 8.79e-02 -6.0 1.94e+01 - 1.00e+00 1.62e-03f 10 
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls 
3000 -1.2550766e+05 0.00e+00 1.65e-01 -5.4 2.91e+00 - 1.00e+00 7.81e-03f 8 


Number of Iterations....: 3000 


(scaled) (unscaled) 
Objective...............: -2.7890838624962919e+02 -1.2550765817878813e+05 
Dual infeasibility......: 1.6543991669559402e-01 7.4447300753350518e+01 
Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00 
Complementarity.........: 3.9070669839719818e-06 1.7581645145194559e-03 
Overall NLP error.......: 1.6543991669559402e-01 7.4447300753350518e+01 




Number of objective function evaluations = 14401 
Number of objective gradient evaluations = 3001 
Number of equality constraint evaluations = 0 
Number of inequality constraint evaluations = 14401 
Number of equality constraint Jacobian evaluations = 0 
Number of inequality constraint Jacobian evaluations = 3001 
Number of Lagrangian Hessian evaluations = 0 
Total CPU secs in IPOPT (w/o function evaluations) = 172.755 
Total CPU secs in NLP function evaluations = 3.740 


EXIT: Maximum Number of Iterations Exceeded. 
x----------------------------------------------------------------------------x

My problem is degenerate, could that be the reason? If so, are there any parameters that I can set which would help reach the optimal solution faster. 

The version is 3.10.2

Following are the options I have set:

AddIpoptNumOption(nlp, "tol", 1e-5);                                                                                                                                                         
AddIpoptNumOption(nlp, "acceptable_dual_inf_tol", 1e-5);                                                                                                                                     
AddIpoptStrOption(nlp, "hessian_approximation", "limited-memory");                                                                                                                           
AddIpoptStrOption(nlp, "output_file", "ipopt.out");  

Regards,
Vivek

-- 
People will do tomorrow what they did today because that is what they did yesterday.


More information about the Ipopt mailing list