Lecture 05 - IntegerProgramming
Lecture 05 - IntegerProgramming
December 1, 2023
Introduction
▶ Integer linear program (ILP) applications generally fall into two categories: direct
and transformed
Introduction
▶ Integer linear program (ILP) applications generally fall into two categories: direct
and transformed
▶ In the direct category, the nature of the situation precludes assigning fractional
values to the variables of the model. For example, the problem may involve
determining whether or not a project is undertaken (binary variable) or finding the
optimal number of machines needed to perform a task (general integer variable)
Introduction
▶ Integer linear program (ILP) applications generally fall into two categories: direct
and transformed
▶ In the direct category, the nature of the situation precludes assigning fractional
values to the variables of the model. For example, the problem may involve
determining whether or not a project is undertaken (binary variable) or finding the
optimal number of machines needed to perform a task (general integer variable)
▶ In the transformed category, auxiliary integer variables are used to convert
analytically intractable situations into models that can be solved by available
optimization algorithms. For example, in sequencing two jobs, A and B, on a single
machine, job A may precede job B or vice versa
Introduction
▶ Integer linear program (ILP) applications generally fall into two categories: direct
and transformed
▶ In the direct category, the nature of the situation precludes assigning fractional
values to the variables of the model. For example, the problem may involve
determining whether or not a project is undertaken (binary variable) or finding the
optimal number of machines needed to perform a task (general integer variable)
▶ In the transformed category, auxiliary integer variables are used to convert
analytically intractable situations into models that can be solved by available
optimization algorithms. For example, in sequencing two jobs, A and B, on a single
machine, job A may precede job B or vice versa
▶ The or-constraints make the problem analytically intractable because all
mathematical programming algorithms deal with and-constraints only
Introduction
▶ Integer linear program (ILP) applications generally fall into two categories: direct
and transformed
▶ In the direct category, the nature of the situation precludes assigning fractional
values to the variables of the model. For example, the problem may involve
determining whether or not a project is undertaken (binary variable) or finding the
optimal number of machines needed to perform a task (general integer variable)
▶ In the transformed category, auxiliary integer variables are used to convert
analytically intractable situations into models that can be solved by available
optimization algorithms. For example, in sequencing two jobs, A and B, on a single
machine, job A may precede job B or vice versa
▶ The or-constraints make the problem analytically intractable because all
mathematical programming algorithms deal with and-constraints only
▶ For convenience, a problem is defined as a pure integer program when all the
variables are integer. Else, it is a mixed integer program involving a mixture of
integer and continuous variables
Example I: Capital Budgeting
Deliverable: Decisions about whether or not to undertake a project under limited budget
considerations and preset priorities
Problem Statement: Five projects are being evaluated over a 3-year planning horizon.
The following table gives the expected returns for each project and the associated yearly
expenditures:
Which projects should be selected over the 3-year horizon to maximize the overall
return?
Example I: Capital Budgeting
The problem reduces to a “yes-no” decision for each project. Define the binary variable
xj as (
1 If project j is selected
xj =
0 If project j is not selected
The ILP model is
Deliverables:
▶ In this class of problems, overlapping services are offered by a number of
installations to a number of facilities
▶ The objective is to determine the minimum number of installations that will cover
(i.e., satisfy the service needs of) each facility
▶ For example, water treatment plants can be constructed at various locations, with
each plant serving specific communities
▶ The overlapping occurs when more than one plant can serve a given community
Problem Statement: To promote on-campus safety in a university, the Public Safety
Department is in the process of installing emergency telephones at selected locations.
The department wants to install the minimum number of telephones that serve each of
the campus main streets.
Example II: Set-Covering Problem
The following figure maps the principal streets of the campus
Example II: Set-Covering Problem
min z = x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8
Example II: Set-Covering Problem
subject to,
x1 + x2 ≥ 1 (Street A)
x2 + x3 ≥ 1 (Street B)
x4 + x5 ≥ 1 (Street C)
x7 + x8 ≥ 1 (Street D)
x6 + x7 ≥ 1 (Street E)
x2 + x6 ≥ 1 (Street F)
x1 + x6 ≥ 1 (Street G)
x4 + x7 ≥ 1 (Street H)
x2 + x4 ≥ 1 (Street I)
x5 + x8 ≥ 1 (Street J)
x3 + x5 ≥ 1 (Street K)
Example II: Set-Covering Problem
subject to,
x1 + x2 ≥ 1 (Street A)
▶ In Objective
x2 + x3 ≥ 1 (Street B) function, all the
x4 + x5 ≥ 1 (Street C) cost coefficients
are assumed as 1
x7 + x8 ≥ 1 (Street D) but in reality it
might be different
x6 + x7 ≥ 1 (Street E) from 1
x2 + x6 ≥ 1 (Street F)
x1 + x6 ≥ 1 (Street G)
x4 + x7 ≥ 1 (Street H)
x2 + x4 ≥ 1 (Street I)
x5 + x8 ≥ 1 (Street J)
x3 + x5 ≥ 1 (Street K)
Example II: Set-Covering Problem
subject to,
x1 + x2 ≥ 1 (Street A)
▶ In Objective
x2 + x3 ≥ 1 (Street B) function, all the
x4 + x5 ≥ 1 (Street C) cost coefficients
are assumed as 1
x7 + x8 ≥ 1 (Street D) but in reality it
might be different
x6 + x7 ≥ 1 (Street E) from 1
x2 + x6 ≥ 1 (Street F) ▶ Some set
covering
x1 + x6 ≥ 1 (Street G) problems might
have several
x4 + x7 ≥ 1 (Street H) other side
x2 + x4 ≥ 1 (Street I) constraints
x5 + x8 ≥ 1 (Street J)
x3 + x5 ≥ 1 (Street K)
Example III: Fixed Charge Problems
▶ Deals with situations in which the economic activity incurs two types of costs: a
fixed cost needed to initiate the activity and a variable cost proportional to the level
of the activity
▶ For example, the initial tooling of a machine prior to starting production incurs a
fixed setup cost regardless of how many units are manufactured
▶ Once the setup is done, the cost of labor and material is proportional to the amount
produced
▶ Given that F is the fixed charge, c is the variable unit cost, and x is the level of
production, the cost function is expressed as
(
F + cx if x > 0
C(x) =
0 elsewhere
xj ≤ M y j
The value of M should be selected sufficiently large so as not to restrict the variable xj artificially
Because the customer makes about 200 minutes of calls a month, then xj ≤ 200, ∀j, and it is
safe to select M = 200
Example III: Fixed Charge Problems-Choosing a Telephone
company
subject to,
x1 + x2 + x3 = 200
x1 ≤ 200y1
x2 ≤ 200y2
x3 ≤ 200y3
Example III: Fixed Charge Problems-Choosing a Telephone
company
▶ The formulation shows that the j th monthly flat fee will be part of the objective
function z only if yj = 1, which can happen only if xj > 0
▶ If xj = 0 at the optimum, then the minimization of z, together with the fact that the
objective coefficient of yj is positive, forces yj to equal zero, as desired
▶ The optimum solution yields x3 = 200, y3 = 1, and all the remaining variables equal
to zero, which shows that BabyBell should be selected as the long-distance carrier
▶ Remember, that the information conveyed by y3 = 1 is redundant because the same
result is implied by x3 > 0(= 200)
▶ Actually, the main reason for using yj is to account for the monthly flat fee
▶ In effect, the three binary variables convert an ill- behaved (nonlinear) model into an
analytically tractable formulation
▶ This conversion has resulted in introducing the integer (binary) variables in an
otherwise continuous problem
Either-Or Constraints
▶ In the fixed-charge problem, auxiliary binary variables are used to handle the
discontinuity in the objective cost function
▶ Here some models in which constraints are not satisfied simultaneously (either-or)
or are dependent (if-then), again using auxiliary binary variables will be shown
▶ The transformation uses a mathematical trick to present the special constraint as
and-constraints
Job Sequencing Model
Jobco uses a single machine to process three jobs. Both the processing time and the
due date (in days) for each job are given in the following table. The due dates are
measured from zero, the assumed start time of the first job.
The objective of the problem is to determine the job sequence that minimizes the late
penalty for processing all three jobs
Job Sequencing Model
Define,
▶ The problem has two types of constraints: the noninterference constraints (guaranteeing
that no two jobs are processed concurrently) and the due-date constraints
▶ Consider the noninterference constraints first
▶ Two jobs i and j with processing time pi and pj will not be processed concurrently if
(depending on whether which job is processed first)
xi ≥ xj + pj or xj ≥ xi + pi
Job Sequencing Model
▶ For M sufficiently large, the or-constraints are converted to and-constraints by using
xj + p j + s − +
j − sj = dj
subject to,
x1 − x2 + M y12 ≥ 20
−x1 + x2 − M y12 ≥ 5 − M
x1 − x3 + M y13 ≥ 15
−x1 + x3 − M y13 ≥ 5 − M
x2 − x3 + M y23 ≥ 15
−x2 + x3 − M y23 ≥ 20 − M
x1 + s− +
1 − s1 = 25 − 5
x2 + s− +
2 − s2 = 22 − 20
x3 + s− +
3 − s3 = 35 − 15
x1 , x2 , x3 , s− + − + − +
1 , s1 , s2 , s2 , s3 , s3 ≥ 0 and y12 , y13 , y23 ∈ {0, 1}
Job Sequencing Model
▶ To solve the model, we choose M = 100, a value that is larger than the sum of the
processing times for all three activities
▶ The optimal solution is x1 = 20, x2 , = 0, x3 = 25, This means that job 2 starts at time
0, job 1 starts at time 20, and job 3 starts at time 25, thus yielding the optimal
processing sequence 2 → 1 → 3
▶ The solution calls for completing job 2 at time 0 + 20 = 20, job 1 at time
= 20 + 5 = 25, and job 3 at 25 + 15 = 40 days. Job 3 is delayed by 40 − 35 = 5 days
past its due date at a cost of 5 × $34 = $170
Integer Programming Algorithms
▶ The ILP algorithms are based on exploiting the tremendous computational success
of LP. The strategy of these algorithms involves three steps.
Step 1 Relax the solution space of the ILP by deleting the integer restriction on all integer
variables and replacing any binary variable y with the continuous range 0 ≤ y ≤ 1. The
result of the relaxation is a regular LP
Step 2 Solve the LP, and identify its continuous optimum
Step 3 Starting from the continuous optimum point, add special constraints that iteratively
modify the LP solution space in a manner that eventually renders an optimum extreme
point satisfying the integer requirements
▶ Two general methods have been developed for generating the special constraints in
Step 3
▶ Branch & Bound Method
▶ Cutting Plane Method
▶ Neither method is consistently effective computationally. However, experience
shows that the B&B method is far more successful than the cutting-plane method