• Home
  • Blog
  • Services
  • Resources
    • Links
    • Models
  • About
  • Contact
  1. Home
  2. Resources
  3. Links
  4. Textbooks about optimization
Textbooks

Several optimization modelling textbooks are available online. Some are digital versions of hard-copy textbooks, while others are solely in web format. Content varies from focussing on theoretical aspects of optimization mathematics, through to practical applications, and developing models in specific programming languages.

A first course in linear optimization

A first course in linear optimization

This is a book on linear optimization, used for graduate-level courses at the University of Michigan. The examples are written using Python/Gurobi.

Topics include:

  • Modeling.
  • Algebra versus geometry.
  • The simplex algorithm.
  • Duality.
  • Sensitivity analysis.
  • Large-scale linear optimization.
  • Integer-linear optimization.

Textbook: A first course in linear optimization.

  • Python
  • Gurobi
  • Textbooks

Algorithms for optimization

Algorithms for optimization

This book provides a broad introduction to optimization with a focus on practical algorithms for the design of engineering systems. The text is intended for advanced undergraduates and graduate students as well as professionals. The examples are implemented in the Julia programming language.

Topics include:

  • Derivatives and gradients.
  • Stochastic methods.
  • Constrained optimization.
  • Sampling plans.
  • Optimization under uncertainty.
  • Multidisciplinary design optimization.

Textbook: Algorithms for optimization.

  • Textbooks
  • Julia

Convex optimization

Convex optimization

This online textbook, written by Stephen Boyd and Lieven Vandenberghe, covers many aspects of convex optimization.

According to the authors:

This book is about convex optimization, a special class of mathematical optimization problems, which includes least-squares and linear programming problems. It is well known that least-squares and linear programming problems have a fairly complete theory, arise in a variety of applications, and can be solved numerically very efficiently. The basic point of this book is that the same can be said for the larger class of convex optimization problems.

Boyd & Vandenberghe, preface of "Convex optimization"

This textbook includes many examples, along with Python, Julia, and Matlab data for additional exercises available on GitHub.

Textbook: Convex optimization.

GitHub: Data for additional exercises.

  • Python
  • Textbooks
  • Julia
  • Matlab

Decision modeling

Decision modeling

This e-book was written as a text for the topic "Decision Modeling" taught as a Business Management Course by David M. Tulett. There are numerous examples implemented using Excel Solver and LINGO.

Topics include:

  • Applications of linear models.
  • Sensitivity analysis.
  • Network models.
  • Integer models.
  • Goal programming and nonlinear models.
  • Decision analysis.

Textbook: Decision modeling.

  • Solver
  • Textbooks
  • LINGO

Julia programming for Operations Research

Julia programming for Operations Research

This online textbook, written by Changhyun Kwon, covers many aspects of optimization modelling in the Julia programming language using the JuMP (Julia for Mathematical Programming) package.

According to the author:

This book is neither a textbook in numerical methods, a comprehensive introductory book to Julia programming, a textbook on numerical optimization, a complete manual of optimization solvers, nor an introductory book to computational science and engineering—it is a little bit of all.

Changhyun Kwon, preface of "Julia programming for Operations Research"

This textbook includes many examples, which have source code available on GitHub.

Textbook: Julia programming for Operations Research.

GitHub: Code repository for textbook.

  • Textbooks
  • Julia

Mathematical programming and operations research

Mathematical programming and operations research

This is an open textbook in modeling, algorithms, and complexity. The many examples are written in Excel and Python (primarily the PuLP library).

The textbook is a work in progress.

Topics include:

  • Linear programming.
  • Integer programming.
  • Discrete algorithms.
  • Nonlinear programming.

Textbook: Mathematical programming and operations research.

  • Solver
  • Python
  • Textbooks

Mathematical Programming with Julia

Mathematical Programming with Julia

This downloadable textbook, written by Richard Lusby & Thomas Stidsen, primarily teaches mathematical programming modelling and how to use Julia/JuMP for the implementation.

According to the authors:

In this book, we focus on how to create LP and MIP models. The models are first formulated in terms of mathematical equations, which are then implemented in the programming language Julia, using the JuMP package.

The implementation of a mathematical model using the JuMP package closely resembles how the mathematical model would be written. This makes the translation from the formulation to the implementation very intuitive.

Lusby & Stidsen, introduction of "Mathematical Programming with Julia"

This textbook includes many worked examples with Julia source code.

Textbook and source code: Mathematical Programming with Julia.

  • Textbooks
  • Julia

Nature inspired methods for optimization

Nature inspired methods for optimization

This online book is written by Eric Fraga at University College London. It is primarily intended to demonstrate that simple optimization methods, inspired by nature, are able to solve complex problems in process engineering. The book has examples written in the Julia programming language, with the source code available on GitHub.

According to the author:

The focus of this book is on solving problems that arise in process systems engineering (PSE). Optimization plays a crucial part in many PSE activities, including process design and operation. The problems that arise may have one or more of these challenges, in no particular order:

  • Nonlinear models.
  • Multi-modal objective function.
  • Nonsmooth and discontinuous.
  • Distributed quantities.
  • Differential equations.
  • Small feasible regions.
  • Multiple objectives.
Fraga, introduction of "Nature inspired methods for optimization"

Book: Nature inspired methods for optimization.

GitHub: Code repository for textbook.

  • Textbooks
  • Julia

Optimization models

Optimization models

This online textbook, written by Fabio Schoen, is based on an advanced optimization modeling course for students in Management Engineering at Università degli Studi di Firenze.

The textbook's emphasis is on understanding how to model a variety of situations. According to the author:

I feel there is still a wide gap which separates academic research from day to day adoption. And, in my opinion, part of this is due to the lack of sufficient modeling skills. If we cannot model a problem, no matter how sophisticated our optimization algorithm are, we will not be able to solve it nor suggest any decision. We need to communicate our problem to a solver. And to do this we need a deep knowledge of models.

Fabio Schoen, preface of "Optimization models"

Consequently, the textbook describes many optimization model examples, with code written mostly in AMPL. Some examples also have Julia and Pyomo code, with the author welcoming contributions of new or existing models from readers.

Textbook: Optimization models.

  • Pyomo
  • Textbooks
  • Julia
  • AMPL

Practical optimization: A gentle introduction

Practical optimization: A gentle introduction

Optimization 101 is an online textbook written by Distinguished Research Professor Emeritus John W. Chinneck.

Topics include:

  • Linear programming.
  • Networks.
  • Integer programming.
  • Heuristics.
  • Dynamic programming.
  • Non-linear programming.

Textbook: Practical optimization: A gentle introduction.

  • Textbooks

Search

Latest blog articles

  • Production mix - Conclusions
  • Production mix - Model 11, SciPy
  • Production mix - Model 10, CVXPY
  • Production mix - Model 9, Gekko
  • Production mix - Model 8, OR-Tools
  • Production mix - Model 7, PuLP
  • Production mix - Model 6, Pyomo abstract
  • Production mix - Model 5, Pyomo using def
  • Production mix - Model 4, Pyomo json file
  • Production mix - Model 3, Pyomo external data
  • Production mix - Model 2, Pyomo separate data
  • Production mix - Model 1, Pyomo concrete

Latest resources

  • Post Office problem in OR-tools CP-SAT solver
  • Nature inspired methods for optimization
  • Mathematical Programming with Julia
  • Julia programming for Operations Research
  • Convex optimization
  • EdX: Convex optimization
  • EdX: Mathematical optimization for engineers
  • Coursera: Optimization for decision making
  • Coursera: Discrete optimization
  • Coursera: Discrete optimization (series)
  • Coursera: Operations Research (series)
  • MIT OpenCourseWare

Social

Twitter   Buy me a coffee   LinkedIn   GitHub   Mastodon

© 2020-2023 Solver Max

Term and conditions   Privacy   Contact us