Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Optimization Modeling with Applications

Please review the following book chapters (in order):

  1. Chapter 1 of Biegler (2010) introduces classes of optimization problems motivated by applications.

  2. Chapters 1 and 2 in Bynum et al. (2021) provide an overview of Pyomo and optimization modeling.

  3. Chapters 3 and 4 in Bynum et al. (2021) describe core Pyomo features through examples.

  4. Chapter 7 in Bynum et al. (2021) describes special considerations for nonlinear programs.

  5. Chapter 8 in Bynum et al. (2021) describes structured modeling with blocks.

  6. Chapter 11 in Bynum et al. (2021) describes generalized disjunctive programming (logical decisions).

  7. Chapter 12 in Bynum et al. (2021) describes optimization with differential algebraic equations (DAEs).

  8. Chapter 10 in Biegler (2010) provides mathematical background for DAE-constrained optimization.

For stochastic programming, read Birge and Louveaux instead of the Pyomo book. The third edition dropped the PySP chapter, and PySP is no longer shipped with Pyomo; the capability now lives in the separate mpi-sppy package.

Reference: Bynum, M. L., Hackebeil, G. A., Hart, W. E., Laird, C. D., Nicholson, B. L., Siirola, J. D., Watson, J.-P., and Woodruff, D. L. Pyomo — Optimization Modeling in Python, Third Edition. Springer Optimization and Its Applications, Vol. 67, 2021.

pyomo_booknlp_book

Taxonomy of Optimization Problems

Reference: Chapter 1 in Biegler (2010).

The following chart organizes optimization problems based on key characteristics including variable type (continuous versus discrete) and whether the objective and constraints are differentiable. These factors impact which algorithms are best suited for different problems.

taxonomy

Linear Programs (LP) / Linear Optimization Problems

minxfTx(linear objective)s.t.Ax=b(linear constraints)xLxxU(bounds)\begin{align*} \min_{x} \quad & f^T x & \text{(linear objective)} \\ \text{s.t.} \quad & A \cdot x = b & \text{(linear constraints)} \\ & x^L \leq x \leq x^U & \text{(bounds)} \end{align*}

Recall, “s.t.” means “subject to”.

How to enforce x1+x2cx_1 + x_2 \leq c in the above formulation? Convert it to an equality constraint:

x1+x2=s1x_1 + x_2 = s_1

where s1s_1 is a slack variable.

Quadratic Program (QP)

minx12xTHx+fTx(quadratic objective)s.t.Ax=b(linear constraints)xLxxU(bounds)\begin{align*} \min_{x} \quad & \frac{1}{2} x^T H x + f^T x & \text{(quadratic objective)} \\ \text{s.t.} \quad & A \cdot x = b & \text{(linear constraints)} \\ & x^L \leq x \leq x^U & \text{(bounds)} \end{align*}

Parameters: HH, ff, AA, bb, xLx^L, xUx^U

There are specialized solvers for LP, QP, and other convex optimization problems. We will not focus on these in this class, but instead consider algorithms for general nonlinear programs.

Nonlinear Program (NLP)

minxf(x)(nonlinear objective)s.t.g(x)=0(equality constraints)h(x)0(inequality constraints)\begin{align*} \min_{x} \quad & f(x) & \text{(nonlinear objective)} \\ \text{s.t.} \quad & g(x) = 0 & \text{(equality constraints)} \\ & h(x) \leq 0 & \text{(inequality constraints)} \end{align*}

where f(x),g(x),h(x)f(x), g(x), h(x) are all nonlinear functions. Bounds can be modeled as inequality constraints.

Mixed Integer Nonlinear Programs (MINLP)

The most general form is:

minx,yf(x,y)(nonlinear objective)s.t.g(x,y)=0(equality constraints)h(x,y)0(inequality constraints)xRn, y{0,1}m\begin{align*} \min_{x,y} \quad & f(x,y) & \text{(nonlinear objective)} \\ \text{s.t.} \quad & g(x,y) = 0 & \text{(equality constraints)} \\ & h(x,y) \leq 0 & \text{(inequality constraints)} \\ & x \in \mathbb{R}^{n}, ~ y \in \{0,1\}^m \end{align*}

It is much easier to design algorithms to solve MINLPs with the following structure:

minx,yf(x)+gTy(nonlinear objective)s.t.Ax+By=c(linear equality constraints)g(x)=0(nonlinear equality constraints)h(x)0(nonlinear inequality constraints)xRn, y{0,1}m\begin{align*} \min_{x,y} \quad & f(x) + g^T y & \text{(nonlinear objective)} \\ \text{s.t.} \quad & A \cdot x + B \cdot y = c & \text{(linear equality constraints)} \\ & g(x) = 0 & \text{(nonlinear equality constraints)} \\ & h(x) \leq 0 & \text{(nonlinear inequality constraints)} \\ & x \in \mathbb{R}^{n}, ~ y \in \{0,1\}^m \end{align*}

where x are continuous and y are discrete (binary) variables. Notice y only enters linearly into the objective and equality constraint.

Here are common (chemical) engineering optimization problems organized by problem type: optimization_examples