A comprehensive introduction to optimization with a focus on practical algorithms for the design of engineering systems.
This book offers 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.
An excellent work on mathematical optimization. Very accessible and of broad scope, this book should be of interest to various scientists and engineers. All concepts are illustrated using Julia code, making it easily to implement the algorithms or design your own variants.
A highly readable introduction to a wide variety of ideas in optimization. This book is encyclopedic, in the sense that it covers a great deal, but none of it in great depth, instead opting to very efficiently get across the main ideas of each approach. Nearly every algorithm is accompanied with illustrations, and nearly every has an implementation in Julia. Sticking with the goals of the book, the code typically isn't highly optimized, but it's very nicely organized to be easily read and comprehended.
Very informative book about optimization. It contains various algorithms and methods for many optimization categories. In addition, programs about most of the algorithms are provided, which helped me clear some not so clear parts in the text. However, in some cases, it does not give many details about the derivation of the equations. Also, the programs are written in Julia. It would be more preferable to be written in Python.