modular detection of model structure in integer
play

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


  1. Modular Detection of Model Structure in Integer Programming Michael Bastubbe & Marco L¨ ubbecke SCIP Workshop 2018 March 8th, 2018

  2. Brief overview: Dantzig-Wolfe Reformulation 0 ◮ Partition constraints of a MILP: 2000 4000 ◮ Master problem Ax ≥ b 6000 ◮ Pricing problems D i x i ≥ d i 8000 10000 0 500 1000 1500 2000 2500 3000 3500 4000 4500 p.2

  3. Brief overview: Dantzig-Wolfe Reformulation 0 ◮ Partition constraints of a MILP: 2000 4000 ◮ Master problem Ax ≥ b 6000 ◮ Pricing problems D i x i ≥ d i 8000 10000 0 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

  4. Brief overview: Dantzig-Wolfe Reformulation 0 ◮ Partition constraints of a MILP: 2000 4000 ◮ Master problem Ax ≥ b 6000 ◮ Pricing problems D i x i ≥ d i 8000 10000 0 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 0 20 40 copied for every linked block) 60 80 100 120 140 160 0 20 40 60 80 100 120 p.2

  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

  6. What are we looking for? find: linking constraints 0 100 blocks linking 200 variables 300 400 500 0 100 200 300 400 500 600 700 p.4

  7. Modular scheme find: 0 100 200 300 400 500 0 100 200 300 400 500 600 700 p.5

  8. Modular scheme find: 0 100 200 300 400 500 0 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

  9. Modular scheme find: 0 100 200 300 400 500 0 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

  10. Example for partially refinement 0 2000 4000 6000 8000 10000 0 500 1000 1500 2000 2500 3000 3500 4000 4500 id 2; nB 0; maxW ≥ 0.00 consclass constypes:setpartitioning-linear-logicor-knapsack 0 2000 4000 6000 8000 10000 0 500 1000 1500 2000 2500 3000 3500 4000 4500 id 25; nB 0; maxW ≥ 0.34 connected 0 2000 4000 6000 8000 10000 0 500 1000 1500 2000 2500 3000 3500 4000 4500 id 122; nB 16; maxW 0.38 p.6

  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

  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 output revoke decisions? partial mix of complete/partials no propagate partial set of complete no finish complete set of complete yes postprocess p.7

  13. Detection overview: detection loop initial partials no current next-round propagating termi- partials detectors partials nate? yes complete finishing finishing decomps detectors detectors postprocessed postprocessing decomps detectors p.8

  14. Modular Detection: Example b2c1s1 ◮ resulting decompositions can have common ancestors 0 500 1000 1500 2000 2500 0 500 1000 1500 2000 2500 id 2; nB 0; maxW ≥ 0.00 varclass vartypes:bin hr 15 consclass consnames-origp:FLO-C 0 0 0 500 500 500 1000 1000 1000 1500 1500 1500 2000 2000 2000 2500 2500 2500 0 500 1000 1500 2000 2500 0 500 1000 1500 2000 2500 0 500 1000 1500 2000 2500 id 175; nB 0; maxW ≥ 0.18 id 189; nB 0; maxW ≥ 0.11 id 92; nB 0; maxW ≥ 0.21 connected hrc 4 hrc 15 connected 0 0 0 0 500 500 500 500 1000 1000 1000 1000 1500 1500 1500 1500 2000 2000 2000 2000 2500 2500 2500 2500 0 500 1000 1500 2000 2500 0 500 1000 1500 2000 2500 0 500 1000 1500 2000 2500 0 500 1000 1500 2000 2500 id 913; nB 19; maxW 0.25 id 935; nB 0; maxW ≥ 0.13 id 931; nB 0; maxW ≥ 0.14 id 607; nB 63; maxW 0.39 connected connected 0 0 500 500 1000 1000 1500 1500 2000 2000 2500 2500 0 500 1000 1500 2000 2500 0 500 1000 1500 2000 2500 id 1223; nB 16; maxW 0.18 id 1219; nB 29; maxW 0.18 p.9

  15. Example Propagating Detector: hrcgpartition ◮ Row-column-net hypergraph used in Bergner et al. (2015) ◮ Every nonzero entry a ij is a vertex ◮ Every row and column is a hyperedge ◮ Solve balan. min - k way cut problem ◮ Hyperedges between partitions in border p.10

  16. Example Propagating Detector: hrcgpartition ◮ Row-column-net hypergraph used in Bergner et al. (2015) ◮ Every nonzero entry a ij is a vertex ◮ Every row and column is a hyperedge ◮ Solve balan. min - k way cut problem ◮ Hyperedges between partitions in border p.10

  17. Example Propagating Detector: hrcgpartition ◮ Row-column-net hypergraph used in Bergner et al. (2015) ◮ Every nonzero entry a ij is a vertex ◮ Every row and column is a hyperedge ◮ Solve balan. min - k way cut problem ◮ Hyperedges between partitions in border p.10

  18. Example Propagating Detector: hrcgpartition ◮ Row-column-net hypergraph used in Bergner et al. (2015) ◮ Every nonzero entry a ij is a vertex ◮ Every row and column is a hyperedge ◮ Solve balan. min - k way cut problem ◮ Hyperedges between partitions in border p.10

  19. Example Propagating Detector: hrcgpartition ◮ Row-column-net hypergraph used in Bergner et al. (2015) ◮ Every nonzero entry a ij 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

  20. Example finishing detector: Connected ◮ connected component in row-adjacency graph yields a block 1 2 3 4 5 6 7 1 3 7 2 4 5 6 a d     a 1 1 a 1 1 b 1 1 1 d 1 1   e       c 1 1 1 e 1 1         d 1 1 b 1 1 1     c b e 1 1 c 1 1 1 p.11

  21. Example postprocessing detector ◮ simple idea: check for each master constraint if it can be assigned to exactly one block p.12

  22. Constraint Classification: Binpacking example min y 1 + y 2 + y 3 s.t. − 100 y 1 + 54 x 11 + 33 x 21 + 34 x 31 + 72 x 41 ≤ 0 − 100 y 2 + 54 x 12 + 33 x 22 + 34 x 32 + 72 x 42 ≤ 0 − 100 y 3 + 54 x 13 + 33 x 23 + 34 x 33 + 72 x 43 ≤ 0 x 11 + x 12 + x 13 ≥ 1 x 21 + x 22 + x 23 1 ≥ x 31 + x 32 + x 33 ≥ 1 x 41 + x 42 + x 43 1 ≥ . . . p.13

  23. Constraint Classification: Binpacking example min y 1 + y 2 + y 3 s.t. − 100 y 1 + 54 x 11 + 33 x 21 + 34 x 31 + 72 x 41 ≤ 0 − 100 y 2 + 54 x 12 + 33 x 22 + 34 x 32 + 72 x 42 ≤ 0 − 100 y 3 + 54 x 13 + 33 x 23 + 34 x 33 + 72 x 43 ≤ 0 x 11 + x 12 + x 13 ≥ 1 x 21 + x 22 + x 23 1 ≥ x 31 + x 32 + x 33 ≥ 1 x 41 + x 42 + x 43 1 ≥ . . .

  24. Constraint Classification: Binpacking example min y 1 + y 2 + y 3 s.t. − 100 y 1 + 54 x 11 + 33 x 21 + 34 x 31 + 72 x 41 ≤ 0 − 100 y 2 + 54 x 12 + 33 x 22 + 34 x 32 + 72 x 42 ≤ 0 − 100 y 3 + 54 x 13 + 33 x 23 + 34 x 33 + 72 x 43 ≤ 0 x 11 + x 12 + x 13 ≥ 1 x 21 + x 22 + x 23 1 ≥ x 31 + x 32 + x 33 ≥ 1 x 41 + x 42 + x 43 1 ≥ . . .

  25. Constraint Classification: Binpacking example min y 1 + y 2 + y 3 s.t. − 100 y 1 + 54 x 11 + 33 x 21 + 34 x 31 + 72 x 41 ≤ 0 − 100 y 2 + 54 x 12 + 33 x 22 + 34 x 32 + 72 x 42 ≤ 0 − 100 y 3 + 54 x 13 + 33 x 23 + 34 x 33 + 72 x 43 ≤ 0 x 11 + x 12 + x 13 ≥ 1 x 21 + x 22 + x 23 1 ≥ x 31 + x 32 + x 33 ≥ 1 x 41 + x 42 + x 43 1 ≥ . . . p.13

  26. Constraint Classification: Binpacking example min y 1 + y 2 + y 3 s.t. − 100 y 1 + 54 x 11 + 33 x 21 + 34 x 31 + 72 x 41 ≤ 0 knapsack − 100 y 2 + 54 x 12 + 33 x 22 + 34 x 32 + 72 x 42 ≤ 0 − 100 y 3 + 54 x 13 + 33 x 23 + 34 x 33 + 72 x 43 ≤ 0 x 11 + x 12 + x 13 ≥ 1 x 21 + x 22 + x 23 1 ≥ x 31 + x 32 + x 33 ≥ 1 x 41 + x 42 + x 43 1 ≥ . . . p.13

  27. Constraint Classification: Binpacking example min y 1 + y 2 + y 3 s.t. − 100 y 1 + 54 x 11 + 33 x 21 + 34 x 31 + 72 x 41 ≤ 0 knapsack − 100 y 2 + 54 x 12 + 33 x 22 + 34 x 32 + 72 x 42 ≤ 0 − 100 y 3 + 54 x 13 + 33 x 23 + 34 x 33 + 72 x 43 ≤ 0 x 11 + x 12 + x 13 ≥ 1 x 21 + x 22 + x 23 1 ≥ setcover x 31 + x 32 + x 33 ≥ 1 x 41 + x 42 + x 43 1 ≥ . . . p.13

Recommend


More recommend