An abstract model for branching and its application to Mixed Integer - - PowerPoint PPT Presentation

an abstract model for branching and its application to
SMART_READER_LITE
LIVE PREVIEW

An abstract model for branching and its application to Mixed Integer - - PowerPoint PPT Presentation

An abstract model for branching and its application to Mixed Integer Programming Pierre Le Bodic Joint work with George Nemhauser School of Industrial and Systems Engineering Georgia Institute of Technology Grant FA9550-12-1-0151 of the Air


slide-1
SLIDE 1

An abstract model for branching and its application to Mixed Integer Programming

Pierre Le Bodic

Joint work with George Nemhauser

School of Industrial and Systems Engineering Georgia Institute of Technology

Grant FA9550-12-1-0151 of the Air Force Office of Scientific Research Grant CCF-1415460 of the National Science Foundation

Discrete Maths Seminar, Monash University August 1 2016

1 / 30

slide-2
SLIDE 2

Linear Programming (LP)

zLP = max ctx s.t. Ax ≤ b x ∈ Rn

+

LP is in P. where    A is a m × n matrix, c is a n vector, b is a m vector, and all data are rational.

2 / 30

slide-3
SLIDE 3

Linear Programming (LP) Integer Programming (IP)

zLP = max ctx s.t. Ax ≤ b x ∈ Rn

+

LP is in P. zIP = max ctx s.t. Ax ≤ b x ∈ Zn

+

IP is NP-hard. where    A is a m × n matrix, c is a n vector, b is a m vector, and all data are rational.

2 / 30

slide-4
SLIDE 4

Linear Programming (LP) Integer Programming (IP)

zLP = max ctx s.t. Ax ≤ b x ∈ Rn

+

LP is in P. zIP = max ctx s.t. Ax ≤ b x ∈ Zn

+

IP is NP-hard.

zLP ≥ zIP

where    A is a m × n matrix, c is a n vector, b is a m vector, and all data are rational.

2 / 30

slide-5
SLIDE 5

Linear Programming (LP) Integer Programming (IP)

zLP = max ctx s.t. Ax ≤ b x ∈ Rn

+

LP is in P. zIP = max ctx s.t. Ax ≤ b x ∈ Zn

+

IP is NP-hard.

zLP ≥ zIP x ∈ Z n

+ optimal for LP ⇒ zIP = zLP

where    A is a m × n matrix, c is a n vector, b is a m vector, and all data are rational.

2 / 30

slide-6
SLIDE 6

Example: an IP formulation for edge coloring

Given G = (V , E), let C = {1, . . . , ∆ + 1} be the set of possible colors, and

◮ Variable ci = 1 iff color i ∈ C is used, ◮ Variable xi e = 1 iff color i ∈ C is assigned to edge e ∈ E.

minx,c

  • i∈C ci

(1)

  • i∈C xi

e = 1

∀e ∈ E (2)

  • u∈V ,e=uv xi

e ≤ ci

∀v ∈ V , ∀i ∈ C (3) ci ∈ {0, 1} ∀i ∈ C (4) xi

e ∈ {0, 1}

∀e ∈ E, ∀i ∈ C (5)

◮ (1) minimizes the number of colors used. ◮ (2) ensures each edge is assigned a color. ◮ (3) enforces a proper coloring. ◮ (4) and (5) enforce integrality

3 / 30

slide-7
SLIDE 7

(Mixed) Integer Programming solvers main components

Presolvers

◮ Simplify problem

(e.g. eliminate redundancy)

◮ Tighten LP bound

(e.g. change coefficients)

Primal heuristics

◮ Find a feasible solution

(e.g. starting from LP or IP solution)

Cutting planes

◮ Tighten LP bound

Branch & Bound

◮ Implicit enumeration using primal and dual bounds to prune nodes

4 / 30

slide-8
SLIDE 8

Outline of the B&B algorithm for MIP solving

Input: a MIP instance

1: Add the root node to the list of nodes to process 2: while the list of nodes is non empty do 3:

Select∗ the node to process

4:

Solve the node’s LP

5:

if the LP solution is integral then

6:

Add the solution to the pool of solutions

7:

else

8:

if the node’s LP bound is better than the primal bound then

9:

Select∗∗ an integer variable x with a fractional value xLP

10:

Create two children where x ≤ ⌊xLP⌋ or x ≥ ⌈xLP⌉

11:

Add the children to the list of nodes

12:

end if

13:

end if

14: end while 15: Output the best primal solution

∗ using a node selector ∗∗ using a branching rule

5 / 30

slide-9
SLIDE 9

Discrete maths in two papers related to branching in MIP

6 / 30

slide-10
SLIDE 10

Fooling MIP solvers

Find a family of MIP instances for which:

◮ There exists a small Branch & Bound tree ◮ MIP solvers produce big Branch & Bound trees

7 / 30

slide-11
SLIDE 11

Edge coloring problem

Without knowing Vizing, MIP solvers will still immediately find that they need

◮ At least ∆ colors ◮ At most ∆ + 1 colors

Then they have to use branch-and-bound to decide between ∆ and ∆ + 1.

8 / 30

slide-12
SLIDE 12

Petersen graph

◮ 10 vertices ◮ 15 edges ◮ degree 3 ◮ chromatic index χ′ = 4

Good, but we want bigger graphs! And we can’t add edges!

9 / 30

slide-13
SLIDE 13

Petersen graph

◮ 10 vertices ◮ 15 edges ◮ degree 3 ◮ chromatic index χ′ = 4

Good, but we want bigger graphs! And we can’t add edges!

Find a family of snarks that

◮ has arbitrarily large graphs ◮ is easily constructible

9 / 30

slide-14
SLIDE 14

Modifying the Petersen graph

(a) Petersen graph χ′ = 4 (b) Graph P1 χ′ = 4 (c) Graph P2 χ′ = 3

10 / 30

slide-15
SLIDE 15

Proof

11 / 30

slide-16
SLIDE 16

Proof

11 / 30

slide-17
SLIDE 17

Proof

11 / 30

slide-18
SLIDE 18

Proof

a e d c b

11 / 30

slide-19
SLIDE 19

Proof

a e d c b Based only on the coloring of the inside edges, the “path” {d,e} cannot be blue or yellow

11 / 30

slide-20
SLIDE 20

Proof

a e d c b Based only on the coloring of the inside edges, the “path” {d,e} cannot be blue or yellow the “path” {b,c} cannot be blue or green

11 / 30

slide-21
SLIDE 21

Proof

a e d c b Based only on the coloring of the inside edges, the “path” {d,e} cannot be blue or yellow the “path” {b,c} cannot be blue or green the “path” {a,b,e} cannot be blue

11 / 30

slide-22
SLIDE 22

Proof

a e d c b Based only on the coloring of the inside edges, the “path” {d,e} cannot be blue or yellow the “path” {b,c} cannot be blue or green the “path” {a,b,e} cannot be blue We want to split these “paths” by adding two vertices!

11 / 30

slide-23
SLIDE 23

Proof

a e d c b Based only on the coloring of the inside edges, the “path” {d,e} cannot be blue or yellow the “path” {b,c} cannot be blue or green the “path” {a,b,e} cannot be blue We want to split these “paths” by adding two vertices! Split two edges: {b,d} or {b,e} or {c,e} → non-adjacent edges!

11 / 30

slide-24
SLIDE 24

Proof

a e d c b Based only on the coloring of the inside edges, the “path” {d,e} cannot be blue or yellow the “path” {b,c} cannot be blue or green the “path” {a,b,e} cannot be blue We want to split these “paths” by adding two vertices! Split two edges: {b,d} or {b,e} or {c,e} → non-adjacent edges! P2 can be colored using three colors but P1 cannot!

11 / 30

slide-25
SLIDE 25

Proof

a e d c b Based only on the coloring of the inside edges, the “path” {d,e} cannot be blue or yellow the “path” {b,c} cannot be blue or green the “path” {a,b,e} cannot be blue We want to split these “paths” by adding two vertices! Split two edges: {b,d} or {b,e} or {c,e} → non-adjacent edges! P2 can be colored using three colors but P1 cannot!

11 / 30

slide-26
SLIDE 26

Input graphs

Figure: the graph G3

Gk = P1 + (k − 1)P2 Gk has ∆ = 3 and χ′ = 4.

12 / 30

slide-27
SLIDE 27

A fixed-size Branch & Bound tree

Theorem

Given an optimal solution, there is a fixed-size Branch & Bound tree for any k ≥ 1.

Proof

◮ Solve instance I1 → Branch & Bound tree T1 ◮ Solve Ik by following T1 in the Branch & Bound tree Tk ◮ Note that the global dual bound of T1 is 4 ◮ All constraints of I1 are contained in or implied by Ik, thus the global

dual bound of the tree Tk is 4

13 / 30

slide-28
SLIDE 28

Experimental results

CPLEX GUROBI SCIP Size (k) s n t s n t s n t 1 10 11 10 21 10 12 2 10 15 10 23 10 19 1 4 10 38 10 30 1 10 41 4 8 10 59 10 50 3 10 79 10 16 9 302 3 10 84 15 10 263 23 32 7 213 11 10 175 47 10 419 48 64 9 50 26 10 1921 424 9 1328 178 128 8 276 79 7 1470 1098 10 6542 808 256 6 1366 564 7 699 4182 8 6225 2041 512 2 3265 1700 7 198 3586 6 6125 6347 1024 2 1509 5501 3 112 16943

  • Number of instances solved (s), and, for the instances solved, the

geometric means of the number of nodes (n) and time in seconds (t)

14 / 30

slide-29
SLIDE 29

An abstract model for branching and its application to Mixed Integer Programming

15 / 30

slide-30
SLIDE 30

State-of-the-art branching rule in MIP solvers

At a given node, a branching rule picks the variable to branch on. The state-of-the-art branching rule is a hybrid of two branching rules that aim at improving the dual bound.

16 / 30

slide-31
SLIDE 31

State-of-the-art branching rule in MIP solvers

At a given node, a branching rule picks the variable to branch on. The state-of-the-art branching rule is a hybrid of two branching rules that aim at improving the dual bound.

Strong branching

For all fractional variables x, strong branching computes the LP values at the children that would be created by branching on x. Example: x1 = 0.2, x2 = 0.5 in the LP relaxation. 5 10 2 8 x1 = 0 x1 = 1 x2 = 0 x2 = 1

16 / 30

slide-32
SLIDE 32

State-of-the-art branching rule in MIP solvers

At a given node, a branching rule picks the variable to branch on. The state-of-the-art branching rule is a hybrid of two branching rules that aim at improving the dual bound.

Strong branching

For all fractional variables x, strong branching computes the LP values at the children that would be created by branching on x. Example: x1 = 0.2, x2 = 0.5 in the LP relaxation. 5 10 2 8 x1 = 0 x1 = 1 x2 = 0 x2 = 1

Pseudocost branching

For all fractional variables x, pseudocost branching imitates strong branching using historical information provided by strong branching and (actual) branching.

16 / 30

slide-33
SLIDE 33

Branch & Bound abstract model for MIP solving

Variable = pair (l, r) of two > 0 integers with l ≤ r B&B tree = binary tree with a variable at each inner node (Absolute) Gap1 closed at a node = value at that node l1 l1 + l2 l1 + l2 + l3 l1 + l2 + r3 l1 + r2 r1 r1 + l3 r1 + r3

1In MIP solvers, the (absolute) gap is the difference between the primal and the dual

bound.

17 / 30

slide-34
SLIDE 34

Branch & Bound abstract model for MIP solving

Variable = pair (l, r) of two > 0 integers with l ≤ r B&B tree = binary tree with a variable at each inner node (Absolute) Gap1 closed at a node = value at that node l1 l1 + l2 l1 + l2 + l3 l1 + l2 + r3 l1 + r2 r1 r1 + l3 r1 + r3

1In MIP solvers, the (absolute) gap is the difference between the primal and the dual

bound.

17 / 30

slide-35
SLIDE 35

Branch & Bound abstract model for MIP solving

Variable = pair (l, r) of two > 0 integers with l ≤ r B&B tree = binary tree with a variable at each inner node (Absolute) Gap1 closed at a node = value at that node l1 l1 + l2 l1 + l2 + l3 l1 + l2 + r3 l1 + r2 r1 r1 + l3 r1 + r3

1In MIP solvers, the (absolute) gap is the difference between the primal and the dual

bound.

17 / 30

slide-36
SLIDE 36

Branch & Bound abstract model for MIP solving

Variable = pair (l, r) of two > 0 integers with l ≤ r B&B tree = binary tree with a variable at each inner node (Absolute) Gap1 closed at a node = value at that node l1 l1 + l2 l1 + l2 + l3 l1 + l2 + r3 l1 + r2 r1 r1 + l3 r1 + r3

1In MIP solvers, the (absolute) gap is the difference between the primal and the dual

bound.

17 / 30

slide-37
SLIDE 37

Branch & Bound abstract model for MIP solving

Variable = pair (l, r) of two > 0 integers with l ≤ r B&B tree = binary tree with a variable at each inner node (Absolute) Gap1 closed at a node = value at that node l1 l1 + l2 l1 + l2 + l3 l1 + l2 + r3 l1 + r2 r1 r1 + l3 r1 + r3

1In MIP solvers, the (absolute) gap is the difference between the primal and the dual

bound.

17 / 30

slide-38
SLIDE 38

Branch & Bound abstract model for MIP solving

Variable = pair (l, r) of two > 0 integers with l ≤ r B&B tree = binary tree with a variable at each inner node (Absolute) Gap1 closed at a node = value at that node Gap closed by the B&B tree = minimum gap at a leaf l1 l1 + l2 l1 + l2 + l3 l1 + l2 + r3 l1 + r2 r1 r1 + l3 r1 + r3

1In MIP solvers, the (absolute) gap is the difference between the primal and the dual

bound.

17 / 30

slide-39
SLIDE 39

Branch & Bound abstract model for MIP solving

Variable = pair (l, r) of two > 0 integers with l ≤ r B&B tree = binary tree with a variable at each inner node (Absolute) Gap1 closed at a node = value at that node Gap closed by the B&B tree = minimum gap at a leaf l1 l1 + l2 l1 + l2 + l3 l1 + l2 + r3 l1 + r2 r1 r1 + l3 r1 + r3 Tree-size = 9

1In MIP solvers, the (absolute) gap is the difference between the primal and the dual

bound.

17 / 30

slide-40
SLIDE 40

Single Variable Branching (SVB)

Input: one variable (l, r), an integer G and an integer k, all positive. Question: Is the size of the Branch & Bound tree that closes the gap G, repeatedly using the given variable, at most k?

18 / 30

slide-41
SLIDE 41

Single Variable Branching (SVB)

Input: one variable (l, r), an integer G and an integer k, all positive. Question: Is the size of the Branch & Bound tree that closes the gap G, repeatedly using the given variable, at most k? Example: variable (2, 5) and gap G = 6. 2 4 6 9 7 5 7 10 Treesize = 9

18 / 30

slide-42
SLIDE 42

Motivation: state-of-the-art scoring functions

At a given node, we have to branch on a variable given mutliple variables x with gains (lx, rx). ⇒ scoring functions 10 10 2 50 x1 = 0 x1 = 1 x2 = 1 x2 = 2

19 / 30

slide-43
SLIDE 43

Motivation: state-of-the-art scoring functions

At a given node, we have to branch on a variable given mutliple variables x with gains (lx, rx). ⇒ scoring functions 10 10 2 50 x1 = 0 x1 = 1 x2 = 1 x2 = 2 Linear function: (1 − µ) × lx + µ × rx

  • µ = 1

6

  • 19 / 30
slide-44
SLIDE 44

Motivation: state-of-the-art scoring functions

At a given node, we have to branch on a variable given mutliple variables x with gains (lx, rx). ⇒ scoring functions 10 10 2 50 x1 = 0 x1 = 1 x2 = 1 x2 = 2 Linear function: (1 − µ) × lx + µ × rx

  • µ = 1

6

  • Product function:

lx × rx

19 / 30

slide-45
SLIDE 45

Motivation: state-of-the-art scoring functions

At a given node, we have to branch on a variable given mutliple variables x with gains (lx, rx). ⇒ scoring functions 10 10 2 50 x1 = 0 x1 = 1 x2 = 1 x2 = 2 Linear function: (1 − µ) × lx + µ × rx

  • µ = 1

6

  • Product function:

lx × rx −34% nodes −14% time

19 / 30

slide-46
SLIDE 46

Motivation: state-of-the-art scoring functions

At a given node, we have to branch on a variable given mutliple variables x with gains (lx, rx). ⇒ scoring functions 10 10 2 50 x1 = 0 x1 = 1 x2 = 1 x2 = 2 Linear function: (1 − µ) × lx + µ × rx

  • µ = 1

6

  • Product function:

lx × rx −34% nodes −14% time Variables (10, 10) and (2, 50) have the same score for both functions!

19 / 30

slide-47
SLIDE 47

Motivation: variable (10, 10) vs (2, 49) for SVB

The linear and product functions both score (10, 10) higher than (2, 49). 10 20 20 10 20 20 2 4 51 49 51 98

20 / 30

slide-48
SLIDE 48

Motivation: variable (10, 10) vs (2, 49) for SVB

The linear and product functions both score (10, 10) higher than (2, 49). 10 20 20 10 20 20 2 4 51 49 51 98

10 20 30 40 20 40 gap treesize

20 / 30

slide-49
SLIDE 49

Motivation: variable (10, 10) vs (2, 49) for SVB

The linear and product functions both score (10, 10) higher than (2, 49). 10 20 20 10 20 20 2 4 51 49 51 98

10 20 30 40 20 40 gap treesize 20 40 60 80 100 1,000 2,000 gap

20 / 30

slide-50
SLIDE 50

Motivation: variable (10, 10) vs (2, 49) for SVB

The linear and product functions both score (10, 10) higher than (2, 49). 10 20 20 10 20 20 2 4 51 49 51 98

10 20 30 40 20 40 gap treesize 20 40 60 80 100 1,000 2,000 gap

At gap G = 1000, the relative difference in treesize is 323 millions.

20 / 30

slide-51
SLIDE 51

Complexity results for SVB

Notation

t(G) = treesize to close G with (l, r) Is t(G) ≤ k?

21 / 30

slide-52
SLIDE 52

Complexity results for SVB

Notation

t(G) = treesize to close G with (l, r) Is t(G) ≤ k?

Recursion

t(G) =

  • 1

if G ≤ 0 1 + t(G − l) + t(G − r)

  • therwise

Pseudo-polynomial!

21 / 30

slide-53
SLIDE 53

Complexity results for SVB

Notation

t(G) = treesize to close G with (l, r) Is t(G) ≤ k?

Recursion

t(G) =

  • 1

if G ≤ 0 1 + t(G − l) + t(G − r)

  • therwise

Pseudo-polynomial!

Closed-form formula (CFF)

t(G) = 1 + 2 ×

⌈ G

r ⌉

  • h=1

h + ⌈ G−(h−1)×r

l

⌉ − 1 h

  • Proof: group leaves that are reached by “turning” right h times together.

O(log2(k)) is polynomial, but still big in practice!

21 / 30

slide-54
SLIDE 54

Asymptotic case results for SVB

◮ For variable (1, 2), the growth rate t(G+1) t(G)

  • f the tree tends to 1+

√ 5 2

22 / 30

slide-55
SLIDE 55

Asymptotic case results for SVB

◮ For variable (1, 2), the growth rate t(G+1) t(G)

  • f the tree tends to 1+

√ 5 2 ◮ The sequence t(G+1) t(G)

does not converge for all variables. We use: ϕ = lim

G→∞

l

  • t(G + l)

t(G) ϕ is the unique > 1 root of the polynomial p(x) = xr − xr−l − 1

22 / 30

slide-56
SLIDE 56

Asymptotic case results for SVB

◮ For variable (1, 2), the growth rate t(G+1) t(G)

  • f the tree tends to 1+

√ 5 2 ◮ The sequence t(G+1) t(G)

does not converge for all variables. We use: ϕ = lim

G→∞

l

  • t(G + l)

t(G) ϕ is the unique > 1 root of the polynomial p(x) = xr − xr−l − 1

◮ We have the bounds

r

√ 2 ≤ ϕ ≤

l

√ 2

22 / 30

slide-57
SLIDE 57

Asymptotic case results for SVB

◮ For variable (1, 2), the growth rate t(G+1) t(G)

  • f the tree tends to 1+

√ 5 2 ◮ The sequence t(G+1) t(G)

does not converge for all variables. We use: ϕ = lim

G→∞

l

  • t(G + l)

t(G) ϕ is the unique > 1 root of the polynomial p(x) = xr − xr−l − 1

◮ We have the bounds

r

√ 2 ≤ ϕ ≤

l

√ 2

◮ A numerical approximation of ϕr is given by the fixed-point iteration

f (x) = 1 + 1 x

l r − 1 22 / 30

slide-58
SLIDE 58

Asymptotic case results for SVB

◮ For variable (1, 2), the growth rate t(G+1) t(G)

  • f the tree tends to 1+

√ 5 2 ◮ The sequence t(G+1) t(G)

does not converge for all variables. We use: ϕ = lim

G→∞

l

  • t(G + l)

t(G) ϕ is the unique > 1 root of the polynomial p(x) = xr − xr−l − 1

◮ We have the bounds

r

√ 2 ≤ ϕ ≤

l

√ 2

◮ A numerical approximation of ϕr is given by the fixed-point iteration

f (x) = 1 + 1 x

l r − 1

◮ For G ≥ F, we have

t(G) ≈ ϕG−Ft(F)

22 / 30

slide-59
SLIDE 59

Asymptotic case results for SVB

◮ For variable (1, 2), the growth rate t(G+1) t(G)

  • f the tree tends to 1+

√ 5 2 ◮ The sequence t(G+1) t(G)

does not converge for all variables. We use: ϕ = lim

G→∞

l

  • t(G + l)

t(G) ϕ is the unique > 1 root of the polynomial p(x) = xr − xr−l − 1

◮ We have the bounds

r

√ 2 ≤ ϕ ≤

l

√ 2

◮ A numerical approximation of ϕr is given by the fixed-point iteration

f (x) = 1 + 1 x

l r − 1

◮ For G ≥ F, we have

t(G) ≈ ϕG−Ft(F)

◮ Given two variables x and y and a “large” G, ϕx < ϕy implies that

branching on x leads to a smaller treesize.

22 / 30

slide-60
SLIDE 60

Single Variable Branching

(10, 10), (2, 49)

10 20 30 40 20 40 gap tree-size 20 40 60 80 100 1,000 2,000 gap

ϕ(10,10) ≈ 1.071, ϕ(2,49) ≈ 1.049

23 / 30

slide-61
SLIDE 61

Multiple Variable Branching

(10, 10), (2, 49), (2, 49) or (10, 10)

10 20 30 40 20 40 gap tree-size 20 40 60 80 100 1,000 2,000 gap

ϕ(10,10) ≈ 1.071, ϕ(2,49) ≈ 1.049

23 / 30

slide-62
SLIDE 62

Multiple Variable Branching

(10, 10), (2, 49), (2, 49) or (10, 10)

10 20 30 40 20 40 gap tree-size 20 40 60 80 100 1,000 2,000 gap

ϕ(10,10) ≈ 1.071, ϕ(2,49) ≈ 1.049

◮ For a gap of G = 1000, only a relative difference of 1.798 between

red and green treesizes.

23 / 30

slide-63
SLIDE 63

Multiple Variable Branching

(10, 10), (2, 49), (2, 49) or (10, 10)

10 20 30 40 20 40 gap tree-size 20 40 60 80 100 1,000 2,000 gap

ϕ(10,10) ≈ 1.071, ϕ(2,49) ≈ 1.049

◮ For a gap of G = 1000, only a relative difference of 1.798 between

red and green treesizes.

◮ Variable (2, 49) is branched on at every node where the gap left to

close is at least 31.

23 / 30

slide-64
SLIDE 64

Multiple Variable Branching (MVB)

Input: n variables (li, ri), i = 1, . . . , n, an integer G > 0, an integer k > 0. Question: Is there a Branch & Bound tree with at most k nodes that closes the gap G, using each variable as many times as needed? t(G) =    1 if G ≤ 0 1 + min

1≤i≤n (t(G − li) + t(G − ri))

  • therwise

We do not know if there exists a poly-time algorithm!

24 / 30

slide-65
SLIDE 65

Multiple Variable Branching (MVB)

Input: n variables (li, ri), i = 1, . . . , n, an integer G > 0, an integer k > 0. Question: Is there a Branch & Bound tree with at most k nodes that closes the gap G, using each variable as many times as needed? t(G) =    1 if G ≤ 0 1 + min

1≤i≤n (t(G − li) + t(G − ri))

  • therwise

We do not know if there exists a poly-time algorithm! We define: ϕ = lim

G→∞

z

  • t(G + z)

t(G) where z is the least common multiple of all li and ri.

24 / 30

slide-66
SLIDE 66

Multiple Variable Branching (MVB)

Input: n variables (li, ri), i = 1, . . . , n, an integer G > 0, an integer k > 0. Question: Is there a Branch & Bound tree with at most k nodes that closes the gap G, using each variable as many times as needed? t(G) =    1 if G ≤ 0 1 + min

1≤i≤n (t(G − li) + t(G − ri))

  • therwise

We do not know if there exists a poly-time algorithm! We define: ϕ = lim

G→∞

z

  • t(G + z)

t(G) where z is the least common multiple of all li and ri. ϕ = min

i

ϕi where ϕi is the SVB ratio of variable i.

24 / 30

slide-67
SLIDE 67

Multiple Variable Branching (MVB)

Input: n variables (li, ri), i = 1, . . . , n, an integer G > 0, an integer k > 0. Question: Is there a Branch & Bound tree with at most k nodes that closes the gap G, using each variable as many times as needed? t(G) =    1 if G ≤ 0 1 + min

1≤i≤n (t(G − li) + t(G − ri))

  • therwise

We do not know if there exists a poly-time algorithm! We define: ϕ = lim

G→∞

z

  • t(G + z)

t(G) where z is the least common multiple of all li and ri. ϕ = min

i

ϕi where ϕi is the SVB ratio of variable i. For G ≥ F, we have t(G) ≈ ϕG−Ft(F)

24 / 30

slide-68
SLIDE 68

General Variable Branching (GVB)

Input: n variables (li, ri), i = 1, . . . , n, an integer G > 0, an integer k > 0. Question: Is there a Branch & Bound tree with at most k nodes that closes the gap G, branching on each variable i at most once on each path from the root to a leaf?

25 / 30

slide-69
SLIDE 69

General Variable Branching (GVB)

Input: n variables (li, ri), i = 1, . . . , n, an integer G > 0, an integer k > 0. Question: Is there a Branch & Bound tree with at most k nodes that closes the gap G, branching on each variable i at most once on each path from the root to a leaf?

GVB models B&B in MIP solvers under two hypotheses

◮ In GVB the primal gap is considered to be 0 ◮ LP gains are fixed and known

25 / 30

slide-70
SLIDE 70

General Variable Branching (GVB)

Input: n variables (li, ri), i = 1, . . . , n, an integer G > 0, an integer k > 0. Question: Is there a Branch & Bound tree with at most k nodes that closes the gap G, branching on each variable i at most once on each path from the root to a leaf?

GVB models B&B in MIP solvers under two hypotheses

◮ In GVB the primal gap is considered to be 0 ◮ LP gains are fixed and known

Complexity of GVB

◮ is #P-hard (#Knapsack reduction) ◮ Under the conjecture that the Polynomial Hierarchy is proper, this

implies that GVB is not in NP or co-NP

25 / 30

slide-71
SLIDE 71

#P-hardness proof by example

5x1 + 3x2 + 2x3 ≥ 5 (x1 = 0) (x1 = 1) 100 200 300 400 400 302 402 402 203 303 403 403 305 105 205 305 307 208 308 310

26 / 30

slide-72
SLIDE 72

#P-hardness proof by example

5x1 + 3x2 + 2x3 ≥ 5 “Big” number = 100 ≥ 5 + 3 + 2 (x1 = 0) (x1 = 1) 100 200 300 400 400 302 402 402 203 303 403 403 305 105 205 305 307 208 308 310

26 / 30

slide-73
SLIDE 73

#P-hardness proof by example

5x1 + 3x2 + 2x3 ≥ 5 “Big” number = 100 ≥ 5 + 3 + 2 Variables (100, 105), (100, 103), (100, 102) (x1 = 0) (x1 = 1) 100 200 300 400 400 302 402 402 203 303 403 403 305 105 205 305 307 208 308 310

26 / 30

slide-74
SLIDE 74

#P-hardness proof by example

5x1 + 3x2 + 2x3 ≥ 5 “Big” number = 100 ≥ 5 + 3 + 2 Variables (100, 105), (100, 103), (100, 102), (100, 100) (x1 = 0) (x1 = 1) 100 200 300 400 400 302 402 402 203 303 403 403 305 105 205 305 307 208 308 310

26 / 30

slide-75
SLIDE 75

#P-hardness proof by example

5x1 + 3x2 + 2x3 ≥ 5 “Big” number = 100 ≥ 5 + 3 + 2 Variables (100, 105), (100, 103), (100, 102), (100, 100) and G = 305 (x1 = 0) (x1 = 1) 100 200 300 400 400 302 402 402 203 303 403 403 305 105 205 305 307 208 308 310

26 / 30

slide-76
SLIDE 76

#P-hardness proof by example

5x1 + 3x2 + 2x3 ≥ 5 “Big” number = 100 ≥ 5 + 3 + 2 Variables (100, 105), (100, 103), (100, 102), (100, 100) and G = 305 (x1 = 0) (x1 = 1) 100 200 300 400 400 302 402 402 203 303 403 403 305 105 205 305 307 208 308 310

26 / 30

slide-77
SLIDE 77

#P-hardness proof by example

5x1 + 3x2 + 2x3 ≥ 5 “Big” number = 100 ≥ 5 + 3 + 2 Variables (100, 105), (100, 103), (100, 102), (100, 100) and G = 305 (x1 = 0) (x1 = 1) 100 200 300 400 400 302 402 402 203 303 403 403 305 105 205 305 307 208 308 310

26 / 30

slide-78
SLIDE 78

#P-hardness proof by example

5x1 + 3x2 + 2x3 ≥ 5 “Big” number = 100 ≥ 5 + 3 + 2 Variables (100, 105), (100, 103), (100, 102), (100, 100) and G = 305 (x1 = 0) (x1 = 1) 100 200 300 400 400 302 402 402 203 303 403 403 305 105 205 305 307 208 308 310

26 / 30

slide-79
SLIDE 79

#P-hardness proof by example

5x1 + 3x2 + 2x3 ≥ 5 “Big” number = 100 ≥ 5 + 3 + 2 Variables (100, 105), (100, 103), (100, 102), (100, 100) and G = 305 (x1 = 0) (x1 = 1) 100 200 300 400 400 302 402 402 203 303 403 403 305 105 205 305 307 208 308 310

26 / 30

slide-80
SLIDE 80

#P-hardness proof by example

5x1 + 3x2 + 2x3 ≥ 5 “Big” number = 100 ≥ 5 + 3 + 2 Variables (100, 105), (100, 103), (100, 102), (100, 100) and G = 305 (x1 = 0) (x1 = 1) 100 200 300 400 400 302 402 402 203 303 403 403 305 105 205 305 307 208 308 310

26 / 30

slide-81
SLIDE 81

The ratio (ϕ) scoring function

Simple version

Branch on the variable i with smallest ϕi (root of p(x) = xri − xr−li − 1)

27 / 30

slide-82
SLIDE 82

The ratio (ϕ) scoring function

Simple version

Branch on the variable i with smallest ϕi (root of p(x) = xri − xr−li − 1)

Faster version

◮ Filter out variables with “dominated” gains ◮ Compute ϕ∗ as the ratio of the best variable according to product ◮ For each variable i, test pi(ϕ∗) > 0 ◮ If true, compute the root ϕi of pi and update ϕ∗ = ϕi

Note: the only parameter is the maximum number of iterations to approximate ϕi.

27 / 30

slide-83
SLIDE 83

The ratio (ϕ) scoring function

20 40 60 80 100 500 1,000 1,500 left gain right gain linear product ratio Right gains as a function of the left gain such that the score is constant

28 / 30

slide-84
SLIDE 84

Numerical results: summary

General improvements in time and number of nodes

◮ ∼ 5% in B&B simulations for large gaps ◮ ∼ 2% on MIPLIB “benchmark” instances ◮ ∼ 5% on MIPLIB “tree” test set

29 / 30

slide-85
SLIDE 85

Why read the paper?

◮ One of the first theoretical studies of B&B ◮ Open complexity and approximation problems ◮ Many possible extensions ◮ Theory that yields direct experimental improvements

http://arxiv.org/abs/1511.01818 To appear in Mathematical Programming series A.

30 / 30