Algorithms for Optimization
Intro
This book provides a comprehensive introduction to optimization with a focus on practical algorithms. The book approaches optimization from an engineering perspective, where the objective is to design a system that optimizes a set of metrics subject to constraints. Readers will learn about computational approaches for a range of challenges, including searching high-dimensional spaces, handling problems where there are multiple competing objectives, and accommodating uncertainty in the metrics. Figures, examples, and exercises convey the intuition behind the mathematical approaches. The text provides concrete implementations in the Julia programming language.
Topics covered include derivatives and their generalization to multiple dimensions; local descent and first- and second-order methods that inform local descent; stochastic methods, which introduce randomness into the optimization process; linear constrained optimization, when both the objective function and the constraints are linear; surrogate models, probabilistic surrogate models, and using probabilistic surrogate models to guide optimization; optimization under uncertainty; uncertainty propagation; expression optimization; and multidisciplinary design optimization. Appendixes offer an introduction to the Julia language, test functions for evaluating algorithm performance, and mathematical concepts used in the derivation and analysis of the optimization methods discussed in the text.
The book can be used by advanced undergraduates and graduate students in mathematics, statistics, computer science, any engineering field, (including electrical engineering and aerospace engineering), and operations research, and as a reference for professionals.
Download
The full book is available as a PDF.
Second edition
Download PDFFirst edition
Download PDFThe PDF is shared under a Creative Commons CC‑BY‑NC‑ND license.
The copyright of this book has been licensed exclusively to The MIT Press. All inquiries regarding rights should be addressed to The MIT Press, Rights and Permissions Department.
Buy
The second edition is available for pre-order with a release date of January 5, 2027.
The first edition is available in print now.
Outline
Contents of the second edition.
- Introduction
- Derivatives and Gradients
- Bracketing
- Local Descent
- First-Order Methods
- Second-Order Methods
- Direct Methods
- Stochastic Methods
- Population Methods
- Constraints
- Duality
- Linear Programming
- Quadratic Programming
- Disciplined Convex Programming
- Multiobjective Optimization
- Sampling Plans
- Surrogate Models
- Probabilistic Surrogate Models
- Surrogate Optimization
- Optimization under Uncertainty
- Uncertainty Propagation
- Discrete Optimization
- Expression Optimization
- Multidisciplinary Optimization
Appendices
- Julia
- Test Functions
- Mathematical Concepts
Ancillaries
Supporting material is maintained on GitHub.
- Ancillaries — slides and supplementary material.
- Notebooks — the code blocks from the book.
Errata
Please file issues on GitHub or email the address listed at the bottom of the pages of the PDF. The PDF is kept up to date with any corrections.