IPOPT ==> black screen

113 views
Skip to first unread message

Ali Al-Zahrani

unread,
Aug 24, 2013, 6:39:32 PM8/24/13
to ai...@googlegroups.com
Hello guys,
I have MINLP problem, and I would like to solve it using IPOPT. However, every time I run the program, it generates several of the follwoing message:
Derivative evaluation error in Rates(users - 2) (see solve at line 32 in user-defined function section "MainExecution"). Domain error for log10( -1.20389859097 ) w.r.t. variables p(users - 2,channels - 020) = -0.000000005263, p(users - 2,channels - 019) = -0.000000005936 and p(users - 2,channels - 018) = -0.000000006047 (amongst others).

Moreover, a black screen pops up (please see attached file). Once I close this black screen, Aimms completely shuts down as well and then a debugging dialog screen comes in...

your help in this issue is highly appreciated,

Cheers,
Aimms_IPOPT.jpg

Wilger van de Beek

unread,
Aug 27, 2013, 9:00:23 AM8/27/13
to ai...@googlegroups.com
Another possible solution could be:

Open your Windows Control Panel. Then go to System and click on the link: Advanced system settings. In the System Properties window you should go to Advanced and click on Environment Variables. Please create a new System Variable and name it: KMP_WARNINGS with value 0 and click on OK twice.

More information can be found on the following webpage of Intel: http://software.intel.com/en-us/articles/omp-warning-cannot-open-message-catalog-libiomp5uidll/

Please let me know whether this was useful to you.

Kind regards,

Wilger van de Beek
AIMMS Customer Service


Op zondag 25 augustus 2013 00:39:32 UTC+2 schreef Ali Al-Zahrani:

Ali Al-Zahrani

unread,
Aug 27, 2013, 4:37:40 PM8/27/13
to ai...@googlegroups.com
Hello guys,
Thank you very much for your help.
Regarding the black screen, you'r right. Once I deleted Mosek, it has gone. However, I'ev got to get it back since I noticed that it is faster in solveing convex NLP. Once I get it back the probelm didn't come again!

Regarding the derivative evaluation error, still it is there. My problem is convex binary NLP (it is convex after relaxing the binary varaibles). For more info, see attached pdf file.

Yes, I am using lazyOA, with IPOPT and sometimes Mosek.
All my variables (X & p, both with indecies (j,m)) are positive, and thier ranges are defined as well (i.e. X: banary, p: [0,PT], where PT=45). Moreover, all parameters are positive; however, thier values are so tiny (in the order of 10^(-12)).
The irony is that when I use IPOPT, the derivative evaluation error is due to Rates constraint of user 3. On the other hand, when I use Mosek, the derivative evaluation error is due to Rates const. of user 5. In both cases, all data/parameters values are same (See attached snapshots).
please feel free to ask any question.

Your help is highly appreciated,
cheers...
optimizationproblem.pdf
IPOPT.png
Mosek.png
Rate_const..png

Marcel Hunting

unread,
Aug 28, 2013, 2:59:04 AM8/28/13
to ai...@googlegroups.com
Hi,

Good to hear that the black screen problem was resolved. And happy to see that you are using lazy Outer Approximation.

IPOPT and Mosek use different solution paths and they might ask AIMMS to evaluate different points which might lead to derivative evaluation errors for different constraints.

Maybe it helps to rewrite the Rates constraint. The Rates(j) constraint is of the form:

  sum[ m, log10(f(m,j)) ] >= c(j)

where f(m,j) is a nonlinear function depending on p. This can be rewritten as:

  log10( prod[ m, f(m,j) ] ) >= c(j)

which can be rewritten as:

  prod[ m, f(m,j) ] >= power( 10, c(j) )

This last reformulation should give less derivative evaluation errors.

Note: In my experience non-barrier solvers like CONOPT and SNOPT perform better with Outer Approximation than barrier solvers like IPOPT and Mosek because CONOPT and SNOPT can make use of starting point information (provided by the MIP solver, i.e., the incumbent in lazy OA) while IPOPT and Mosek cannot.

Best regards,

Marcel

Ali Al-Zahrani

unread,
Aug 30, 2013, 3:02:37 PM8/30/13
to ai...@googlegroups.com
Hello,
After I applied the reformulation, I got the following:

  • When I use CONOPT or SNOPT, the prgross window tells me that the program status is optimal. However, the solver does not show the solution (optimal values of variables), rather it shows that the value of Objective fun= na, as if the program is not feasiable. (see snapshots please)
  • When I use Mosek or IPOPT, I got a linearization error and a warning that the problem is not convex!! (see snapshots for more info.)
Thank you very much for your continouse support.

cheers,
ConOpt.png
SNOPT.png
Mosek.png
IPOPT.png

Ali Al-Zahrani

unread,
Aug 30, 2013, 5:58:14 PM8/30/13
to ai...@googlegroups.com
 when I use CONOPT, it takes long time to finish. Moreover, when I press Ctrl+shift+s to interrupt it, it fails to stop to the extent that I sometimes have to use task manager to force Aimms to shut down.
That's why I prefer to use Mosek or IPOPT.



Marcel Hunting

unread,
Sep 2, 2013, 6:55:39 AM9/2/13
to ai...@googlegroups.com
Hi,

I did not realize that by using the reformulation of taking the e-function for the left and right side you give up convexity of the function used in the constraint (strictly spoken concavity because you have f(x) >= b with f concave which is equivalent to -f(x) <= -b with -f convex).

The reformulation is indeed not convex so that explains the Mosek error. The CONOPT, SNOPT and IPOPT behavior/error seems odd and I have not seen it before. If you want us to investigate that we would need the project which you can send to our support e-mail. Lazy AOA is designed for convex MINLP and for non-convex MINLP it might return a sub-optimal solution or no solution at all. The reformulation that I proposed is therefore clearly not the way to go.

If CONOPT only takes a long time to finish for the first initial NLP that is solved (and not for the other NLPs) then you might want to try using IPOPT or Mosek for solving the first initial NLP and using CONOPT or SNOPT for solving the other NLPs that are solved after finding a new incumbent by CPLEX. Those NLPs have a good starting point and that might speed-up CONOPT.

Best regards,

Marcel

Marcel Hunting

unread,
Jan 10, 2017, 12:11:53 PM1/10/17
to ai...@googlegroups.com
Hi,

Probably the solver Mosek is in the solver configuration and conflicting with IPOPT, and therefore you should remove Mosek from the solver configuration. To open the solver configuration use Settings - Solver Configuration from the menu bar. Restart AIMMS after deleting Mosek.

To solve the derivative evaluation error you might need to add ranges to the variables. For example, should it be possible for variable p to become negative? If that does not help then you might need to add your AIMMS project or at least show the definition of constraint Rates.

Note that IPOPT itself cannot be used to solve MINLP problems. Are you using AOA with IPOPT as NLP solver?

Best regards,

Marcel Hunting
AIMMS Software Developer
Reply all
Reply to author
Forward
0 new messages