integer programming: theory and algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15...

156
Outline Integer Programming: Theory and Algorithms Piotr Wojciechowski 1 1 LCSEE West Virginia University Morgantown, WV USA April 11, 2015 P. Wojciechowski Optimization Methods in Finance

Upload: others

Post on 28-Jun-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Outline

Integer Programming: Theory and Algorithms

Piotr Wojciechowski1

1LCSEEWest Virginia UniversityMorgantown, WV USA

April 11, 2015

P. Wojciechowski Optimization Methods in Finance

Page 2: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Outline

Outline

1 Theory of Integer Programming

Introduction

Modeling Logical Constraints

2 Solving Mixed Integer Linear Programs

LP Relaxation

Branch and Bound

Cutting Planes

Branch and Cut

P. Wojciechowski Optimization Methods in Finance

Page 3: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Outline

Outline

1 Theory of Integer Programming

Introduction

Modeling Logical Constraints

2 Solving Mixed Integer Linear Programs

LP Relaxation

Branch and Bound

Cutting Planes

Branch and Cut

P. Wojciechowski Optimization Methods in Finance

Page 4: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Outline

1 Theory of Integer Programming

Introduction

Modeling Logical Constraints

2 Solving Mixed Integer Linear Programs

LP Relaxation

Branch and Bound

Cutting Planes

Branch and Cut

P. Wojciechowski Optimization Methods in Finance

Page 5: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Reasoning

Linear Programming allows variables to take non integer values.

In many cases rounding of solutions can be performed.

Integer Programming allows for the modeling of yes or no choices.

In these cases non-integer solutions are of little use.

Definition (Integer Program)

An Integer Program (IP), like an LP, has linear constraints and linear objectivefunction.

However, variables are now restricted to take only integer values.

Thus, an IP will have the following form.

max z = c · x

A · x ≤ b

x ≥ 0

x ∈ Zn

P. Wojciechowski Optimization Methods in Finance

Page 6: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Reasoning

Linear Programming allows variables to take non integer values.

In many cases rounding of solutions can be performed.

Integer Programming allows for the modeling of yes or no choices.

In these cases non-integer solutions are of little use.

Definition (Integer Program)

An Integer Program (IP), like an LP, has linear constraints and linear objectivefunction.

However, variables are now restricted to take only integer values.

Thus, an IP will have the following form.

max z = c · x

A · x ≤ b

x ≥ 0

x ∈ Zn

P. Wojciechowski Optimization Methods in Finance

Page 7: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Reasoning

Linear Programming allows variables to take non integer values.

In many cases rounding of solutions can be performed.

Integer Programming allows for the modeling of yes or no choices.

In these cases non-integer solutions are of little use.

Definition (Integer Program)

An Integer Program (IP), like an LP, has linear constraints and linear objectivefunction.

However, variables are now restricted to take only integer values.

Thus, an IP will have the following form.

max z = c · x

A · x ≤ b

x ≥ 0

x ∈ Zn

P. Wojciechowski Optimization Methods in Finance

Page 8: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Reasoning

Linear Programming allows variables to take non integer values.

In many cases rounding of solutions can be performed.

Integer Programming allows for the modeling of yes or no choices.

In these cases non-integer solutions are of little use.

Definition (Integer Program)

An Integer Program (IP), like an LP, has linear constraints and linear objectivefunction.

However, variables are now restricted to take only integer values.

Thus, an IP will have the following form.

max z = c · x

A · x ≤ b

x ≥ 0

x ∈ Zn

P. Wojciechowski Optimization Methods in Finance

Page 9: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Reasoning

Linear Programming allows variables to take non integer values.

In many cases rounding of solutions can be performed.

Integer Programming allows for the modeling of yes or no choices.

In these cases non-integer solutions are of little use.

Definition (Integer Program)

An Integer Program (IP), like an LP, has linear constraints and linear objectivefunction.

However, variables are now restricted to take only integer values.

Thus, an IP will have the following form.

max z = c · x

A · x ≤ b

x ≥ 0

x ∈ Zn

P. Wojciechowski Optimization Methods in Finance

Page 10: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Reasoning

Linear Programming allows variables to take non integer values.

In many cases rounding of solutions can be performed.

Integer Programming allows for the modeling of yes or no choices.

In these cases non-integer solutions are of little use.

Definition (Integer Program)

An Integer Program (IP), like an LP, has linear constraints and linear objectivefunction.

However, variables are now restricted to take only integer values.

Thus, an IP will have the following form.

max z = c · x

A · x ≤ b

x ≥ 0

x ∈ Zn

P. Wojciechowski Optimization Methods in Finance

Page 11: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Reasoning

Linear Programming allows variables to take non integer values.

In many cases rounding of solutions can be performed.

Integer Programming allows for the modeling of yes or no choices.

In these cases non-integer solutions are of little use.

Definition (Integer Program)

An Integer Program (IP), like an LP, has linear constraints and linear objectivefunction.

However, variables are now restricted to take only integer values.

Thus, an IP will have the following form.

max z = c · x

A · x ≤ b

x ≥ 0

x ∈ Zn

P. Wojciechowski Optimization Methods in Finance

Page 12: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Reasoning

Linear Programming allows variables to take non integer values.

In many cases rounding of solutions can be performed.

Integer Programming allows for the modeling of yes or no choices.

In these cases non-integer solutions are of little use.

Definition (Integer Program)

An Integer Program (IP), like an LP, has linear constraints and linear objectivefunction.

However, variables are now restricted to take only integer values.

Thus, an IP will have the following form.

max z = c · x

A · x ≤ b

x ≥ 0

x ∈ Zn

P. Wojciechowski Optimization Methods in Finance

Page 13: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Reasoning

Linear Programming allows variables to take non integer values.

In many cases rounding of solutions can be performed.

Integer Programming allows for the modeling of yes or no choices.

In these cases non-integer solutions are of little use.

Definition (Integer Program)

An Integer Program (IP), like an LP, has linear constraints and linear objectivefunction.

However, variables are now restricted to take only integer values.

Thus, an IP will have the following form.

max z = c · x

A · x ≤ b

x ≥ 0

x ∈ Zn

P. Wojciechowski Optimization Methods in Finance

Page 14: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Reasoning

Linear Programming allows variables to take non integer values.

In many cases rounding of solutions can be performed.

Integer Programming allows for the modeling of yes or no choices.

In these cases non-integer solutions are of little use.

Definition (Integer Program)

An Integer Program (IP), like an LP, has linear constraints and linear objectivefunction.

However, variables are now restricted to take only integer values.

Thus, an IP will have the following form.

max z = c · x

A · x ≤ b

x ≥ 0

x ∈ Zn

P. Wojciechowski Optimization Methods in Finance

Page 15: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Definition (Mixed Integer Linear Program)

In a Mixed Integer Linear Program (MILP) not all variables are restricted to onlyinteger values.

Thus both IPs and LPs are restircted forms of MILPs.

An MILP will have the following form.

max z = c · x

A · x ≤ b

x ≥ 0

xi ∈ Z, i = 1 . . . p

P. Wojciechowski Optimization Methods in Finance

Page 16: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Definition (Mixed Integer Linear Program)

In a Mixed Integer Linear Program (MILP) not all variables are restricted to onlyinteger values.

Thus both IPs and LPs are restircted forms of MILPs.

An MILP will have the following form.

max z = c · x

A · x ≤ b

x ≥ 0

xi ∈ Z, i = 1 . . . p

P. Wojciechowski Optimization Methods in Finance

Page 17: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Definition (Mixed Integer Linear Program)

In a Mixed Integer Linear Program (MILP) not all variables are restricted to onlyinteger values.

Thus both IPs and LPs are restircted forms of MILPs.

An MILP will have the following form.

max z = c · x

A · x ≤ b

x ≥ 0

xi ∈ Z, i = 1 . . . p

P. Wojciechowski Optimization Methods in Finance

Page 18: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Definition (Mixed Integer Linear Program)

In a Mixed Integer Linear Program (MILP) not all variables are restricted to onlyinteger values.

Thus both IPs and LPs are restircted forms of MILPs.

An MILP will have the following form.

max z = c · x

A · x ≤ b

x ≥ 0

xi ∈ Z, i = 1 . . . p

P. Wojciechowski Optimization Methods in Finance

Page 19: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Definition (Mixed Integer Linear Program)

In a Mixed Integer Linear Program (MILP) not all variables are restricted to onlyinteger values.

Thus both IPs and LPs are restircted forms of MILPs.

An MILP will have the following form.

max z = c · x

A · x ≤ b

x ≥ 0

xi ∈ Z, i = 1 . . . p

P. Wojciechowski Optimization Methods in Finance

Page 20: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Outline

1 Theory of Integer Programming

Introduction

Modeling Logical Constraints

2 Solving Mixed Integer Linear Programs

LP Relaxation

Branch and Bound

Cutting Planes

Branch and Cut

P. Wojciechowski Optimization Methods in Finance

Page 21: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Difference from Linear Programming

Unlike LPs, IPs and MILPs allow us to model a disjunction of constraints.

Example

In an IP we can model x1 ≤ 0 or −x1 ≤ −5.To do this we introduce a new (0, 1)-variable x2. The disjunction can now be expressedas:

x1 −M · x2 ≤ 0

−x1 −M · (1− x2) ≤ −5

This technique can also be used to model constraints like x1 6= 4.

P. Wojciechowski Optimization Methods in Finance

Page 22: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Difference from Linear Programming

Unlike LPs, IPs and MILPs allow us to model a disjunction of constraints.

Example

In an IP we can model x1 ≤ 0 or −x1 ≤ −5.To do this we introduce a new (0, 1)-variable x2. The disjunction can now be expressedas:

x1 −M · x2 ≤ 0

−x1 −M · (1− x2) ≤ −5

This technique can also be used to model constraints like x1 6= 4.

P. Wojciechowski Optimization Methods in Finance

Page 23: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Difference from Linear Programming

Unlike LPs, IPs and MILPs allow us to model a disjunction of constraints.

Example

In an IP we can model x1 ≤ 0 or −x1 ≤ −5.To do this we introduce a new (0, 1)-variable x2. The disjunction can now be expressedas:

x1 −M · x2 ≤ 0

−x1 −M · (1− x2) ≤ −5

This technique can also be used to model constraints like x1 6= 4.

P. Wojciechowski Optimization Methods in Finance

Page 24: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Difference from Linear Programming

Unlike LPs, IPs and MILPs allow us to model a disjunction of constraints.

Example

In an IP we can model x1 ≤ 0 or −x1 ≤ −5.

To do this we introduce a new (0, 1)-variable x2. The disjunction can now be expressedas:

x1 −M · x2 ≤ 0

−x1 −M · (1− x2) ≤ −5

This technique can also be used to model constraints like x1 6= 4.

P. Wojciechowski Optimization Methods in Finance

Page 25: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Difference from Linear Programming

Unlike LPs, IPs and MILPs allow us to model a disjunction of constraints.

Example

In an IP we can model x1 ≤ 0 or −x1 ≤ −5.To do this we introduce a new (0, 1)-variable x2. The disjunction can now be expressedas:

x1 −M · x2 ≤ 0

−x1 −M · (1− x2) ≤ −5

This technique can also be used to model constraints like x1 6= 4.

P. Wojciechowski Optimization Methods in Finance

Page 26: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Difference from Linear Programming

Unlike LPs, IPs and MILPs allow us to model a disjunction of constraints.

Example

In an IP we can model x1 ≤ 0 or −x1 ≤ −5.To do this we introduce a new (0, 1)-variable x2. The disjunction can now be expressedas:

x1 −M · x2 ≤ 0

−x1 −M · (1− x2) ≤ −5

This technique can also be used to model constraints like x1 6= 4.

P. Wojciechowski Optimization Methods in Finance

Page 27: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Exercise

Construct an IP which models the following problem.

We wish to invest $19, 000.

Investment 1 requires an investment of $6, 700 and has a net present value of$8, 000.

Investment 2 requires $10, 000 and has a value of $11, 000.

Investment 3 requires $5, 500 and has a value of $6, 000.

Investment 4 requires $3, 400 and has a value of $4, 000.

P. Wojciechowski Optimization Methods in Finance

Page 28: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Exercise

Construct an IP which models the following problem.

We wish to invest $19, 000.

Investment 1 requires an investment of $6, 700 and has a net present value of$8, 000.

Investment 2 requires $10, 000 and has a value of $11, 000.

Investment 3 requires $5, 500 and has a value of $6, 000.

Investment 4 requires $3, 400 and has a value of $4, 000.

P. Wojciechowski Optimization Methods in Finance

Page 29: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Exercise

Construct an IP which models the following problem.

We wish to invest $19, 000.

Investment 1 requires an investment of $6, 700 and has a net present value of$8, 000.

Investment 2 requires $10, 000 and has a value of $11, 000.

Investment 3 requires $5, 500 and has a value of $6, 000.

Investment 4 requires $3, 400 and has a value of $4, 000.

P. Wojciechowski Optimization Methods in Finance

Page 30: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Exercise

Construct an IP which models the following problem.

We wish to invest $19, 000.

Investment 1 requires an investment of $6, 700 and has a net present value of$8, 000.

Investment 2 requires $10, 000 and has a value of $11, 000.

Investment 3 requires $5, 500 and has a value of $6, 000.

Investment 4 requires $3, 400 and has a value of $4, 000.

P. Wojciechowski Optimization Methods in Finance

Page 31: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Exercise

Construct an IP which models the following problem.

We wish to invest $19, 000.

Investment 1 requires an investment of $6, 700 and has a net present value of$8, 000.

Investment 2 requires $10, 000 and has a value of $11, 000.

Investment 3 requires $5, 500 and has a value of $6, 000.

Investment 4 requires $3, 400 and has a value of $4, 000.

P. Wojciechowski Optimization Methods in Finance

Page 32: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Exercise

Construct an IP which models the following problem.

We wish to invest $19, 000.

Investment 1 requires an investment of $6, 700 and has a net present value of$8, 000.

Investment 2 requires $10, 000 and has a value of $11, 000.

Investment 3 requires $5, 500 and has a value of $6, 000.

Investment 4 requires $3, 400 and has a value of $4, 000.

P. Wojciechowski Optimization Methods in Finance

Page 33: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Exercise

Construct an IP which models the following problem.

We wish to invest $19, 000.

Investment 1 requires an investment of $6, 700 and has a net present value of$8, 000.

Investment 2 requires $10, 000 and has a value of $11, 000.

Investment 3 requires $5, 500 and has a value of $6, 000.

Investment 4 requires $3, 400 and has a value of $4, 000.

P. Wojciechowski Optimization Methods in Finance

Page 34: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Solution

We get the following IP

max 8 · x1 + 11 · x2 + 6 · x3 + 4 · x4

6.7 · x1 + 10 · x2 + 5.5 · x3 + 3.4 · x4 ≤ 19

x1, x2, x3, x4 ∈ {0, 1}

P. Wojciechowski Optimization Methods in Finance

Page 35: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Solution

We get the following IP

max 8 · x1 + 11 · x2 + 6 · x3 + 4 · x4

6.7 · x1 + 10 · x2 + 5.5 · x3 + 3.4 · x4 ≤ 19

x1, x2, x3, x4 ∈ {0, 1}

P. Wojciechowski Optimization Methods in Finance

Page 36: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Solution

We get the following IP

max 8 · x1 + 11 · x2 + 6 · x3 + 4 · x4

6.7 · x1 + 10 · x2 + 5.5 · x3 + 3.4 · x4 ≤ 19

x1, x2, x3, x4 ∈ {0, 1}

P. Wojciechowski Optimization Methods in Finance

Page 37: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Modeling Restrictions

We can also use integer programs to model restrictions on investment choices. Forexample:

We can only make two investments.

x1 + x2 + x3 + x4 ≤ 2

If we choose Investment 2, then we must also choose investment 4.

x2 − x4 ≤ 0

We cannot choose both Investment 1 and Investment 3.

x1 + x3 ≤ 1

P. Wojciechowski Optimization Methods in Finance

Page 38: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Modeling Restrictions

We can also use integer programs to model restrictions on investment choices. Forexample:

We can only make two investments.

x1 + x2 + x3 + x4 ≤ 2

If we choose Investment 2, then we must also choose investment 4.

x2 − x4 ≤ 0

We cannot choose both Investment 1 and Investment 3.

x1 + x3 ≤ 1

P. Wojciechowski Optimization Methods in Finance

Page 39: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Modeling Restrictions

We can also use integer programs to model restrictions on investment choices. Forexample:

We can only make two investments.

x1 + x2 + x3 + x4 ≤ 2

If we choose Investment 2, then we must also choose investment 4.

x2 − x4 ≤ 0

We cannot choose both Investment 1 and Investment 3.

x1 + x3 ≤ 1

P. Wojciechowski Optimization Methods in Finance

Page 40: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Modeling Restrictions

We can also use integer programs to model restrictions on investment choices. Forexample:

We can only make two investments.

x1 + x2 + x3 + x4 ≤ 2

If we choose Investment 2, then we must also choose investment 4.

x2 − x4 ≤ 0

We cannot choose both Investment 1 and Investment 3.

x1 + x3 ≤ 1

P. Wojciechowski Optimization Methods in Finance

Page 41: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Modeling Restrictions

We can also use integer programs to model restrictions on investment choices. Forexample:

We can only make two investments.

x1 + x2 + x3 + x4 ≤ 2

If we choose Investment 2, then we must also choose investment 4.

x2 − x4 ≤ 0

We cannot choose both Investment 1 and Investment 3.

x1 + x3 ≤ 1

P. Wojciechowski Optimization Methods in Finance

Page 42: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Modeling Restrictions

We can also use integer programs to model restrictions on investment choices. Forexample:

We can only make two investments.

x1 + x2 + x3 + x4 ≤ 2

If we choose Investment 2, then we must also choose investment 4.

x2 − x4 ≤ 0

We cannot choose both Investment 1 and Investment 3.

x1 + x3 ≤ 1

P. Wojciechowski Optimization Methods in Finance

Page 43: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Modeling Restrictions

We can also use integer programs to model restrictions on investment choices. Forexample:

We can only make two investments.

x1 + x2 + x3 + x4 ≤ 2

If we choose Investment 2, then we must also choose investment 4.

x2 − x4 ≤ 0

We cannot choose both Investment 1 and Investment 3.

x1 + x3 ≤ 1

P. Wojciechowski Optimization Methods in Finance

Page 44: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

IntroductionModeling Logical Constraints

Modeling Restrictions

We can also use integer programs to model restrictions on investment choices. Forexample:

We can only make two investments.

x1 + x2 + x3 + x4 ≤ 2

If we choose Investment 2, then we must also choose investment 4.

x2 − x4 ≤ 0

We cannot choose both Investment 1 and Investment 3.

x1 + x3 ≤ 1

P. Wojciechowski Optimization Methods in Finance

Page 45: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Outline

1 Theory of Integer Programming

Introduction

Modeling Logical Constraints

2 Solving Mixed Integer Linear Programs

LP Relaxation

Branch and Bound

Cutting Planes

Branch and Cut

P. Wojciechowski Optimization Methods in Finance

Page 46: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Definition (LP Relaxation)

When given an MILP we can relax it to an LP by removing all integrality requirements.Since the LP is less constrained than the original MILP we have the following.

The optimal solution to the LP provides us with an upper bound on the solution tothe MILP.

If the LP is infeasible, then so is the MILP.

If the optimal solution to the LP has xi ∈ Z for i = 1 . . . p, then it is also the optimalsolution to the MILP.

P. Wojciechowski Optimization Methods in Finance

Page 47: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Definition (LP Relaxation)

When given an MILP we can relax it to an LP by removing all integrality requirements.

Since the LP is less constrained than the original MILP we have the following.

The optimal solution to the LP provides us with an upper bound on the solution tothe MILP.

If the LP is infeasible, then so is the MILP.

If the optimal solution to the LP has xi ∈ Z for i = 1 . . . p, then it is also the optimalsolution to the MILP.

P. Wojciechowski Optimization Methods in Finance

Page 48: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Definition (LP Relaxation)

When given an MILP we can relax it to an LP by removing all integrality requirements.Since the LP is less constrained than the original MILP we have the following.

The optimal solution to the LP provides us with an upper bound on the solution tothe MILP.

If the LP is infeasible, then so is the MILP.

If the optimal solution to the LP has xi ∈ Z for i = 1 . . . p, then it is also the optimalsolution to the MILP.

P. Wojciechowski Optimization Methods in Finance

Page 49: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Definition (LP Relaxation)

When given an MILP we can relax it to an LP by removing all integrality requirements.Since the LP is less constrained than the original MILP we have the following.

The optimal solution to the LP provides us with an upper bound on the solution tothe MILP.

If the LP is infeasible, then so is the MILP.

If the optimal solution to the LP has xi ∈ Z for i = 1 . . . p, then it is also the optimalsolution to the MILP.

P. Wojciechowski Optimization Methods in Finance

Page 50: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Definition (LP Relaxation)

When given an MILP we can relax it to an LP by removing all integrality requirements.Since the LP is less constrained than the original MILP we have the following.

The optimal solution to the LP provides us with an upper bound on the solution tothe MILP.

If the LP is infeasible, then so is the MILP.

If the optimal solution to the LP has xi ∈ Z for i = 1 . . . p, then it is also the optimalsolution to the MILP.

P. Wojciechowski Optimization Methods in Finance

Page 51: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Definition (LP Relaxation)

When given an MILP we can relax it to an LP by removing all integrality requirements.Since the LP is less constrained than the original MILP we have the following.

The optimal solution to the LP provides us with an upper bound on the solution tothe MILP.

If the LP is infeasible, then so is the MILP.

If the optimal solution to the LP has xi ∈ Z for i = 1 . . . p, then it is also the optimalsolution to the MILP.

P. Wojciechowski Optimization Methods in Finance

Page 52: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Consider the following IP.

max z = 20 · x1 + 10 · x2 + 10 · x3

2 · x1 + 20 · x2 + 4 · x3 ≤ 15

6 · x1 + 20 · x2 + 4 · x3 = 20

x1, x2, x3 ≥ 0

x1, x2, x3 ∈ Z

When we relax this to an LP we obtain the following as the optimal solution.

(x1, x2, x3) = (3.3̄, 0, 0) z = 66.6̄

However when we consider the original IP we obtain the following as the optimalsolution.

(x1, x2, x3) = (2, 0, 2) z = 60

P. Wojciechowski Optimization Methods in Finance

Page 53: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Consider the following IP.

max z = 20 · x1 + 10 · x2 + 10 · x3

2 · x1 + 20 · x2 + 4 · x3 ≤ 15

6 · x1 + 20 · x2 + 4 · x3 = 20

x1, x2, x3 ≥ 0

x1, x2, x3 ∈ Z

When we relax this to an LP we obtain the following as the optimal solution.

(x1, x2, x3) = (3.3̄, 0, 0) z = 66.6̄

However when we consider the original IP we obtain the following as the optimalsolution.

(x1, x2, x3) = (2, 0, 2) z = 60

P. Wojciechowski Optimization Methods in Finance

Page 54: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Consider the following IP.

max z = 20 · x1 + 10 · x2 + 10 · x3

2 · x1 + 20 · x2 + 4 · x3 ≤ 15

6 · x1 + 20 · x2 + 4 · x3 = 20

x1, x2, x3 ≥ 0

x1, x2, x3 ∈ Z

When we relax this to an LP we obtain the following as the optimal solution.

(x1, x2, x3) = (3.3̄, 0, 0) z = 66.6̄

However when we consider the original IP we obtain the following as the optimalsolution.

(x1, x2, x3) = (2, 0, 2) z = 60

P. Wojciechowski Optimization Methods in Finance

Page 55: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Consider the following IP.

max z = 20 · x1 + 10 · x2 + 10 · x3

2 · x1 + 20 · x2 + 4 · x3 ≤ 15

6 · x1 + 20 · x2 + 4 · x3 = 20

x1, x2, x3 ≥ 0

x1, x2, x3 ∈ Z

When we relax this to an LP we obtain the following as the optimal solution.

(x1, x2, x3) = (3.3̄, 0, 0) z = 66.6̄

However when we consider the original IP we obtain the following as the optimalsolution.

(x1, x2, x3) = (2, 0, 2) z = 60

P. Wojciechowski Optimization Methods in Finance

Page 56: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Consider the following IP.

max z = 20 · x1 + 10 · x2 + 10 · x3

2 · x1 + 20 · x2 + 4 · x3 ≤ 15

6 · x1 + 20 · x2 + 4 · x3 = 20

x1, x2, x3 ≥ 0

x1, x2, x3 ∈ Z

When we relax this to an LP we obtain the following as the optimal solution.

(x1, x2, x3) = (3.3̄, 0, 0) z = 66.6̄

However when we consider the original IP we obtain the following as the optimalsolution.

(x1, x2, x3) = (2, 0, 2) z = 60

P. Wojciechowski Optimization Methods in Finance

Page 57: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Consider the following IP.

max z = 20 · x1 + 10 · x2 + 10 · x3

2 · x1 + 20 · x2 + 4 · x3 ≤ 15

6 · x1 + 20 · x2 + 4 · x3 = 20

x1, x2, x3 ≥ 0

x1, x2, x3 ∈ Z

When we relax this to an LP we obtain the following as the optimal solution.

(x1, x2, x3) = (3.3̄, 0, 0) z = 66.6̄

However when we consider the original IP we obtain the following as the optimalsolution.

(x1, x2, x3) = (2, 0, 2) z = 60

P. Wojciechowski Optimization Methods in Finance

Page 58: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Consider the following IP.

max z = 20 · x1 + 10 · x2 + 10 · x3

2 · x1 + 20 · x2 + 4 · x3 ≤ 15

6 · x1 + 20 · x2 + 4 · x3 = 20

x1, x2, x3 ≥ 0

x1, x2, x3 ∈ Z

When we relax this to an LP we obtain the following as the optimal solution.

(x1, x2, x3) = (3.3̄, 0, 0) z = 66.6̄

However when we consider the original IP we obtain the following as the optimalsolution.

(x1, x2, x3) = (2, 0, 2) z = 60

P. Wojciechowski Optimization Methods in Finance

Page 59: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Outline

1 Theory of Integer Programming

Introduction

Modeling Logical Constraints

2 Solving Mixed Integer Linear Programs

LP Relaxation

Branch and Bound

Cutting Planes

Branch and Cut

P. Wojciechowski Optimization Methods in Finance

Page 60: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Definition (Branch and Bound)

Branch and Bound is a technique for solving Integer Programs.

We first utilize LP Relaxation to obtain the linear optimum for the problem.

We then branch by dividing the solution space.

A branch is pruned under the following conditions.The optimum solution to the branch is integral. (Pruning by integrality)The solution space for the branch is empty. (Pruning by infeasibility)The optimum value for the branch is lower than that of a branch with an integer optimum.(Pruning by bounds)

P. Wojciechowski Optimization Methods in Finance

Page 61: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Definition (Branch and Bound)

Branch and Bound is a technique for solving Integer Programs.

We first utilize LP Relaxation to obtain the linear optimum for the problem.

We then branch by dividing the solution space.

A branch is pruned under the following conditions.The optimum solution to the branch is integral. (Pruning by integrality)The solution space for the branch is empty. (Pruning by infeasibility)The optimum value for the branch is lower than that of a branch with an integer optimum.(Pruning by bounds)

P. Wojciechowski Optimization Methods in Finance

Page 62: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Definition (Branch and Bound)

Branch and Bound is a technique for solving Integer Programs.

We first utilize LP Relaxation to obtain the linear optimum for the problem.

We then branch by dividing the solution space.

A branch is pruned under the following conditions.The optimum solution to the branch is integral. (Pruning by integrality)The solution space for the branch is empty. (Pruning by infeasibility)The optimum value for the branch is lower than that of a branch with an integer optimum.(Pruning by bounds)

P. Wojciechowski Optimization Methods in Finance

Page 63: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Definition (Branch and Bound)

Branch and Bound is a technique for solving Integer Programs.

We first utilize LP Relaxation to obtain the linear optimum for the problem.

We then branch by dividing the solution space.

A branch is pruned under the following conditions.The optimum solution to the branch is integral. (Pruning by integrality)The solution space for the branch is empty. (Pruning by infeasibility)The optimum value for the branch is lower than that of a branch with an integer optimum.(Pruning by bounds)

P. Wojciechowski Optimization Methods in Finance

Page 64: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Definition (Branch and Bound)

Branch and Bound is a technique for solving Integer Programs.

We first utilize LP Relaxation to obtain the linear optimum for the problem.

We then branch by dividing the solution space.

A branch is pruned under the following conditions.

The optimum solution to the branch is integral. (Pruning by integrality)The solution space for the branch is empty. (Pruning by infeasibility)The optimum value for the branch is lower than that of a branch with an integer optimum.(Pruning by bounds)

P. Wojciechowski Optimization Methods in Finance

Page 65: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Definition (Branch and Bound)

Branch and Bound is a technique for solving Integer Programs.

We first utilize LP Relaxation to obtain the linear optimum for the problem.

We then branch by dividing the solution space.

A branch is pruned under the following conditions.The optimum solution to the branch is integral. (Pruning by integrality)

The solution space for the branch is empty. (Pruning by infeasibility)The optimum value for the branch is lower than that of a branch with an integer optimum.(Pruning by bounds)

P. Wojciechowski Optimization Methods in Finance

Page 66: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Definition (Branch and Bound)

Branch and Bound is a technique for solving Integer Programs.

We first utilize LP Relaxation to obtain the linear optimum for the problem.

We then branch by dividing the solution space.

A branch is pruned under the following conditions.The optimum solution to the branch is integral. (Pruning by integrality)The solution space for the branch is empty. (Pruning by infeasibility)

The optimum value for the branch is lower than that of a branch with an integer optimum.(Pruning by bounds)

P. Wojciechowski Optimization Methods in Finance

Page 67: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Definition (Branch and Bound)

Branch and Bound is a technique for solving Integer Programs.

We first utilize LP Relaxation to obtain the linear optimum for the problem.

We then branch by dividing the solution space.

A branch is pruned under the following conditions.The optimum solution to the branch is integral. (Pruning by integrality)The solution space for the branch is empty. (Pruning by infeasibility)The optimum value for the branch is lower than that of a branch with an integer optimum.(Pruning by bounds)

P. Wojciechowski Optimization Methods in Finance

Page 68: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Let us consider the Integer program described by System 1.

max z = x1 + x2

−x1 + x2 ≤ 2

8 · x1 + 2 · x2 ≤ 19 (1)

x1, x2 ≥ 0

x1, x2 ∈ Z

P. Wojciechowski Optimization Methods in Finance

Page 69: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Let us consider the Integer program described by System 1.

max z = x1 + x2

−x1 + x2 ≤ 2

8 · x1 + 2 · x2 ≤ 19 (1)

x1, x2 ≥ 0

x1, x2 ∈ Z

P. Wojciechowski Optimization Methods in Finance

Page 70: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Let us consider the Integer program described by System 1.

max z = x1 + x2

−x1 + x2 ≤ 2

8 · x1 + 2 · x2 ≤ 19 (1)

x1, x2 ≥ 0

x1, x2 ∈ Z

P. Wojciechowski Optimization Methods in Finance

Page 71: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Let us now look at this problem graphically.

x2

x1

−x1 + x2 = 28 · x1 + 2 · x2 = 19

z=5

Figure: Graphical Solution

P. Wojciechowski Optimization Methods in Finance

Page 72: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Let us now look at this problem graphically.

x2

x1

−x1 + x2 = 28 · x1 + 2 · x2 = 19

z=5

Figure: Graphical Solution

P. Wojciechowski Optimization Methods in Finance

Page 73: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Let us now look at this problem graphically.

x2

x1

−x1 + x2 = 2

8 · x1 + 2 · x2 = 19

z=5

Figure: Graphical Solution

P. Wojciechowski Optimization Methods in Finance

Page 74: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Let us now look at this problem graphically.

x2

x1

−x1 + x2 = 28 · x1 + 2 · x2 = 19

z=5

Figure: Graphical Solution

P. Wojciechowski Optimization Methods in Finance

Page 75: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Let us now look at this problem graphically.

x2

x1

−x1 + x2 = 28 · x1 + 2 · x2 = 19

z=5

Figure: Graphical Solution

P. Wojciechowski Optimization Methods in Finance

Page 76: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Let us now look at this problem graphically.

x2

x1

−x1 + x2 = 28 · x1 + 2 · x2 = 19

z=5

Figure: Graphical Solution

P. Wojciechowski Optimization Methods in Finance

Page 77: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

We have that the optimal solution to System 1 is (x1, x2) = (1.5, 3.5) which givesus z = 5.

We can now branch on x1.

Any integer solution must have either x1 ≤ 1 or x1 ≥ 2.

Thus, we can create two new systems of constraints:one by adding x1 ≤ 1one by adding x1 ≥ 2

We can solve these branches graphically.

P. Wojciechowski Optimization Methods in Finance

Page 78: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

We have that the optimal solution to System 1 is (x1, x2) = (1.5, 3.5) which givesus z = 5.

We can now branch on x1.

Any integer solution must have either x1 ≤ 1 or x1 ≥ 2.

Thus, we can create two new systems of constraints:one by adding x1 ≤ 1one by adding x1 ≥ 2

We can solve these branches graphically.

P. Wojciechowski Optimization Methods in Finance

Page 79: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

We have that the optimal solution to System 1 is (x1, x2) = (1.5, 3.5) which givesus z = 5.

We can now branch on x1.

Any integer solution must have either x1 ≤ 1 or x1 ≥ 2.

Thus, we can create two new systems of constraints:one by adding x1 ≤ 1one by adding x1 ≥ 2

We can solve these branches graphically.

P. Wojciechowski Optimization Methods in Finance

Page 80: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

We have that the optimal solution to System 1 is (x1, x2) = (1.5, 3.5) which givesus z = 5.

We can now branch on x1.

Any integer solution must have either x1 ≤ 1 or x1 ≥ 2.

Thus, we can create two new systems of constraints:one by adding x1 ≤ 1one by adding x1 ≥ 2

We can solve these branches graphically.

P. Wojciechowski Optimization Methods in Finance

Page 81: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

We have that the optimal solution to System 1 is (x1, x2) = (1.5, 3.5) which givesus z = 5.

We can now branch on x1.

Any integer solution must have either x1 ≤ 1 or x1 ≥ 2.

Thus, we can create two new systems of constraints:

one by adding x1 ≤ 1one by adding x1 ≥ 2

We can solve these branches graphically.

P. Wojciechowski Optimization Methods in Finance

Page 82: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

We have that the optimal solution to System 1 is (x1, x2) = (1.5, 3.5) which givesus z = 5.

We can now branch on x1.

Any integer solution must have either x1 ≤ 1 or x1 ≥ 2.

Thus, we can create two new systems of constraints:one by adding x1 ≤ 1

one by adding x1 ≥ 2

We can solve these branches graphically.

P. Wojciechowski Optimization Methods in Finance

Page 83: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

We have that the optimal solution to System 1 is (x1, x2) = (1.5, 3.5) which givesus z = 5.

We can now branch on x1.

Any integer solution must have either x1 ≤ 1 or x1 ≥ 2.

Thus, we can create two new systems of constraints:one by adding x1 ≤ 1one by adding x1 ≥ 2

We can solve these branches graphically.

P. Wojciechowski Optimization Methods in Finance

Page 84: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

We have that the optimal solution to System 1 is (x1, x2) = (1.5, 3.5) which givesus z = 5.

We can now branch on x1.

Any integer solution must have either x1 ≤ 1 or x1 ≥ 2.

Thus, we can create two new systems of constraints:one by adding x1 ≤ 1one by adding x1 ≥ 2

We can solve these branches graphically.

P. Wojciechowski Optimization Methods in Finance

Page 85: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

x2

x1

z=4

z=3.5

Figure: Graphical Solution

P. Wojciechowski Optimization Methods in Finance

Page 86: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

x2

x1

z=4

z=3.5

Figure: Graphical Solution

P. Wojciechowski Optimization Methods in Finance

Page 87: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

x2

x1

z=4

z=3.5

Figure: Graphical Solution

P. Wojciechowski Optimization Methods in Finance

Page 88: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

x2

x1

z=4

z=3.5

Figure: Graphical Solution

P. Wojciechowski Optimization Methods in Finance

Page 89: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

x2

x1

z=4

z=3.5

Figure: Graphical Solution

P. Wojciechowski Optimization Methods in Finance

Page 90: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

x2

x1

z=4

z=3.5

Figure: Graphical Solution

P. Wojciechowski Optimization Methods in Finance

Page 91: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

x2

x1

z=4

z=3.5

Figure: Graphical Solution

P. Wojciechowski Optimization Methods in Finance

Page 92: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

x2

x1

z=4

z=3.5

Figure: Graphical Solution

P. Wojciechowski Optimization Methods in Finance

Page 93: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

We have that the optimal solution to System (1) is (x1, x2) = (1.5, 3.5) which gaveus z = 5.

When we add the constraint x1 ≤ 1 we get that the optimum solution is(x1, x2) = (1, 3) which gives us z = 4.

Since the optimum solution is integeral we prune this branch.

When we add the constraint x1 ≥ 2 we get that the optimum solution is(x1, x2) = (2, 1.5) which gives us z = 3.5.

Since the optimum solution lower than a known integral solution we also prune thisbranch.

All branches are now pruned and we have that the optimum integer solution is(x1, x2) = (1, 3) which gives us z = 4.

P. Wojciechowski Optimization Methods in Finance

Page 94: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

We have that the optimal solution to System (1) is (x1, x2) = (1.5, 3.5) which gaveus z = 5.

When we add the constraint x1 ≤ 1 we get that the optimum solution is(x1, x2) = (1, 3) which gives us z = 4.

Since the optimum solution is integeral we prune this branch.

When we add the constraint x1 ≥ 2 we get that the optimum solution is(x1, x2) = (2, 1.5) which gives us z = 3.5.

Since the optimum solution lower than a known integral solution we also prune thisbranch.

All branches are now pruned and we have that the optimum integer solution is(x1, x2) = (1, 3) which gives us z = 4.

P. Wojciechowski Optimization Methods in Finance

Page 95: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

We have that the optimal solution to System (1) is (x1, x2) = (1.5, 3.5) which gaveus z = 5.

When we add the constraint x1 ≤ 1 we get that the optimum solution is(x1, x2) = (1, 3) which gives us z = 4.

Since the optimum solution is integeral we prune this branch.

When we add the constraint x1 ≥ 2 we get that the optimum solution is(x1, x2) = (2, 1.5) which gives us z = 3.5.

Since the optimum solution lower than a known integral solution we also prune thisbranch.

All branches are now pruned and we have that the optimum integer solution is(x1, x2) = (1, 3) which gives us z = 4.

P. Wojciechowski Optimization Methods in Finance

Page 96: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

We have that the optimal solution to System (1) is (x1, x2) = (1.5, 3.5) which gaveus z = 5.

When we add the constraint x1 ≤ 1 we get that the optimum solution is(x1, x2) = (1, 3) which gives us z = 4.

Since the optimum solution is integeral we prune this branch.

When we add the constraint x1 ≥ 2 we get that the optimum solution is(x1, x2) = (2, 1.5) which gives us z = 3.5.

Since the optimum solution lower than a known integral solution we also prune thisbranch.

All branches are now pruned and we have that the optimum integer solution is(x1, x2) = (1, 3) which gives us z = 4.

P. Wojciechowski Optimization Methods in Finance

Page 97: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

We have that the optimal solution to System (1) is (x1, x2) = (1.5, 3.5) which gaveus z = 5.

When we add the constraint x1 ≤ 1 we get that the optimum solution is(x1, x2) = (1, 3) which gives us z = 4.

Since the optimum solution is integeral we prune this branch.

When we add the constraint x1 ≥ 2 we get that the optimum solution is(x1, x2) = (2, 1.5) which gives us z = 3.5.

Since the optimum solution lower than a known integral solution we also prune thisbranch.

All branches are now pruned and we have that the optimum integer solution is(x1, x2) = (1, 3) which gives us z = 4.

P. Wojciechowski Optimization Methods in Finance

Page 98: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

We have that the optimal solution to System (1) is (x1, x2) = (1.5, 3.5) which gaveus z = 5.

When we add the constraint x1 ≤ 1 we get that the optimum solution is(x1, x2) = (1, 3) which gives us z = 4.

Since the optimum solution is integeral we prune this branch.

When we add the constraint x1 ≥ 2 we get that the optimum solution is(x1, x2) = (2, 1.5) which gives us z = 3.5.

Since the optimum solution lower than a known integral solution we also prune thisbranch.

All branches are now pruned and we have that the optimum integer solution is(x1, x2) = (1, 3) which gives us z = 4.

P. Wojciechowski Optimization Methods in Finance

Page 99: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

We have that the optimal solution to System (1) is (x1, x2) = (1.5, 3.5) which gaveus z = 5.

When we add the constraint x1 ≤ 1 we get that the optimum solution is(x1, x2) = (1, 3) which gives us z = 4.

Since the optimum solution is integeral we prune this branch.

When we add the constraint x1 ≥ 2 we get that the optimum solution is(x1, x2) = (2, 1.5) which gives us z = 3.5.

Since the optimum solution lower than a known integral solution we also prune thisbranch.

All branches are now pruned and we have that the optimum integer solution is(x1, x2) = (1, 3) which gives us z = 4.

P. Wojciechowski Optimization Methods in Finance

Page 100: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

We can consider the LPs solved as part of branch and bound as forming a binary tree.For System (1) this tree is:

(x1, x2) = (1.5, 3.5)

z = 5

(x1, x2) = (1, 3)

z = 4

x1 ≤ 1

Pruned by integrality

(x1, x2) = (2, 1.5)

z = 3.5

x1 ≥ 2

Pruned by bounds

Figure: Branching Tree

P. Wojciechowski Optimization Methods in Finance

Page 101: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

We can consider the LPs solved as part of branch and bound as forming a binary tree.For System (1) this tree is:

(x1, x2) = (1.5, 3.5)

z = 5

(x1, x2) = (1, 3)

z = 4

x1 ≤ 1

Pruned by integrality

(x1, x2) = (2, 1.5)

z = 3.5

x1 ≥ 2

Pruned by bounds

Figure: Branching Tree

P. Wojciechowski Optimization Methods in Finance

Page 102: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

We can consider the LPs solved as part of branch and bound as forming a binary tree.For System (1) this tree is:

(x1, x2) = (1.5, 3.5)

z = 5

(x1, x2) = (1, 3)

z = 4

x1 ≤ 1

Pruned by integrality

(x1, x2) = (2, 1.5)

z = 3.5

x1 ≥ 2

Pruned by bounds

Figure: Branching Tree

P. Wojciechowski Optimization Methods in Finance

Page 103: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

We can consider the LPs solved as part of branch and bound as forming a binary tree.For System (1) this tree is:

(x1, x2) = (1.5, 3.5)

z = 5

(x1, x2) = (1, 3)

z = 4

x1 ≤ 1

Pruned by integrality

(x1, x2) = (2, 1.5)

z = 3.5

x1 ≥ 2

Pruned by bounds

Figure: Branching Tree

P. Wojciechowski Optimization Methods in Finance

Page 104: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

We can consider the LPs solved as part of branch and bound as forming a binary tree.For System (1) this tree is:

(x1, x2) = (1.5, 3.5)

z = 5

(x1, x2) = (1, 3)

z = 4

x1 ≤ 1

Pruned by integrality

(x1, x2) = (2, 1.5)

z = 3.5

x1 ≥ 2

Pruned by bounds

Figure: Branching Tree

P. Wojciechowski Optimization Methods in Finance

Page 105: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Exercise

Perform Branch and bound to find the solution to the following IP.

max z = 3 · x1 + x2

−x1 + x2 ≤ 2

8 · x1 + 2 · x2 ≤ 19

x1, x2 ≥ 0

x1, x2 ∈ Z

P. Wojciechowski Optimization Methods in Finance

Page 106: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Exercise

Perform Branch and bound to find the solution to the following IP.

max z = 3 · x1 + x2

−x1 + x2 ≤ 2

8 · x1 + 2 · x2 ≤ 19

x1, x2 ≥ 0

x1, x2 ∈ Z

P. Wojciechowski Optimization Methods in Finance

Page 107: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Exercise

Perform Branch and bound to find the solution to the following IP.

max z = 3 · x1 + x2

−x1 + x2 ≤ 2

8 · x1 + 2 · x2 ≤ 19

x1, x2 ≥ 0

x1, x2 ∈ Z

P. Wojciechowski Optimization Methods in Finance

Page 108: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Solution

(x1, x2) = (1.5, 3.5)

z = 8

(x1, x2) = (1, 3)

z = 6

x1 ≤ 1

Pruned by integrality

(x1, x2) = (2, 1.5)

z = 7.5

x1 ≥ 2

(x1, x2) = (2.125, 1)

z = 7.375

x2 ≤ 1

Infeasible

x2 ≥ 2

Pruned by infeasibility

(x1, x2) = (2, 1)

z = 7

x1 ≤ 2

Pruned by integrality

Infeasible

x1 ≥ 3

Pruned by infeasibility

Figure: Branching Tree

P. Wojciechowski Optimization Methods in Finance

Page 109: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Solution

(x1, x2) = (1.5, 3.5)

z = 8

(x1, x2) = (1, 3)

z = 6

x1 ≤ 1

Pruned by integrality

(x1, x2) = (2, 1.5)

z = 7.5

x1 ≥ 2

(x1, x2) = (2.125, 1)

z = 7.375

x2 ≤ 1

Infeasible

x2 ≥ 2

Pruned by infeasibility

(x1, x2) = (2, 1)

z = 7

x1 ≤ 2

Pruned by integrality

Infeasible

x1 ≥ 3

Pruned by infeasibility

Figure: Branching Tree

P. Wojciechowski Optimization Methods in Finance

Page 110: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Solution

(x1, x2) = (1.5, 3.5)

z = 8

(x1, x2) = (1, 3)

z = 6

x1 ≤ 1

Pruned by integrality

(x1, x2) = (2, 1.5)

z = 7.5

x1 ≥ 2

(x1, x2) = (2.125, 1)

z = 7.375

x2 ≤ 1

Infeasible

x2 ≥ 2

Pruned by infeasibility

(x1, x2) = (2, 1)

z = 7

x1 ≤ 2

Pruned by integrality

Infeasible

x1 ≥ 3

Pruned by infeasibility

Figure: Branching Tree

P. Wojciechowski Optimization Methods in Finance

Page 111: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Solution

(x1, x2) = (1.5, 3.5)

z = 8

(x1, x2) = (1, 3)

z = 6

x1 ≤ 1

Pruned by integrality

(x1, x2) = (2, 1.5)

z = 7.5

x1 ≥ 2

(x1, x2) = (2.125, 1)

z = 7.375

x2 ≤ 1

Infeasible

x2 ≥ 2

Pruned by infeasibility

(x1, x2) = (2, 1)

z = 7

x1 ≤ 2

Pruned by integrality

Infeasible

x1 ≥ 3

Pruned by infeasibility

Figure: Branching Tree

P. Wojciechowski Optimization Methods in Finance

Page 112: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Solution

(x1, x2) = (1.5, 3.5)

z = 8

(x1, x2) = (1, 3)

z = 6

x1 ≤ 1

Pruned by integrality

(x1, x2) = (2, 1.5)

z = 7.5

x1 ≥ 2

(x1, x2) = (2.125, 1)

z = 7.375

x2 ≤ 1

Infeasible

x2 ≥ 2

Pruned by infeasibility

(x1, x2) = (2, 1)

z = 7

x1 ≤ 2

Pruned by integrality

Infeasible

x1 ≥ 3

Pruned by infeasibility

Figure: Branching Tree

P. Wojciechowski Optimization Methods in Finance

Page 113: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Solution

(x1, x2) = (1.5, 3.5)

z = 8

(x1, x2) = (1, 3)

z = 6

x1 ≤ 1

Pruned by integrality

(x1, x2) = (2, 1.5)

z = 7.5

x1 ≥ 2

(x1, x2) = (2.125, 1)

z = 7.375

x2 ≤ 1

Infeasible

x2 ≥ 2

Pruned by infeasibility

(x1, x2) = (2, 1)

z = 7

x1 ≤ 2

Pruned by integrality

Infeasible

x1 ≥ 3

Pruned by infeasibility

Figure: Branching Tree

P. Wojciechowski Optimization Methods in Finance

Page 114: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Solution

(x1, x2) = (1.5, 3.5)

z = 8

(x1, x2) = (1, 3)

z = 6

x1 ≤ 1

Pruned by integrality

(x1, x2) = (2, 1.5)

z = 7.5

x1 ≥ 2

(x1, x2) = (2.125, 1)

z = 7.375

x2 ≤ 1

Infeasible

x2 ≥ 2

Pruned by infeasibility

(x1, x2) = (2, 1)

z = 7

x1 ≤ 2

Pruned by integrality

Infeasible

x1 ≥ 3

Pruned by infeasibility

Figure: Branching Tree

P. Wojciechowski Optimization Methods in Finance

Page 115: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Solution

(x1, x2) = (1.5, 3.5)

z = 8

(x1, x2) = (1, 3)

z = 6

x1 ≤ 1

Pruned by integrality

(x1, x2) = (2, 1.5)

z = 7.5

x1 ≥ 2

(x1, x2) = (2.125, 1)

z = 7.375

x2 ≤ 1

Infeasible

x2 ≥ 2

Pruned by infeasibility

(x1, x2) = (2, 1)

z = 7

x1 ≤ 2

Pruned by integrality

Infeasible

x1 ≥ 3

Pruned by infeasibility

Figure: Branching Tree

P. Wojciechowski Optimization Methods in Finance

Page 116: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Outline

1 Theory of Integer Programming

Introduction

Modeling Logical Constraints

2 Solving Mixed Integer Linear Programs

LP Relaxation

Branch and Bound

Cutting Planes

Branch and Cut

P. Wojciechowski Optimization Methods in Finance

Page 117: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Definition (Cutting Planes)

When relaxing an MILP to an LP we can add additional constraints.

These added constraints are designed to be satisfied by every solution to theMILP.

However, they can still eliminate possible solutions to the relaxed LP.

Such additional constraints serve to strengthen the LP relaxation and are calledCutting Planes.

The optimal solution to the strengthened LP provides us with an upper bound on thesolution to the MILP.If the strengthened LP is infeasible, then so is the MILP.If the optimal solution to the strengthened LP has xi ∈ Z for i = 1 . . . p, then it is alsothe optimal solution to the MILP.

P. Wojciechowski Optimization Methods in Finance

Page 118: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Definition (Cutting Planes)

When relaxing an MILP to an LP we can add additional constraints.

These added constraints are designed to be satisfied by every solution to theMILP.

However, they can still eliminate possible solutions to the relaxed LP.

Such additional constraints serve to strengthen the LP relaxation and are calledCutting Planes.

The optimal solution to the strengthened LP provides us with an upper bound on thesolution to the MILP.If the strengthened LP is infeasible, then so is the MILP.If the optimal solution to the strengthened LP has xi ∈ Z for i = 1 . . . p, then it is alsothe optimal solution to the MILP.

P. Wojciechowski Optimization Methods in Finance

Page 119: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Definition (Cutting Planes)

When relaxing an MILP to an LP we can add additional constraints.

These added constraints are designed to be satisfied by every solution to theMILP.

However, they can still eliminate possible solutions to the relaxed LP.

Such additional constraints serve to strengthen the LP relaxation and are calledCutting Planes.

The optimal solution to the strengthened LP provides us with an upper bound on thesolution to the MILP.If the strengthened LP is infeasible, then so is the MILP.If the optimal solution to the strengthened LP has xi ∈ Z for i = 1 . . . p, then it is alsothe optimal solution to the MILP.

P. Wojciechowski Optimization Methods in Finance

Page 120: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Definition (Cutting Planes)

When relaxing an MILP to an LP we can add additional constraints.

These added constraints are designed to be satisfied by every solution to theMILP.

However, they can still eliminate possible solutions to the relaxed LP.

Such additional constraints serve to strengthen the LP relaxation and are calledCutting Planes.

The optimal solution to the strengthened LP provides us with an upper bound on thesolution to the MILP.If the strengthened LP is infeasible, then so is the MILP.If the optimal solution to the strengthened LP has xi ∈ Z for i = 1 . . . p, then it is alsothe optimal solution to the MILP.

P. Wojciechowski Optimization Methods in Finance

Page 121: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Definition (Cutting Planes)

When relaxing an MILP to an LP we can add additional constraints.

These added constraints are designed to be satisfied by every solution to theMILP.

However, they can still eliminate possible solutions to the relaxed LP.

Such additional constraints serve to strengthen the LP relaxation and are calledCutting Planes.

The optimal solution to the strengthened LP provides us with an upper bound on thesolution to the MILP.If the strengthened LP is infeasible, then so is the MILP.If the optimal solution to the strengthened LP has xi ∈ Z for i = 1 . . . p, then it is alsothe optimal solution to the MILP.

P. Wojciechowski Optimization Methods in Finance

Page 122: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Definition (Cutting Planes)

When relaxing an MILP to an LP we can add additional constraints.

These added constraints are designed to be satisfied by every solution to theMILP.

However, they can still eliminate possible solutions to the relaxed LP.

Such additional constraints serve to strengthen the LP relaxation and are calledCutting Planes.

The optimal solution to the strengthened LP provides us with an upper bound on thesolution to the MILP.

If the strengthened LP is infeasible, then so is the MILP.If the optimal solution to the strengthened LP has xi ∈ Z for i = 1 . . . p, then it is alsothe optimal solution to the MILP.

P. Wojciechowski Optimization Methods in Finance

Page 123: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Definition (Cutting Planes)

When relaxing an MILP to an LP we can add additional constraints.

These added constraints are designed to be satisfied by every solution to theMILP.

However, they can still eliminate possible solutions to the relaxed LP.

Such additional constraints serve to strengthen the LP relaxation and are calledCutting Planes.

The optimal solution to the strengthened LP provides us with an upper bound on thesolution to the MILP.If the strengthened LP is infeasible, then so is the MILP.

If the optimal solution to the strengthened LP has xi ∈ Z for i = 1 . . . p, then it is alsothe optimal solution to the MILP.

P. Wojciechowski Optimization Methods in Finance

Page 124: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Definition (Cutting Planes)

When relaxing an MILP to an LP we can add additional constraints.

These added constraints are designed to be satisfied by every solution to theMILP.

However, they can still eliminate possible solutions to the relaxed LP.

Such additional constraints serve to strengthen the LP relaxation and are calledCutting Planes.

The optimal solution to the strengthened LP provides us with an upper bound on thesolution to the MILP.If the strengthened LP is infeasible, then so is the MILP.If the optimal solution to the strengthened LP has xi ∈ Z for i = 1 . . . p, then it is alsothe optimal solution to the MILP.

P. Wojciechowski Optimization Methods in Finance

Page 125: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Generating Cutting Planes

Let Constraint (2) be satisfied by the solutions to an MILP with b 6∈ Z.

p∑i=1

ai · xi +n∑

i=p+1

ai · xi = b (2)

Let f0 = b − bbc, and let fi = ai − baic for i = 1 . . . p.We can now rewrite Constraint (2) as

∑i≤p,fi≤f0

fi · xi +∑

i≤p,fi>f0

(fi − 1) · xi +n∑

i=p+1

ai = k + f0.

Where k ∈ Z.

P. Wojciechowski Optimization Methods in Finance

Page 126: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Generating Cutting Planes

Let Constraint (2) be satisfied by the solutions to an MILP with b 6∈ Z.

p∑i=1

ai · xi +n∑

i=p+1

ai · xi = b (2)

Let f0 = b − bbc, and let fi = ai − baic for i = 1 . . . p.We can now rewrite Constraint (2) as

∑i≤p,fi≤f0

fi · xi +∑

i≤p,fi>f0

(fi − 1) · xi +n∑

i=p+1

ai = k + f0.

Where k ∈ Z.

P. Wojciechowski Optimization Methods in Finance

Page 127: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Generating Cutting Planes

Let Constraint (2) be satisfied by the solutions to an MILP with b 6∈ Z.

p∑i=1

ai · xi +n∑

i=p+1

ai · xi = b (2)

Let f0 = b − bbc, and let fi = ai − baic for i = 1 . . . p.We can now rewrite Constraint (2) as

∑i≤p,fi≤f0

fi · xi +∑

i≤p,fi>f0

(fi − 1) · xi +n∑

i=p+1

ai = k + f0.

Where k ∈ Z.

P. Wojciechowski Optimization Methods in Finance

Page 128: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Generating Cutting Planes

Let Constraint (2) be satisfied by the solutions to an MILP with b 6∈ Z.

p∑i=1

ai · xi +n∑

i=p+1

ai · xi = b (2)

Let f0 = b − bbc, and let fi = ai − baic for i = 1 . . . p.

We can now rewrite Constraint (2) as

∑i≤p,fi≤f0

fi · xi +∑

i≤p,fi>f0

(fi − 1) · xi +n∑

i=p+1

ai = k + f0.

Where k ∈ Z.

P. Wojciechowski Optimization Methods in Finance

Page 129: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Generating Cutting Planes

Let Constraint (2) be satisfied by the solutions to an MILP with b 6∈ Z.

p∑i=1

ai · xi +n∑

i=p+1

ai · xi = b (2)

Let f0 = b − bbc, and let fi = ai − baic for i = 1 . . . p.We can now rewrite Constraint (2) as

∑i≤p,fi≤f0

fi · xi +∑

i≤p,fi>f0

(fi − 1) · xi +n∑

i=p+1

ai = k + f0.

Where k ∈ Z.

P. Wojciechowski Optimization Methods in Finance

Page 130: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Generating Cutting Planes

If k ≥ 0 then Constraint (2) implies that

∑i≤p,fi≤f0

fif0· xi −

∑i≤p,fi>f0

1− fif0· xi +

n∑i=p+1

ai

f0≥ 1.

If k ≤ −1 then Constraint (2) implies that

−∑

i≤p,fi≤f0

fi1− f0

· xi +∑

i≤p,fi>f0

1− fi1− f0

· xi −n∑

i=p+1

ai

1− f0≥ 1.

Since each xi is non negative we will always have that.

∑i≤p,fi≤f0

fif0· xi +

∑i≤p,fi>f0

1− fi1− f0

· xi +∑

i>p,ai>0

ai

f0−

∑i>p,ai<0

ai

1− f0≥ 1.

This constraint is known as the Gomory mixed integer cut.

P. Wojciechowski Optimization Methods in Finance

Page 131: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Generating Cutting Planes

If k ≥ 0 then Constraint (2) implies that

∑i≤p,fi≤f0

fif0· xi −

∑i≤p,fi>f0

1− fif0· xi +

n∑i=p+1

ai

f0≥ 1.

If k ≤ −1 then Constraint (2) implies that

−∑

i≤p,fi≤f0

fi1− f0

· xi +∑

i≤p,fi>f0

1− fi1− f0

· xi −n∑

i=p+1

ai

1− f0≥ 1.

Since each xi is non negative we will always have that.

∑i≤p,fi≤f0

fif0· xi +

∑i≤p,fi>f0

1− fi1− f0

· xi +∑

i>p,ai>0

ai

f0−

∑i>p,ai<0

ai

1− f0≥ 1.

This constraint is known as the Gomory mixed integer cut.

P. Wojciechowski Optimization Methods in Finance

Page 132: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Generating Cutting Planes

If k ≥ 0 then Constraint (2) implies that

∑i≤p,fi≤f0

fif0· xi −

∑i≤p,fi>f0

1− fif0· xi +

n∑i=p+1

ai

f0≥ 1.

If k ≤ −1 then Constraint (2) implies that

−∑

i≤p,fi≤f0

fi1− f0

· xi +∑

i≤p,fi>f0

1− fi1− f0

· xi −n∑

i=p+1

ai

1− f0≥ 1.

Since each xi is non negative we will always have that.

∑i≤p,fi≤f0

fif0· xi +

∑i≤p,fi>f0

1− fi1− f0

· xi +∑

i>p,ai>0

ai

f0−

∑i>p,ai<0

ai

1− f0≥ 1.

This constraint is known as the Gomory mixed integer cut.

P. Wojciechowski Optimization Methods in Finance

Page 133: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Generating Cutting Planes

If k ≥ 0 then Constraint (2) implies that

∑i≤p,fi≤f0

fif0· xi −

∑i≤p,fi>f0

1− fif0· xi +

n∑i=p+1

ai

f0≥ 1.

If k ≤ −1 then Constraint (2) implies that

−∑

i≤p,fi≤f0

fi1− f0

· xi +∑

i≤p,fi>f0

1− fi1− f0

· xi −n∑

i=p+1

ai

1− f0≥ 1.

Since each xi is non negative we will always have that.

∑i≤p,fi≤f0

fif0· xi +

∑i≤p,fi>f0

1− fi1− f0

· xi +∑

i>p,ai>0

ai

f0−

∑i>p,ai<0

ai

1− f0≥ 1.

This constraint is known as the Gomory mixed integer cut.

P. Wojciechowski Optimization Methods in Finance

Page 134: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Generating Cutting Planes

If k ≥ 0 then Constraint (2) implies that

∑i≤p,fi≤f0

fif0· xi −

∑i≤p,fi>f0

1− fif0· xi +

n∑i=p+1

ai

f0≥ 1.

If k ≤ −1 then Constraint (2) implies that

−∑

i≤p,fi≤f0

fi1− f0

· xi +∑

i≤p,fi>f0

1− fi1− f0

· xi −n∑

i=p+1

ai

1− f0≥ 1.

Since each xi is non negative we will always have that.

∑i≤p,fi≤f0

fif0· xi +

∑i≤p,fi>f0

1− fi1− f0

· xi +∑

i>p,ai>0

ai

f0−

∑i>p,ai<0

ai

1− f0≥ 1.

This constraint is known as the Gomory mixed integer cut.

P. Wojciechowski Optimization Methods in Finance

Page 135: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Let us return to System (1).Adding slack and surplus variables yields the system

max z = x1 + x2

−x1 + x2 + x3 = 2

8 · x1 + 2 · x2 + x4 = 19

x1, x2, x3, x4 ≥ 0

x1, x2, x3, x4 ∈ Z

Using the simplex method we get the following at the linear optimum,

z = 5− 0.6 · x3 − 0.2 · x4

x1 = 1.5 + 0.2 · x3 − 0.1 · x4

x2 = 3.5− 0.8 · x3 − 0.1 · x4

We can now use the constraint x2 + 0.8 · x3 + 0.1 · x4 = 3.5 to generate a Gomorymixed integer cut.

P. Wojciechowski Optimization Methods in Finance

Page 136: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Let us return to System (1).

Adding slack and surplus variables yields the system

max z = x1 + x2

−x1 + x2 + x3 = 2

8 · x1 + 2 · x2 + x4 = 19

x1, x2, x3, x4 ≥ 0

x1, x2, x3, x4 ∈ Z

Using the simplex method we get the following at the linear optimum,

z = 5− 0.6 · x3 − 0.2 · x4

x1 = 1.5 + 0.2 · x3 − 0.1 · x4

x2 = 3.5− 0.8 · x3 − 0.1 · x4

We can now use the constraint x2 + 0.8 · x3 + 0.1 · x4 = 3.5 to generate a Gomorymixed integer cut.

P. Wojciechowski Optimization Methods in Finance

Page 137: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Let us return to System (1).Adding slack and surplus variables yields the system

max z = x1 + x2

−x1 + x2 + x3 = 2

8 · x1 + 2 · x2 + x4 = 19

x1, x2, x3, x4 ≥ 0

x1, x2, x3, x4 ∈ Z

Using the simplex method we get the following at the linear optimum,

z = 5− 0.6 · x3 − 0.2 · x4

x1 = 1.5 + 0.2 · x3 − 0.1 · x4

x2 = 3.5− 0.8 · x3 − 0.1 · x4

We can now use the constraint x2 + 0.8 · x3 + 0.1 · x4 = 3.5 to generate a Gomorymixed integer cut.

P. Wojciechowski Optimization Methods in Finance

Page 138: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Let us return to System (1).Adding slack and surplus variables yields the system

max z = x1 + x2

−x1 + x2 + x3 = 2

8 · x1 + 2 · x2 + x4 = 19

x1, x2, x3, x4 ≥ 0

x1, x2, x3, x4 ∈ Z

Using the simplex method we get the following at the linear optimum,

z = 5− 0.6 · x3 − 0.2 · x4

x1 = 1.5 + 0.2 · x3 − 0.1 · x4

x2 = 3.5− 0.8 · x3 − 0.1 · x4

We can now use the constraint x2 + 0.8 · x3 + 0.1 · x4 = 3.5 to generate a Gomorymixed integer cut.

P. Wojciechowski Optimization Methods in Finance

Page 139: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Let us return to System (1).Adding slack and surplus variables yields the system

max z = x1 + x2

−x1 + x2 + x3 = 2

8 · x1 + 2 · x2 + x4 = 19

x1, x2, x3, x4 ≥ 0

x1, x2, x3, x4 ∈ Z

Using the simplex method we get the following at the linear optimum,

z = 5− 0.6 · x3 − 0.2 · x4

x1 = 1.5 + 0.2 · x3 − 0.1 · x4

x2 = 3.5− 0.8 · x3 − 0.1 · x4

We can now use the constraint x2 + 0.8 · x3 + 0.1 · x4 = 3.5 to generate a Gomorymixed integer cut.

P. Wojciechowski Optimization Methods in Finance

Page 140: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Let us return to System (1).Adding slack and surplus variables yields the system

max z = x1 + x2

−x1 + x2 + x3 = 2

8 · x1 + 2 · x2 + x4 = 19

x1, x2, x3, x4 ≥ 0

x1, x2, x3, x4 ∈ Z

Using the simplex method we get the following at the linear optimum,

z = 5− 0.6 · x3 − 0.2 · x4

x1 = 1.5 + 0.2 · x3 − 0.1 · x4

x2 = 3.5− 0.8 · x3 − 0.1 · x4

We can now use the constraint x2 + 0.8 · x3 + 0.1 · x4 = 3.5 to generate a Gomorymixed integer cut.

P. Wojciechowski Optimization Methods in Finance

Page 141: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Let us return to System (1).Adding slack and surplus variables yields the system

max z = x1 + x2

−x1 + x2 + x3 = 2

8 · x1 + 2 · x2 + x4 = 19

x1, x2, x3, x4 ≥ 0

x1, x2, x3, x4 ∈ Z

Using the simplex method we get the following at the linear optimum,

z = 5− 0.6 · x3 − 0.2 · x4

x1 = 1.5 + 0.2 · x3 − 0.1 · x4

x2 = 3.5− 0.8 · x3 − 0.1 · x4

We can now use the constraint x2 + 0.8 · x3 + 0.1 · x4 = 3.5 to generate a Gomorymixed integer cut.

P. Wojciechowski Optimization Methods in Finance

Page 142: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Use the constraint x2 + 0.8 · x3 + 0.1 · x4 = 3.5 to generate a Gomory mixed integercut we get the constraint

1− 0.81− 0.5

· x3 +0.10.5· x4 ≥ 1.

This is equivalent to the constraint

2 · x3 + x4 ≥ 5.

Since x3 = 2 + x1 − x2 and x4 = 19− 8 · x1 − 2 · x2 this constraint is equivalent to

3 · x1 + 2 · x2 ≥ 9.

P. Wojciechowski Optimization Methods in Finance

Page 143: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Use the constraint x2 + 0.8 · x3 + 0.1 · x4 = 3.5 to generate a Gomory mixed integercut we get the constraint

1− 0.81− 0.5

· x3 +0.10.5· x4 ≥ 1.

This is equivalent to the constraint

2 · x3 + x4 ≥ 5.

Since x3 = 2 + x1 − x2 and x4 = 19− 8 · x1 − 2 · x2 this constraint is equivalent to

3 · x1 + 2 · x2 ≥ 9.

P. Wojciechowski Optimization Methods in Finance

Page 144: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Use the constraint x2 + 0.8 · x3 + 0.1 · x4 = 3.5 to generate a Gomory mixed integercut we get the constraint

1− 0.81− 0.5

· x3 +0.10.5· x4 ≥ 1.

This is equivalent to the constraint

2 · x3 + x4 ≥ 5.

Since x3 = 2 + x1 − x2 and x4 = 19− 8 · x1 − 2 · x2 this constraint is equivalent to

3 · x1 + 2 · x2 ≥ 9.

P. Wojciechowski Optimization Methods in Finance

Page 145: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Use the constraint x2 + 0.8 · x3 + 0.1 · x4 = 3.5 to generate a Gomory mixed integercut we get the constraint

1− 0.81− 0.5

· x3 +0.10.5· x4 ≥ 1.

This is equivalent to the constraint

2 · x3 + x4 ≥ 5.

Since x3 = 2 + x1 − x2 and x4 = 19− 8 · x1 − 2 · x2 this constraint is equivalent to

3 · x1 + 2 · x2 ≥ 9.

P. Wojciechowski Optimization Methods in Finance

Page 146: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Let us now look at this problem graphically.

x2

x1

−x1 + x2 = 2

8 · x1 + 2 · x2 = 19

3 · x1 + 2 · x2 = 9

z=4

Figure: Graphical Solution

P. Wojciechowski Optimization Methods in Finance

Page 147: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Let us now look at this problem graphically.

x2

x1

−x1 + x2 = 2

8 · x1 + 2 · x2 = 19

3 · x1 + 2 · x2 = 9

z=4

Figure: Graphical Solution

P. Wojciechowski Optimization Methods in Finance

Page 148: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Let us now look at this problem graphically.

x2

x1

−x1 + x2 = 2

8 · x1 + 2 · x2 = 19

3 · x1 + 2 · x2 = 9

z=4

Figure: Graphical Solution

P. Wojciechowski Optimization Methods in Finance

Page 149: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Let us now look at this problem graphically.

x2

x1

−x1 + x2 = 2

8 · x1 + 2 · x2 = 19

3 · x1 + 2 · x2 = 9

z=4

Figure: Graphical Solution

P. Wojciechowski Optimization Methods in Finance

Page 150: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Let us now look at this problem graphically.

x2

x1

−x1 + x2 = 2

8 · x1 + 2 · x2 = 19

3 · x1 + 2 · x2 = 9

z=4

Figure: Graphical Solution

P. Wojciechowski Optimization Methods in Finance

Page 151: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Let us now look at this problem graphically.

x2

x1

−x1 + x2 = 2

8 · x1 + 2 · x2 = 19

3 · x1 + 2 · x2 = 9

z=4

Figure: Graphical Solution

P. Wojciechowski Optimization Methods in Finance

Page 152: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Example

Let us now look at this problem graphically.

x2

x1

−x1 + x2 = 2

8 · x1 + 2 · x2 = 19

3 · x1 + 2 · x2 = 9

z=4

Figure: Graphical Solution

P. Wojciechowski Optimization Methods in Finance

Page 153: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Outline

1 Theory of Integer Programming

Introduction

Modeling Logical Constraints

2 Solving Mixed Integer Linear Programs

LP Relaxation

Branch and Bound

Cutting Planes

Branch and Cut

P. Wojciechowski Optimization Methods in Finance

Page 154: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Definition (Branch and Cut)

Branch an Cut is a combination of branch and bound and cutting planes.

This method proceeds just like regular branch and bound except that at eachbranch the LP is strengthened using cutting planes.

P. Wojciechowski Optimization Methods in Finance

Page 155: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Definition (Branch and Cut)

Branch an Cut is a combination of branch and bound and cutting planes.

This method proceeds just like regular branch and bound except that at eachbranch the LP is strengthened using cutting planes.

P. Wojciechowski Optimization Methods in Finance

Page 156: Integer Programming: Theory and Algorithmscommunity.wvu.edu › ~krsubramani › courses › sp15 › optfin › lecnote… · Outline Outline 1 Theory of Integer Programming Introduction

Theory of Integer ProgrammingSolving Mixed Integer Linear Programs

LP RelaxationBranch and BoundCutting PlanesBranch and Cut

Definition (Branch and Cut)

Branch an Cut is a combination of branch and bound and cutting planes.

This method proceeds just like regular branch and bound except that at eachbranch the LP is strengthened using cutting planes.

P. Wojciechowski Optimization Methods in Finance