21
1 Branch-and-Price (Column Generation) Solving Integer Programs With a Huge Number of Variables CP-AI-OR’02 School on Optimization Le Croisic, France March 2002

Branch-and-Price (Column Generation) Solving Integer Programs With a Huge Number of Variables

  • Upload
    finley

  • View
    31

  • Download
    1

Embed Size (px)

DESCRIPTION

Branch-and-Price (Column Generation) Solving Integer Programs With a Huge Number of Variables. CP-AI-OR’02 School on Optimization Le Croisic, France March 2002. Reasons for Considering Formulations with a Huge Number of Variables. - PowerPoint PPT Presentation

Citation preview

Page 1: Branch-and-Price (Column Generation) Solving Integer Programs With a Huge Number of Variables

1

Branch-and-Price(Column Generation)

Solving Integer ProgramsWith a

Huge Number of Variables

CP-AI-OR’02School on Optimization

Le Croisic, FranceMarch 2002

Page 2: Branch-and-Price (Column Generation) Solving Integer Programs With a Huge Number of Variables

2

Reasons for Considering Formulations with a Huge Number of Variables

• A compact formulation of a MIP may have a weak LP relaxation. Frequently the relaxation can be tightened by a reformulation that involves a huge number of variables.

• A compact formulation of a MIP may have symmetric structure that causes branch-and-bound to perform poorly because the problem barely changes after branching. A reformulation with a huge number of variables can eliminate this symmetry.

• Column generation provides a decomposition of the problem into master and sub problems. This decomposition may have a natural interpretation in the contextual setting allowing for the incorporation of additional important constraints.

• A formulation with a huge number of variables may be the only choice.

Page 3: Branch-and-Price (Column Generation) Solving Integer Programs With a Huge Number of Variables

3

Classic Example

The Cutting Stock or Bin Packing Problem

Input:1. A set of n items of sizes a1, a2, … an,2. A set of demands di for item i, i=1,…,n3. Bins of size L

Output: A packing of the items into a minimum number of bins

Page 4: Branch-and-Price (Column Generation) Solving Integer Programs With a Huge Number of Variables

4

Example

i 1 2 3 4

45 36 31 14

97 610 395 211

ia

id

L = 100

Solution with FFD

45 45

45 36 14

36 36 14 14

36 36

36 31 31

31 31 31

x 48

x 1

x 1

x 131

x 105

x 199

= 485There are 37 patterns

n

aiidaL 1

1Lower bound rounded up

= 416 in example

Page 5: Branch-and-Price (Column Generation) Solving Integer Programs With a Huge Number of Variables

5

Compact Formulation

and integer

K is an upper bound on the number of bins

The LP relaxation of this formulation is very bad since it only gives the trivial lower bound mentioned above.

Solution won’t change after branching because of symmetries.

We need a better formulation for which the LP gives a good bound and thesymmetries are eliminated.

0

1,0

,...,1,

,...,1,

min1

ik

k

kiki

i

ik

ik

K

kk

x

y

KkLyxa

nidx

y

Page 6: Branch-and-Price (Column Generation) Solving Integer Programs With a Huge Number of Variables

6

Formulation with an Exponential Number of Columns

tp is the tth pattern

itp is the number of item i in tth pattern

In example 45 45 tp

0

0

0

2

ty number of times tth pattern is used

and integer

The difficulty is that T can be very large

0

min

1

1

t

t

T

tt

T

tt

y

dyp

y

Page 7: Branch-and-Price (Column Generation) Solving Integer Programs With a Huge Number of Variables

7

LP bound for example is 452.25

5.197

0

2

1

0

75.100

0

0

2

0

5.105

2

0

2

0

5.48

0

0

0

2

roundup gives 454

round down gives 450 and then 3 more for residual

1

1

3

1

this is optimal because of the LP bound

Page 8: Branch-and-Price (Column Generation) Solving Integer Programs With a Huge Number of Variables

8

LP Column Generation

1. We solve the LP relaxation over a small subset of columns.

2. We then need to find a column with negative reduced cost or prove that none exists implying the current solution is optional.

tc reduced cost of column t it

n

ii p

1

1

where is an optimal dual solution

0

max

max1min

1

1

1

it

it

n

ii

it

n

ii

it

n

ii

tt

t

p

Lpa

p

pc

integer

This is a knapsack problem that can be solved by dynamic programming or branch-and-bound.

Page 9: Branch-and-Price (Column Generation) Solving Integer Programs With a Huge Number of Variables

9

LP Column Generation

Solve Master LP

Solve Sub problem

dual solution

optimal

CP may be useful here

new columns

After solving the LP relaxation why can’t we apply standard branch-and-boundTo solve the IP.

Difficulty: ty fractional

Branch:

It is difficult to enforce this constraint on the knapsack problem.

tf

tt fy

Page 10: Branch-and-Price (Column Generation) Solving Integer Programs With a Huge Number of Variables

10

Routing Problems

• Several Routes are needed

• Individual Routes are Constrained

• Master Problems: Puts together feasible routes at minimum cost

• Sub Problem: Generates routes based on minimum cost and dual variables

• Vehicle routing

• Crew scheduling

• Traveling tournament problem

Page 11: Branch-and-Price (Column Generation) Solving Integer Programs With a Huge Number of Variables

11

Airline Crew Scheduling

• Input: A schedule of a fleet

• Objective: Find a set of crew itineraries (pairings) that partition all of the legs at minimum cost.

ATL

MIA

JAX

Monday (duty 1) Tuesday (duty 2)8:00 17:00 10:00 13:00

Page 12: Branch-and-Price (Column Generation) Solving Integer Programs With a Huge Number of Variables

12

Pairings

• Restrictions

– Connection times

– Duty elapsed time

– Flying time in a duty

– 8-in-24 rule

• Duty cost is the maximum of 3 quantities.

– Flying time, fraction of elapsed time, minimum guarantee

• Pairing cost is the maximum of 3 quantities.

– Sum of duty costs, elapsed time, minimum guarantee

• Daily problems

– 100 flights: 90,000 pairings

– 250 flights: 2.5 million pairings

– 1000 flights: more than a billion pairings

Page 13: Branch-and-Price (Column Generation) Solving Integer Programs With a Huge Number of Variables

13

Airline Crew Scheduling

• A set partitioning problem: rows correspond to flights and columns to pairings

– aij=1 if flight i is in pairing j.

– xj=1 if pairing j is selected.

– n is very large, in billions.

n,,1j1,0x

m,,1i1xa

xcmin

j

n

1jjij

j

n

1jj

Page 14: Branch-and-Price (Column Generation) Solving Integer Programs With a Huge Number of Variables

14

Delayed Column Generation

1. We solve the set partitioning problem over a subset of pairings.

2. The dual variables give reduced costs for the pairings.

3. We solve a constrained shortest path sub problem to generate new pairings or to show that the current LP solution is optimal.

4. CP may be a good way to solve the sub problem because of the large number of constraints.

Page 15: Branch-and-Price (Column Generation) Solving Integer Programs With a Huge Number of Variables

15

Delayed Column Generation

Page 16: Branch-and-Price (Column Generation) Solving Integer Programs With a Huge Number of Variables

16

Standard Branching

• A pairing has a fractional value in an optimal LP solution

1 ,* fofy j

• Two cases 1, fof

1f is easy, fix the pairing and knock out the flights it covers

of is hard, the pairing must be eliminated from the shortest path problem

Page 17: Branch-and-Price (Column Generation) Solving Integer Programs With a Huge Number of Variables

17

Follow-on Branching

Given a fractional solution to the LP there are fractional pairings r and ssuch that ry and sy are fractional.

In r, flight k follows flight iIn s, flight k appears but flight i doesn’t

1 1

0 1ik

• branch 1: flight k follows flight i in some pairing. Eliminate all pairings that contain i or k or both, but not consecutively.[in the network delete all connections from i except the one to k] .oys

• branch 2: k cannot follow i. Eliminate all pairings in which k immediately follows i.[in the network, delete the connector arc (i,k)] .oyr

Page 18: Branch-and-Price (Column Generation) Solving Integer Programs With a Huge Number of Variables

18

0-1 Cutting Stock Branching

A pattern contains are most one unit of an item, nidi ,...,1,1

Branching is the same as crew pairing.

A pattern with items r and s has a fractional value in an optimal LP solution.

• branch 1: define a new item rs of size sr aa (they must go together)

• branch 2: add at most one of item r and s to the knapsack problem

Page 19: Branch-and-Price (Column Generation) Solving Integer Programs With a Huge Number of Variables

19

General Cutting Stock Branching

A pattern may contain several units of different items

0

2

1

0

0

0

2

0

2

0

2

0

0

0

0

2

48.5 105.5 100.75 197.5

• branch 1: patterns containing 2 or more units of item 2 207

• branch 2: 206

These are simple constraints to add to the master.

Page 20: Branch-and-Price (Column Generation) Solving Integer Programs With a Huge Number of Variables

20

Column Management

• We can add multiple problems from the sub problem to the master.

• It can be a good idea to sets of columns that yield feasible integer solutions to the master.

• Columns no longer active in the LP solution can be deleted from the master.

Page 21: Branch-and-Price (Column Generation) Solving Integer Programs With a Huge Number of Variables

21

Branch-and-Price Strategic Issues

1. Column generation at a node can be terminated before proving LP optimality.

2. If the LP value is above the upper bound, then we should continue column generation with the hope of fathoming the node.

3. Strong branching may be helpful in difficult problems.

4. We may only want to follow the branches in which we are fixing the solution and stop after a good feasible solution is obtained.