AmplNLReader.jl
Julia AMPL Models Conforming to NLPModels.jl
Install / Use
/learn @JuliaSmoothOptimizers/AmplNLReader.jlREADME
AmplNLReader.jl: A Julia interface to AMPL
How to Cite
If you use AmplNLReader.jl in your work, please cite using the format given in CITATION.bib.
Stable release 
Development version
How to Install
At the Julia prompt,
pkg> add AmplNLReader
Testing
pkg> test AmplNLReader
Creating a Model
For an introduction to the AMPL modeling language, see
- R. Fourer, D. M. Gay, and B. W. Kernighan, AMPL: A Mathematical Programming Language, Management Science 36, pp. 519-554, 1990.
- R. Fourer, D. M. Gay, and B. W. Kernighan, AMPL: A Modeling Language for Mathematical Programming, Duxbury Press / Brooks/Cole Publishing Company, 2003.
- D. Orban, The Lightning AMPL Tutorial. A Guide for Nonlinear Optimization Users, GERAD Technical Report G-2009-66, 2009.
Suppose you have an AMPL model represented by the model and data files mymodel.mod and mymodel.dat. Decode this model as a so-called nl file using
ampl -ogmymodel mymodel.mod mymodel.dat
For example:
julia> using AmplNLReader
julia> hs33 = AmplModel("hs033.nl")
Minimization problem hs033.nl
nvar = 3, ncon = 2 (0 linear)
julia> print(hs33)
Minimization problem hs033.nl
nvar = 3, ncon = 2 (0 linear)
lvar = 1x3 Array{Float64,2}:
0.0 0.0 0.0
uvar = 1x3 Array{Float64,2}:
Inf Inf 5.0
lcon = 1x2 Array{Float64,2}:
-Inf 4.0
ucon = 1x2 Array{Float64,2}:
0.0 Inf
x0 = 1x3 Array{Float64,2}:
0.0 0.0 3.0
y0 = 1x2 Array{Float64,2}:
-0.0 -0.0
There is support for holding multiple models in memory simultaneously. This should be transparent to the user.
Optimization Problems
AmplNLReader.jl currently focuses on continuous problems conforming to NLPModels.jl.
AmplModel objects support all methods associated to NLPModel objects.
Please see the NLPModels.jl documentation for more information.
The following table lists extra methods associated to an AmplModel.
See Hooking your Solver to AMPL for background.
Method | Notes
--------------------------------|--------------------------------
write_sol(nlp, msg, x, y) | Write primal and dual solutions to file
Missing Methods
- methods for LPs (sparse cost, sparse constraint matrix)
- methods to check optimality conditions.
Related Skills
node-connect
341.8kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
84.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
341.8kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
84.6kCommit, push, and open a PR
