The Journal of Open Source Software· 2018
Optim: A mathematical optimization package for Julia
- 528citations
- 2018year
Short summary
Optim is a new Julia package offering a wide range of optimization capabilities, including support for manifolds, complex numbers, and arbitrary precision inputs, with routines for derivative-free, first-order, and second-order methods.
AI-generated from the title and abstract; the full text is not read.
Key points
- Optim is a Julia package for mathematical optimization.
- Supports optimization on manifolds, complex numbers, and arbitrary precision inputs.
- Includes derivative-free, first-order, and second-order optimization methods.
- Offers automatic differentiation and finite difference methods for derivative calculation.
- Primarily focuses on unconstrained optimization, with ongoing development for constrained problems.
AI-generated from the title and abstract; the full text is not read.
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.
The authors' abstract, as published at the source. The Journal of Open Source Software, 2018 · DOI ↗
Continue with a free account
Ask the paper: 3 free questions a day about this paper; save it, get its citation, new summaries every day for your field. Takeaways are Premium.
Continue free on the webSign in with Google or Apple; no card needed. You come back to this paper.
On your phone:
Field: Computer Graphics and Computer-Aided Design
Computer Graphics and Computer-Aided DesignComputer Science