MATP6620 Integer and Combinatorial Optimization
MATP6620 Integer and Combinatorial Optimization
MATP6620 Integer and Combinatorial Optimization
Introduction
John E. Mitchell
In an integer optimization problem, the variables are constrained to take integer values.
In a mixed integer optimization problem, some of the variables are required to take
integer values, and the remainder can take fractional values.
For example, a mixed integer linear optimization problem has the form
minx∈Rn ,y∈Rp cT x + dT y
subject to Ax + By ≤ g
x, y ≥ 0, y integer
Here, A and B are given matrices, A ∈ Rm×n , B ∈ Rm×p . The remaining parameters c, d,
g are vectors, c ∈ Rn , d ∈ Rp , g ∈ Rm . All vectors are understood to be column vectors
in this course. Transpose is denoted by the superscript T . The dot product between two
vectors c and x can be denoted cT x.
In a mixed integer nonlinear optimization problem, the objective function and/or the con-
straints may be nonlinear functions.
1.1 Complexity
Linear optimization problems can be solved in polynomial time. This implies the required
runtime doesn’t grow too quickly as the problem size grows.
By contrast, integer optimization problems are often NP-hard (to be defined later), which
means that the runtime can grow very quickly in the problem size in the worst case.
So mixed integer linear optimization problems are a lot harder to solve to global optimality
than linear optimization problems.
1
1.2 Solution techniques
Our emphasis will be on methods for finding global optimal solutions to integer opti-
mization problems. If we have a global minimizer x∗ then there is no other feasible point
x ∈ S with f (x) < f (x∗ ).
In order to prove optimality, we will look at relaxations
The simplest relaxation of a mixed integer linear optimization problem is to ignore integrality,
giving a linear optimization problem. The principal solution techniques we then examine are
2
2 Cutting planes
Initial relaxation:
Solve linear optimization relaxation
min{cT x : Ax ≤ b, x ≥ 0}
Cutting plane aT1 x = b1
3
3 Branch-and-bound: An example
We look at the integer optimization problem
It’s easy to find a feasible solution for this problem: x = (0, 0, 0). Hence we can initialize
with z u = 0. We let
0. Root node:
min{cT x : x ∈ F }
x0 = (1.5, 0, 2), z 0 =
−18.5
x1 ≥ 2
x1 ≤ 1
T
1. min{c x : x ∈ F , 2. min{cT x : x ∈ F,
x1 ≤ 1} x1 ≥ 2}
x1 = (1, 0, 1 23 ), x2 = (2, 85 , 2 29
72 ),
z 1 = −16 23 z 2 = −18 91
x3 ≥ 2 x3 ≥ 3
x3 ≤ 1 x3 ≤ 2
3. min{cT x : x ∈ F,
4. min{cT x : x ∈ F, 5. min{cT x : x ∈ F, 6. min{cT x : x ∈ F,
x1 ≤ 1, x3 ≤ 1}
x1 ≤ 1, x3 ≥ 2} x1 ≥ 2, x3 ≤ 2} x1 ≥ 2, x3 ≥ 3}
x3 = (0, 0, 1),
x4 = (1, 3, 2), x5 = (2, 58 , 2), infeasible, z 6 = +∞
z 3 = −13
z 4 = −6 z 5 = −12 87 fathom by
fathom by
fathom by bounds fathom by bounds infeasibility
integrality
Thus, the optimal solution to (IOP ) is x∗ = (0, 0, 1), with value z ∗ = −13.