+ All Categories
Home > Documents > Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming:...

Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming:...

Date post: 16-Jul-2020
Category:
Upload: others
View: 12 times
Download: 0 times
Share this document with a friend
78
Cutting Planes in Mixed Integer Programming Santanu S. Dey School of Industrial and Systems Engineering, Georgia Institute of Technology. February, 2010 (Many Thanks to Q. Louveaux for sharing some Images)
Transcript
Page 1: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Cutting Planes in Mixed Integer Programming

Santanu S. Dey

School of Industrial and Systems Engineering,Georgia Institute of Technology.

February, 2010

(Many Thanks to Q. Louveaux for sharing some Images)

Page 2: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Outline

Mixed Integer Programming (MIP)

MIP are useful!

MIP are difficult to solve

How we go about solving MIPs

Cutting Planes

Page 3: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Part 1Mixed Integer Programming

Page 4: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Mixed Integer Programming: ‘Linear Problem’ with Discrete Variables

Mixed Integer Program (MIP)

max c1x1 + · · · + cnxns.t. a11x1 + · · · + a1nxn ≤ b1

.... . .

......

am1x1 + · · · + amnxn ≤ bmx1, x2, · · · , xk ∈ Z+ → nonnegative integers

I will typically use “x",“y" to represent

decision variablesand all the other

letters to representdata.

If k = n, then Integer Program.

If k = 0, then Linear Program.

Page 5: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

I This seemingly simple class of optimization problems can be used tomodel a very large class of real world problems...

I I want to illustrate its expressive power with an elementary example

Page 6: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

I This seemingly simple class of optimization problems can be used tomodel a very large class of real world problems...

I I want to illustrate its expressive power with an elementary example

Page 7: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

An Example: Production Planning

1. We have to draw the production plan for the next 5 months.

2. The demands are known for the next 5 months: 5, 13, 7, 5, 12units.

3. Suppose our production capacity each month is 20 units.

4. The cost of per unit production in the next 5 months is:$6, $7, $2, $3, $6.

5. If we choose to produce in any month, there is a extra startup cost of$ 8.

x1, x2, x3, x4, x5 : The amount I choose to produce in each month.y1, y2, y3, y4, y5 : Whether I produce or not each month (0 = Do not Produce/ 1= I decide to Produce).

Page 8: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

An Example: Production Planning

1. We have to draw the production plan for the next 5 months.

2. The demands are known for the next 5 months: 5, 13, 7, 5, 12units.

3. Suppose our production capacity each month is 20 units.

4. The cost of per unit production in the next 5 months is:$6, $7, $2, $3, $6.

5. If we choose to produce in any month, there is a extra startup cost of$ 8.

x1, x2, x3, x4, x5 : The amount I choose to produce in each month.y1, y2, y3, y4, y5 : Whether I produce or not each month (0 = Do not Produce/ 1= I decide to Produce).

Page 9: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

An Example: Production Planning

1. We have to draw the production plan for the next 5 months.

2. The demands are known for the next 5 months: 5, 13, 7, 5, 12units.

3. Suppose our production capacity each month is 20 units.

4. The cost of per unit production in the next 5 months is:$6, $7, $2, $3, $6.

5. If we choose to produce in any month, there is a extra startup cost of$ 8.

x1, x2, x3, x4, x5 : The amount I choose to produce in each month.y1, y2, y3, y4, y5 : Whether I produce or not each month (0 = Do not Produce/ 1= I decide to Produce).

Page 10: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

An Example: Production Planning

1. We have to draw the production plan for the next 5 months.

2. The demands are known for the next 5 months: 5, 13, 7, 5, 12units.

3. Suppose our production capacity each month is 20 units.

4. The cost of per unit production in the next 5 months is:$6, $7, $2, $3, $6.

5. If we choose to produce in any month, there is a extra startup cost of$ 8.

x1, x2, x3, x4, x5 : The amount I choose to produce in each month.y1, y2, y3, y4, y5 : Whether I produce or not each month (0 = Do not Produce/ 1= I decide to Produce).

Page 11: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

An Example: Production Planning

1. We have to draw the production plan for the next 5 months.

2. The demands are known for the next 5 months: 5, 13, 7, 5, 12units.

3. Suppose our production capacity each month is 20 units.

4. The cost of per unit production in the next 5 months is:$6, $7, $2, $3, $6.

5. If we choose to produce in any month, there is a extra startup cost of$ 8.

x1, x2, x3, x4, x5 : The amount I choose to produce in each month.y1, y2, y3, y4, y5 : Whether I produce or not each month (0 = Do not Produce/ 1= I decide to Produce).

Page 12: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

An Example: Production Planning

1. We have to draw the production plan for the next 5 months.

2. The demands are known for the next 5 months: 5, 13, 7, 5, 12units.

3. Suppose our production capacity each month is 20 units.

4. The cost of per unit production in the next 5 months is:$6, $7, $2, $3, $6.

5. If we choose to produce in any month, there is a extra startup cost of$ 8.

x1, x2, x3, x4, x5 : The amount I choose to produce in each month.y1, y2, y3, y4, y5 : Whether I produce or not each month (0 = Do not Produce/ 1= I decide to Produce).

Page 13: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

An Example: Production Planning

1. We have to draw the production plan for the next 5 months.

2. The demands are known for the next 5 months: 5, 13, 7, 5, 12units.

3. Suppose our production capacity each month is 20 units.

4. The cost of per unit production in the next 5 months is:$6, $7, $2, $3, $6.

5. If we choose to produce in any month, there is a extra startup cost of$ 8.

x1 ≥ 5

Page 14: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

An Example: Production Planning

1. We have to draw the production plan for the next 5 months.

2. The demands are known for the next 5 months: 5, 13, 7, 5, 12units.

3. Suppose our production capacity each month is 20 units.

4. The cost of per unit production in the next 5 months is:$6, $7, $2, $3, $6.

5. If we choose to produce in any month, there is a extra startup cost of$ 8.

x1 ≥ 5x1 + x2 ≥ 5 + 13

Page 15: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

An Example: Production Planning

1. We have to draw the production plan for the next 5 months.

2. The demands are known for the next 5 months: 5, 13, 7, 5, 12units.

3. Suppose our production capacity each month is 20 units.

4. The cost of per unit production in the next 5 months is:$6, $7, $2, $3, $6.

5. If we choose to produce in any month, there is a extra startup cost of$ 8.

x1 ≥ 5x1 + x2 ≥ 5 + 13x1 + x2 + x3 ≥ 5 + 13 + 7x1 + x2 + x3 + x4 ≥ 5 + 13 + 7 + 5x1 + x2 + x3 + x4 + x5 ≥ 5 + 13 + 7 + 5 + 12

Page 16: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

An Example: Production Planning

1. We have to draw the production plan for the next 5 months.

2. The demands are known for the next 5 months: 5, 13, 7, 5, 12units.

3. Suppose our production capacity each month is 20 units.

4. The cost of per unit production in the next 5 months is:$6, $7, $2, $3, $6.

5. If we choose to produce in any month, there is a extra startup cost of$ 8.

x1 ≤ 20

Page 17: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

An Example: Productions Planning

1. We have to draw the production plan for the next 5 months.

2. The demands are known for the next 5 months: 5, 13, 7, 5, 12units.

3. Suppose our production capacity each month is 20 units.

4. The cost of per unit production in the next 5 months is:$6, $7, $2, $3, $6.

5. If we choose to produce in any month, there is a extra startup cost of$ 8.

x1 ≤ 20y1

Page 18: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

An Example: Production Planning

1. We have to draw the production plan for the next 5 months.

2. The demands are known for the next 5 months: 5, 13, 7, 5, 12units.

3. Suppose our production capacity each month is 20 units.

4. The cost of per unit production in the next 5 months is:$6, $7, $2, $3, $6.

5. If we choose to produce in any month, there is a extra startup cost of$ 8.

x1 ≤ 20y1

x2 ≤ 20y2

x3 ≤ 20y3

x4 ≤ 20y4

x5 ≤ 20y5

Page 19: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

An Example: Production Planning

1. We have to draw the production plan for the next 5 months.

2. The demands are known for the next 5 months: 5, 13, 7, 5, 12units.

3. Suppose our production capacity each month is 20 units.

4. The cost of per unit production in the next 5 months is:$6, $7, $2, $3, $6.

5. If we choose to produce in any month, there is a extra startup cost of$ 8.

min 6x1 + 7x2 + 2x3 + 3x4 + 6x5 + 8y1 + 8y2 + 8y3 + 8y4 + 8y5

Page 20: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

An Example: Production Planning

min 6x1 + 7x2 + 3x3 + 6x4 + 8y1 + 8y2 + 8y3 + 8y4 + 8y5

x1 ≥ 5x1 + x2 ≥ 5 + 13

x1 + x2 + x3 ≥ 5 + 13 + 7x1 + x2 + x3 + x4 ≥ 5 + 13 + 7 + 5

x1 + x2 + x3 + x4 + x5 ≥ 5 + 13 + 7 + 5 + 12x1 ≤ 20y1

x2 ≤ 20y2

x3 ≤ 20y3

x4 ≤ 20y4

x5 ≤ 20y5

y1 ≤ 1y2 ≤ 1...

x1, x2, x3, x4, x5 ∈ Z+

y1, y2, y3, y4, y5 ∈ Z+

Page 21: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

MIP is a Flexible Tool

I Logistics: Traveling Salesman problem, Vehicle Routing.I Inventory (and Production) Planning.I Facilities Location.I Capacity planning: Matching, Assignment Problem.I Data Mining: Classification, Regression.

I Airline Industry: Schedule Planning, Fleet Assignment, Aircraft Rotation,Crew-pairing.

I Mining and Forestry Industry: Covering Models, partitioning models.I National Security Planning.I VLSI Chip Design.I Computational Biology: Sequence Alignment, Genome Rearrangement.I Health care: IMRT, Scheduling.I Sports Scheduling, Timetabling.

Page 22: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

MIP is a Flexible Tool

I Logistics: Traveling Salesman problem, Vehicle Routing.I Inventory (and Production) Planning.I Facilities Location.I Capacity planning: Matching, Assignment Problem.I Data Mining: Classification, Regression.I Airline Industry: Schedule Planning, Fleet Assignment, Aircraft Rotation,

Crew-pairing.I Mining and Forestry Industry: Covering Models, partitioning models.I National Security Planning.I VLSI Chip Design.I Computational Biology: Sequence Alignment, Genome Rearrangement.I Health care: IMRT, Scheduling.I Sports Scheduling, Timetabling.

Page 23: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Some "Slightly Dated" Applications of Integer Programming

Papers from Interfaces.

Company Year Type of Model RevenueAir New Zealand 2001 Crew Scheduling NZ $15.6 millionAT&T 2000 Network Restoration ‘Hundreds of

millions of dollars’NBC 2002 Product Mix/ $200 million

Commercials/ScheduleProcter & Gamble 2006 Expressive Bidding $298.4 millionSchindler Elevator 2003 Routing planning $1 millionUPS 2004 Network Design $87 millionFord 2001 Set-covering/ $250 million

Product optimizationHewlett-Packard 2004 Inventory Optimization $130 millionMerrill-Lynch 2002 Integrated Choice $80 million

StrategyMotorola 2005 Bidding/ $200 million

Supplier Negotiation

Page 24: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Part 2MIPs are Difficult to Solve

Page 25: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

A Natural Way to Solve MIPs

1. Enumerate all possible integer solution vectors.

2. For each potential solution vectors, check if it is feasible.

3. If feasible, then compute objective function value.

4. Pick the best solution.

Page 26: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

A Natural Way to Solve MIPs

1. Enumerate all possible integer solution vectors.

2. For each potential solution vectors, check if it is feasible.

3. If feasible, then compute objective function value.

4. Pick the best solution.

Page 27: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

A Natural Way to Solve MIPs

1. Enumerate all possible integer solution vectors.

2. For each potential solution vectors, check if it is feasible.

3. If feasible, then compute objective function value.

4. Pick the best solution.

Page 28: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

A Natural Way to Solve MIPs

1. Enumerate all possible integer solution vectors.

2. For each potential solution vectors, check if it is feasible.

3. If feasible, then compute objective function value.

4. Pick the best solution.

Page 29: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Some Calculations

Suppose we can evaluate 106 potential solution vectors in a second.

Number of binary variables Number of vectors 2n Time10 1024 0.001 seconds

Page 30: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Some Calculations

Suppose we can evaluate 106 potential solution vectors in a second.

Number of binary variables Number of vectors 2n Time10 1024 0.001 seconds20 1048576 1 second30 ∼ 109 16 minutes

Page 31: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Some Calculations

Suppose we can evaluate 106 potential solution vectors in a second.

Number of binary variables Number of vectors 2n Time10 1024 0.001 seconds20 1048576 1 second30 ∼ 109 16 minutes40 ∼ 1012 11 days50 ∼ 1015 31 years

Page 32: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Some Calculations

Suppose we can evaluate 106 potential solution vectors in a second.

Number of binary variables Number of vectors 2n Time10 1024 0.001 seconds20 1048576 1 second30 ∼ 109 16 minutes40 ∼ 1012 11 days50 ∼ 1015 31 years60 ∼ 1018 31,709 years70 ∼ 1021 31,709,791 years

Page 33: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Some Calculations

Suppose we can evaluate 106 potential solution vectors in a second.

Number of binary variables Number of vectors 2n Time10 1024 0.001 seconds20 1048576 1 second30 ∼ 109 16 minutes40 ∼ 1012 11 days50 ∼ 1015 31 years60 ∼ 1018 31,709 years70 ∼ 1021 31,709,791 years

This has got “nothing" to do with speed of computers. Every time the speedis doubled⇒ It allows me to solve a problem with 1 extra variable.

Page 34: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Some Calculations

Suppose we can evaluate 106 potential solution vectors in a second.

Number of binary variables Number of vectors 2n Time10 1024 0.001 seconds20 1048576 1 second30 ∼ 109 16 minutes40 ∼ 1012 11 days50 ∼ 1015 31 years60 ∼ 1018 31,709 years70 ∼ 1021 31,709,791 years

This has got “nothing" to do with speed of computers. Every time the speedis doubled⇒ It allows me to solve a problem with 1 extra variable.

However, we routinely solve problems with thousands of integer variables.

Page 35: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Part 3How we go about solving MIPs

Page 36: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Main Ideas

I Branch and Bound: Smart EnumerateI Cutting Planes

Page 37: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

A little bit of Linear Programming (LP) Geometry

Polyhedron

0 0.5 1 1.5 2 2.5 3 3.50

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5

3x + 2y<= 6

x + 2y <= 4

y>=0

x >= 0

3x + 2y ≤ 6

x + 2y ≤ 4

x ≥, y ≥ 0.

Page 38: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Using Linear Programming Techniques To Solve MIPs

Convex Hull

�����������������������������������������������������������������������������������������������������������������������������������������������

�����������������������������������������������������������������������������������������������������������������������������������������������

����

�� ��

�� ��

��

��

�� ��

��

��

�� ��

��

��

�� ��

��

��

��

Page 39: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Using Linear Programming Techniques To Solve MIPs

Convex Hull

������������������������������������������������������������������������������������������

������������������������������������������������������������������������������������������

��

�� ��

��

�� ��

��

��

�� ��

��

��

��

��

��

��

�� ��

��

��

��

Page 40: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Cutting Planes (Cuts)

A Simple Algorithm To Solve Integer Programs

�����������������������������������������������������������������������������������������������������������������������������������������������

�����������������������������������������������������������������������������������������������������������������������������������������������

����

�� ��

�� ��

��

��

�� ��

��

��

�� ��

��

��

�� ��

��

��

��

Page 41: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Cutting Planes (Cuts)

A Simple Algorithm To Solve Integer Programs

�����������������������������������������������������������������������������������������������������������������������������������������������

�����������������������������������������������������������������������������������������������������������������������������������������������

����

�� ��

�� ��

��

��

�� ��

��

��

�� ��

��

��

�� ��

��

��

��

��

Page 42: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Cutting Planes (Cuts)

A Simple Algorithm To Solve Integer Programs

�����������������������������������������������������������������������������������������������������������������������������������������������

�����������������������������������������������������������������������������������������������������������������������������������������������

����

�� ��

�� ��

��

��

�� ��

��

��

�� ��

��

��

�� ��

��

��

��

��

Page 43: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Cutting Planes (Cuts)

A Simple Algorithm To Solve Integer Programs

������������������������������������������������������������������������������������������������������������������������������������

������������������������������������������������������������������������������������������������������������������������������������

����

��

�� ��

��

��

�� ��

��

��

�� ��

��

��

�� ��

��

����

��

Page 44: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Cutting Planes (Cuts)

A Simple Algorithm To Solve Integer Programs

������������������������������������������������������������������������������������������������������������������������������������

������������������������������������������������������������������������������������������������������������������������������������

����

��

�� ��

��

��

�� ��

��

��

�� ��

��

��

�� ��

��

����

��

��

Page 45: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Cutting Planes (Cuts)

A Simple Algorithm To Solve Integer Programs

������������������������������������������������������������������������������������������������������������������������������������

������������������������������������������������������������������������������������������������������������������������������������

����

��

�� ��

��

��

�� ��

��

��

�� ��

��

��

�� ��

��

����

��

��

Page 46: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Cutting Planes (Cuts)

A Simple Algorithm To Solve Integer Programs

������������������������������������������������������������������������������������������������������������������������������������

������������������������������������������������������������������������������������������������������������������������������������

����

��

�� ��

��

��

�� ��

��

��

�� ��

��

��

�� ��

��

����

��

Page 47: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Cutting Planes (Cuts)

A Simple Algorithm To Solve Integer Programs

������������������������������������������������������������������������������������������������������������������������������������

������������������������������������������������������������������������������������������������������������������������������������

����

��

�� ��

��

��

�� ��

��

��

�� ��

��

��

�� ��

��

����

��

Page 48: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Cutting Planes (Cuts)

A Simple Algorithm To Solve Integer Programs

�������������������������������������������������������������������������������������������������������������������������

�������������������������������������������������������������������������������������������������������������������������

����

��

�� ��

��

��

�� ��

��

��

�� ��

��

��

�� ��

��

����

��

Page 49: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

How Do We Generate Cutting Planes?

Cutting planes are difficult to obtain when there are a large number ofvariables!

Two paradigms to generate cutting planes

1. Problem Specific Cutting Planes: These are useful for solving specificproblems.

2. Generic Cutting Planes: These are useful for solving any Mixed IntegerPrograms.

Page 50: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

How Do We Generate Cutting Planes?

Cutting planes are difficult to obtain when there are a large number ofvariables!

Two paradigms to generate cutting planes

1. Problem Specific Cutting Planes: These are useful for solving specificproblems.

2. Generic Cutting Planes: These are useful for solving any Mixed IntegerPrograms.

Page 51: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

How Do We Generate Cutting Planes?

Cutting planes are difficult to obtain when there are a large number ofvariables!

Two paradigms to generate cutting planes

1. Problem Specific Cutting Planes: These are useful for solving specificproblems.

2. Generic Cutting Planes: These are useful for solving any Mixed IntegerPrograms.

Page 52: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

How Do We Generate Cutting Planes?

Cutting planes are difficult to obtain when there are a large number ofvariables!

Two paradigms to generate cutting planes

1. Problem Specific Cutting Planes: These are useful for solving specificproblems.

2. Focus of the rest of the talk→ Generic Cutting Planes: These are usefulfor solving any Mixed Integer Programs.

Page 53: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Most Successful Cutting Planes for Generic Problems

[Bixby, Rothberg (2007)]

Disabled Cut Year Mean PerformanceDegradation

Gomory Mixed Integer (GMIC) 1960 2.52XMixed Integer Rounding 2001 1.83XKnapsack Cover 1983 1.40XFlow Cover 1985 1.22XImplied Bound 1991 1.19XFlow path 1985 1.04XClique 1983 1.02XGUB Cover 1998 1.02XDisjunctive 1979 0.53X

Page 54: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Chvátal-Gomory Cutting Planes

x1 ≥, x2 ≥ 0, x1 + x2 ≤ 3, 5x − 3y ≤ 3x1, x2 ∈ Z

Valid inequality for Continuous Relaxation: 4x1 + 3x2︸ ︷︷ ︸∈Z

≤ 10.5.

Black

0 1 2 30

1

2

3

4

Page 55: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Chvátal-Gomory Cutting Planes

x1 ≥, x2 ≥ 0, x1 + x2 ≤ 3, 5x − 3y ≤ 3x1, x2 ∈ Z

Valid inequality for Continuous Relaxation: 4x1 + 3x2︸ ︷︷ ︸∈Z

≤ 10.5.

This gives the following nontrivial valid inequality: 4x1 + 3x2 ≤ b10.5c.

0 1 2 30

1

2

3

4

Page 56: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Cover Cuts

3x1 + 5x2 + 4x3 + 2x4 + 7x5 ≤ 8,

0 ≤ x1, x2, x3, x4, x5 ≤ 1,

x1, x2, x3, x4, x5 ∈ Z+

Page 57: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Cover Cuts

3x1 + 5x2 + 4x3 + 2x4 + 7x5 ≤ 8,

0 ≤ x1, x2, x3, x4, x5 ≤ 1,

x1, x2, x3, x4, x5 ∈ Z+

5 + 4 > 8

x2 and x3 cannot simultaneously be equal to 1

Page 58: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Cover Cuts

3x1 + 5x2 + 4x3 + 2x4 + 7x5 ≤ 8,

0 ≤ x1, x2, x3, x4, x5 ≤ 1,

x1, x2, x3, x4, x5 ∈ Z+

x2 + x3 ≤ 1

Page 59: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Cover Cuts

3x1 + 5x2 + 4x3 + 2x4 + 7x5 ≤ 8,

0 ≤ x1, x2, x3, x4, x5 ≤ 1,

x1, x2, x3, x4, x5 ∈ Z+

x2 + x3 ≤ 1

x4 + x5 ≤ 1

x1 + x2 + x3 ≤ 2

x1 + x2 + x4 ≤ 2

x1 + x2 + x5 ≤ 2...

Page 60: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Basic Mixed-Integer RoundingConsider the basic set

x − y ≤ 2.5

x ∈ Z, y ≥ 0.

It is called the Mixed-Integer-Rounding Inequality (MIR)

x ≤ b2.5c+y

1− f,

where f = 2.5− b2.5c is the fractional part of 2.5.

Page 61: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Basic Mixed-Integer RoundingConsider the basic set

x − y ≤ 2.5

x ∈ Z, y ≥ 0.

MIR CUT

It is called the Mixed-Integer-Rounding Inequality (MIR)

x ≤ b2.5c+y

1− f,

where f = 2.5− b2.5c is the fractional part of 2.5.

Page 62: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

The Disjunctive Cuts

Split Disjunctive cutsGeneral family of cutting planes that include the MIR cuts.Based on a disjunction πT x ≤ π0 or πT x ≥ π0 + 1.

�� �� �� ��

�� �� �� �� ��

�� �� �� �� ��

�� �� �� �� ��

����������

��

Page 63: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

The Disjunctive Cuts

Split Disjunctive cutsGeneral family of cutting planes that include the MIR cuts.Based on a disjunction πT x ≤ π0 or πT x ≥ π0 + 1.

�� �� �� ��

�� �� �� �� ��

�� �� �� �� ��

�� �� �� �� ��

����������

��

SPLIT

Page 64: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

The Disjunctive Cuts

Split Disjunctive cutsGeneral family of cutting planes that include the MIR cuts.Based on a disjunction πT x ≤ π0 or πT x ≥ π0 + 1.

�������������������������������������������������

�������������������������������������������������

�������������������������������������������������������������������������������������������������������������������������

�������������������������������������������������������������������������������������������������������������������������

�� �� ��

�� �� �� �� ��

�� �� �� �� ��

��

�� �� �� ��

����������

��

��

Page 65: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

The Disjunctive Cuts

Split Disjunctive cutsGeneral family of cutting planes that include the MIR cuts.Based on a disjunction πT x ≤ π0 or πT x ≥ π0 + 1.

Split cut

�� �� �� ��

�� �� �� �� ��

�� �� �� �� ��

�� �� �� �� ��

����������

��

Page 66: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Some recent trends...

Page 67: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Single Constraint Relaxation

A simple example

Page 68: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Single Constraint Relaxation

A simple example

Page 69: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Single Constraint Relaxation

A simple example

Page 70: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Question: Can we expect any improvement by looking atmultiple constraints simultaneously?

Page 71: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Single Constraint Vs Multiple Constraints

‘Extra’ information by considering multiple constraints simultaneously!

Page 72: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Single Constraint Vs Multiple Constraints

‘Extra’ information by considering multiple constraints simultaneously!

Page 73: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Single Constraint Vs Multiple Constraints

‘Extra’ information by considering multiple constraints simultaneously!

Lets Drop This Constraint

Page 74: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Single Constraint Vs Multiple Constraints

‘Extra’ information by considering multiple constraints simultaneously!

Can we obtain this cut?

Page 75: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Single Constraint Vs Multiple Constraints

‘Extra’ information by considering multiple constraints simultaneously!

Problem

Can we obtain this cut?

Page 76: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Single Constraint Vs Multiple Constraints

‘Extra’ information by considering multiple constraints simultaneously!

Problem

Can we obtain this cut? NO!

Page 77: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Single Constraint Vs Multiple Constraints

‘Extra’ information by considering multiple constraints simultaneously!

Page 78: Cutting Planes in Mixed Integer Programmingsdey30/IntroCuttingPlanes.pdfMixed Integer Programming: ‘Linear Problem’ with Discrete Variables Mixed Integer Program (MIP) max c1x1

Single Constraint Vs Multiple Constraints

‘Extra’ information by considering multiple constraints simultaneously!


Recommended