nl (format)
{{short description|File format for presenting and archiving mathematical programming problems}}
{{lowercase|nl}}
{{Infobox file format
| icon =
| logo =
| screenshot =
| extension = .nl
| mime =
| type code =
| uniform type =
| magic =
| owner = Robert Fourer
David Gay
Brian Kernighan
Bell Labs
| genre = Mathematical programming
| container for =
| contained by =
| extended from =
| extended to =
| standard =
| free =
}}
nl is a file format for presenting and archiving mathematical programming problems.
{{cite tech report|author=David Gay|title=Writing .nl Files|institution=Sandia National Laboratories|year=2005|location=Albuquerque, NM|url=https://cfwebprod.sandia.gov/cfdocs/CompResearch/docs/nlwrite20051130.pdf|citeseerx=10.1.1.60.9659|archive-url=https://web.archive.org/web/20161228202832/https://cfwebprod.sandia.gov/cfdocs/CompResearch/docs/nlwrite20051130.pdf|archive-date=Dec 28, 2016|url-status=dead}} Initially, this format has been invented for connecting solvers to AMPL.
{{cite tech report
| author=David Gay
| title=Hooking Your Solver to AMPL
| institution=Bell Laboratories
| year=1993
| number=97-4-06
| location=Murray Hill, NJ
| url = http://www.ampl.com/REFS/hooking2.pdf
}} It has also been adopted by other systems such as COIN-OR (as one of the input formats), FortSP (for interacting with external solvers), and Coopr (as one of its output formats).
The nl format supports a wide range of problem types, among them:
- Linear programming
- Quadratic programming
- Nonlinear programming
- Mixed-integer programming
- Mixed-integer quadratic programming with or without convex quadratic constraints
- Mixed-integer nonlinear programming
- Second-order cone programming
- Global optimization
- Semidefinite programming problems with bilinear matrix inequalities
- Complementarity problems (MPECs) in discrete or continuous variables
- Constraint programming
{{Cite journal |author1=Robert Fourer |author2=David M. Gay |year=2002 |title=Extending an Algebraic Modeling Language to Support Constraint Programming |url=http://joc.journal.informs.org/content/14/4/322 |url-status=dead |journal=INFORMS Journal on Computing |volume=14 |issue=4 |pages=322–344 |citeseerx=10.1.1.8.9699 |doi=10.1287/ijoc.14.4.322.2825 |archive-url=https://web.archive.org/web/20200730181616/https://pubsonline.informs.org/doi/abs/10.1287/ijoc.14.4.322.2825 |archive-date=Jul 30, 2020}}
The nl format is low-level and is designed for compactness, not for readability. It has both binary and textual representation.
Most commercial and academic solvers accept this format either directly or through special driver programs.
The open-source AMPL Solver Library distributed via Netlib{{Cite web|url=http://www.netlib.org/ampl/|title=Netlib/Ampl}} and AMPL/MP library{{Cite web|url=https://github.com/ampl/mp|title = Ampl/Mp|website = GitHub|date = 10 April 2022}} provide nl parsers that are used in many solvers.
See also
- sol (format) - a file format for presenting solutions of mathematical programming problems