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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend