This book offers an introduction to the topic of optimization, with a focus on practical algorithms and approaches. The book presents an engineering perspective on optimization, with the goal of designing a system that maximizes a given set of metrics subject to constraints. Computational approaches are discussed for solving a variety of optimization problems, such as minimizing costs or accommodating uncertainties in the metrics. The book’s illustrations and examples illustrate mathematical concepts and give concrete implementations in the Julia programming language.
Optimization problems seek the maximum or minimum value for a function, and the solution must satisfy a constraint. A constraint is a quantity that must hold true irrespective of the solution. This makes the problem easy to solve. Once the constraint is known, it is relatively simple to solve the problem. In addition, an optimization problem can be categorized into two types: general problems, and optimization problems. These general problems often involve a number of parameters, and a number of subproblems.