pivot and shift – a mixed integer programming heuristic egon balas and chris wallace

29
Pivot and Shift – A Mixed Integer Programming Heuristic Egon Balas and Chris Wallace

Upload: dwayne-neal

Post on 18-Jan-2016

218 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Pivot and Shift – A Mixed Integer Programming Heuristic Egon Balas and Chris Wallace

Pivot and Shift – A Mixed Integer Programming HeuristicEgon Balas and Chris Wallace

Page 2: Pivot and Shift – A Mixed Integer Programming Heuristic Egon Balas and Chris Wallace

History

Pivot and Complement: A Heuristic for 0-1Prog-ramming (E. Balas and C. Martin, Man. Sci 1980) Pure 0/1 programming. Fortran implementation with own LP code

Pivot and Shift, 1986 (E. Balas and C. Martin 1986) Mixed 0/1 and general integer. Fortran implementation with own LP code

S. Schmieta 2001 conversion of 1986 Fortran code to C++ using Xpress LP code

E. Balas and C. Wallace 2003 modified pivots / shifts and included neighborhood search through MIP solver

Page 3: Pivot and Shift – A Mixed Integer Programming Heuristic Egon Balas and Chris Wallace

Introduction to Pivot and Shift

Rounding procedure with three phases Initialization

Search phase

Improvement phase

Page 4: Pivot and Shift – A Mixed Integer Programming Heuristic Egon Balas and Chris Wallace

Search Phase

Quick rounding attempt, then

Pivots/shifts of several types : Type 0 - pivots out basic integer variables

Type 1- reduces the number of basic integer variables

Type 2- improves objective while not increasing integer infeasibility

Type 3-reduces integer infeasibility, ZI

min { d xi e –xi, xi-b xi c }ZI= i 2 I

Page 5: Pivot and Shift – A Mixed Integer Programming Heuristic Egon Balas and Chris Wallace

Search Phase Continued

Type 0

n

Type 1

Round

Type 3

Type 2

No type 3 foundNeighborhood

searchStop

y

Page 6: Pivot and Shift – A Mixed Integer Programming Heuristic Egon Balas and Chris Wallace

Search Phase- Small Neighborhood Search

min { d xi e –xi, xi-b xi c } S={ i 2 I : < }

i2 S b xi+0.5c <x(S)> =

Add the constraints:

<x(S)> - 1 x(S) <x(S)> + 1

Use Mip solver to find a solution

For small neighborhood search

Page 7: Pivot and Shift – A Mixed Integer Programming Heuristic Egon Balas and Chris Wallace

Improvement Phase

Use reduced costs to fix variables

Single, Double and Triple Shifts

Large Neighborhood Search

Page 8: Pivot and Shift – A Mixed Integer Programming Heuristic Egon Balas and Chris Wallace

Improvement Phase: Shifts

Fix all integer variables to best value and optimize continuous variables

Make integer variables nonbasic

Check all possible single and double shifts.

Page 9: Pivot and Shift – A Mixed Integer Programming Heuristic Egon Balas and Chris Wallace

Improvement Phase:Large Neighborhood Search

Neighborhood search with constant changed from 1 to 5

<x(S)> - 5 x(S) <x(S)> + 5

Page 10: Pivot and Shift – A Mixed Integer Programming Heuristic Egon Balas and Chris Wallace

Comparison

Xpress 14.2 vs Xpress 14.2 with pivot and shift

Xpress 14.2 with pivot and shift Run pivot and shift search phase at start to find

initial solution (5 second time limit)

Call Xpress MIP solver

After each solution found by Xpress, use improvement phase (30 second limit)

Page 11: Pivot and Shift – A Mixed Integer Programming Heuristic Egon Balas and Chris Wallace

Instances used in Comparison

Only MIP’s which required more than 20 minutes

MIPs from three collections MIPLIB

Hans Mittelmann collection

Local Branching by M. Fischetti and A. Lodi

Stein81, Stein135, Stein243

Page 12: Pivot and Shift – A Mixed Integer Programming Heuristic Egon Balas and Chris Wallace

MIPLIB Arki001, Danoint, Dano3mip, Fast0507, Harp2,

Markshare1, Markshare2, Mas74, Mkc, Noswot, Set1ch, Seymour, Swath

Hans Mittelmann collection Acctight4, Bc, Bc1, Bienst2, Binkar10_1, Dano3_5,

Markshare2_1, Mkc1,N3700, N3701,…,N370e, Neos6, Neos7, Neos9, Neos13, Neos14, Neos15, Ran14x18, Ran14x18_1, Ran16x16, Seymour1

M. Fischetti and A. Lodi A1c1s1, A2c2s2, B1c1s1, B2c1s2, Glass4, Nsr8k,

Nsrand_ipx, Rail507, Rail2586c, Rail2636c, Rail4284c, Rail4872c, Roll3000, Sp97ar,Sp97ic, Sp98ar, Sp98ic, Tr1203-, Umts, Van

Page 13: Pivot and Shift – A Mixed Integer Programming Heuristic Egon Balas and Chris Wallace

Results Xpress 14.2

Xpress with PS

ONLY 0 6 BEST 8 39 FIRST 7 8

ONLY- Only this code found a solution BEST- This code found the best solution

(without ties) FIRST- In case of ties, this code found the

best solution first

Page 14: Pivot and Shift – A Mixed Integer Programming Heuristic Egon Balas and Chris Wallace

SeymourTime Xpress

14.2 Xpress with PS

9.6 776 9.6 771

229.9 432 234.6 432 247.5 432 242.2 430 518.5 431 902.1 427 904.3 426 937.4 430

1200.0 430 426

•Source: MIPLIB

•Rows - 4944

•Cols - 1372

•0/1 - 1372

•Comment:

Set Covering

Page 15: Pivot and Shift – A Mixed Integer Programming Heuristic Egon Balas and Chris Wallace

Time Xpress 14.2

Xpress with PS

4.2 1342560 11.1 1342211 11.2 1334471 14.3 1333929 17.1 1333769

.

.

. 938.9 1695345

1200.0 1695345 1333769

N3700

•Source:

M. Sun et al

•Rows - 5150

•Cols - 10000

•0/1 - 5000

•Comment:

Fixed charge

network flow

Page 16: Pivot and Shift – A Mixed Integer Programming Heuristic Egon Balas and Chris Wallace

N3701

•Source:

M. Sun et al

•Rows - 5150

•Cols - 10000

•0/1 - 5000

•Comment:

Fixed charge

network flow

Time Xpress 14.2

Xpress with PS

4.3 1310970 10.0 1310596 12.7 1310515

.

.

. 1069 1601892

1200.0 1601982 1310515

Page 17: Pivot and Shift – A Mixed Integer Programming Heuristic Egon Balas and Chris Wallace

N370c•Source:

M. Sun et al

•Rows - 5150

•Cols - 10000

•0/1 - 5000

•Comment:

Fixed charge

network flow

Time Xpress 14.2

Xpress with PS

4.1 1343749 13.1 1343672 16.9 1343672 16.9 1343598

.

.

. 840.5 1448469 1200 1448469 1343698

Page 18: Pivot and Shift – A Mixed Integer Programming Heuristic Egon Balas and Chris Wallace

Sp97ic Time Xpress 14.2 Xpress with PS

144.2 450780795.36 163.8 450780795.36 172.6 449603831.84 173.8 447332172.96 174.9 445731264.0 176.1 444553684.48 177.4 444075509.6 178.6 444001910.88 179.7 442866081.44

.

.

. 1200.0 450780795.36 442866082.14

•Source:

J. Goosens et al

(2001)

•Rows - 1033

•Cols - 12497

•0/1 - 12497

•Comment:

Railway line

planning

Page 19: Pivot and Shift – A Mixed Integer Programming Heuristic Egon Balas and Chris Wallace

Sp98ic Time Xpress 14.2 Xpress with PS

190.1 521407347.36 209.0 521407347.36 216.0 509176683.04 216.8 505632081.12 218.7 491042673.92 219.5 488667256.16 223.3 482463814.88 246.2 478597018.56 391.4 465282826.56 682.5 475812997.44 684.4 474622322.56 685.7 472719763.68

1086.1 467412638.24 1088.3 461222600.64 1200.0 465282826.56 461222600.64

•Source:

J. Goosens et al

(2001)

•Rows - 825

•Cols - 10894

•0/1 - 10894

•Comment:

Railway line

planning

Page 20: Pivot and Shift – A Mixed Integer Programming Heuristic Egon Balas and Chris Wallace

Time Xpress 14.2

Xpress with PS

119.0 566 157.5 565 157.6 564

. . . 346.8 200 347.0 199

1200.0 No solution 199

Rail507•Source:

A. Caprara et al

(1999)

•Rows - 509

•Cols - 63019

•0/1 - 63019

•Comment:

Railway crew

scheduling

Page 21: Pivot and Shift – A Mixed Integer Programming Heuristic Egon Balas and Chris Wallace

Rail2536cTime Xpress

14.2 Xpress

with PS 185.5 2916 210.6 2914 211.0 2912

. . . 639.0 1078 639.3 1076

1200.0 No solution 1076

•Source:

A. Caprara et al

(1999)

•Rows - 2539

•Cols - 15293

•0/1 - 15284

•Comment:

Railway crew

scheduling

Page 22: Pivot and Shift – A Mixed Integer Programming Heuristic Egon Balas and Chris Wallace

B2c1s1•Source:

Pochet et al

(2001)

•Rows - 3904

•Cols - 3872

•0/1 - 233

•Comment:

Lot Sizing

Time Xpress 14.2 Xpress with PS

1.0 70651.01 1.2 70575.52

40.0 31578.64 43.4 31578.64 72.8 30909.52

250.0 30479.07 295.0 27500.22 336.4 30296.40 369.9 29921.44 426.5 28207.02

1200.0 28207.02 27500.22

Page 23: Pivot and Shift – A Mixed Integer Programming Heuristic Egon Balas and Chris Wallace

Binkar10_1Time Xpress

14.2 Xpress with PS

4.9 7017.58 7.4 6977.45 9.6 7017.58 9.8 6877.39

10.0 7014.44 10.0 7004.32 10.7 6993.37 12.8 6933.42 13.0 6932.92 13.2 6781.95 13.9 6915.83 14.7 6910.47 20.5 6855 20.7 6851.86 20.8 6836.98

Time Xpress 14.2

Xpress with PS

25.6 6782.02 28.7 6777.45 35.3 6779.18 42.0 6777.41 42.7 6765.69 44.7 6756.26 60.0 6777.07 60.2 6775.08 60.2 6771.95 60.9 6747.89 61.4 6742.2

268.8 6746.44 1022.8 6745.57 1053.0 6742.2 1200.0 6742.2 6742.2

•Source- Neos•Rows - 1026

•Cols - 2298•0/1 - 170

Page 24: Pivot and Shift – A Mixed Integer Programming Heuristic Egon Balas and Chris Wallace

Roll3000Time Xpress

14.2 Xpress

with PS 76.3 16954 81.3 16954

104.1 13330 109.8 16682 118.6 15319 147.5 13330 170.1 13222 808.2 13182

1184.0 13155 1187.7 12936 1200.0 13182 12936

•Source:

Fischetti and Lodi

(2002)

•Rows - 2295

•Cols - 1166

•0/1 - 246

•Cont - 428

•Comment:

Railway stock

and line planning

Page 25: Pivot and Shift – A Mixed Integer Programming Heuristic Egon Balas and Chris Wallace

Questions

Page 26: Pivot and Shift – A Mixed Integer Programming Heuristic Egon Balas and Chris Wallace

Hans Mittelmann collection

M. Walser ,G. Nemhauser, M. Trick Acc Basketball conference scheduling

Acctight series- Acctight4

M. Sun, J. Aronson, P. McKeown, D. Drinka Fixed charge transportation problems

N3700 series: N3700,n3701,… n3709, n370a,…,n370e

Ran series: Ran14x18, ran14x18_1, ran16x16

Page 27: Pivot and Shift – A Mixed Integer Programming Heuristic Egon Balas and Chris Wallace

Hans Mittelmann collectioncontinued

Argonne National Laboratory Neos series: neos6-neos9, neos13-

neos15

Bc,Bc1, Binkar10_1

Remaining unreferencedBienst2, Dano3_5, Markshare2_1, Mkc1,

Seymour1

Page 28: Pivot and Shift – A Mixed Integer Programming Heuristic Egon Balas and Chris Wallace

Fischetti and Lodi

P. Belotti : Network design Net12

Double-Click sas: Crew scheduling Nrsr8k, Biella1

I. Luzzi : nesting Glass 4

C.Polo, C. Mannino, E. Parello: telecommnunication designUmts, Van

Page 29: Pivot and Shift – A Mixed Integer Programming Heuristic Egon Balas and Chris Wallace

Fischetti & Lodi Continued

M. Van Vyve, Y. Pochet: Lot sizing A1c1s1, a2c1s2 , b1c1s1, b2c1s1, tr12-30

L. Kroon: Rolling stock and line planningRoll3000, Nsrand_ipx

A. Caprara, M. Fischetti, P. Toth: Railway crew schedulingRail507, rail2636c, rail2586c, rail4284c, rail4872c

J. Gooesens, S. van Hoesel, L. Kroon: Railway line planningSp97ar, sp97ic, sp98ar, sp98ic