IP Reference guide for integer programming formulations.
by James B. Orlin
for 15.053 and 15.058
This document is intended as a compact (or relatively compact) guide to the formulation of integer
programs.
For more detailed explanations, see the PowerPoint tutorial on integer programming.
The following are techniques for transforming a problem described logically or in words into an
integer program.
In most cases, the transformation is the simplest to describe.
Unfortunately,
simplest is not the same as "best.±
It is widely accepted that the best integer programming
formulations are those that result in fast solutions by integer programming solvers.
In general, these
are the integer programs for which the linear programming relaxation provides a good bound.
Section 1.
Subset selection problems.
Often, models are based on selecting a subset of elements.
For example, in the knapsack problem, one
wants to select a subset of items to put into a knapsack so as to maximize the value while not going
over a specified weight.
Or one wants to select a subset of potential products in which to invest.
Or,
one has a set of different integers, and one wants to select a subset that sums to a value K. In these
cases, it is typical for the integer variables to be as follows:
⎧
⎪
1
if element
i
is selected
x
i
=
⎨
⎪
0
otherwise.
⎩
Example:
knapsack/capital budgeting. In this example, there are six items to select from.
Item
1
2
3
4
5
6
Cost
5
7
4
3
4
6
Value
16
22
12
8
11
19
Problem: choose items whose cost sums to at most 14 so as to maximize the utility.
maximize
16
x
1
+
22
x
2
+
12
x
3
+
8
x
4
+
11
x
5
+
19
x
6
Formulation:
subject to
5
x
1
+
7
x
2
+
4
x
3
+
3
x
4
+
4
x
5
+
6
x
6
≤
14
x
i
∈
{0,1}
for
i
=
1 to 6.
In general:
Maximize the value of the selected items such that the weight is at most
b
.
C
i
= value of item
i
for i = 1 to
n
.
a
i
= weight of item
i
for i = 1 to
n
.
b
= bound on total weight.
n
maximize
∑
c
i
x
i
i
=
1
n
subject to
∑
a
i
x
i
≤
b
i
=
1
x
i
∈
for
i
=
1 to
n
.
This preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentCovering and packing problems.
In some selection problems, each item
is associated with a subset
of a larger set.
The larger set is
usually referred to as the
ground set
. For example, suppose that there is a collection of
n
sets
5
1
, ",
5
n
where for i = 1 to
n
5
i
is a subset of the ground set {1,
2,
3,
",
m
}. Associated with each set
5
i
is a
cost
C
i
.
⎧
⎧
⎪
1
if
i
∈
S
j
⎪
if set
S
j
is selected
Let
a
ij
=
⎨
Let
x
j
=
⎨
⎪
0
otherwise.
⎪
0
otherwise.
⎩
⎩
The set paCking problem
is the problem
of selecting the maximum
cost
subcollection of sets, no two of which
share a
common
element.
The set Covering problem
is the problem
of selecting the minimum cost
subcollection of sets, so that each element
i
E
{1, 2, ", m} is in one of the sets.
Maximize
∑
n
c
j
x
j
j
=
1
subject to
∑
n
j
=
1
a
ij
x
j
≤
for each
i
∈
{1,.
This is the end of the preview.
Sign up
to
access the rest of the document.
 Spring '07
 JamesOrli
 Management, Linear Programming, Optimization, Constraints, Integer Programming, Constraint

Click to edit the document details