Journal article
Optim: A mathematical optimization package for Julia
- Abstract:
- Optim provides a range of optimization capabilities written in the Julia programming language (Bezanson et al. 2017). Our aim is to enable researchers, users, and other Julia packages to solve optimization problems without writing such algorithms themselves. The package supports optimization on manifolds, functions of complex numbers, and input types such as arbitrary precision vectors and matrices. We have implemented routines for derivative free, first-order, and second-order optimization methods. The user can provide derivatives themselves, or request that they are calculated using automatic differentiation or finite difference methods. The main focus of the package has currently been on unconstrained optimization, however, box-constrained optimization is supported, and a more comprehensive support for constraints is underway. Similar to Optim, the C library NLopt (Johnson 2008) contains a collection of nonlinear optimization routines. In Python, scipy.optimize supports many of the same algorithms as Optim does, and Pymanopt (Townsend, Niklas, and Weichwald 2016) is a toolbox for manifold optimization. Within the Julia community, the packages BlackBoxOptim.jl and Optimize.jl provide optimization capabilities focusing on derivative-free and large-scale smooth problems respectively. The packages Convex.jl and JuMP.jl (Dunning, Huchette, and Lubin 2017) define modelling languages for which users can formulate optimization problems. In contrast to the previously mentioned optimization codes, Convex and JuMP work as abstraction layers between the user and solvers from a other packages.
- Publication status:
- Published
- Peer review status:
- Peer reviewed
Actions
Access Document
- Files:
-
-
(Preview, Version of record, pdf, 128.2KB, Terms of use)
-
- Publisher copy:
- 10.21105/joss.00615
Authors
+ Engineering and Physical Sciences Research Council
More from this funder
- Funding agency for:
- Riseth, A
- Grant:
- EP/L015803/1
- Publisher:
- Open Journals
- Journal:
- Journal of Open Source Software More from this journal
- Volume:
- 3
- Issue:
- 24
- Article number:
- 615
- Publication date:
- 2018-04-05
- Acceptance date:
- 2018-04-05
- DOI:
- ISSN:
-
2475-9066
- Pubs id:
-
pubs:852951
- UUID:
-
uuid:756cdd7e-1e4e-4226-96ea-3ab28f23963f
- Local pid:
-
pubs:852951
- Source identifiers:
-
852951
- Deposit date:
-
2018-05-21
Terms of use
- Copyright holder:
- Mogensen and Riseth
- Copyright date:
- 2018
- Notes:
- This work is licensed under a Creative Commons Attribution 4.0 International License.
- Licence:
- CC Attribution (CC BY)
If you are the owner of this record, you can report an update to it here: Report update to this record