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: graph π» , terminals π΅ β π(π») Output: minimum-weight tree connecting π΅ π΅ Various applications: οΌ VLSI design π οΌ fiber-optic network design οΌ team formulation in social networks 2
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
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
Outline 1. EMV Algorithm 2. Separator-based Pruning 3. Other techniques 4. Experiments 5
Dynamic Programming [Dreyfus-Wagner 71] For π β π , let opt π β weight of min Steiner tree for terminals π . opt π βͺ {π£} = min αopt π β² βͺ {π£} + opt π β π β² βͺ {π£} π β² β π opt π βͺ {π€} + π₯ π€π£ π€π£ β πΉ π» β² π π β² π£ π π€ π£ β π 6
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
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
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
Outline 1. EMV Algorithm 2. Separator-based Pruning 3. Other techniques 4. Experiments 10
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
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
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
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
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
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
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
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
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
Outline 1. EMV Algorithm 2. Separator-based Pruning 3. Other techniques 4. Experiments 20
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
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
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
Outline 1. EMV Algorithm 2. Separator-based Pruning 3. Other techniques 4. Experiments 24
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
Comparison with EMV οΌ No reductions οΌ 200 public instances from PACE 26
Power of other techniques DS: Data Structure MM: Meet in the Middle 27
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
Comparison with HSV 29
Comparison with SCIP-Jack average of π/π οΌ Pruned used the same reductions as SCIP-Jack οΌ Omit too-easy instances solved by the reductions alone 30
Comparison with SCIP-Jack 31
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