Using AMPL Extended Functions with Global Optimization Solvers

Global nonlinear solvers like BARON, LINDO Global, or Couenne only work for certain kinds of expressions that they are designed to handle. Basically, those are expressions that can be built out of simple arithmetic operators and elementary functions like log and cos. (The exact list depends on the solver.) Imported GSL functions like gsl_cdf_beta_P are not recognized, resulting in the various error messages that you see.

LGO uses a different algorithmic approach that allows it to accept just about any continuous function in the objective and constraint expressions. However, LGO is not currently working with GSL functions; this issue has been reported, and we’ll let you know of any progress in resolving it.

Local nonlinear solvers (Knitro, Ipopt, CONOPT, MINOS, SNOPT, . . . ) can work with any smooth function, which includes most GSL functions. But of course, they are not guaranteed to find the global optimum, except in special convex cases. (Knitro does have a feature that tries to improve the solution by repeating the optimization from different starting points.)

1 Like