0% found this document useful (0 votes)
19 views

OR2P2 IP Update

The document discusses integer programming and provides examples to illustrate key concepts. It begins by defining pure integer programming, mixed integer programming, and 0-1 integer programming problems. It then discusses formulating integer programming problems, providing examples of project selection, fixed-charge problems, and choosing a telephone service to minimize costs. Finally, it describes the branch-and-bound algorithm for solving integer programs, using a graphical example to demonstrate the branching, bounding, and fathoming steps.

Uploaded by

dana mubarak
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views

OR2P2 IP Update

The document discusses integer programming and provides examples to illustrate key concepts. It begins by defining pure integer programming, mixed integer programming, and 0-1 integer programming problems. It then discusses formulating integer programming problems, providing examples of project selection, fixed-charge problems, and choosing a telephone service to minimize costs. Finally, it describes the branch-and-bound algorithm for solving integer programs, using a graphical example to demonstrate the branching, bounding, and fathoming steps.

Uploaded by

dana mubarak
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 29

OR 2

Dr. Moayad Tanash


Introduction to Integer Programming

• An IP in which all variables are required to be integers is call a


pure integer programming problem.

• An IP in which only some of the variables are required to be


integers is called a mixed integer programming problem.

• An integer programming problem in which all the variables must


be 0 or 1 is called a 0-1 IP.

• The LP obtained by omitting all integer or 0-1 constraints on


variables is called LP relaxation of the IP.
Formulating Integer Programming
Problems
• Decisions about whether or not to undertake a
project is usually made under limited budget
considerations and preset priorities. The next
example deals with one of these situations
Example 9.1-1 (Project selection)
Example 9.1-1 (Project selection)

• The problem reduces to a “yes–no” decision for


each project. Define the binary variable xj
Example 9.1-1 (Project selection)
Fixed-charge Problem

• The fixed-charge problem deals with situations in which the economic


activity incurs two types of costs:
1- a fixed cost needed to initiate the activity
2- 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.
Example 9.1-3 (choosing a
Telephone company)
I have been approached by three telephone companies to subscribe
to their long-distance service in the United States. MaBell will charge
a flat $16 per month plus $.25 a minute. PaBell will charge $25 a
month but will reduce the per-minute cost to $.21. As for BabyBell,
the flat monthly charge is $18, and the cost per min is $.22. I usually
make an average of 200 minutes of long-distance calls a month.
Assuming that I do not pay the flat monthly fee unless I make calls
and that I can apportion my calls among all three companies as I
please, how should I use the three companies to minimize my
monthly telephone bill?
Example 9.1-3 (choosing a
Telephone company)
• This problem can be solved readily without ILP. Nevertheless, it is
instructive to formulate it as an integer program. Define
• x1 = MaBell long-distance minutes per month
• x2 = PaBell long-distance minutes per month
• x3 = BabyBell long-distance minutes per month
• y1 = 1 if x1 > 0 and 0 if x1 = 0
• y2 = 1 if x2 > 0 and 0 if x2 = 0
• y3 = 1 if x3 > 0 and 0 if x3 = 0
Example 9.1-3 (choosing a
Telephone company)
• We can ensure that yj equals 1 when xj is positive by using the
constraint xj <=Myj , j = 1, 2, 3

• The value of M should be selected sufficiently large so as not to


restrict the variable xj artificially.

• Because I make about 200 minutes of calls a month, then xj … 200
for all j, and it is safe to select M = 200. The complete model is
Example 9.1-3 (choosing a
Telephone company)

The optimum solution yields x3 = 200, y3 = 1


Integer Programming Algorithm
The basic concept underlying the branch-and-bound technique is to
divide and conquer.
Since the original “large” problem is hard to solve directly,
it is divided into smaller and smaller subproblems
until these subproblems can be conquered.
The dividing (branching) is done by partitioning the entire set of
feasible solutions into smaller and smaller subsets.
The conquering (fathoming) is done partially by
(i) giving a bound for the best solution in the subset;
(ii) discarding the subset if the bound indicates that
it can’t contain an optimal solution.

These three basic steps


– branching, bounding, and fathoming –
are illustrated on the following example.
Example of Branch-and-Bound
6
x1 + x 2 = 6 Max Z = 5x1 + 8x2
5 s.t. x1 + x2  6
5x1 + 9x2  45
4 (2.25, 3.75) x 1 , x2 ≥ 0
integer
3

Z=41.25
2 5x1 + 9x2 = 45

1
Z=20

0 1 2 3 4 5 6 7 8
Utilizing the information about the
optimal solution of the LP-relaxation
Fact: If LP-relaxation has integral optimal solution x*,
then x* is optimal for IP too.
 In our case, (x1, x2) = (2.25, 3.75) is the optimal solution of the
LP-relaxation. But, unfortunately, it is not integral.

• The optimal value is 41.25 .


Fact: OPT(LP-relaxation) ≥ OPT(IP)
(for maximization problems)
That is, the optimal value of the LP-relaxation is an
upper bound for the optimal value of the integer
program.
• In our case, 41.25 is an upper bound for OPT(IP).
Branching step
• In an attempt to find out more about the location of the IP’s
optimal solution, partition the feasible region of the LP-relaxation.
• Choose a variable that is fractional in the optimal solution to the
LP-relaxation – say, x2 . Observe that every feasible IP point must
have either x2  3 or x2 ≥ 4 .
• With this in mind, branch on the variable x2 to create the following
two subproblems:
Subproblem 1 Subproblem 2
Max Z = 5x1 + 8x2 Max Z = 5x1 + 8x2
s.t. x1 + x2  6 s.t. x1 + x2  6
5x1 + 9x2  45 5x1 + 9x2  45
x2  3 x2 ≥ 4
x1 , x 2 ≥ 0 x1 , x 2 ≥ 0
• Solve both subproblems
(note that the original optimal solution (2.25, 3.75) can’t recur)
Branching step (graphically)
Z=41
Subproblem 1: Opt. solution (3,3) with value 39
5 Subproblem 2: Opt. solution (1.8,4) with value
41
Subproblem 2
4
(1.8, 4)

3 (3, 3)

2
Subproblem 1

1 Z=39
Z=20

0 1 2 3 4 5 6 7 8
Solution tree
S1: x2  3

For each subproblem, we record All


(3, 3) int.
• the restriction that creates the subproblem Z=39
(2.25, 3.75)
• the optimal LP solution Z=41.25 S2: x2 ≥ 4
• the LP optimum value (1.8, 4)
Z=41

The optimal solution for Subproblem 1 is integral: (3, 3).


If further branching on a subproblem will yield no useful
information, then we can fathom (dismiss) the subproblem.
In our case, we can fathom Subproblem 1 because its solution is integral.
The best integer solution found so far is stored as incumbent. The
value of the incumbent is denoted by Z*.
In our case, the first incumbent is (3, 3), and Z*=39.
Z* is a lower bound for OPT(IP): OPT(IP) ≥ Z* .
Next branching step (graphically)
- Fathom Subproblem 1.
5 - Branch Subproblem 2 on x1 :
(1, 4.44)
Subpr. 3 Subpr. 4 Subproblem 3: New restriction is x1  1.
4 Opt. solution (1, 4.44) with value
40.55
Subproblem 4: New restriction is x1 ≥ 2.
3 The subproblem is infeasible
Z=40.55

1
Z=20

0 1 2 3 4 5 6 7 8
Solution tree (cont.)
S1: x2  3
int.
All (3, 3) S3: x1  1
(2.25, 3.75) Z=39
(1, 4.44)
Z=41.25
S2: x2 ≥ 4 Z=40.55

(1.8, 4)
Z=41 S4: x1 ≥ 2
infeasible

If a subproblem is infeasible, then it is fathomed.


In our case, Subproblem 4 is infeasible; fathom it.

The upper bound for OPT(IP) is updated: 39  OPT(IP)  40.55 .

Next branch Subproblem 3 on x2 .


(Note that the branching variable might recur).
Next branching step (graphically)

(0, 5) Branch Subproblem 3 on x2 :

5 Subproblem 5: New restriction is x2  4.


Feasible region:
4 the segment joining (0,4) and (1,4)
(1, 4)
Opt. solution (1, 4) with value 37

3 Subproblem 6: New restriction is x2 ≥ 5.


Feasible region is just one point: (0,
5)
2 Opt. solution (0, 5) with value 40

1
Z=20

0 1 2 3 4 5 6 7 8
Solution tree (final)
S1: x2  3 S5: x2  4
int.
All (3, 3) (1, 4) int.
S3: x1  1
(2.25, 3.75) Z=39 Z=37
(1, 4.44)
Z=41.25
S2: x2 ≥ 4 Z=40.55 S6: x2 ≥ 5
int.
(1.8, 4) (0, 5)
Z=41 S4: x1 ≥ 2 Z=40
infeasible

If the optimal value of a subproblem is  Z*, then it is fathomed.


• In our case, Subproblem 5 is fathomed because 37  39 = Z*.
If a subproblem has integral optimal solution x*,
and its value > Z*, then x* replaces the current incumbent.
• In our case, Subproblem 5 has integral optimal solution, and its value
40>39=Z*. Thus, (0,5) is the new incumbent, and new Z*=40.
If there are no unfathomed subproblems left, then the current
incumbent is an optimal solution for (IP).
Branch and Bound Example
Solve the following BIP be branch and bound.

Max Z = 5x1 + 4x2


s.t. x1 + 2x2  5
10x1 + 6x2  45

0  x1 , x 2 and integer
Branch and Bound Example
Branch and Bound Example
Branch and Bound Example
Branch & Bound (for
Minimization IP)
• Branch and Bound Algorithm
1- Solve LP relaxation to get a lower bound on cost for
current branch
• If solution exceeds upper bound, branch is terminated
• If solution is integer, replace upper bound on cost
2- Create two branched problems by adding constraints to
original problem
• Select integer variable with fractional LP solution
• Add integer constraints to the original LP
3- Repeat until no branches remain, return optimal
solution.
Branch and Bound Example
Consider the following binary integer program (BIP). A binary variable is one that is
constrained to be either 1 or 0.

Max z= 75x1+ 6x2+3x3+33x4


Subject to:
774x1+ 76x2+22x3+42x4≤875
67x1+ 27x2+794x3+53x4≤875
x1, x2, x3, x4 binary
Branch and Bound Example
Which Node to Select?
• An important choice in branch and bound is the strategy for selecting
the next subproblem to be processed.

• Goals:
(1) Minimizing overall solution time.
(2) Finding a good feasible solution quickly.

Some commonly used search strategies:


a) Best First
b) Depth-First
c) Hybrid Strategies
d) Best Estimate

You might also like