[Ipopt] Problem with Ipopt/ Bonmin/ NEOS

Andreas Waechter awaechter.iems at gmail.com
Wed Nov 16 10:29:04 EST 2011


Hi Webb,

You didn't formulate your problem as one with discrete variables, 
instead you defined in Cbin a non-smooth function (with "if" 
statement).  Ipopt and Bonmin require smooth function in the model - if 
they are not smooth, Ipopt can easily get stuck at a point that is 
nondifferentiable.  I suggest to look at some introductory literature on 
discrete optimization to find alternative ways to formulate your model.

Regards,

Andreas


On 11/16/2011 12:47 AM, Webb Sprague wrote:
> Hi there,
>
> I am getting an error with Ipopt (see log below) when submitting a job
> via NEOS on Bonmin.  There is probably nothing to be done about it,
> unless we can help diagnose via NEOS, but maybe there is an issue or
> something we can fix.
>
> Here is the output, my mod dat run files are cut and pasted below that:
>
> **** neos output ***
>
> Executing /opt/neos/Drivers/bonmin-ampl/bonmin-ampl-driver.py at time:
> 2011-11-16 00:34:56.107856
> File exists
> You are using the solver bonmin.
> Executing AMPL.
> processing data.
> processing commands.
>
> Substitution eliminates 7 variables.
> Adjusted problem:
> 1 variable, all nonlinear
> 8 constraints, all nonlinear; 8 nonzeros
> 	8 inequality constraints
> 1 nonlinear objective; 1 nonzero.
>
> bonmin:
>
> Error: Ipopt exited with error code -1 Maximum Iterations Exceeded
> ******************************************************************************
> Error: Error at _cmdno 3 executing "solve" command
> This program contains Ipopt, a library for large-scale nonlinear optimization.
> Error: (file amplin, line 40, offset 743):
>   Ipopt is released as open source code under the Common Public License (CPL).
> Error: can't open /tmp/neos-11104/at11108.sol
>           For more information visit http://projects.coin-or.org/Ipopt
> ******************************************************************************
>
> IpOp0008I
>                Num      Status      Obj             It       time
> IpOp0009I     1        FAILED      93748.5        3000     1.50977
> IpOp0010I     r1       FAILED      93748.5        3000     1.50277
>
> ***** model etc *****
> # this works with MINLP on neos, but craps out with bonmin and couenne
>
> set CSCH;
> set FOO := 1 .. card{CSCH};
>
> param price;
> param cost{CSCH};
> param cmin{CSCH};
> param cmax{CSCH};
>
> var Sales>= 3,<= 1000;
>
> var Cbin{c in CSCH} = (if Sales>= cmin[c] and Sales<= cmax[c] then 1 else 0);
>
> var TRev = sum {c in CSCH} Cbin[c] * Sales * price;
> var TCost    = sum {c in CSCH} Cbin[c] * cost[c] * Sales;
> var Profit   = TRev - TCost;
>
> maximize Obj: Profit;
>
> s.t. Foo {c in CSCH}: Cbin[c]>= 0;
> s.t. Bar {c in CSCH}: Cbin[c]<= 1;
>
> data;
> param price := 6.25;
> param: CSCH :
>          cmin    cmax    cost :=
>      1     0      20        2
>      2    20      50        1
>      3    50     999        4
>      4   999    9999      100;
>
> solve;
> display _varname, _var;
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt



More information about the Ipopt mailing list