Integer Programming and Branch and Bound
Integer Programming and Branch and Bound
Brian C. Williams
16.410-13
November 15th, 17th, 2004
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
1 if decision is yes
xj
0 if decision is no.
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.
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
• 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.
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
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
• 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
∑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:
• 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 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,?,?,?>