This book focuses largely on constrained optimization. It begins with a substantial treatment of linear programming and proceeds to convex analysis, network flows, integer programming, quadratic programming, and convex optimization. Along the way, dynamic programming and the linear complementarity problem are touched on as well. This book aims to be the first introduction to the topic. Specific examples and concrete algorithms precede more abstract topics. Nevertheless, topics covered are developed in some depth, a large number of numerical examples worked out in detail, and many recent results are included, most notably interiorpoint methods. The exercises at the end of each chapter both illustrate the theory, and, in some cases, extend it. Optimization is not merely an intellectual exercise: its purpose is to solve practical problems on a computer. Accordingly, the book comes with software that implements the major algorithms studied.
