Book
Optimization algorithms are important tools for engineers, but difficult to use. In fact, none of them is universal, and a good understanding of the different methods is necessary in order to identify the most appropriate one in the context of specific applications. Designed to teach undergraduate engineering students about optimization, this book also provides the professionals employing optimization methods with significant elements to identify the methods that are appropriate for their applications, and to understand the possible failures of certain methods on their problem. The content is meant to be formal, in the sense that the results presented are proven in detail, and all described algorithms have been implemented and tested by the author. In addition, the many numeric and graphic illustrations constitute a significant base for understanding the methods. The book features eight parts. The first part focuses on the formulation and the analysis of the optimization problem. It describes the modeling process that leads to an optimization problem, as well as the transformations of the problem into an equivalent formulation. The properties of the problem and corresponding hypotheses are discussed independently of the algorithms. Subsequently, the optimality conditions, the theoretical foundations that are essential for properly mastering the algorithms, are analyzed in detail in Part II. Before explaining the methods for unconstrained continuous optimization in Part IV, algorithms for solving systems of non linear equations, based on Newton's method, are described in Part III. The algorithms for constrained continuous optimization constitute the fifth part. Part VI addresses optimization problems based on network structures, elaborating more specifically on the shortest path problem, and the maximum flow problem. Discrete optimization problems, where the variables are constrained to take integer values, are introduced in Part VII, where both exact methods and heuristics are presented. The last part is an appendix containing the definitions and theoretical results used in the book.

Part I: Formulation and analysis of the problem
 Chapter 1: Formulation
 Chapter 2: Objective function
 Chapter 3: Constraints
 Chapter 4: Introduction to duality

Part II: Optimality conditions
 Chapter 5: Unconstrained optimization
 Chapter 6: Constrained optimization

Part III: Solving equations
 Chapter 7: Newton's method
 Chapter 8: QuasiNewton methods

Part IV: Unconstrained optimization
 Chapter 9: Quadratic problems
 Chapter 10: Newton's local method
 Chapter 11: Descent methods and line search
 Chapter 12: Trust region
 Chapter 13: QuasiNewton methods
 Chapter 14: Least squares problem
 Chapter 15: Direct search methods

Part V: Constrained optimization
 Chapter 16: The simplex method
 Chapter 17: Newton's method for constrained optimization
 Chapter 18: Interior point methods
 Chapter 19: Augmented Lagrangian method
 Chapter 20: Sequential quadratic programming

Part VI: Networks
 Chapter 21: Introduction and definitions
 Chapter 22: The transhipment problem
 Chapter 23: Shortest paths
 Chapter 24: Maximum flow

Part VII: Discrete optimization
 Chapter 25: Introduction to discrete optimization
 Chapter 26: Exact methods for discrete optimization
 Chapter 27: Heuristics

Part VIII: Appendices
 Appendix A: Notations
 Appendix B: Definitions
 Appendix C: Theorems
 Appendix D: Projects
 References