Encodings in Mixed Integer Linear...

95
ORC Seminar, December 2012 – Cambridge, Massachusetts Encodings in Mixed Integer Linear Programming Juan Pablo Vielma Massachusetts Institute of Technology

Transcript of Encodings in Mixed Integer Linear...

Page 1: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

ORC Seminar, December 2012 – Cambridge, Massachusetts

Encodings in Mixed Integer Linear Programming

Juan Pablo VielmaMassachusetts Institute of Technology

Page 2: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0

Mixed Integer Binary Formulations

MIP Formulations = Model Finite Alternatives

/302////302222222

f(x,y)

y

x

Pi

x ∈n⋃

i=1

Pi ⊆ Rd

Page 3: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0

Textbook Formulation

/303 0000000////////3333333000000033333333

4∑i=1

diλi = x,4∑

i=1

f(di)λi = z

4∑i=1

λi = 1, λi ≥ 0

3∑i=1

yi = 1, yi ∈ {0, 1}

λ1 ≤ y1, λ2 ≤ y1 + y2

λ3 ≤ y2 + y3, λ4 ≤ y3Formulation for f(x)=z

d1 d2 d3 d4

f(d4)

0

f(d1)

f(d2)

f(d3)

Page 4: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0

Textbook Formulation

/303 0000000////////3333333000000033333333

4∑i=1

diλi = x,4∑

i=1

f(di)λi = z

4∑i=1

λi = 1, λi ≥ 0

3∑i=1

yi = 1, yi ∈ {0, 1}

λ1 ≤ y1, λ2 ≤ y1 + y2

λ3 ≤ y2 + y3, λ4 ≤ y3Formulation for f(x)=z

d1 d2 d3 d4

f(d4)

0

f(d1)

f(d2)

f(d3)

“Weak”

Page 5: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0

Better Formulation

/304

Formulation for f(x)=z

d1 d2 d3 d4

f(d4)

0

f(d1)

f(d2)

f(d3)

d0 +3∑

i=1

(di+1 − di)δi = x,

f(d0) +3∑

i=1

(f(di+1)− f(di))δi = z

δ3 ≤ y2 ≤ δ2 ≤ y1 ≤ δ1

yi ∈{0, 1}

Page 6: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0

Better Formulation

/304

Formulation for f(x)=z

d1 d2 d3 d4

f(d4)

0

f(d1)

f(d2)

f(d3)

d0 +3∑

i=1

(di+1 − di)δi = x,

f(d0) +3∑

i=1

(f(di+1)− f(di))δi = z

δ3 ≤ y2 ≤ δ2 ≤ y1 ≤ δ1

yi ∈{0, 1}Integral

Page 7: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0

Solve Times in CPLEX 11

/305

Weak Strong Mystery

0/305Transportation Problems in V., Ahmed and Nemhauser ‘10.

Page 8: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0

Solve Times in CPLEX 11

/305

0 s

500 s

1000 s

1500 s

2000 s

4 8 1632

Weak Strong Mystery

0/305Transportation Problems in V., Ahmed and Nemhauser ‘10.

Page 9: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0

Solve Times in CPLEX 11

/305

0 s

500 s

1000 s

1500 s

2000 s

4 8 1632

Weak Strong Mystery

0/305Transportation Problems in V., Ahmed and Nemhauser ‘10.

Page 10: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0

Outline

MIP v/s constraint branching.

“Have your cake and eat it too” formulation

Step 1: Encoding alternatives.

Step 2: Combine with strong “standard” formulation.

Summary, Extensions and More.

/306

Page 11: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

min |x|s.t.

x ∈ {αi}ni=1

00

Formulating Discrete Alternatives

//30//3077α1 α2 α3 α4 α5

Page 12: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

min |x|s.t.

x ∈ {αi}ni=1

min |x|s.t. ∑n

i=1λiαi = x∑n

i=1λi = 1

λ ∈ {0, 1}n

00

Formulating Discrete Alternatives

//30//3077α1 α2 α3 α4 α5

Page 13: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

min |x|s.t. ∑n

i=1λiαi = x∑n

i=1λi = 1

λ ∈ {0, 1}n

00

Formulating Discrete Alternatives

//30//30888

α1 α2 α3 α4 α5

Page 14: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

min |x|s.t. ∑n

i=1λiαi = x∑n

i=1λi = 1

λ ∈ {0, 1}n

00

Formulating Discrete Alternatives

//30//30888

α1 α2 α3 α4 α5

1

Page 15: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

min |x|s.t. ∑n

i=1λiαi = x∑n

i=1λi = 1

λ ∈ {0, 1}n

00

Formulating Discrete Alternatives

//30//30888

α1 α2 α3 α4 α5IPopt = 1, LPopt = 0

1

α +

Page 16: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

min |x|s.t. ∑n

i=1λiαi = x∑n

i=1λi = 1

λ ∈ {0, 1}n

00

Formulating Discrete Alternatives

//30//30888

α1 α2 α3 α4 α5IPopt = 1, LPopt = 0

1

Solve by binary Branch-and-Bound:

Page 17: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

min |x|s.t. ∑n

i=1λiαi = x∑n

i=1λi = 1

λ ∈ {0, 1}n

Branch on λ2

00

Formulating Discrete Alternatives

//30//30888

α1 α2 α3 α4 α5IPopt = 1, LPopt = 0

1

Solve by binary Branch-and-Bound:

Page 18: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

min |x|s.t. ∑n

i=1λiαi = x∑n

i=1λi = 1

λ ∈ {0, 1}n

Branch on λ2

00

Formulating Discrete Alternatives

//30//30888

α1 α2 α3 α4 α5IPopt = 1, LPopt = 0

1

Solve by binary Branch-and-Bound:• λ2 = 1→ Feasible with |x| = 1

Page 19: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

min |x|s.t. ∑n

i=1λiαi = x∑n

i=1λi = 1

λ ∈ {0, 1}n

Branch on λ2

00

Formulating Discrete Alternatives

//30//30888

α1 α2 α3 α4 α5IPopt = 1, LPopt = 0

1

Solve by binary Branch-and-Bound:• λ2 = 1→ Feasible with |x| = 1

• λ2 = 0→ Best Bound = 0

Page 20: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

min |x|s.t. ∑n

i=1λiαi = x∑n

i=1λi = 1

λ ∈ {0, 1}n

Branch on λ2

Branch on λ2, λ4, λ5 → Best Bound = 000

Formulating Discrete Alternatives

//30//30888

α1 α2 α3 α4 α5IPopt = 1, LPopt = 0

1

Solve by binary Branch-and-Bound:• λ2 = 1→ Feasible with |x| = 1

• λ2 = 0→ Best Bound = 0

α +

Page 21: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

min |x|s.t. ∑n

i=1λiαi = x∑n

i=1λi = 1

λ ∈ {0, 1}n

Worst case: n/2 branches to solve

(i.e. 2n/2 B-and-B nodes!).

00

Formulating Discrete Alternatives

//30//30888

α1 α2 α3 α4 α5IPopt = 1, LPopt = 0

1

Solve by binary Branch-and-Bound:

Page 22: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

min |x|s.t. ∑n

i=1λiαi = x∑n

i=1λi = 1

λ ∈ {0, 1}n

/30/30

Formulating Discrete Alternatives

α1 α2 α3 α4 α5IPopt = 1, LPopt = 0

1

Solve by constraint B-and-B:

Page 23: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

min |x|s.t. ∑n

i=1λiαi = x∑n

i=1λi = 1

λ ∈ {0, 1}n

/30/30

Formulating Discrete Alternatives

α1 α2 α3 α4 α5IPopt = 1, LPopt = 0

1

Solve by constraint B-and-B:

Branch on λ1 + λ2

Page 24: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

min |x|s.t. ∑n

i=1λiαi = x∑n

i=1λi = 1

λ ∈ {0, 1}n

/30/30

Formulating Discrete Alternatives

α1 α2 α3 α4 α5IPopt = 1, LPopt = 0

1

α α

+Solve by constraint B-and-B:

Branch on λ1 + λ2• λ1 + λ2 = 1→ Feasible with |x| = 1

Page 25: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

min |x|s.t. ∑n

i=1λiαi = x∑n

i=1λi = 1

λ ∈ {0, 1}n

/30/30

Formulating Discrete Alternatives

α1 α2 α3 α4 α5IPopt = 1, LPopt = 0

1

Solve by constraint B-and-B:

Branch on λ1 + λ2• λ1 + λ2 = 1→ Feasible with |x| = 1

• λ1 + λ2 = 0→ Feasible with |x| = 1

+

Page 26: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

min |x|s.t. ∑n

i=1λiαi = x∑n

i=1λi = 1

λ ∈ {0, 1}n

/30/30

Formulating Discrete Alternatives

α1 α2 α3 α4 α5IPopt = 1, LPopt = 0

1

Solve by constraint B-and-B:

Branch on λ1 + λ2• λ1 + λ2 = 1→ Feasible with |x| = 1

• λ1 + λ2 = 0→ Feasible with |x| = 1

Never more than one branch (2 nodes).

Page 27: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

Ryan and Foster, 1981.

Discrete Alternatives: SOS1 branching of Beale and Tomlin 1970. Also SOS2 (B. and T, 70) and piecewise linear functions (Tomlin 1981).

SOS1:

Problem: Need to re-implement advanced branching selection (e.g. pseudocost ).

00

Constraint Branching is the Solution?

/30/30111010

∑t

i=1λi = 1 or

∑t

i=1λi = 0

�λi = 0 ∀i > t or λi = 0 ∀i ≤ t

Page 28: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0

Binary v/s Specialized Branching

/30111Weak Integer SOS2 Branching Mystery Integer

Page 29: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0

Binary v/s Specialized Branching

/30111

0 s37.5 s75 s112.5 s150 s

Med.Large

Weak Integer SOS2 Branching Mystery Integer

CPLEX 9: Basic SOS2 branching implementation (graph from Nemhauser, Keha and V. ‘08)

Page 30: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0

Binary v/s Specialized Branching

/30111

0 s37.5 s75 s112.5 s150 s

Med.Large

0 s500 s1,000 s1,500 s2,000 s

1632

Weak Integer SOS2 Branching Mystery Integer

CPLEX 9: Basic SOS2 branching implementation (graph from Nemhauser, Keha and V. ‘08)

CPLEX 11: Improved SOS2 branching implementation (graph from Nemhauser, Ahmed and V. ‘10)

Page 31: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0

Binary v/s Specialized Branching

/30111

0 s37.5 s75 s112.5 s150 s

Med.Large

0 s500 s1,000 s1,500 s2,000 s

1632

Weak Integer SOS2 Branching Mystery Integer

CPLEX 9: Basic SOS2 branching implementation (graph from Nemhauser, Keha and V. ‘08)

CPLEX 11: Improved SOS2 branching implementation (graph from Nemhauser, Ahmed and V. ‘10)

Page 32: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

Formulation Step 1:Encoding Alternatives

Page 33: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

∑n

i=1λi = 1∑n

i=1biλi = y

λ ∈ Rn+

y ∈ {0, 1}m

{bi}n

i=1= {0, 1}log2 n

0

Formulation for Discrete Alternatives

Li and Lu 2009, Adams and Henry 2011, V. and Nemhauser 2008.

Sommer, TIMS 1972.

Log = Binary Encoding

Other choices of lead to standard and incremental formulations

/30113

{bi}n

i=1

Page 34: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

Unary Encoding

000000000000000000000000/////////////////////////333333333333333333333333333000000000000000000000000011111111111111111111111111111111111111111111111111444444444444444444444444444

⎛⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎝

1 0 0 0 0 0 0 00 1 0 0 0 0 0 00 0 1 0 0 0 0 00 0 0 1 0 0 0 00 0 0 0 1 0 0 00 0 0 0 0 1 0 00 0 0 0 0 0 1 00 0 0 0 0 0 0 1

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎠

λ = y,

�λi = yi

∑8

i=1λi = 1,

λ ∈ R8, y ∈ {0, 1}8

Page 35: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0

Binary Encoding

/30115

⎛⎝ 1 1 1 1 0 0 0 0

1 1 0 0 1 1 0 01 0 1 0 1 0 1 0

⎞⎠λ = y,

∑8

i=1λi = 1,

λ ∈ R8, y ∈ {0, 1}3

Page 36: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

∑8

i=1λi = 1,

λ ∈ R8, y ∈ {0, 1}7

0

Incremental Encoding

/30116

y1 ≥ y2 ≥ . . . ≥ y7

⎛⎜⎜⎜⎜⎜⎜⎜⎜⎝

0 1 1 1 1 1 1 10 0 1 1 1 1 1 10 0 0 1 1 1 1 10 0 0 0 1 1 1 10 0 0 0 0 1 1 10 0 0 0 0 0 1 10 0 0 0 0 0 0 1

⎞⎟⎟⎟⎟⎟⎟⎟⎟⎠

λ = y,

Page 37: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

min |x|s.t. ∑n

i=1λiαi = x∑n

i=1λi = 1∑n

i=1biλi = y

λ ∈ Rn+

y ∈ {0, 1}m

000

Example: Unary Encoding

//30117

Page 38: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

1

min |x|s.t. ∑n

i=1λiαi = x∑n

i=1λi = 1∑n

i=1biλi = y

λ ∈ Rn+

y ∈ {0, 1}m

000

Example: Unary Encoding

//30117

⎛⎜⎜⎝1000

⎞⎟⎟⎠

⎛⎜⎜⎝0100

⎞⎟⎟⎠

⎛⎜⎜⎝0001

⎞⎟⎟⎠

⎛⎜⎜⎝0010

⎞⎟⎟⎠

Page 39: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

1

min |x|s.t. ∑n

i=1λiαi = x∑n

i=1λi = 1∑n

i=1biλi = y

λ ∈ Rn+

y ∈ {0, 1}m

000

Example: Unary Encoding

//30117

⎛⎜⎜⎝1000

⎞⎟⎟⎠

⎛⎜⎜⎝0100

⎞⎟⎟⎠

⎛⎜⎜⎝0001

⎞⎟⎟⎠

⎛⎜⎜⎝0010

⎞⎟⎟⎠

+

Page 40: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

1

=

⎛⎜⎜⎝y1y2y3y4

⎞⎟⎟⎠

min |x|s.t. ∑n

i=1λiαi = x∑n

i=1λi = 1∑n

i=1biλi = y

λ ∈ Rn+

y ∈ {0, 1}m

000

Example: Unary Encoding

//30117

⎛⎜⎜⎝1000

⎞⎟⎟⎠

⎛⎜⎜⎝0100

⎞⎟⎟⎠

⎛⎜⎜⎝0001

⎞⎟⎟⎠

⎛⎜⎜⎝0010

⎞⎟⎟⎠

Page 41: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

1

=

⎛⎜⎜⎝y1y2y3y4

⎞⎟⎟⎠

min |x|s.t. ∑n

i=1λiαi = x∑n

i=1λi = 1∑n

i=1biλi = y

λ ∈ Rn+

y ∈ {0, 1}m

000

Example: Unary Encoding

//30117

⎛⎜⎜⎝1000

⎞⎟⎟⎠

⎛⎜⎜⎝0100

⎞⎟⎟⎠

⎛⎜⎜⎝0001

⎞⎟⎟⎠

⎛⎜⎜⎝0010

⎞⎟⎟⎠

y1 =

⎛ ⎞⎛0

⎞ ⎛1

⎞ ⎛0

⎞⎛0

Page 42: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

1

=

⎛⎜⎜⎝y1y2y3y4

⎞⎟⎟⎠

min |x|s.t. ∑n

i=1λiαi = x∑n

i=1λi = 1∑n

i=1biλi = y

λ ∈ Rn+

y ∈ {0, 1}m

000

Example: Unary Encoding

//30117

⎛⎜⎜⎝1000

⎞⎟⎟⎠

⎛⎜⎜⎝0100

⎞⎟⎟⎠

⎛⎜⎜⎝0001

⎞⎟⎟⎠

⎛⎜⎜⎝0010

⎞⎟⎟⎠

1

⎛ ⎞

y1 =

⎛ ⎞⎛0

⎞⎛0

⎞ ⎛1

⎞ ⎛0

Page 43: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

1

=

⎛⎜⎜⎝y1y2y3y4

⎞⎟⎟⎠

min |x|s.t. ∑n

i=1λiαi = x∑n

i=1λi = 1∑n

i=1biλi = y

λ ∈ Rn+

y ∈ {0, 1}m

000

Example: Unary Encoding

//30117

⎛⎜⎜⎝1000

⎞⎟⎟⎠

⎛⎜⎜⎝0100

⎞⎟⎟⎠

⎛⎜⎜⎝0001

⎞⎟⎟⎠

⎛⎜⎜⎝0010

⎞⎟⎟⎠

y1 =

⎛ ⎞⎛0

⎞ ⎛1

⎞ ⎛0

⎞⎛0

0

⎛ ⎞ ⎛ ⎞⎛ ⎞

Page 44: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

1

=

⎛⎜⎜⎝y1y2y3y4

⎞⎟⎟⎠

min |x|s.t. ∑n

i=1λiαi = x∑n

i=1λi = 1∑n

i=1biλi = y

λ ∈ Rn+

y ∈ {0, 1}m

000

Example: Unary Encoding

//30117

⎛⎜⎜⎝1000

⎞⎟⎟⎠

⎛⎜⎜⎝0100

⎞⎟⎟⎠

⎛⎜⎜⎝0001

⎞⎟⎟⎠

⎛⎜⎜⎝0010

⎞⎟⎟⎠

y1 = y4 = 0

⎛0⎞ ⎛

0⎞⎛ ⎞

⎝0

⎠ ⎝0

⎠ ⎝ ⎠

Page 45: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

1

=

⎛⎜⎜⎝y1y2y3y4

⎞⎟⎟⎠

min |x|s.t. ∑n

i=1λiαi = x∑n

i=1λi = 1∑n

i=1biλi = y

λ ∈ Rn+

y ∈ {0, 1}m

000

Example: Unary Encoding

//30117

⎛⎜⎜⎝1000

⎞⎟⎟⎠

⎛⎜⎜⎝0100

⎞⎟⎟⎠

⎛⎜⎜⎝0001

⎞⎟⎟⎠

⎛⎜⎜⎝0010

⎞⎟⎟⎠

y1 = y4 = 0

⎛0⎞ ⎛

0⎞⎛ ⎞

⎝0

⎠ ⎝0

⎠ ⎝ ⎠

Page 46: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

1

=

⎛⎜⎜⎝y1y2y3y4

⎞⎟⎟⎠

Need n/2branches

l

min |x|s.t. ∑n

i=1λiαi = x∑n

i=1λi = 1∑n

i=1biλi = y

λ ∈ Rn+

y ∈ {0, 1}m

000

Example: Unary Encoding

//30117

⎛⎜⎜⎝1000

⎞⎟⎟⎠

⎛⎜⎜⎝0100

⎞⎟⎟⎠

⎛⎜⎜⎝0001

⎞⎟⎟⎠

⎛⎜⎜⎝0010

⎞⎟⎟⎠{ {

n/2 n/2

Page 47: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

2k − 1

000

Example: Binary Encoding

//301188

1

⎛⎝001

⎞⎠

⎛⎝010

⎞⎠

⎛⎝000

⎞⎠ =

⎛⎝y1y2y3

⎞⎠

. . .

{

Page 48: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

2k − 1

000

Example: Binary Encoding

//301188

1

⎛⎝001

⎞⎠

⎛⎝010

⎞⎠

⎛⎝000

⎞⎠ =

⎛⎝y1y2y3

⎞⎠

. . .

{

y1 = y2 = 0

⎛⎝

⎞⎠

⎛⎝⎛⎛ ⎞

Page 49: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

2k − 1

000

Example: Binary Encoding

//301188

1

⎛⎝001

⎞⎠

⎛⎝010

⎞⎠

⎛⎝000

⎞⎠ =

⎛⎝y1y2y3

⎞⎠

. . .

{

y1 = y2 = 0

⎛⎝

⎞⎠

⎛⎝⎛⎛ ⎞

Best Bound = 0 unless:

yi = 0 ∀i

Page 50: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

2k − 1

Need k = log2 nbranches (n nodes)

000

Example: Binary Encoding

//301188

1

⎛⎝001

⎞⎠

⎛⎝010

⎞⎠

⎛⎝000

⎞⎠ =

⎛⎝y1y2y3

⎞⎠

. . .

{

y1 = y2 = 0

⎛⎝

⎞⎠

⎛⎝⎛⎛ ⎞

Best Bound = 0 unless:

yi = 0 ∀i

Page 51: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

000

Example: Incremental Encoding

//301199

1

Page 52: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

000

Example: Incremental Encoding

//301199

1

⎛⎜⎜⎝0000

⎞⎟⎟⎠

⎛⎜⎜⎝1100

⎞⎟⎟⎠

⎛⎜⎜⎝1111

⎞⎟⎟⎠

⎛⎜⎜⎝1110

⎞⎟⎟⎠ =

⎛⎜⎜⎝y1y2y3y4

⎞⎟⎟⎠

⎛⎜⎜⎝1000

⎞⎟⎟⎠

Page 53: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

000

Example: Incremental Encoding

//301199

1

⎛⎜⎜⎝0000

⎞⎟⎟⎠

⎛⎜⎜⎝1100

⎞⎟⎟⎠

⎛⎜⎜⎝1111

⎞⎟⎟⎠

⎛⎜⎜⎝1110

⎞⎟⎟⎠ =

⎛⎜⎜⎝y1y2y3y4

⎞⎟⎟⎠

⎛⎜⎜⎝1000

⎞⎟⎟⎠

y3 = 1 ∨ y3 = 0

⎝ ⎠⎜⎝⎜⎜ ⎟⎟⎟⎟⎠ ⎜⎜⎜⎜ ⎟⎟⎟⎟ ⎜⎜⎜⎜⎝1

⎟⎟⎟⎟⎠⎜⎜⎜⎜⎝ ⎟⎟⎟⎟⎠ =⎜⎜⎜⎜⎝ ⎟⎠⎟⎟⎜⎜⎜⎜⎝ ⎟⎟⎟⎟⎠

Page 54: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

yi∗ = 0 ∨ yi∗ = 1

Only need1 branch!

Best Bound = 1 if:

000

Example: Incremental Encoding

//301199

1

⎛⎜⎜⎝0000

⎞⎟⎟⎠

⎛⎜⎜⎝1100

⎞⎟⎟⎠

⎛⎜⎜⎝1111

⎞⎟⎟⎠

⎛⎜⎜⎝1110

⎞⎟⎟⎠ =

⎛⎜⎜⎝y1y2y3y4

⎞⎟⎟⎠

⎛⎜⎜⎝1000

⎞⎟⎟⎠

y3 = 1 ∨ y3 = 0

⎝ ⎠⎜⎝⎜⎜ ⎟⎟⎟⎟⎠ ⎜⎜⎜⎜ ⎟⎟⎟⎟ ⎜⎜⎜⎜⎝1

⎟⎟⎟⎟⎠⎜⎜⎜⎜⎝ ⎟⎟⎟⎟⎠ =⎜⎜⎜⎜⎝ ⎟⎠⎟⎟⎜⎜⎜⎜⎝ ⎟⎟⎟⎟⎠

Page 55: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0

Induced Constraint Branching

/30220

⎛⎝ 0 1 1 1

0 0 1 10 0 0 1

⎞⎠λ = y

Incremental

(0 0 1 10 1 0 1

)λ = y

Binary

Page 56: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0

Induced Constraint Branching

/30220

⎛⎝ 0 1 1 1

0 0 1 10 0 0 1

⎞⎠λ = y

Incremental

→ λ1 =λ2 = 0

or

λ3 =λ4 = 0

SOS1 Branching

(0 0 1 10 1 0 1

)λ = y

Binary

⎛⎝⎛ ⎞

⎠⎞

Page 57: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0

Induced Constraint Branching

/30220

⎛⎝ 0 1 1 1

0 0 1 10 0 0 1

⎞⎠λ = y

Incremental

→ λ1 =λ2 = 0

or

λ3 =λ4 = 0

SOS1 Branching

(0 0 1 10 1 0 1

)λ = y

Binary

→ λ1 =λ2 = 0

or

λ3 =λ4 = 0

SOS1 Branching( )

Page 58: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0

Induced Constraint Branching

/30220

⎛⎝ 0 1 1 1

0 0 1 10 0 0 1

⎞⎠λ = y

Incremental

→ λ1 =λ2 = 0

or

λ3 =λ4 = 0

SOS1 Branching

(0 0 1 10 1 0 1

)λ = y

Binary

→( )Odd/Even Branching

λ1 =λ3 = 0

or

λ2 =λ4 = 0

Page 59: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

Formulation Step 2:Combining with Strong Formulation

Page 60: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

n∑i=1

∑v∈ext(P i)

vλiv = x

∑v∈ext(P i)

λiv =

n∑i=1

yi = 1

y ∈ {0, 1}, λiv ≥ 0

n∑i=1

yi

yi

0

Long Lost Integral Formulation

Jeroslow and Lowe 1984./30222

{P i

}n

i=1polytopes

x ∈n⋃

i=1

P i ⇔

Also for general polyhedrawith common recession cones.

1

n

Page 61: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

n∑i=1

∑v∈ext(P i)

vλiv = x

∑v∈ext(P i)

λiv =

n∑i=1

yi = 1

y ∈ {0, 1}, λiv ≥ 0

n∑i=1

yi

yi

0

Combining with Alternative Encoding

Jeroslow and Lowe 1984./30223

{P i

}n

i=1polytopes

x ∈n⋃

i=1

P i ⇔

Also for general polyhedrawith common recession cones.

1

n

Page 62: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

n∑i=1

∑v∈ext(P i)

vλiv = x

∑v∈ext(P i)

λiv =

n∑i=1

yi = 1

y ∈ {0, 1}, λiv ≥ 0

n∑i=1

yn∑

i=1

∑v∈ext(P i)

biλiv

0

Combining with Alternative Encoding

Jeroslow and Lowe 1984./30224

{P i

}n

i=1polytopes

x ∈n⋃

i=1

P i ⇔

Also for general polyhedrawith common recession cones.

m

1

Page 63: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

n∑i=1

∑v∈ext(P i)

vλiv = x

∑v∈ext(P i)

λiv =

n∑i=1

yi = 1

y ∈ {0, 1}, λiv ≥ 0

n∑i=1

yn∑

i=1

∑v∈ext(P i)

biλiv

0

Combining with Alternative Encoding

/30224

{P i

}n

i=1polytopes

x ∈n⋃

i=1

P i ⇔

Also for general polyhedrawith common recession cones.

m

1

V., Ahmed and Nemhauser 2010; V. 2012.

Page 64: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

Univariate Transportation Problems

00//3300222255

DiscontinuousPiecewise Linear

Disc. PWL+

“Semicontinuous”

Page 65: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0

Piecewise Linear

/30226

Unary Incremental / Strong Integer Binary / Mystery Integer

Page 66: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0

Piecewise Linear

/30226

0

20

40

60

80

816

32

Unary Incremental / Strong Integer Binary / Mystery Integer

Page 67: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0

Piecewise Linear

/30227

0

1000

2000

3000

4000

48

16

Unary Incremental / Strong Integer Binary / Mystery Integer

Page 68: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

000

Combining Codes for Multivariate

//3022288

Page 69: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

01

01

0 1

y1

y2

y3

000

Combining Codes for Multivariate

//3022299

01

01

0 1

01

0

Page 70: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0 1 0 1

000

Combining Codes for Multivariate

//3033330010

01

01

0 1

01

y1

y2

y3

0

Page 71: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0 1 0 1

000

Combining Codes for Multivariate

/303311

0

01

01

0 1

01

y1

y2

y3

0

Page 72: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0 1 0 1

000

Combining Codes for Multivariate

/303311

00

01

01

0 1

01

y1

y2

y3

0

Page 73: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0 1 0 1

000

Combining Codes for Multivariate

//30333221

0 0

01

01

0 1

01

y1

y2

y3

0

Page 74: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0 1 0 1

000

Combining Codes for Multivariate

//3033333

10 0

01

01

0 1

01

y1

y2

y3

0

Page 75: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0 1 0 1

000

Combining Codes for Multivariate

//3033333

10 0 1

01

01

0 1

01

y1

y2

y3

0

Page 76: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0 1 0 1

000

Combining Codes for Multivariate

//3033344

10 0 1

01

01

0 1

01

y1

y2

y3

0

Page 77: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0 1 0 1

000

Combining Codes for Multivariate

//3033344

10 0 10 1 0 1

10 0 1

01

01

0 1

01

y1

y2

y3

0

Page 78: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0 1 0 1

000

Combining Codes for Multivariate

//3033355

10 0 10 1 0 1

10 0 1

01

01

0 1

01

y1

y2

y3

0

Page 79: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0 1 0 1

000

Combining Codes for Multivariate

//30333366

10 0 10 1 0 1

10 0 1

01

01

0 1

01

0

y1

y2

y3

Page 80: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0 1 0 1

000

Combining Codes for Multivariate

//30333366

10 0 10 1 0 1

10 0 1

01

01

0 1

01

0000

y1

y2

y3

Page 81: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0 1 0 1

000

Combining Codes for Multivariate

//303337

10 0 10 1 0 1

10 0 1

01

01

0 1

01

0 000

1

y1

y2

y3

Page 82: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0 1 0 1

000

Combining Codes for Multivariate

//303337

10 0 10 1 0 1

10 0 1

01

01

0 1

01

0 000

11

y1

y2

y3

Page 83: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0 1 0 1

000

Combining Codes for Multivariate

//30333388

10 0 10 1 0 1

10 0 1

01

01

0 1

01

0 000

1

1

y1

y2

y3

Page 84: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0 1 0 1

000

Combining Codes for Multivariate

//30333388

10 0 10 1 0 1

10 0 1

01

01

0 1

01

0 000

1

1111

y1

y2

y3

Page 85: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0 1 0 1

000

Combining Codes for Multivariate

//30333399

10 0 10 1 0 1

10 0 1

01

01

0 1

01

0 000

1

1 111

y1

y2

y3

Page 86: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0 1 0 1

000

Combining Codes for Multivariate

//30333399

10 0 10 1 0 1

10 0 1

01

01

0 1

01

0 000

1

1 111

y1

y2

y3 y1

y2

y3

Page 87: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0 1 0 1

000

Combining Codes for Multivariate

//30444400

10 0 10 1 0 1

10 0 1

01

01

0 1

01

0 000

1

1 111

y1

y2

y3

y1

y2

y3

Page 88: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0 1 0 1

000

Combining Codes for Multivariate

//30444400

10 0 10 1 0 1

10 0 1

01

01

0 1

01

0 000

1

1 111

y1

y2

y3

y1

y2

y3

Binary

Page 89: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0 1 0 1

000

Combining Codes for Multivariate

//30444400

10 0 10 1 0 1

10 0 1

01

01

0 1

01

0 000

1

1 111

y1

y2

y3

y1

y2

y3

0

10

10

1

Binary

Page 90: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0 1 0 1

000

Combining Codes for Multivariate

//30444400

10 0 10 1 0 1

10 0 1

01

01

0 1

01

0 000

1

1 111

y1

y2

y3

y1

y2

y3

0

10

10

1

Binary

01

11

00

11

00

01

01

01 →

Incremental Diagonal

Page 91: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0

Incremental “Delta” Formulation

P1

P2

P3

v22

v21

v23 v24

v25

v13

v31

v11

v12

Yıldız and V. ‘12 (Generalization of Lee and Wilson 1999)

x = v11 +k∑

i=1

ri∑j=2

(vij − vi1

)δij

+

k∑i=2

(vi1 − vi−1

ri

)yi

δij ∈ [0, 1], yi ∈ {0, 1}

/309229

Page 92: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0

Incremental “Delta” Formulation

P1

P2

P3

v22

v21

v23 v24

v25

v13

v31

v11

v12

ri∑j=2

δij ≤ 1, δij ≥ 0

Yıldız and V. ‘12 (Generalization of Lee and Wilson 1999)

x = v11 +k∑

i=1

ri∑j=2

(vij − vi1

)δij

+

k∑i=2

(vi1 − vi−1

ri

)yi

/309229

Page 93: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0

Incremental “Delta” Formulation

P1

P2

P3

v22

v21

v23 v24

v25

v13

v31

v11

v12

ri∑j=2

δij ≤ yi

2

Yıldız and V. ‘12 (Generalization of Lee and Wilson 1999)

x = v11 +k∑

i=1

ri∑j=2

(vij − vi1

)δij

+

k∑i=2

(vi1 − vi−1

ri

)yi

/309229

Page 94: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0

Incremental “Delta” Formulation

P1

P2

P3

v22

v21

v23 v24

v25

v13

v31

v11

v12yi+1 ≤ δiri , yi+1 ≤ yi

2

1

Yıldız and V. ‘12 (Generalization of Lee and Wilson 1999)

x = v11 +k∑

i=1

ri∑j=2

(vij − vi1

)δij

+

k∑i=2

(vi1 − vi−1

ri

)yi

/309229

Page 95: Encodings in Mixed Integer Linear Programmingweb.mit.edu/jvielma/www/presentations/CODE_ORC12.pdf · 0 Binary v/s Specialized Branching 111 /3 0 s 37.5 s 75 s 112.5 s 150 s Med. Large

0

Summary, Extensions and More. Effective formulations: Encode and Formulate

Best encoding? Why not try a few.

Smaller formulations for shared vertex case

Need encodings with special structure.

Where to find more:

15.099 Spring ’13: Theory / Practice.

Survey: V., “MIP Formulation Techniques”./30330