This book provides a systematic introduction to optimization. It is written from an engineering perspective, with the objective of designing a system to optimize a set of metrics with constraints. The book discusses computational approaches to solving a wide range of optimization challenges, such as multiple competing objectives, uncertainty in the metrics, and the need to consider time-dependent variables. It includes examples and figures that convey mathematical concepts, and concrete implementations in the Julia programming language.

Optimization problems can be classified into two categories: geometric and non-linear. Geometric optimization deals with finding the area of a geometric shape, for example. The quantities to be optimized can be expressed as functions or equations. The constraints should be noted as well. Sometimes, the answer to the optimization problem may not be relevant to the problem at hand. However, this doesn’t mean that you shouldn’t try it out! Just make sure you understand what is going on in the problem, as there might be a better way.