NLPModels
Data Structures for Optimization Models
Science Score: 77.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 3 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
✓Committers with academic emails
1 of 20 committers (5.0%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.1%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
Data Structures for Optimization Models
Basic Info
Statistics
- Stars: 181
- Watchers: 12
- Forks: 37
- Open Issues: 16
- Releases: 57
Topics
Metadata Files
README.md
NLPModels
| Documentation | CI | Coverage | Release | DOI |
|:-----------------:|:------:|:------------:|:-----------:|:-------:|
|
|
|
|
|
|
This package provides general guidelines to represent non-linear programming (NLP) problems in Julia and a standardized API to evaluate the functions and their derivatives. The main objective is to be able to rely on that API when designing optimization solvers in Julia.
How to Cite
If you use NLPModels.jl in your work, please cite using the format given in CITATION.cff.
Optimization Problems
Optimization problems are represented by an instance of (a subtype of) AbstractNLPModel.
Such instances are composed of
* an instance of NLPModelMeta, which provides information about the problem, including the number of variables, constraints, bounds on the variables, etc.
* other data specific to the provenance of the problem.
See the documentation for details on the models and the API.
Installation
julia
pkg> add NLPModels
Models
This package provides no models, although it allows the definition of manually written models.
Check the list of packages that define models in this page of the docs
Main Methods
If model is an instance of an appropriate subtype of AbstractNLPModel, the following methods are normally defined:
obj(model, x): evaluate f(x), the objective atxcons(model x): evaluate c(x), the vector of general constraints atx
The following methods are defined if first-order derivatives are available:
grad(model, x): evaluate ∇f(x), the objective gradient atxjac(model, x): evaluate J(x), the Jacobian of c atxas a sparse matrix
If Jacobian-vector products can be computed more efficiently than by evaluating the Jacobian explicitly, the following methods may be implemented:
jprod(model, x, v): evaluate the result of the matrix-vector product J(x)⋅vjtprod(model, x, u): evaluate the result of the matrix-vector product J(x)ᵀ⋅u
The following method is defined if second-order derivatives are available:
hess(model, x, y): evaluate ∇²L(x,y), the Hessian of the Lagrangian atxandy
If Hessian-vector products can be computed more efficiently than by evaluating the Hessian explicitly, the following method may be implemented:
hprod(model, x, v, y): evaluate the result of the matrix-vector product ∇²L(x,y)⋅v
Several in-place variants of the methods above may also be implemented.
The complete list of methods that an interface may implement can be found in the documentation.
Attributes
NLPModelMeta objects have the following attributes (with S <: AbstractVector):
Attribute | Type | Notes
------------|--------------------|------------------------------------
nvar | Int | number of variables
x0 | S | initial guess
lvar | S | vector of lower bounds
uvar | S | vector of upper bounds
ifix | Vector{Int} | indices of fixed variables
ilow | Vector{Int} | indices of variables with lower bound only
iupp | Vector{Int} | indices of variables with upper bound only
irng | Vector{Int} | indices of variables with lower and upper bound (range)
ifree | Vector{Int} | indices of free variables
iinf | Vector{Int} | indices of visibly infeasible bounds
ncon | Int | total number of general constraints
nlin | Int | number of linear constraints
nnln | Int | number of nonlinear general constraints
y0 | S | initial Lagrange multipliers
lcon | S | vector of constraint lower bounds
ucon | S | vector of constraint upper bounds
lin | Vector{Int} | indices of linear constraints
nln | Vector{Int} | indices of nonlinear constraints
jfix | Vector{Int} | indices of equality constraints
jlow | Vector{Int} | indices of constraints of the form c(x) ≥ cl
jupp | Vector{Int} | indices of constraints of the form c(x) ≤ cu
jrng | Vector{Int} | indices of constraints of the form cl ≤ c(x) ≤ cu
jfree | Vector{Int} | indices of "free" constraints (there shouldn't be any)
jinf | Vector{Int} | indices of the visibly infeasible constraints
nnzo | Int | number of nonzeros in the gradient
nnzh | Int | number of nonzeros in the sparse Hessian
nnzj | Int | number of nonzeros in the sparse Jacobian
lin_nnzj | Int | number of nonzeros in the linear part of sparse Jacobian
nln_nnzj | Int | number of nonzeros in the nonlinear part of sparse Jacobian
minimize | Bool | true if optimize == minimize
islp | Bool | true if the problem is a linear program
name | String | problem name
Bug reports and discussions
If you think you found a bug, feel free to open an issue. Focused suggestions and requests can also be opened as issues. Before opening a pull request, start an issue or a discussion on the topic, please.
If you want to ask a question not suited for a bug report, feel free to start a discussion here. This forum is for general discussion about this repository and the JuliaSmoothOptimizers, so questions about any of our packages are welcome.
Owner
- Name: JuliaSmoothOptimizers
- Login: JuliaSmoothOptimizers
- Kind: organization
- Location: DOI: 10.5281/zenodo.2655082
- Website: https://juliasmoothoptimizers.github.io
- Repositories: 63
- Profile: https://github.com/JuliaSmoothOptimizers
Infrastructure and Solvers for Continuous Optimization in Julia
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
authors:
- affiliation: >-
GERAD and Department of Mathematics and
Industrial Engineering, Polytechnique Montréal,
QC, Canada
family-names: Orban
given-names: Dominique
orcid: 'https://orcid.org/0000-0002-8017-7687'
email: dominique.orban@gerad.ca
- affiliation: 'Netherlands eScience Center, Amsterdam, NL'
family-names: Soares Siqueira
given-names: Abel
orcid: 'https://orcid.org/0000-0003-4451-281X'
email: abel.s.siqueira@gmail.com
- family-names: contributors
cff-version: 1.2.0
identifiers:
- description: Zenodo archive
type: doi
value: 10.5281/zenodo.2558627
keywords:
- Nonlinear Optimization
- Julia
- Nonlinear Programming
license: MPL-2.0
message: >-
If you use this software, please cite it using the
metadata from this file.
repository-code: >-
https://github.com/JuliaSmoothOptimizers/NLPModels.jl
title: >-
NLPModels.jl: Data Structures for Optimization Models
type: software
version: 0.20.0
date-released: '2023-03-23'
GitHub Events
Total
- Create event: 17
- Commit comment event: 4
- Release event: 2
- Issues event: 11
- Watch event: 8
- Delete event: 10
- Issue comment event: 51
- Push event: 60
- Pull request review comment event: 30
- Pull request review event: 36
- Pull request event: 32
- Fork event: 2
Last Year
- Create event: 17
- Commit comment event: 4
- Release event: 2
- Issues event: 11
- Watch event: 8
- Delete event: 10
- Issue comment event: 51
- Push event: 60
- Pull request review comment event: 30
- Pull request review event: 36
- Pull request event: 32
- Fork event: 2
Committers
Last synced: 7 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Abel Soares Siqueira | a****a@g****m | 325 |
| Dominique Orban | d****n@g****m | 153 |
| tmigot | t****t@g****m | 62 |
| Alexis Montoison | a****n@p****a | 35 |
| Geoffroy Leconte | g****0@g****m | 12 |
| AntoninKns | a****s@e****r | 7 |
| github-actions[bot] | 4****] | 6 |
| Páll Haraldsson | P****n@g****m | 5 |
| RAYNAUD Paul (raynaudp) | r****p@g****n | 2 |
| MaxenceGollier | 1****r | 2 |
| Monssaf Toukal | t****f@g****m | 2 |
| Tamas K. Papp | t****p@g****m | 2 |
| probot-auto-merge[bot] | p****] | 2 |
| Alberto De Marchi | a****i@g****m | 1 |
| Elliot Saba | s****t@g****m | 1 |
| JPD | v****i@g****m | 1 |
| Julia TagBot | 5****t | 1 |
| Rishabh Gupta | 6****7 | 1 |
| Xiukun Hu | x****4@u****u | 1 |
| Tim Holy | t****y@g****m | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 44
- Total pull requests: 133
- Average time to close issues: 6 months
- Average time to close pull requests: 18 days
- Total issue authors: 17
- Total pull request authors: 16
- Average comments per issue: 3.61
- Average comments per pull request: 3.04
- Merged pull requests: 109
- Bot issues: 0
- Bot pull requests: 16
Past Year
- Issues: 7
- Pull requests: 27
- Average time to close issues: 2 days
- Average time to close pull requests: 3 days
- Issue authors: 2
- Pull request authors: 4
- Average comments per issue: 1.43
- Average comments per pull request: 1.44
- Merged pull requests: 18
- Bot issues: 0
- Bot pull requests: 2
Top Authors
Issue Authors
- tmigot (15)
- amontoison (7)
- abelsiqueira (5)
- dpo (3)
- vepiteski (2)
- frapac (2)
- danphenderson (1)
- votroto (1)
- finmod (1)
- AntoninKns (1)
- MaxenceGollier (1)
- tnnguyen103 (1)
- JuliaTagBot (1)
- geoffroyleconte (1)
- sshin23 (1)
Pull Request Authors
- tmigot (63)
- amontoison (27)
- github-actions[bot] (20)
- abelsiqueira (14)
- geoffroyleconte (7)
- arnavk23 (6)
- MaxenceGollier (4)
- dpo (3)
- timholy (2)
- paraynaud (2)
- JSOBot (2)
- grishabh147 (1)
- frapac (1)
- aldma (1)
- PallHaraldsson (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- julia 614 total
- Total dependent packages: 40
- Total dependent repositories: 8
- Total versions: 48
juliahub.com: NLPModels
Data Structures for Optimization Models
- Documentation: https://docs.juliahub.com/General/NLPModels/stable/
- License: MPL-2.0
-
Latest release: 0.21.5
published 8 months ago
Rankings
Dependencies
- actions/github-script v3.1.0 composite
- actions/github-script v6 composite
- julia-actions/setup-julia latest composite
- actions/checkout v2 composite
- julia-actions/setup-julia latest composite
- JuliaRegistries/TagBot v1 composite
- actions/cache v1 composite
- actions/checkout v2 composite
- actions/download-artifact v2 composite
- actions/upload-artifact v2 composite
- julia-actions/julia-buildpkg v1 composite
- julia-actions/setup-julia v1 composite
- actions/cache v1 composite
- actions/checkout v2 composite
- codecov/codecov-action v1 composite
- julia-actions/julia-buildpkg v1 composite
- julia-actions/julia-processcoverage v1 composite
- julia-actions/julia-runtest v1 composite
- julia-actions/setup-julia v1 composite
- actions/checkout v2 composite
- peter-evans/create-pull-request v3 composite