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

Integer Programming and Branch and Bound

This document discusses integer programming and the branch and bound method for solving integer programs. It provides an overview of integer programs, how decision variables are encoded using binary variables, and how constraints are modeled between exclusive choices and logical implications. It also describes how the branch and bound method is used to solve binary and mixed integer programs.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
61 views

Integer Programming and Branch and Bound

This document discusses integer programming and the branch and bound method for solving integer programs. It provides an overview of integer programs, how decision variables are encoded using binary variables, and how constraints are modeled between exclusive choices and logical implications. It also describes how the branch and bound method is used to solve binary and mixed integer programs.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 62

Integer Programming and

Branch and Bound

Brian C. Williams
16.410-13
November 15th, 17th, 2004

Adapted from slides


by Eric Feron, 16.410, 2002.
Cooperative Vehicle Path Planning

Vehicle
Obstacle
Waypoint
Cooperative Vehicle Path Planning

Vehicle
Obstacle
Waypoint
Cooperative Vehicle Path Planning
Objective: Find most fuel-efficient 2-D paths for all
vehicles.

Constraints:
– Operate within vehicle dynamics
– Avoid static and moving obstacles
– Avoid other vehicles
– Visit waypoints in specified order
– Satisfy timing constraints
Outline
• What is Integer Programming (IP)?
• How do we encode decisions using IP?
– Exclusion between choices
– Exclusion between constraints
• How do we solve using Branch and Bound?
– Characteristics
– Solving Binary IPs
– Solving Mixed IPs and LPs
Integer Programs
LP: Maximize 3x1 + 4x2 IP: Maximize 3x1 + 4x2
Subject to: Subject to:
x1 ≤ 4 x1 ≤ 4
2x2 ≤ 12
2x2 ≤ 12
3x1 + 2x2 ≤ 18
3x1 + 2x2 ≤ 18
x1 , x2 ≥ 0
x1 , x2 ≥ 0
x1 , x2 integers
x2

x1
e)
Integer Programming
Integer programs are LPs where some variables are integers

Why Integer programs?

1. Some variables are not real-valued:


• Boeing only sells complete planes, not fractions.

2. Fractional LP solutions poorly approximate integer solutions:


• For Boeing Aircraft Co., producing 4 versus 4.5 airplanes
results in radically different profits.

Often a mix is desired of integer and non-integer variables


• Mixed Integer Linear Programs (MILP).
Graphical representation of IP
Outline
• What is Integer Programming (IP)?
• How do we encode decisions using IP?
– Exclusion between choices
– Exclusion between constraints
• How do we solve using Branch and Bound?
– Characteristics
– Solving Binary IPs
– Solving Mixed IPs and LPs
Integer Programming for
Decision Making

Encode “Yes or no” decisions with binary variables:

1 if decision is yes
xj
0 if decision is no.

Binary Integer Programming (BIP):


• Binary variables + linear constraints.

• How is this different from propositional logic?


Binary Integer Programming Example:
Cal Aircraft Manufacturing Company
Problem:

1. Cal wants to expand:


• Build new factory in either Los Angeles, San Francisco, both or neither.
• Build new warehouse (at most one).
• Warehouse must be built close to the city of a new factory.

2. Available capital: $10,000,000

3. Cal wants to maximize “total net present value” (profitability vs. time value of money)

NPV Price
1 Build a factory in L.A.? $9m $6m
2 Build a factory in S.F.? $5m $3m
3 Build a warehouse in L.A.? $6m $5m
4 Build a warehouse in S.F.? $4m $2m
Binary Integer Programming Example:
Cal Aircraft Manufacturing Company
Cal wants to expand:
Build new factory in Los Angeles, San Francisco, both or neither.
Build new warehouse (at most one).
Warehouse must be built close to the city of a new factory.

What decisions are to be made?

1.Build factory in LA
2.Build factory in SFO
3.Build warehouse in LA
4.Build warehouse in SFO

1 if decision i is yes
Introduce 4 binary variables xi=
0 if decision i is no
Binary Integer Programming Example:
Cal Aircraft Manufacturing Company
1. Cal wants to expand
2. Available capital: $10,000,000
3. Cal wants to maximize “total net present value” (profitability vs. time value of money)

NPV Price
1 Build a factory in L.A.? $9m $6m
2 Build a factory in S.F.? $5m $3m
3 Build a warehouse in L.A.? $6m $5m
4 Build a warehouse in S.F.? $4m $2m

What is the objective?


• Maximize NPV:
Z = 9x1 + 5x2 + 6x3 + 4x4

What are the constraints on capital?


• Don’t go beyond means:
6x1 + 3x2 + 5x3 + 2x4 <10
Binary Integer Programming Example:
Cal Aircraft Manufacturing Company
LA factory(x1), SFO factory(x2), LA warehouse(x3),SFO warehouse (x4)
• Build new factory in Los Angeles, San Francisco, both or neither.
• Build new warehouse (at most one).
• Warehouse must be built close to city of a new factory.

What are the constraints between decisions?


1. No more than one warehouse:
Most 1 of {x3 , x4}
x3 + x4 < 1

2. Warehouse in LA only if Factory is in LA:


x3 implies x1
x3 – x1 < 0

3. Warehouse in SFO only if Factory is in SFO:


x4 implies x2
x4 - x2 < 0
Encoding Decision Constraints:
• Exclusive choices
• Example: at most 2 decisions in a group can be yes:
LP Encoding:
x1 +…+ xk < 2.

• Logical implications
• x1 implies x2: (x1 requires x2)
LP Encoding:
x1 - x2 < 0.
Binary Integer Programming Example:
Cal Aircraft Manufacturing Company
LA factory(x1), SFO factory(x2), LA warehouse(x3),SFO warehouse (x4)
• Build new factory in Los Angeles, San Francisco, or both.
• Build new warehouse (only one).
• Warehouse must be built close to city of a new factory.

What are the constraints between decisions?


1. No more than one warehouse:
Most 1 of {x3 , x4}
x3 + x4 < 1

2. Warehouse in LA only if Factory is in LA:


x3 implies x1
x3 – x 1 < 0

3. Warehouse in SFO only if Factory is in SFO:


x4 implies x2
x4 - x2 < 0
Binary Integer Programming Example:
Cal Aircraft Manufacturing Company
Complete binary integer program:

Maximize Z = 9x1 + 5x2 + 6x3 + 4x4

Subject to: 6x1 + 3x2 + 5x3 + 2x4 <10

x3 + x4 < 1
x3 - x1 < 0
x4 - x2 < 0
xj < 1
xj = {0,1}, j=1,2,3,4
xj > 0
Outline
• What is Integer Programming (IP)?
• How do we encode decisions using IP?
– Exclusion between choices
– Exclusion between constraints
• How do we solve using Branch and Bound?
– Characteristics
– Solving Binary IPs
– Solving Mixed IPs and LPs
Cooperative Vehicle Path Planning
Cooperative Path Planning
MILP Encoding: Constraints
• Min JT Receding Horizon Fuel Cost Fn
• sij ≤ wij, etc. State Space Constraints
• si+1 = Asi + Bui State Evolution Equation
• xi ≤ xmin + Myi1
-xi ≤ -xmax + Myi2
yi ≤ ymin + Myi3 Obstacle Avoidance
-yi ≤ -ymax + Myi4
Σ yik ≤ 3
• Similar constraints for Collision Avoidance
(for all pairs of vehicles)
Cooperative path planning
MILP Encoding: Fuel Equation
past-horizon
total fuel calculated over all time terminal cost term
instants i
N-1 N-1

min = JT =wmin
,v i=1Σ q’wi + i=1Σ r’vi + p’wN
i i
wi, vi

slack control vector weighting vectors

slack state vector


How Do We Encode Obstacles?

• Each obstacle-vehicle pair represents a disjunctive constraint:

Red Vehicle is above obstacle OR


Red Vehicle is below obstacle OR
Red Vehicle is left of obstacle OR
Red Vehicle is right of obstacle

• Each disjunct is an inequality


– let xR, yR be red vehicle’s co-ordinates then:
– Left: xR < 3
– Above: R > 4, . . .

• Constraints are not limited to rectangular obstacles


– (inequalities might include both co-ordinates)
• May be any polygon
– (convex or concave)
Encoding Exclusion Constraints
Example: (x1 ,x2 real)

Either 3x1 + 2x2 < 18

Or x + 4x < 16
BIP Encoding:
• Use Big M to turn-off constraint:
Either:
3x1 + 2x2 < 18
and x1 + 4x2 < 16 + M (and M is very BIG)
Or:
3x1 + 2x2 < 18 + M
and x1 + 6x2 < 16

• Use binary y to decide which constraint to turn off:


3x1 + 2x2 < 18 + y M
x1 + 2x2 < 16 + (1-y)M
y ∈ {0,1}
Cooperative Path Planning
MILP Encoding: Constraints
• Min JT Receding Horizon Fuel Cost Fn
• sij ≤ wij, etc. State Space Constraints
• si+1 = Asi + Bui State Evolution Equation
• xi ≤ xmin + Myi1
-xi ≤ -xmax + Myi2
yi ≤ ymin + Myi3 Obstacle Avoidance
-yi ≤ -ymax + Myi4 At least one enabled
Σ yik ≤ 3 At least one enabled
• Similar constraints for Collision Avoidance
(for all pairs of vehicles)
Encoding General Exclusion Constraints
• K out of N constraints hold: • At least K of N hold:
f1(x1, x2 ,…xn) < d1 OR
:
fN(x1, x2 , …, xn ) < dN
where fi are linear expressions

• LP Encoding:
• Introduce yi to turn off each constraint i:
• Use Big M to turn-off constraint:
f1(x1, ... , xn ) < d1 + My1
:
fN(x1, … , xn ) < dN + MyN

• Constrain K of the yi to select constraints:


N N

∑y i = N −K ∑y
i =1
i ≤ N −K
i =1
Encoding Mappings to Finite Domains
• Function takes on one out of n possible values:

a1x1+ . . . an xn = [d1 or d2 … or dp]

• LP Encoding:

yi ∈ {0,1} i=1,2,…p

Σ yi = 1

a1x1+ . . . an xn= Σι di yi
Encoding Constraints
• Fixed – charge problem:
fi(xj) = | kj + cjxj if xj >0
| 0 if xj=0
Minimizing costs:
Minimizing z=f1(x1) +---+ fn(xn)
Yes or no decisions: should each of the activities be undertaken?
Introduce auxiliary variables:
y1, …, yn = 0,1
y = 1 if x > 0
0 if x = 0
n
Z = ∑ ci xi + ki yi
i =1
Which can be written as a linear constraint using big M:
x <yM
Outline
• What is Integer Programming (IP)?
• How do we encode decisions using IP?
– Exclusion between choices
– Exclusion between constraints
• How do we solve using Branch and Bound?
– Characteristics
– Solving Binary IPs
– Solving Mixed IPs and LPs
Solving Integer Programs:
Characteristics
• Fewer feasible solutions than LPs.
• Worst-case exponential in # of variables.
• Solution time tends to:
– Increase with increased # of variables.
– Decrease with increased # of constraints.
• Commercial software:
– Cplex
Methods To Solve Integer Programs

• Branch and Bound


– Binary Integer Programs
– Integer Programs
– Mixed Integer (Real) Programs
• Cutting Planes
Branch and Bound
Problem: Optimize f(x) subject to A(x) ≥ 0, x ∈ D

B & B - an instance of Divide & Conquer:


I. Bound D’s solution and compare to alternatives.
1) Bound solution to D quickly.
• Perform quick check by relaxing hard part of problem and solve.
Î Relax integer constraints. Relaxation is LP.
2) Use bound to “fathom” (finish) D if possible.
a. If relaxed solution is integer,
Then keep soln if best found to date (“incumbent”), delete Di
b. If relaxed solution is worse than incumbent, Then delete Di.
c. If no feasible solution, Then delete Di.
II. Otherwise Branch to smaller subproblems
1) Partition D into subproblems D1 … Dn
2) Apply B&B to all subproblems, typically Depth First.
B&B for Binary Integer Programs (BIPs)
Problem i: Optimize f(x) st A(x) ≥ 0, xk∈{0,1}, x∈Di

Domain Di encoding (for subproblem):


• partial assignment to x,
– {x1 = 1, x2 = 0, …}

Branch Step:
1. Find variable xj that is unassigned in Di
2. Create two subproblems by splitting Di:
• Di1 ≡ Di ∪ {xj = 1}
• Di0 ≡ Di ∪{xj = 0}
3. Place on search Queue
Example: B&B for BIPs
{} Solve:
Max Z = 9x1 + 5x2 + 6x3 + 4x4
Subject to:
– 6x1 + 3x2 + 5x3 + 2x4 ≤ 10
– x3 + x4 ≤ 1
– -x1 + x3 ≤ 0
– -x2 + x4 ≤ 0
– xi ≤ 1, xi ≥ 0, xi integer

• Initialize
Queue: {}
Incumbent: none
Best cost Z*: - inf
Example: B&B for BIPs
{} Solve:
Max Z = 9x1 + 5x2 + 6x3 + 4x4
Subject to:
– 6x1 + 3x2 + 5x3 + 2x4 ≤ 10
– x3 + x4 ≤ 1
– -x1 + x3 ≤ 0
– -x2 + x4 ≤ 0
– xi ≤ 1, xi ≥ 0, xi integer

• Dequeue {}
Queue: {}
Incumbent: none
Best cost Z*: - inf
Example: B&B for BIPs
{} Solve:
Max Z = 9x1 + 5x2 + 6x3 + 4x4
Subject to:
– 6x1 + 3x2 + 5x3 + 2x4 ≤ 10
– x3 + x4 ≤ 1
– -x1 + x3 ≤ 0
– -x2 + x4 ≤ 0
– xi ≤ 1, xi ≥ 0, xi integer

Z = 16.5, x = <0.8333,1,0,1>

• Bound {}
Queue:
1. Constrain xi by {}
Incumbent: none 2. Relax to LP
Best cost Z*: - inf 3. Solve LP
Example: B&B for BIPs
{} Solve:
Max Z = 9x1 + 5x2 + 6x3 + 4x4
Subject to:
– 6x1 + 3x2 + 5x3 + 2x4 ≤ 10
– x3 + x4 ≤ 1
– -x1 + x3 ≤ 0
– -x2 + x4 ≤ 0
– xi ≤ 1, xi ≥ 0, xi integer

Z = 16.5, x = <0.8333,1,0,1>

• Try to fathom:
Queue:
1. infeasible?
Incumbent: none 2. worse than incumbent?
Best cost Z*: - inf 3. integer solution?
Example: B&B for BIPs
{} Solve:
{x1 = 0} {x1 = 1} Max Z = 9x1 + 5x2 + 6x3 + 4x4
Subject to:
– 6x1 + 3x2 + 5x3 + 2x4 ≤ 10
– x3 + x4 ≤ 1
– -x1 + x3 ≤ 0
– -x2 + x4 ≤ 0
– xi ≤ 1, xi ≥ 0, xi integer

Z = 16.5, x = <0.8333,1,0,1>

• Branch:
Queue: {x1 = 0}{x1 = 1}
1. select unassigned xi
Incumbent: none • pick non-integer (x1)
Best cost Z*: - inf 2. Split on xi
Example: B&B for BIPs
{} Solve:
{x1 = 0} {x1 = 1} Max Z = 9x1 + 5x2 + 6x3 + 4x4
Subject to:
– 6x1 + 3x2 + 5x3 + 2x4 ≤ 10
– x3 + x4 ≤ 1
– -x1 + x3 ≤ 0
– -x2 + x4 ≤ 0
– xi ≤ 1, xi ≥ 0, xi integer

• Dequeue:
Queue: {x1 = 0}{x1 = 1}
• depth first or
Incumbent: none • best first
Best cost Z*: - inf
Example: B&B for BIPs
{} Solve:
{x1 = 0} {x1 = 1} Max Z = 9x1 + 5x2 + 6x3 + 4x4
Subject to:
– 6x1 + 3x2 + 5x3 + 2x4 ≤ 10
– x3 + x4 ≤ 1
– -x1 + x3 ≤ 0
– -x2 + x4 ≤ 0
– xi ≤ 1, xi ≥ 0, xi integer

• Bound {x1 = 0}
Queue: {x1 = 1}
• constrain x by {x1 = 0}
Incumbent: none • relax to LP
Best cost Z*: - inf • solve
Example: B&B for BIPs
{} Solve:
{x1 = 0} {x1 = 1} Max Z = 9 0 + 5x2 + 6x3 + 4x4
Subject to:
– 6 0 + 3x2 + 5x3 + 2x4 ≤ 10
– x3 + x4 ≤ 1
– -0 + x3 ≤ 0
– -x2 + x4 ≤ 0
– xi ≤ 1, xi ≥ 0, xi integer

• Bound {x1 = 0}
Queue: {x1 = 1}
• constrain x by {x1 = 0}
Incumbent: none • relax to LP
Best cost Z*: - inf • solve
Example: B&B for BIPs
{} Solve:
{x1 = 0} {x1 = 1} Max Z = 9 0 + 5x2 + 6x3 + 4x4
Subject to:
– 6 0 + 3x2 + 5x3 + 2x4 ≤ 10
– x3 + x4 ≤ 1
– -0 + x3 ≤ 0
– -x2 + x4 ≤ 0
– xi ≤ 1, xi ≥ 0, xi integer

Z = 19,5, x = <0,1,0,1>

• Bound {x1 = 0}
Queue: {x1 = 1}
• constrain x by {x1 = 0}
Incumbent: none • relax to LP
Best cost Z*: - inf • solve LP
Example: B&B for BIPs
{} Solve:
{x1 = 0} {x1 = 1} Max Z = 9 0 + 5x2 + 6x3 + 4x4
Subject to:
– 6 0 + 3x2 + 5x3 + 2x4 ≤ 10
– x3 + x4 ≤ 1
– -0 + x3 ≤ 0
– -x2 + x4 ≤ 0
– xi ≤ 1, xi ≥ 0, xi integer

Z = 19,5, x = <0,1,0,1>

• Try to fathom:
Queue: {x1 = 1}
1. infeasible?
Incumbent: none 2. worse than incumbent?
Best cost Z*: - inf 3. integer solution?
Example: B&B for BIPs
{} Solve:
{x1 = 0} {x1 = 1} Max Z = 9 0 + 5x2 + 6x3 + 4x4
Subject to:
– 6 0 + 3x2 + 5x3 + 2x4 ≤ 10
– x3 + x4 ≤ 1
– -0 + x3 ≤ 0
– -x2 + x4 ≤ 0
– xi ≤ 1, xi ≥ 0, xi integer

Z = 19,5, x = <0,1,0,1>

• Try to fathom:
Queue: {x1 = 1}
1. infeasible?
Incumbent: x = <0,1,0,1> 2. worse than incumbent?
Best cost Z*: 9 3. integer solution?
Example: B&B for BIPs
{} Solve:
{x1 = 0} {x1 = 1} Max Z = 9x1 + 5x2 + 6x3 + 4x4
Subject to:
– 6x1 + 3x2 + 5x3 + 2x4 ≤ 10
– x3 + x4 ≤ 1
– -x1 + x3 ≤ 0
– -x2 + x4 ≤ 0
– xi ≤ 1, xi ≥ 0, xi integer

• Dequeue
Queue: {x1 = 1}
Incumbent: x = <0,1,0,1>
Best cost Z*: 9
Example: B&B for BIPs
{} Solve:
{x1 = 0} {x1 = 1} Max Z = 9x1 + 5x2 + 6x3 + 4x4
Subject to:
– 6x1 + 3x2 + 5x3 + 2x4 ≤ 10
– x3 + x4 ≤ 1
– -x1 + x3 ≤ 0
– -x2 + x4 ≤ 0
– xi ≤ 1, xi ≥ 0, xi integer

• Bound {x1 = 1}
Queue:
Incumbent: x = <0,1,0,1>
Best cost Z*: 9
Example: B&B for BIPs
{} Solve:
{x1 = 0} {x1 = 1} Max Z = 9x1 + 5x2 + 6x3 + 4x4
Subject to:
– 6x1 + 3x2 + 5x3 + 2x4 ≤ 10
– x3 + x4 ≤ 1
– -11 + x3 ≤ 0
– -x2 + x4 ≤ 0
– xi ≤ 1, xi ≥ 0, xi integer

Z = 16.2, x = <1,.8,0,.8>

• Bound {x1 = 1}
Queue:
Incumbent: x = <0,1,0,1>
Best cost Z*: 9
Example: B&B for BIPs
{} Solve:
{x1 = 0} {x1 = 1} Max Z = 9x1 + 5x2 + 6x3 + 4x4
Subject to:
– 6x1 + 3x2 + 5x3 + 2x4 ≤ 10
– x3 + x4 ≤ 1
– -11 + x3 ≤ 0
– -x2 + x4 ≤ 0
– xi ≤ 1, xi ≥ 0, xi integer

Z = 16.2, x = <1,.8,0,.8>

• Try to fathom:
Queue: {x1 = 1}
• infeasible?
Incumbent: x = <0,1,0,1> • worse than incumbent?
Best cost Z*: 9 • integer solution?
Example: B&B for BIPs
{} Solve:
{x1 = 0} {x1 = 1} Max Z = 9x1 + 5x2 + 6x3 + 4x4
Subject to:
{x2 = 1} – 6x1 + 3x2 + 5x3 + 2x4 ≤ 10
{x2 = 0}
– x3 + x4 ≤ 1
– -11 + x3 ≤ 0
– -x2 + x4 ≤ 0
– xi ≤ 1, xi ≥ 0, xi integer

Z = 16.2, x = <1,.8,0,.8>

• Branch
Queue: {x1=1, x2=1}{x1=1, x2=0}
• Dequeue
Incumbent: x = <0,1,0,1>
Best cost Z*: 9
Example: B&B for BIPs
{} Solve:
{x1 = 0} {x1 = 1} Max Z = 9x1 + 5x2 + 6x3 + 4x4
Subject to:
{x2 = 1} – 6x1 + 3x2 + 5x3 + 2x4 ≤ 10
{x2 = 0}
– x3 + x4 ≤ 1
– -x1 + x3 ≤ 0
– -x2 + x4 ≤ 0
– xi ≤ 1, xi ≥ 0, xi integer

• Bound {x1 = 1, x2 = 1}
Queue: {x1=1, x2=0}
Incumbent: x = <0,1,0,1>
Best cost Z*: 9
Example: B&B for BIPs
{} Solve:
{x1 = 0} {x1 = 1} Max Z = 9x1 + 5x2 + 6x3 + 4x4
Subject to:
{x2 = 1} – 6x1 + 3x2 + 5x3 + 2x4 ≤ 10
{x2 = 0}
– x3 + x4 ≤ 1
– -11 + x3 ≤ 0
– -12 + x4 ≤ 0
– xi ≤ 1, xi ≥ 0, xi integer

Z = 16, x = <1,1,0,.5>

• Try
Bound {x1 = 1, x2 = 1}
to fathom:
Queue: {x1=1, x2=0}
• infeasible?
Incumbent: x = <0,1,0,1> • worse than incumbent?
Best cost Z*: 9 • integer solution?
Example: B&B for BIPs
{} Solve:
{x1 = 0} {x1 = 1} Max Z = 9x1 + 5x2 + 6x3 + 4x4
Subject to:
{x2 = 1} – 6x1 + 3x2 + 5x3 + 2x4 ≤ 10
{x2 = 0}
– x3 + x4 ≤ 1
{x3 = 1} – -x1 + x3 ≤ 0
{x3 = 0}
– -x2 + x4 ≤ 0
– xi ≤ 1, xi ≥ 0, xi integer

Z = 16, x = <1,1,0,.5>

• Branch
Queue: {…,x32=1}{…,x
=0} 3=0}{…,x2=0}
Incumbent: x = <0,1,0,1>
Best cost Z*: 9
Example: B&B for BIPs
{} Solve:
{x1 = 0} {x1 = 1} Max Z = 9x1 + 5x2 + 6x3 + 4x4
Subject to:
{x2 = 1} – 6x1 + 3x2 + 5x3 + 2x4 ≤ 10
{x2 = 0}
– x3 + x4 ≤ 1
{x3 = 1} – -x1 + x3 ≤ 0
{x3 = 0}
– -x2 + x4 ≤ 0
– xi ≤ 1, xi ≥ 0, xi integer

• Dequeue
Queue: {…,x3=1} {…,x3=0}{…,x2=0}
• Bound {x1=1, x2=1, x3=1}
Incumbent: x = <0,1,0,1>
Best cost Z*: 9
Example: B&B for BIPs
{} Solve:
{x1 = 0} {x1 = 1} Max Z = 9x1 + 5x2 + 6x3 + 4x4
Subject to:
{x2 = 1} – 6x1 + 3x2 + 5x3 + 2x4 ≤ 10
{x2 = 0}
– 13 + x4 ≤ 1
{x3 = 1} – -11 + 13 ≤ 0
{x3 = 0}
– -12 + x4 ≤ 0
– xi ≤ 1, xi ≥ 0, xi integer

No Solution
• Try
Boundto fathom:
{x1=1, x2=1, x3=1}
Queue: {…,x3 = 0}{…,x2 = 0}
• infeasible?
Incumbent: x = <0,1,0,1>
Best cost Z*: 9
Example: B&B for BIPs
{} Solve:
{x1 = 0} {x1 = 1} Max Z = 9x1 + 5x2 + 6x3 + 4x4
Subject to:
{x2 = 1} – 6x1 + 3x2 + 5x3 + 2x4 ≤ 10
{x2 = 0}
– x3 + x4 ≤ 1
{x3 = 1} – -x1 + x3 ≤ 0
{x3 = 0}
– -x2 + x4 ≤ 0
– xi ≤ 1, xi ≥ 0, xi integer

• Dequeue
Queue: {…,x3 = 0}{…,x2 = 0}
• Bound {x1=1, x2=1, x3=0}
Incumbent: x = <0,1,0,1>
Best cost Z*: 9
Example: B&B for BIPs
{} Solve:
{x1 = 0} {x1 = 1} Max Z = 9x1 + 5x2 + 6x3 + 4x4
Subject to:
{x2 = 1} – 6x1 + 3x2 + 5x3 + 2x4 ≤ 10
{x2 = 0}
– x3 + x4 ≤ 1
{x3 = 1} – -11 + x3 ≤ 0
{x3 = 0}
– -12 + x4 ≤ 0
– xi ≤ 1, xi ≥ 0, xi integer

Z = 16, x = <1,1,0,.5>

• Try
Boundto fathom:
{x1=1, x2=1, x3=0}
Queue: {…,x2 = 0}
• infeasible?
Incumbent: x = <0,1,0,1> • worse than incumbent?
Best cost Z*: 9 • integer solution?
Example: B&B for BIPs
{} Solve:
{x1 = 0} {x1 = 1} Max Z = 9x1 + 5x2 + 6x3 + 4x4
Subject to:
{x2 = 1} – 6x1 + 3x2 + 5x3 + 2x4 ≤ 10
{x2 = 0}
– x3 + x4 ≤ 1
{x3 = 1} – -11 + x3 ≤ 0
{x3 = 0}
– -12 + x4 ≤ 0
{x4 = 0} – xi ≤ 1, xi ≥ 0, xi integer
{x4 = 1}

Z = 14, x = <1,1,0,0>

• Branch
Queue: {…,x24=0}
=0}{…,x4=1}{…,x2=0}
• Dequeue
Incumbent: x = <0,1,0,1> • Bound
Best cost Z*: 9
Example: B&B for BIPs
{} Solve:
{x1 = 0} {x1 = 1} Max Z = 9x1 + 5x2 + 6x3 + 4x4
Subject to:
{x2 = 1} – 6x1 + 3x2 + 5x3 + 2x4 ≤ 10
{x2 = 0}
– x3 + x4 ≤ 1
{x3 = 1} – -11 + x3 ≤ 0
{x3 = 0}
– -12 + x4 ≤ 0
{x4 = 0} – xi ≤ 1, xi ≥ 0, xi integer
{x4 = 1}

Z = 14, x = <1,1,0,0>

• Try to fathom:
Queue: {…,x4=1}{…,x2=0}
• infeasible?
Incumbent: x = <0,1,0,1> • worse than incumbent?
Best cost Z*: 9 • integer solution?
Example: B&B for BIPs
{} Solve:
{x1 = 0} {x1 = 1} Max Z = 9x1 + 5x2 + 6x3 + 4x4
Subject to:
{x2 = 1} – 6x1 + 3x2 + 5x3 + 2x4 ≤ 10
{x2 = 0}
– x3 + x4 ≤ 1
{x3 = 1} – -11 + x3 ≤ 0
{x3 = 0}
– -12 + x4 ≤ 0
{x4 = 0} – xi ≤ 1, xi ≥ 0, xi integer
{x4 = 1}

Z = 14, x = <1,1,0,0>

• Try to fathom:
Queue: {…,x4=1}{…,x2=0}
• infeasible?
Incumbent: x = <1,1,0,0>
<0,1,0,1> • worse than incumbent?
Best cost Z*: 14
9 • integer solution?
Example: B&B for BIPs
{} Solve:
{x1 = 0} {x1 = 1} Max Z = 9x1 + 5x2 + 6x3 + 4x4
Subject to:
{x2 = 1} – 6x1 + 3x2 + 5x3 + 2x4 ≤ 10
{x2 = 0}
– x3 + 14 ≤ 1
{x3 = 1} – -11 + x3 ≤ 0
{x3 = 0}
– -12 + 14 ≤ 0
{x4 = 0} – xi ≤ 1, xi ≥ 0, xi integer
{x4 = 1}

No Solution, x = <1,1,0,1>

• Try
dequeue
to fathom:
& bound
Queue: {…,x4=1}{…,x2=0}
• infeasible?
Incumbent: x = <1,1,0,0>
<0,1,0,1> • worse than incumbent?
Best cost Z*: 14
9 • integer solution?
Example: B&B for BIPs
{} Solve:
{x1 = 0} {x1 = 1} Max Z = 9x1 + 5x2 + 6x3 + 4x4
Subject to:
{x2 = 1} – 6x1 + 3x2 + 5x3 + 2x4 ≤ 10
{x2 = 0}
– x3 + x4 ≤ 1
{x3 = 1} – -11 + x3 ≤ 0
{x3 = 0}
– -12 + x4 ≤ 0
{x4 = 0} – xi ≤ 1, xi ≥ 0, xi integer
{x4 = 1}

Z = 13.8, x = <1,0,.8,0>

• Try to fathom:
dequeue & bound
Queue: {…,x2=0}
• infeasible?
Incumbent: x = <1,1,0,0>
<0,1,0,1> • worse than incumbent?
Best cost Z*: 14
9 • integer solution?
Integer Programming (IP)
• What is it?
• Making decisions with IP
– Exclusion between choices
– Exclusion between constraints
• Solutions through branch and bound
– Characteristics
– Solving Binary IPs
– Solving Mixed IPs and LPs
Example: B&B for MIPs
{} Max Z = 4x1 - 2x2 + 7x3 - x4
{x1 ≤ 1} {x1 ≥ 2} Subject to:
– x1 + 5x3 ≤ 10
{x2 ≤ 1}
– x1 + x2 - x3 ≤ 1
{x2 ≥ 2} – 6x1 + 5x2 ≤ 0
– -x1 + 2x3 – 2x4 ≤ 3
{x1 = 0}
{x1 = 1} – xi ≥ 0, xi integer x1, x2, x3,

Z = 14.25, x = <1.25,1.5,1.75,0>
Z = 14.2, x = <1,1.2,1.8,0>
Z = 14 1/6, x = <5/6,1,11/6,0>
Incumbent: x = <0,0,2,.5>
Z = 13.5, x = <0,0,2,.5>
Best cost Z*: 13.5 Infeasible, x = <1,≤1,?,?>
Z = 12 1/6, x = <5/6,2,11/6,0>
Infeasible, x = < ≥2,?,?,?>

You might also like