ApplicationError: Solver (ipopt) did not exit normally

204 views
Skip to first unread message

Hayford Adjavor

unread,
Dec 25, 2018, 9:54:21 PM12/25/18
to Pyomo Forum
Hi Team Pyomo,
I keep getting the above-mentioned issue, "ApplicationError: Solver (ipopt) did not exit normally",  anytime I run my model even though I have properly installed the Ipopt solver. I have kindly attached the .nl file for your help and direction on this problem.

Thank you in advance.
name_Model_v12.lp

Santiago Rodriguez

unread,
Dec 26, 2018, 6:41:06 AM12/26/18
to pyomo...@googlegroups.com
Hi Hayford,

It would be better if you send the output from ipopt rather than the nl-file. Also you sent an lp file and not the nl. 

--
You received this message because you are subscribed to the Google Groups "Pyomo Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pyomo-forum...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Hayford Adjavor

unread,
Dec 26, 2018, 10:42:55 PM12/26/18
to Pyomo Forum
Hi Santiago,
Thank you for your response. Whilst I am not quite sure about the output from ipopt, kindly see the attached file and please let me know if this is what you mean. Thank you
output_from_ipopt.txt

Hayford Adjavor

unread,
Dec 26, 2018, 10:45:53 PM12/26/18
to Pyomo Forum
Please also see attached the .nl file instead of the .lp Thank you
name_NonFixed_v12.nl

Santiago Rodriguez

unread,
Dec 27, 2018, 7:13:36 AM12/27/18
to pyomo...@googlegroups.com
Hi Hayford,

There are a couple of things with your model. First, it seems like you are overwriting the consExBoundingA component. That is just giving you a warning but I would suggest checking that is what you are intending to do. By overwriting I mean, you have declared twice the consExBoundingA component. Second, you are passing an invalid option to the solver. Ipopt does not have an output called "timelimit", instead you can use the option "max_cpu_time". I believe that's what is causing ipopt to stop prematurely. However, there is another issue. When I run the NL-file, ipopt throughs a warning regarding the type of variables you have in your model. Ipopt is a nonlinear continuous optimization solver, hence it cannot deal with neither binary nor integer variables. In your pyomo model you have 225 binaries and 14 integer variables. Ipopt relaxes the integrality constraints and treats those variables as continuous variables. If you want to solve your model as is (MINLP) you will need a different solver (couenne, scip, baron, antigone, etc). Maybe you are using one of them already and ipopt is just a subsolver for finding upper bounds? Here is the output I get from Ipopt when running your model:

******************************************************************************

This program contains Ipopt, a library for large-scale nonlinear optimization.

 Ipopt is released as open source code under the Eclipse Public License (EPL).

         For more information visit http://projects.coin-or.org/Ipopt

******************************************************************************


This is Ipopt version 3.12.3, running with linear solver ma27.


Number of nonzeros in equality constraint Jacobian...:      448

Number of nonzeros in inequality constraint Jacobian.:      840

Number of nonzeros in Lagrangian Hessian.............:        0


Total number of variables............................:      239

                     variables with only lower bounds:       14

                variables with lower and upper bounds:      225

                     variables with only upper bounds:        0

Total number of equality constraints.................:       30

Total number of inequality constraints...............:      238

        inequality constraints with only lower bounds:       14

   inequality constraints with lower and upper bounds:       14

        inequality constraints with only upper bounds:      210


iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls

   0  2.4254976e+02 9.80e-01 1.00e+02  -1.0 0.00e+00    -  0.00e+00 0.00e+00   0

   1  1.2509305e+02 9.76e-01 9.56e+01  -1.0 3.69e+00    -  4.93e-02 1.11e-02f  1

   2  1.8182878e+02 8.26e-01 7.91e+01  -1.0 2.51e+00    -  1.75e-01 1.41e-01f  1

   3  2.0856056e+02 7.99e-01 6.34e+01  -1.0 2.54e+00    -  2.11e-01 5.83e-02f  1

   4  5.1901351e+02 1.46e-01 4.84e+01  -1.0 2.75e+00    -  2.19e-01 7.87e-01h  1

   5  5.3127440e+02 5.06e-09 1.00e+01  -1.0 1.75e+00    -  7.93e-01 1.00e+00h  1

   6  4.8506801e+02 3.43e-09 4.81e+00  -1.0 2.82e+00    -  5.61e-01 1.00e+00f  1

   7  4.7092220e+02 4.44e-16 1.76e+00  -1.0 1.79e+00    -  6.89e-01 1.00e+00f  1

   8  4.6243785e+02 5.55e-16 2.18e-01  -1.0 2.48e+00    -  9.06e-01 1.00e+00f  1

   9  3.5740845e+02 8.88e-16 3.07e-01  -1.7 4.78e+00    -  6.16e-01 1.00e+00f  1

iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls

  10  3.3499242e+02 6.05e-10 9.08e-03  -1.7 1.97e+00    -  9.76e-01 1.00e+00f  1

  11  3.0167697e+02 1.05e-10 1.06e-01  -3.8 5.58e+00    -  4.36e-01 8.26e-01f  1

  12  2.9184755e+02 4.03e-13 2.03e-02  -3.8 4.38e+00    -  7.20e-01 9.96e-01f  1

  13  2.9133598e+02 4.59e-11 1.50e-09  -3.8 7.86e-01    -  1.00e+00 1.00e+00f  1

  14  2.9100397e+02 1.68e-13 1.84e-11  -5.7 8.25e-02    -  1.00e+00 1.00e+00f  1

  15  2.9099987e+02 2.22e-15 1.34e-04  -8.6 1.98e-03    -  1.00e+00 9.86e-01f  1

  16  2.9099985e+02 1.33e-15 1.28e+00  -8.6 8.70e-01    -  9.24e-01 4.24e-01f  1

  17  2.9099985e+02 1.55e-15 1.19e+00  -8.6 5.03e-01    -  1.00e+00 1.35e-05f  2

  18  2.9099983e+02 4.29e-11 1.68e-01  -8.6 4.94e-01    -  5.35e-01 8.19e-01f  1

  19  2.9099983e+02 4.29e-11 2.40e-01  -8.6 1.91e+01    -  1.65e-01 1.63e-08f  2

iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls

  20  2.9099982e+02 5.07e-12 7.24e-02  -8.6 9.80e-02    -  1.00e+00 8.82e-01f  1

  21  2.9099982e+02 4.83e-12 5.71e-12  -8.6 1.14e-02    -  1.00e+00 1.00e+00f  1


Number of Iterations....: 21


                                   (scaled)                 (unscaled)

Objective...............:   2.9129111195316604e+01    2.9099982084121285e+02

Dual infeasibility......:   5.7050194056270120e-12    5.6993143862213851e-11

Constraint violation....:   4.8276938002800307e-12    4.8276938002800307e-12

Complementarity.........:   2.8657120286230174e-09    2.8628463165943944e-08

Overall NLP error.......:   2.8657120286230174e-09    2.8628463165943944e-08



Number of objective function evaluations             = 28

Number of objective gradient evaluations             = 22

Number of equality constraint evaluations            = 28

Number of inequality constraint evaluations          = 28

Number of equality constraint Jacobian evaluations   = 22

Number of inequality constraint Jacobian evaluations = 22

Number of Lagrangian Hessian evaluations             = 21

Total CPU secs in IPOPT (w/o function evaluations)   =      0.020

Total CPU secs in NLP function evaluations           =      0.001


EXIT: Optimal Solution Found.

 

Ipopt 3.12.3: Optimal Solution Found


 

Hayford Adjavor

unread,
Dec 27, 2018, 5:28:08 PM12/27/18
to Pyomo Forum
Thank you very much, Santiago. Your assessments are correct. I made changes and everything is fine.
Reply all
Reply to author
Forward
0 new messages