pruned dynamic programming
play

Pruned Dynamic Programming for Steiner Tree Yoichi Iwata (NII) - PowerPoint PPT Presentation

Separator-based Pruned Dynamic Programming for Steiner Tree Yoichi Iwata (NII) Takuto Shigemura (U-Tokyo) appeared in AAAI 2019 https://www.aaai.org/Papers/AAAI/2019/AAAI-IwataY.4578.pdf 1 Steiner Tree Problem Steiner tree problem Input:


  1. Separator-based Pruned Dynamic Programming for Steiner Tree Yoichi Iwata (NII) Takuto Shigemura (U-Tokyo) appeared in AAAI 2019 https://www.aaai.org/Papers/AAAI/2019/AAAI-IwataY.4578.pdf 1

  2. Steiner Tree Problem Steiner tree problem Input: graph 𝐻 , terminals 𝐡 βŠ† π‘Š(𝐻) Output: minimum-weight tree connecting 𝐡 𝐡 Various applications: οƒΌ VLSI design π‘ˆ οƒΌ fiber-optic network design οƒΌ team formulation in social networks 2

  3. PACE Challenge 2018 https://pacechallenge.wordpress.com/pace-2018/ Track 1: small number of terminals ( 𝐡 ≀ 136 ) οƒΌ 𝑃 3 |𝐡| π‘œ + 2 |𝐡| 𝑛 + π‘œ log π‘œ by DP [Erickson-Monma-Veinott 87] οƒΌ EMV + 𝐡 βˆ— -search [Hougardy-Silvanus-Vygen 17] Track 2: small tree-width ( π‘₯ ≀ 47 ) οƒΌ π‘₯ 𝑃 π‘₯ 𝑛 by DP οƒΌ 2 𝑃 π‘₯ 𝑛 by a rank-based DP [Bodlaender-Cygan-Kratsch- Nederlof 15] Track 3: heuristic 3

  4. Results https://pacechallenge.org/files/PACE18-report.pdf Track 1: small number of terminals 1. Our team solved 95/100 by pruned DP 2. Maziarz and Polak solved 94/100 by HSV 3. Koch and Rehfeldt solved 93/100 by ILP Track 2: small tree-width 1. Koch and Rehfeldt solved 92/100 by ILP Our team solved 77/100 by pruned DP + π‘₯ π‘₯ -DP 2. 3. Tom van der Zanden solved 58/100 by rank-based DP for public instances: pruned DP alone solved 81/100 π‘₯ π‘₯ -DP alone solved 44/100 combined solved 84/100 4

  5. Outline 1. EMV Algorithm 2. Separator-based Pruning 3. Other techniques 4. Experiments 5

  6. Dynamic Programming [Dreyfus-Wagner 71] For 𝑇 βŠ† π‘Š , let opt 𝑇 ≔ weight of min Steiner tree for terminals 𝑇 . opt 𝑇 βˆͺ {𝑣} = min ቐopt 𝑇 β€² βˆͺ {𝑣} + opt 𝑇 βˆ– 𝑇 β€² βˆͺ {𝑣} 𝑇 β€² βŠ† 𝑇 opt 𝑇 βˆͺ {𝑀} + π‘₯ 𝑀𝑣 𝑀𝑣 ∈ 𝐹 𝐻 β€² 𝑇 𝑇 β€² 𝑣 𝑇 𝑀 𝑣 βˆ– 𝑇 6

  7. EMV Algorithm [Erickson-Monma-Veinott 87] 𝑒 𝑇, 𝑣 = ∞ for βˆ€π‘‡ βŠ† 𝐡 and βˆ€π‘£ ∈ π‘Š 𝑒 𝑏 , 𝑏 = 0 for βˆ€π‘ ∈ 𝐡 for 𝑇 βŠ† 𝐡 in ascending order of |𝑇| update 𝑒(𝑇, 𝑣) for βˆ€π‘£ by Dijkstra for 𝑇 β€² βŠ† 𝐡 βˆ– 𝑇 update 𝑒(𝑇 βˆͺ 𝑇 β€² , 𝑣) for βˆ€π‘£ 𝑃 3 |𝐡| π‘œ + 2 |𝐡| 𝑛 + π‘œ log π‘œ time Can we avoid computing all 𝑒(𝑇, 𝑣) ? β†’ Yes, for special instances. [EMV 87] 7

  8. Special Case [Erickson-Monma-Veinott 87] If the graph if planar and all the terminals are on a single face, the running time is improved to 𝑃( 𝐡 3 π‘œ + 𝐡 2 π‘œ log π‘œ) . 𝐡 1 2 4 3 8

  9. Special Case [Erickson-Monma-Veinott 87] If the graph if planar and all the terminals are on a single face, the running time is improved to 𝑃( 𝐡 3 π‘œ + 𝐡 2 π‘œ log π‘œ) . But, of course, this is too special to apply in practice… 𝐡 1 Steiner tree for {1, 3} always separates {2, 4} . So we can skip the computation 2 of 𝑒( 1,3 ,βˆ—) . In general, we only need to compute 𝑒( 𝑗, 𝑗 + 1, … , π‘˜ ,βˆ—) 4 3 9

  10. Outline 1. EMV Algorithm 2. Separator-based Pruning 3. Other techniques 4. Experiments 10

  11. Important Partial Solution A Steiner tree π‘ˆ for 𝑇 βˆͺ {𝑣} is called important if there is a Steiner tree π‘ˆ β€² for 𝐡 βˆ– 𝑇 βˆͺ {𝑣} s.t. π‘ˆ + π‘ˆ β€² is a minimum Steiner tree for 𝐡 . 𝐡 𝐡 π‘ˆ π‘ˆ 𝑣 𝑣 unimportant important 11

  12. Important Partial Solution A Steiner tree π‘ˆ for 𝑇 βˆͺ {𝑣} is called important if there is a Steiner tree π‘ˆ β€² for 𝐡 βˆ– 𝑇 βˆͺ {𝑣} s.t. π‘ˆ + π‘ˆ β€² is a minimum Steiner tree for 𝐡 . In EMV algorithm, we can safely skip computations for unimportant 𝑇, 𝑣 . But how can we check the importance? 12

  13. Necessary Condition of Importance Key Lemma: A Steiner tree π‘ˆ for 𝑇 βˆͺ {𝑣} is not important if there is an (𝐡 βˆ– 𝑇) -separator 𝐷 such that for every 𝑀 ∈ 𝐷 , there is a Steiner tree for 𝑇 βˆͺ {𝑀} of weight strictly less than the weight of π‘ˆ . 𝐷 𝐷 𝐡 𝐡 π‘₯ π‘ˆ β€²β€² < π‘₯(π‘ˆ) π‘ˆ π‘ˆβ€²β€² 𝑣 𝑣 𝑀 𝑀 π‘ˆβ€² π‘ˆβ€² 13

  14. Separator Construction After computing 𝑒(𝑇,βˆ—) , we compute the minimum 𝑦 s.t. 𝐷 𝑦 ≔ 𝑣 ∈ π‘Š 𝑒 𝑇, 𝑣 ≀ 𝑦 separates 𝐡 βˆ– 𝑇 . Then, 𝐷 𝑦 satisfies the condition for every 𝑇, 𝑣 with 𝑒 𝑇, 𝑣 > 𝑦 . 𝑇 4 3 4 5 5 3 5 5 4 3 3 4 5 5 4 5 14

  15. Pruned DP Algorithm 𝑄 ← βˆ… # set of processed 𝑇 while βˆƒ unprocessed 𝑇 s.t. 𝑒 𝑇, 𝑣 β‰  ∞ for some 𝑣 pick smallest such 𝑇 update 𝑒(𝑇, 𝑣) for βˆ€π‘£ by Dijkstra compute minimum 𝑦 s.t. 𝐷 𝑦 separates 𝐡 βˆ– 𝑇 drop (𝑇, 𝑣) from 𝑒 for βˆ€ 𝑇, 𝑣 s.t. 𝑒 𝑇, 𝑣 > 𝑦 for 𝑇 β€² ∈ 𝑄 s.t. 𝑇 ∩ 𝑇 β€² β‰  βˆ… update 𝑒(𝑇 βˆͺ 𝑇 β€² , 𝑣) for βˆ€π‘£ push 𝑇 into 𝑄 15

  16. Restore dropped information (1) For unimportant (𝑇, 𝑣) , we may have 𝑒 𝑇, 𝑣 > opt 𝑇 βˆͺ 𝑣 . This can interfere with the pruning… 𝑇 𝑇 3 4 3 4 5 Dijkstra 3 5 3 5 6 3 4 3 4 5 5 5 5 6 𝐷 4 does not separate 𝐡 βˆ– 𝑇  16

  17. Restore dropped information (2) Before running Dijkstra, we partially restore 𝑒(𝑇, 𝑣) as follows. For each 𝑣 with 𝑒 𝑇, 𝑣 β‰  ∞ , we construct the corresponding Steiner tree π‘ˆ 𝑣 for 𝑇 βˆͺ {𝑣} , and update 𝑒 𝑇, 𝑀 with 𝑒(𝑇, 𝑣) for βˆ€π‘€ ∈ π‘Š(π‘ˆ 𝑣 ) . 𝑇 𝑇 3 4 3 4 5 Dijkstra 3 5 3 5 5 3 3 4 3 3 4 5 5 4 5 𝐷 4 separates 𝐡 βˆ– 𝑇  17

  18. Restore dropped information (3) If a Steiner tree π‘ˆ for 𝑇 βˆͺ {𝑣} is unimportant, π‘ˆ + 𝑄 𝑣𝑀 is also unimportant. So we can safely drop such (𝑇, 𝑀) . 𝑇 𝑇 3 4 3 4 5 Dijkstra 3 5 3 5 5 3 3 4 3 3 4 5 5 4 5 𝐷 4 separates 𝐡 βˆ– 𝑇  18

  19. Restore dropped information (3) If a Steiner tree π‘ˆ for 𝑇 βˆͺ {𝑣} is unimportant, π‘ˆ + 𝑄 𝑣𝑀 is also unimportant. So we can safely drop such (𝑇, 𝑀) . 𝑇 𝑇 3 4 3 4 Dijkstra 3 3 3 3 4 3 𝐷 4 separates 𝐡 βˆ– 𝑇  19

  20. Outline 1. EMV Algorithm 2. Separator-based Pruning 3. Other techniques 4. Experiments 20

  21. Data Structure (1) 𝑄 ← βˆ… # set of processed 𝑇 while βˆƒ unprocessed 𝑇 s.t. 𝑒 𝑇, 𝑣 β‰  ∞ for some 𝑣 … for 𝑇 β€² ∈ 𝑄 s.t. 𝑇 ∩ 𝑇 β€² β‰  βˆ… update 𝑒(𝑇 βˆͺ 𝑇 β€² , 𝑣) for βˆ€π‘£ push 𝑇 into 𝑄 How can we apply the merge operation efficiently? Let valid 𝑇 ≔ 𝑣 ∈ π‘Š 𝑒 𝑇, 𝑣 β‰  ∞ . We want to find all 𝑇 β€² such that 𝑇 ∩ 𝑇 β€² = βˆ… and 1. valid 𝑇 ∩ valid 𝑇 β€² β‰  βˆ… 2. 21

  22. Data Structure (2) We maintain the set of processed 𝑇 using the following binary trie. Each leaf 𝑒 keeps 𝑇 𝑒 βŠ† 𝐡 . Each internal node 𝑒 with leaves 𝑀 𝑒 keeps 𝐽 𝑗 ≔ځ π‘’βˆˆπ‘€ 𝑗 𝑇 𝑒 1. 𝑉 𝑗 ≔ڂ π‘’βˆˆπ‘€ 𝑗 valid(𝑇 𝑒 ) 2. When searching 𝑇′ , we can stop if 𝑇 ∩ 𝐽 𝑗 β‰  βˆ… or valid 𝑇 ∩ 𝑉 𝑗 = βˆ… . 22

  23. Meet in the Middle Any Steiner tree for 𝐡 can be written as a sum of three Steiner trees for 𝑇 1 , 𝑇 2 , 𝑇 3 with 1 ≀ 𝑇 1 ≀ 𝑇 2 ≀ 𝑇 3 ≀ |𝐡|/2 . 1. We can stop after processing all 𝑇 of size ≀ 𝐡 /2 . 2. When merging, we can iterate only over 𝑇 β€² of size at most 2 𝐡 βˆ’ 2|𝑇| . 𝑄 ← βˆ… # set of processed 𝑇 while βˆƒ unprocessed 𝑇 s.t. 𝑒 𝑇, 𝑣 β‰  ∞ for some 𝑣 … for 𝑇 β€² ∈ 𝑄 s.t. 𝑇 ∩ 𝑇 β€² β‰  βˆ… update 𝑒(𝑇 βˆͺ 𝑇 β€² , 𝑣) for βˆ€π‘£ push 𝑇 into 𝑄 23

  24. Outline 1. EMV Algorithm 2. Separator-based Pruning 3. Other techniques 4. Experiments 24

  25. Environment Data set: from the DIMACS and PACE List of Solvers: β€’ Pruned: the proposed pruned DP algorithm β€’ EMV: the classical DP algorithm HSV: EMV + 𝐡 βˆ— -search β€’ β€’ SCIP-Jack [Gamrath,Koch,Maher,Rehfeldt,Shinano 17] : ILP solver (PACE version) Setting: Intel Xeon E5-2670 (2.6 GHz), single thread, time limit = 30 minutes, memory limit = 6GB (same as PACE) 25

  26. Comparison with EMV οƒΌ No reductions οƒΌ 200 public instances from PACE 26

  27. Power of other techniques DS: Data Structure MM: Meet in the Middle 27

  28. Comparison with HSV οƒΌ No reductions 𝐡 is β€˜ better ’ than 𝐢 on an instance 𝑗 if 𝐡 could solve 𝑗 but B couldn’t or (run-time of 𝐢 ) > (run-time of 𝐡 ) Γ— 10 + 1s. 28

  29. Comparison with HSV 29

  30. Comparison with SCIP-Jack average of 𝑙/π‘œ οƒΌ Pruned used the same reductions as SCIP-Jack οƒΌ Omit too-easy instances solved by the reductions alone 30

  31. Comparison with SCIP-Jack 31

  32. Conclusion and Open Problems οƒΌ Pruned DP is quite effective for Steiner Tree. οƒΌ Further speedup? οƒ˜ Pruning interferes with future pruning… οƒΌ Pruning for tree-decomposition DP? 32

Recommend


More recommend