Modular Detection of Model Structure in Integer Programming Michael - - PowerPoint PPT Presentation

modular detection of model structure in integer
SMART_READER_LITE
LIVE PREVIEW

Modular Detection of Model Structure in Integer Programming Michael - - PowerPoint PPT Presentation

Modular Detection of Model Structure in Integer Programming Michael Bastubbe & Marco L ubbecke SCIP Workshop 2018 March 8th, 2018 Brief overview: Dantzig-Wolfe Reformulation 0 Partition constraints of a MILP: 2000 4000 Master


slide-1
SLIDE 1

Modular Detection of Model Structure in Integer Programming

Michael Bastubbe & Marco L¨ ubbecke SCIP Workshop 2018 March 8th, 2018

slide-2
SLIDE 2

Brief overview: Dantzig-Wolfe Reformulation

◮ Partition constraints of a MILP:

◮ Master problem Ax ≥ b ◮ Pricing problems Dixi ≥ di

2000 4000 6000 8000 10000 500 1000 1500 2000 2500 3000 3500 4000 4500

p.2

slide-3
SLIDE 3

Brief overview: Dantzig-Wolfe Reformulation

◮ Partition constraints of a MILP:

◮ Master problem Ax ≥ b ◮ Pricing problems Dixi ≥ di

2000 4000 6000 8000 10000 500 1000 1500 2000 2500 3000 3500 4000 4500

◮ Reformulate master problem: combination of extreme points

and rays (“convexification”) of pricing problems

◮ Solve master problem with Branch-Price-and-Cut

p.2

slide-4
SLIDE 4

Brief overview: Dantzig-Wolfe Reformulation

◮ Partition constraints of a MILP:

◮ Master problem Ax ≥ b ◮ Pricing problems Dixi ≥ di

2000 4000 6000 8000 10000 500 1000 1500 2000 2500 3000 3500 4000 4500

◮ Reformulate master problem: combination of extreme points

and rays (“convexification”) of pricing problems

◮ Solve master problem with Branch-Price-and-Cut ◮ Allow linking variables (each is

copied for every linked block)

20 40 60 80 100 120 140 160 20 40 60 80 100 120

p.2

slide-5
SLIDE 5

Outline: What is new?

◮ modular detection scheme ◮ constraint and variable classification ◮ consider information from original problem ◮ guess meaningful number of blocks ◮ pluggable score to evaluate decompositions ◮ user interaction

p.3

slide-6
SLIDE 6

What are we looking for?

find: linking variables linking constraints

100 200 300 400 500 100 200 300 400 500 600 700

blocks

p.4

slide-7
SLIDE 7

Modular scheme

find:

100 200 300 400 500 100 200 300 400 500 600 700

p.5

slide-8
SLIDE 8

Modular scheme

find:

100 200 300 400 500 100 200 300 400 500 600 700

past:

◮ each detector is called once; returns set of decompositions ◮ no interaction between detectors ◮ “connected” detector implemented a mix of two ideas

p.5

slide-9
SLIDE 9

Modular scheme

find:

100 200 300 400 500 100 200 300 400 500 600 700

past:

◮ each detector is called once; returns set of decompositions ◮ no interaction between detectors ◮ “connected” detector implemented a mix of two ideas

recent development:

◮ each detector persues one atomic idea ◮ mixtures are handled in a general scheme ◮ new concept: partially decided decomposition [aka partials] ◮ partials are refined round wise

p.5

slide-10
SLIDE 10

Example for partially refinement

2000 4000 6000 8000 10000 500 1000 1500 2000 2500 3000 3500 4000 4500 2000 4000 6000 8000 10000 500 1000 1500 2000 2500 3000 3500 4000 4500 2000 4000 6000 8000 10000 500 1000 1500 2000 2500 3000 3500 4000 4500

connected consclass constypes:setpartitioning-linear-logicor-knapsack

id 122; nB 16; maxW 0.38 id 25; nB 0; maxW≥ 0.34 id 2; nB 0; maxW≥ 0.00

p.6

slide-11
SLIDE 11

Overview: What is new?

recent dev:

◮ new concept: partially decided decomposition [aka partials] ◮ partials are refined round wise ◮ detectors can implement three different callbacks:

p.7

slide-12
SLIDE 12

Overview: What is new?

recent dev:

◮ new concept: partially decided decomposition [aka partials] ◮ partials are refined round wise ◮ detectors can implement three different callbacks:

callback input

  • utput

revoke decisions? propagate partial mix of complete/partials no finish partial set of complete no postprocess complete set of complete yes

p.7

slide-13
SLIDE 13

Detection overview: detection loop

initial partials current partials propagating detectors next-round partials termi- nate? finishing detectors finishing detectors complete decomps postprocessing detectors postprocessed decomps no yes

p.8

slide-14
SLIDE 14

Modular Detection: Example b2c1s1

◮ resulting decompositions can have common ancestors

500 1000 1500 2000 2500 500 1000 1500 2000 2500 500 1000 1500 2000 2500 500 1000 1500 2000 2500 500 1000 1500 2000 2500 500 1000 1500 2000 2500

connected hr 15

500 1000 1500 2000 2500 500 1000 1500 2000 2500 500 1000 1500 2000 2500 500 1000 1500 2000 2500 500 1000 1500 2000 2500 500 1000 1500 2000 2500

connected hrc 4

500 1000 1500 2000 2500 500 1000 1500 2000 2500 500 1000 1500 2000 2500 500 1000 1500 2000 2500

connected hrc 15 varclass vartypes:bin

500 1000 1500 2000 2500 500 1000 1500 2000 2500 500 1000 1500 2000 2500 500 1000 1500 2000 2500

connected consclass consnames-origp:FLO-C

id 913; nB 19; maxW 0.25 id 175; nB 0; maxW≥ 0.18 id 2; nB 0; maxW≥ 0.00 id 1223; nB 16; maxW 0.18 id 935; nB 0; maxW≥ 0.13 id 189; nB 0; maxW≥ 0.11 id 1219; nB 29; maxW 0.18 id 931; nB 0; maxW≥ 0.14 id 607; nB 63; maxW 0.39 id 92; nB 0; maxW≥ 0.21

p.9

slide-15
SLIDE 15

Example Propagating Detector: hrcgpartition

◮ Row-column-net hypergraph used in

Bergner et al. (2015)

◮ Every nonzero entry aij is a vertex ◮ Every row and column is a hyperedge ◮ Solve balan. min-k way cut problem ◮ Hyperedges between partitions in

border

p.10

slide-16
SLIDE 16

Example Propagating Detector: hrcgpartition

◮ Row-column-net hypergraph used in

Bergner et al. (2015)

◮ Every nonzero entry aij is a vertex ◮ Every row and column is a hyperedge ◮ Solve balan. min-k way cut problem ◮ Hyperedges between partitions in

border

p.10

slide-17
SLIDE 17

Example Propagating Detector: hrcgpartition

◮ Row-column-net hypergraph used in

Bergner et al. (2015)

◮ Every nonzero entry aij is a vertex ◮ Every row and column is a hyperedge ◮ Solve balan. min-k way cut problem ◮ Hyperedges between partitions in

border

p.10

slide-18
SLIDE 18

Example Propagating Detector: hrcgpartition

◮ Row-column-net hypergraph used in

Bergner et al. (2015)

◮ Every nonzero entry aij is a vertex ◮ Every row and column is a hyperedge ◮ Solve balan. min-k way cut problem ◮ Hyperedges between partitions in

border

p.10

slide-19
SLIDE 19

Example Propagating Detector: hrcgpartition

◮ Row-column-net hypergraph used in

Bergner et al. (2015)

◮ Every nonzero entry aij is a vertex ◮ Every row and column is a hyperedge ◮ Solve balan. min-k way cut problem ◮ Hyperedges between partitions in

border

◮ Note:

◮ returns complete and partial (only master and linking is

assigned)

◮ k is not known ◮ problem is NP-hard p.10

slide-20
SLIDE 20

Example finishing detector: Connected

◮ connected component in row-adjacency graph yields a block       1 2 3 4 5 6 7 a 1 1 b 1 1 1 c 1 1 1 d 1 1 e 1 1       a b c d e       1 3 7 2 4 5 6 a 1 1 d 1 1 e 1 1 b 1 1 1 c 1 1 1      

p.11

slide-21
SLIDE 21

Example postprocessing detector

◮ simple idea: check for each master constraint if it can be

assigned to exactly one block

p.12

slide-22
SLIDE 22

Constraint Classification: Binpacking example

min y1 + y2 + y3 s.t. − 100y1 + 54x11 + 33x21 + 34x31 + 72x41 ≤ − 100y2 + 54x12 + 33x22 + 34x32 + 72x42 ≤ − 100y3 + 54x13 + 33x23 + 34x33 + 72x43 ≤ x11 + x12 + x13 ≥ 1 x21 + x22 + x23 ≥ 1 x31 + x32 + x33 ≥ 1 x41 + x42 + x43 ≥ 1 . . .

p.13

slide-23
SLIDE 23

Constraint Classification: Binpacking example

min y1 + y2 + y3 s.t. − 100y1 + 54x11 + 33x21 + 34x31 + 72x41 ≤ − 100y2 + 54x12 + 33x22 + 34x32 + 72x42 ≤ − 100y3 + 54x13 + 33x23 + 34x33 + 72x43 ≤ x11 + x12 + x13 ≥ 1 x21 + x22 + x23 ≥ 1 x31 + x32 + x33 ≥ 1 x41 + x42 + x43 ≥ 1 . . .

slide-24
SLIDE 24

Constraint Classification: Binpacking example

min y1 + y2 + y3 s.t. − 100y1 + 54x11 + 33x21 + 34x31 + 72x41 ≤ − 100y2 + 54x12 + 33x22 + 34x32 + 72x42 ≤ − 100y3 + 54x13 + 33x23 + 34x33 + 72x43 ≤ x11 + x12 + x13 ≥ 1 x21 + x22 + x23 ≥ 1 x31 + x32 + x33 ≥ 1 x41 + x42 + x43 ≥ 1 . . .

slide-25
SLIDE 25

Constraint Classification: Binpacking example

min y1 + y2 + y3 s.t. − 100y1 + 54x11 + 33x21 + 34x31 + 72x41 ≤ − 100y2 + 54x12 + 33x22 + 34x32 + 72x42 ≤ − 100y3 + 54x13 + 33x23 + 34x33 + 72x43 ≤ x11 + x12 + x13 ≥ 1 x21 + x22 + x23 ≥ 1 x31 + x32 + x33 ≥ 1 x41 + x42 + x43 ≥ 1 . . .

p.13

slide-26
SLIDE 26

Constraint Classification: Binpacking example

min y1 + y2 + y3 s.t. − 100y1 + 54x11 + 33x21 + 34x31 + 72x41 ≤ − 100y2 + 54x12 + 33x22 + 34x32 + 72x42 ≤ − 100y3 + 54x13 + 33x23 + 34x33 + 72x43 ≤ x11 + x12 + x13 ≥ 1 x21 + x22 + x23 ≥ 1 x31 + x32 + x33 ≥ 1 x41 + x42 + x43 ≥ 1 . . .

knapsack

p.13

slide-27
SLIDE 27

Constraint Classification: Binpacking example

min y1 + y2 + y3 s.t. − 100y1 + 54x11 + 33x21 + 34x31 + 72x41 ≤ − 100y2 + 54x12 + 33x22 + 34x32 + 72x42 ≤ − 100y3 + 54x13 + 33x23 + 34x33 + 72x43 ≤ x11 + x12 + x13 ≥ 1 x21 + x22 + x23 ≥ 1 x31 + x32 + x33 ≥ 1 x41 + x42 + x43 ≥ 1 . . .

knapsack setcover

p.13

slide-28
SLIDE 28

Constraint Classification: Binpacking example

min y1 + y2 + y3 s.t. − 100y1 + 54x11 + 33x21 + 34x31 + 72x41 ≤ − 100y2 + 54x12 + 33x22 + 34x32 + 72x42 ≤ − 100y3 + 54x13 + 33x23 + 34x33 + 72x43 ≤ x11 + x12 + x13 ≥ 1 x21 + x22 + x23 ≥ 1 x31 + x32 + x33 ≥ 1 x41 + x42 + x43 ≥ 1 . . .

5 nonzeros

p.13

slide-29
SLIDE 29

Constraint Classification: Binpacking example

min y1 + y2 + y3 s.t. − 100y1 + 54x11 + 33x21 + 34x31 + 72x41 ≤ − 100y2 + 54x12 + 33x22 + 34x32 + 72x42 ≤ − 100y3 + 54x13 + 33x23 + 34x33 + 72x43 ≤ x11 + x12 + x13 ≥ 1 x21 + x22 + x23 ≥ 1 x31 + x32 + x33 ≥ 1 x41 + x42 + x43 ≥ 1 . . .

5 nonzeros 3 nonzeros

p.13

slide-30
SLIDE 30

Constraint Classification: Binpacking example

min y1 + y2 + y3 s.t. − 100y1 + 54x11 + 33x21 + 34x31 + 72x41 ≤ − 100y2 + 54x12 + 33x22 + 34x32 + 72x42 ≤ − 100y3 + 54x13 + 33x23 + 34x33 + 72x43 ≤ x11 + x12 + x13 ≥ 1 x21 + x22 + x23 ≥ 1 x31 + x32 + x33 ≥ 1 x41 + x42 + x43 ≥ 1 . . .

5 nonzeros 3 nonzeros

◮ before detection loop: classify constraints ◮ several classifications (aka classifier) possible ◮ during detection loop: a propagating detector assigns

combinations of classes to the master for each classifier

p.13

slide-31
SLIDE 31

Constraint classification

◮ before detection loop: classify constraints ◮ several classifications (aka classifier) possible ◮ during detection loop: a propagating detector assigns

combinations of classes to the master for each classifier

p.14

slide-32
SLIDE 32

Constraint classification

◮ before detection loop: classify constraints ◮ several classifications (aka classifier) possible ◮ during detection loop: a propagating detector assigns

combinations of classes to the master for each classifier

◮ several constraint classifiers:

◮ same number of nonzero entries ◮ type found by SCIP ◮ type according to MIPLIB2010 ◮ names differ only by digits ◮ . . . p.14

slide-33
SLIDE 33

Variable classification

◮ Several variable classifiers:

◮ type according to SCIP ◮ objective function coefficient ◮ sign of objective function coefficient ◮ . . . p.15

slide-34
SLIDE 34

Variable classification

◮ Several variable classifiers:

◮ type according to SCIP ◮ objective function coefficient ◮ sign of objective function coefficient ◮ . . .

◮ Set every combination of classes as linking vars and

master-only variables

p.15

slide-35
SLIDE 35

Information from original problem can be preserved

start cons/var classification detection (default: disabled) presolving cons/var classification detection select decomp and solve

  • riginal problem

transformed problem

p.16

slide-36
SLIDE 36

Information from original problem can be preserved

start cons/var classification detection (default: disabled) presolving cons/var classification detection select decomp and solve u s e t r a n s l a t i

  • n
  • riginal problem

transformed problem

p.16

slide-37
SLIDE 37

Information from original problem can be preserved

start cons/var classification detection (default: disabled) presolving cons/var classification detection select decomp and solve

  • riginal problem

transformed problem

p.16

slide-38
SLIDE 38

Information from original problem can be preserved

start cons/var classification detection (default: disabled) presolving cons/var classification detection select decomp and solve use translated

  • riginal problem

transformed problem

p.16

slide-39
SLIDE 39

Guess meaningful number of blocks

◮ motivation: detectors relying on graph partitioning need

number of block as input

p.17

slide-40
SLIDE 40

Guess meaningful number of blocks

◮ motivation: detectors relying on graph partitioning need

number of block as input

◮ past: try 2, . . . , 20

p.17

slide-41
SLIDE 41

Guess meaningful number of blocks

◮ motivation: detectors relying on graph partitioning need

number of block as input

◮ past: try 2, . . . , 20 ◮ idea: use classification information to make educated guess ◮ originally: CPAIOR13 talk related to Wang and Ralphs (2013)

proposed a frequency table/histogram (this is under the assumption that blocks are identical): count how many rows have 1, 2, 3, . . . many non-zeros, e.g., for atm20-100: # of Nonzeros 2 11 12 13 24 40 100 # of Rows 2220 20 20 2 1998 100 20

p.17

slide-42
SLIDE 42

Guess meaningful number of blocks

◮ motivation: detectors relying on graph partitioning need

number of block as input

◮ past: try 2, . . . , 20 ◮ idea: use classification information to make educated guess ◮ originally: CPAIOR13 talk related to Wang and Ralphs (2013)

proposed a frequency table/histogram (this is under the assumption that blocks are identical): count how many rows have 1, 2, 3, . . . many non-zeros, e.g., for atm20-100: # of Nonzeros 2 11 12 13 24 40 100 # of Rows 2220 20 20 2 1998 100 20

◮ we calculate greatest common divisors of constraint/variable

classes for all classifiers

◮ thus get a voting for the number of blocks

p.17

slide-43
SLIDE 43

Pluggable scores

score:

◮ maximize fraction of non-colored area:

20 40 60 80 100 120 140 160 20 40 60 80 100 120

score of 0.611

20 40 60 80 100 120 140 160 20 40 60 80 100 120

score of 0.77

p.18

slide-44
SLIDE 44

Pluggable scores

score:

◮ maximize fraction of non-colored area:

20 40 60 80 100 120 140 160 20 40 60 80 100 120

score of 0.611

20 40 60 80 100 120 140 160 20 40 60 80 100 120

score of 0.77 ◮ currently: 7 different scores, combinations of:

◮ consider copied linking vars ◮ consider if master consists only of several constraint types ◮ consider aggregation information p.18

slide-45
SLIDE 45

Pluggable scores

score:

◮ maximize fraction of non-colored area:

20 40 60 80 100 120 140 160 20 40 60 80 100 120

score of 0.611

20 40 60 80 100 120 140 160 20 40 60 80 100 120

score of 0.77 ◮ currently: 7 different scores, combinations of:

◮ consider copied linking vars ◮ consider if master consists only of several constraint types ◮ consider aggregation information

◮ wip: “strong detection” score (expensive: on demand)

p.18

slide-46
SLIDE 46

User interface

◮ partial decompositions can be given by user ◮ toolbox (in development) to call single detectors or assign

specific conss or vars by name (regex)

◮ user can give candidates number of blocks ◮ browse found decompositions inside gcg and select interesting

(for visualization, solving, writing)

p.19

slide-47
SLIDE 47

Preliminary computational results

◮ testset: benchmark subset of miplib2010 ◮ three settings: default, default+hrcgpartition, legacy detection time number of found decompositions

p.20

slide-48
SLIDE 48

Preliminary computational results

◮ testset: benchmark subset of miplib2010 ◮ three settings: default, default+hrcgpartition, legacy max white score nblocks of whitest

p.21

slide-49
SLIDE 49

Outlook

◮ tests with termination conditions ◮ massive tests on resulting reformulations ◮ test strong decomposition score ◮ finish toolbox

p.22

slide-50
SLIDE 50

References

Bergner, M., Caprara, A., Ceselli, A., Furini, F., L¨ ubbecke, M., Malaguti, E., and Traversi, E. (2015). Automatic Dantzig-Wolfe reformulation of mixed integer

  • programs. Math. Prog., 149(1–2):391–424.

Wang, J. and Ralphs, T. (2013). Computational experience with hypergraph-based methods for automatic decomposition in discrete optimization. In Gomes, C. and Sellmann, M., editors, Integration of AI and OR Techniques in Constraint Programming for Combinatorial Optimization Problems, pages 394–402. Springer, Berlin, Heidelberg.

p.23