Lecture 13
Lecture 13
ISE 347/447
Lecture 13
• C&T Chapter 11
ISE 347/447 Lecture 13 2
min f (x)
s.t. g(x) ≤ 0
h(x) = 0
x ∈ Zp × Rn−p
ISE 347/447 Lecture 13 4
• Solving general integer programs can be much more difficult than solving
linear programs.
• There is no known polynomial-time algorithm for solving general MILPs.
• Solving the associated linear programming relaxation provides a lower
bound on the optimal solution value of a given MILP.
• In general, an optimal solution to the LP relaxation may not tell us much
about an optimal solution to the MILP.
– Rounding to a feasible integer solution may be difficult.
– The optimal solution to the LP relaxation can be arbitrarily far away
from the optimal solution to the MILP.
– Rounding may result in a solution far from optimal.
– We can sometimes bound the difference between the optimal solution
to the LP and the optimal solution to the MILP (how?).
ISE 347/447 Lecture 13 7
• It is not difficult to see why solving the LP relaxation does not necessarily
yield a solution near an integer optimum.
ISE 347/447 Lecture 13 8
• We can also use binary variables to enforce the condition that a certain
action can only be taken if some other action is also taken.
• Suppose x and y are variables representing whether or not to take certain
actions.
• The constraint x ≤ y says “only take action x if action y is also taken”.
ISE 347/447 Lecture 13 11
xi ≤ yiui
yili ≤ xi ≤ yiui
a>x ≥ yb,
c>x ≥ (1 − y)d,
y ∈ {0, 1}.
• Further generalizing, we can impose that at least k out of m constraints
be satisfied with
(ai)>x ≥ biyi, i ∈ [1..m]
m
X
yi ≥ k,
i=1
yi ∈ {0, 1}
ISE 347/447 Lecture 13 14
Cardinality Constraints
def cardinality_rule(model):
return (summation(model.buy) == model.K)
model.cardinality = Constraint(rule=cardinality_rule)
ISE 347/447 Lecture 13 17
yj ∈ {0, 1}
P
• Constraints of the form j∈T xj = 1 can be used to enforce that exactly
one item should be chosen from a set T .
• Similarly, we can also require that at most one or at least one item should
be chosen.
• Example: Set partitioning problem
– A set partitioning problem is any problem of the form
min c>x
s.t. Ax = 1
xj ∈ {0, 1} ∀j
where A is a 0-1 matrix.
– Each row of A represents an item from a set S.
– Each column Aj represents a subset Sj of S.
– Each variable xj represents selecting subset Sj .
– The constraints say that ∪{j|xj =1}Sj = S.
– In other words, each item must appear in at least one selected subset.
ISE 347/447 Lecture 13 20
Fixed-charge Problems
N
X
max riN xiN − ciyi
i=1
N
X
s.t. xij ≤ yiui, ∀ i ∈ [1..N ],
j=1
N
X N
X
rij xij ≤ xjk , ∀ j ∈ [2..N − 1],
i=1 k=1
N
X
x1j ≤ B,
j=1
xij ≥ 0, ∀ i ∈ [1..N − 1], j ∈ [2..N ],
yi ∈ {0, 1}, ∀ i ∈ [1..N − 1].
ISE 347/447 Lecture 13 27