10h30 - 10h55
Implementation of a Python environment for derivative-free optimization
We present and discuss the design of the DFO.py Python environment for unconstrained derivative-free optimization. DFO.py currently features several methods, including our implementation of UOBYQA and a simplified version of the Mesh-Adaptive Direct Search. The focus is on flexibility and the ability to customize the solution process.
10h55 - 11h20
A workflow for designing optimization methods in the Julia language
In this presentation, we introduce a Julia interface to the CUTEst environment, and demonstrate its usage. We outline a workflow for implementing optimization methods, focusing on quickly creating a working implementation with automated testing, and then improving the code. We use the CUTEst interface for Julia through the development process.
11h20 - 11h45
An Object-Oriented Environment for Large-Scale Optimization
NLP.py is a programming environment to model continuous optimization problems and to design computational methods in the high-level and powerful Python language with performance-critical parts implemented in Cython, a low-level superset of Python that compiles to machine code.
NLP.py is accompanied by an extensive set of building blocks to solve the linear algebra and subproblems typically encountered in the solution of large-scale convex and nonconvex problems, including direct and iterative method for linear systems, linesearch methods, trust-region subproblems, and bound-constrained subproblems.
NLP.py supports several sparse matrix packages, including our own novel Cysparse library.
NLP.py features turnkey algorithms for problems with specific structure along with tools to assess performance.
The extensible nature of NLP.py combines with the might and ubiquity of Python to make it a powerful development and analysis environment for optimization researchers and practitioners.