[Coin-ipopt] Is there any free AMPL parser can work with IPOPT ?
Dominique Orban
Dominique.Orban at polymtl.ca
Thu Aug 4 09:53:35 EDT 2005
Hello,
Hoxide Ma wrote:
> I'm newbie to IPOPT. IPOPT is great. It can work with
> AMPL as a solver. I had try it with AMPL Student
> Version , but,Is there any free AMPL parser?
No, there doesn't seem to be any. There is a full version of AMPL that
you can use for free by visiting http://neos.mcs.anl.gov. You can send
your problems via e-mail, http or tcp/ip, select an available solver and
the results of the solve will be returned to you.
> GNU MathProg Language maybe a "can work" Parser , but
> just for linear programming.
Indeed, it only understands linear programming.
> If there is no such parser, why not write a free one?
Tell us when you're ready.
> Another question is , is there any document described
> the NL(nonlinear) format used in AMPL?
No that I know of. The nl files contains info on the problem, data for
the linear parts of all expressions and the expression tree of each
nonlinear expression appearing in the model. Using the very simple model
model;
var x {1..3};
minimize objective:
x[1]^2 + 2*x[2]^4 - sin( x[3] );
data;
let {i in 1..3} x[i] := 1;
and the ampl commands
model simplemod.mod;
data simplemod.dat;
option nl_comments 1;
write gsimplemod;
you will see the following in the nl file:
O0 0 #objective
(this defines the first objective: it has number 0)
o54 #sumlist
3
(operator #54 is a sum and this one has 3 terms)
o5 #^ (power operator)
v0 #x[1] (variable number 0 is our x[1])
n2 (raised to the power 2)
o2 #* (second term of the sum is 2*x[2]^2
n2
o5 #^
v1 #x[2]
n4
o16 #- (third term is -sin(x[3])
o41 #sin
v2 #x[3]
You basically write those trees in so-called reverse Polish notation. A
series of tools is available to read nl files. Check the AMPL Library at
http://netlib.bell-labs.com/netlib/ampl/ (download solvers.tar). There
is a "manual" at http://www.ampl.com/REFS/HOOKING/index.html
Dominique
More information about the Coin-ipopt
mailing list