Introduction to numerical optimization
2023-08-15 , HS 120

In this hands-on tutorial, participants will delve into numerical optimization fundamentals and engage with the optimization libraries scipy.optimize and estimagic. estimagic provides a unified interface to many popular libraries such as nlopt or pygmo and provides additional diagnostic tools and convenience features. Throughout the tutorial, participants will get the opportunity to solve problems, enabling the immediate application of acquired knowledge. Topics covered include core optimization concepts, running an optimization with scipy.optimize and estimagic, diagnostic tools, algorithm selection, and advanced features of estimagic, such as bounds, constraints, and global optimization.


In this focused tutorial, participants will be introduced to the fundamentals of numerical optimization and various optimization libraries, including scipy.optimize and estimagic. The session is divided into three blocks, with each focusing on a specific aspect of optimization:

Introduction to numerical optimization and scipy.optimize
Introduction to estimagic and how to pick optimizers
Strategies and tools for advanced optimization

The tutorial is designed to be hands-on, dedicating ample time to practice sessions. Including numerous smaller practice sessions allows participants to apply their knowledge of each topic immediately.

During the first block, participants will learn the basics of numerical optimization, code up their first optimization problem and solve it with scipy.optimize.

In the second block, we introduce estimagic, as a unified interface to algorithms from scipy, nlopt, pygmo, and others. Participants will try different optimizers and learn how estimagic's diagnostic tools can be used to select the suitable algorithm for a given problem.

The third block will focus on practical strategies for advanced optimization problems. Participants will learn about logging and restarting optimizations, global optimization, bounds, and constraints, as well as derivative-free and noisy optimization problems.

The session will conclude with a summary of the main learnings, ensuring that participants have gained a solid understanding of numerical optimization and the various optimization libraries covered.


Category [High Performance Computing]

Other

Expected audience expertise: Domain

some

Expected audience expertise: Python

some

Abstract as a tweet

Attention Scientific Python Developers: Join our tutorial on numerical optimization, exploring fundamentals with #scipy.optimize and estimagic. Learn about core concepts, diagnostic tools, and algorithm selection.

Public link to supporting material

https://github.com/OpenSourceEconomics/euroscipy-estimagic

Project Homepage / Git

https://estimagic.readthedocs.io/en/latest/

I'm a Ph.D. candidate in economics at the University of Bonn, currently working on topics related to computational econometrics. My projects range from contributing to optimization libraries to implementing statistical methods or models of human behavior. I try to develop software that is easy to use and extend. Besides that, I'm a big advocate for reproducibility and the open-source philosophy, which I try to support by being an active member of the Open Source Economics initiative.

Author of estimagic | PhD in economics | Expert in numerical optimization | Building Bandsaws, Pizza Ovens and Furniture

This speaker also appears in: