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

pruned dynamic programming
SMART_READER_LITE
LIVE PREVIEW

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:


slide-1
SLIDE 1

Separator-based Pruned Dynamic Programming for Steiner Tree

Yoichi Iwata (NII) Takuto Shigemura (U-Tokyo)

1

appeared in AAAI 2019

https://www.aaai.org/Papers/AAAI/2019/AAAI-IwataY.4578.pdf

slide-2
SLIDE 2

Steiner Tree Problem

Various applications:  VLSI design  fiber-optic network design  team formulation in social networks

2

Steiner tree problem

Input: graph 𝐻, terminals 𝐵 ⊆ 𝑊(𝐻) Output: minimum-weight tree connecting 𝐵

𝐵 𝑈

slide-3
SLIDE 3

PACE Challenge 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

https://pacechallenge.wordpress.com/pace-2018/

slide-4
SLIDE 4

Results

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 2. Our team solved 77/100 by pruned DP + 𝑥𝑥-DP 3. Tom van der Zanden solved 58/100 by rank-based DP

4

https://pacechallenge.org/files/PACE18-report.pdf

for public instances: pruned DP alone solved 81/100 𝑥𝑥-DP alone solved 44/100 combined solved 84/100

slide-5
SLIDE 5

Outline

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

5

slide-6
SLIDE 6

Dynamic Programming [Dreyfus-Wagner 71]

For 𝑇 ⊆ 𝑊, let opt 𝑇 ≔ weight of min Steiner tree for terminals 𝑇.

  • pt 𝑇 ∪ {𝑣}

= min ቐopt 𝑇′ ∪ {𝑣} + opt 𝑇 ∖ 𝑇′ ∪ {𝑣} 𝑇′ ⊆ 𝑇

  • pt 𝑇 ∪ {𝑤} + 𝑥 𝑤𝑣

𝑤𝑣 ∈ 𝐹 𝐻

6

𝑣 𝑇′ 𝑇 ∖ 𝑇

𝑤 𝑇 𝑣

slide-7
SLIDE 7

EMV Algorithm [Erickson-Monma-Veinott 87]

𝑒 𝑇, 𝑣 = ∞ for ∀𝑇 ⊆ 𝐵 and ∀𝑣 ∈ 𝑊 𝑒 𝑏 , 𝑏 = 0 for ∀𝑏 ∈ 𝐵 for 𝑇 ⊆ 𝐵 in ascending order of |𝑇| update 𝑒(𝑇, 𝑣) for ∀𝑣 by Dijkstra for 𝑇′ ⊆ 𝐵 ∖ 𝑇 update 𝑒(𝑇 ∪ 𝑇′, 𝑣) for ∀𝑣

7

𝑃 3|𝐵|𝑜 + 2|𝐵| 𝑛 + 𝑜 log 𝑜 time Can we avoid computing all 𝑒(𝑇, 𝑣)? → Yes, for special instances. [EMV 87]

slide-8
SLIDE 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 𝑜).

8

1 2 4 3

𝐵

slide-9
SLIDE 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…

9

1 2 4 3

𝐵

Steiner tree for {1, 3} always separates {2, 4}. So we can skip the computation

  • f 𝑒( 1,3 ,∗).

In general, we only need to compute 𝑒( 𝑗, 𝑗 + 1, … , 𝑘 ,∗)

slide-10
SLIDE 10

Outline

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

10

slide-11
SLIDE 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 𝐵.

11

𝑣

𝐵 𝑈 important

𝑣

𝐵 𝑈 unimportant

slide-12
SLIDE 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

slide-13
SLIDE 13

Necessary Condition of Importance

13

Key Lemma:

A Steiner tree 𝑈 for 𝑇 ∪ {𝑣} is not important if there is an (𝐵 ∖ 𝑇)-separator 𝐷 such that for every 𝑤 ∈ 𝐷, there is a Steiner tree for 𝑇 ∪ {𝑤}

  • f weight strictly less than the weight of 𝑈.

𝐷

𝑣

𝐵 𝑈 𝑈′

𝑤

𝐷

𝑣

𝐵 𝑈′′ 𝑈′

𝑤

𝑥 𝑈′′ < 𝑥(𝑈)

slide-14
SLIDE 14

Separator Construction

After computing 𝑒(𝑇,∗), we compute the minimum 𝑦 s.t. 𝐷𝑦 ≔ 𝑣 ∈ 𝑊 𝑒 𝑇, 𝑣 ≤ 𝑦 separates 𝐵 ∖ 𝑇. Then, 𝐷𝑦 satisfies the condition for every 𝑇, 𝑣 with 𝑒 𝑇, 𝑣 > 𝑦.

14

4 3 4 5 5 3 5 5 4 3 3 4 5 5 4 5

𝑇

slide-15
SLIDE 15

Pruned DP Algorithm

15

𝑄 ← ∅ # 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 𝑄

slide-16
SLIDE 16

Restore dropped information (1)

For unimportant (𝑇, 𝑣), we may have 𝑒 𝑇, 𝑣 > opt 𝑇 ∪ 𝑣 . This can interfere with the pruning…

16

3 3 3

𝑇

4 3 4 5 5 3 5 6 4 3 4 5 5 5 5 6

𝑇

Dijkstra

𝐷4 does not separate 𝐵 ∖ 𝑇 

slide-17
SLIDE 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 ∀𝑤 ∈ 𝑊(𝑈

𝑣).

17

3 3 3 3

𝑇

4 3 4 5 5 3 5 5 4 3 3 4 5 5 4 5

𝑇

Dijkstra

𝐷4 separates 𝐵 ∖ 𝑇 

slide-18
SLIDE 18

Restore dropped information (3)

If a Steiner tree 𝑈 for 𝑇 ∪ {𝑣} is unimportant, 𝑈 + 𝑄

𝑣𝑤

is also unimportant. So we can safely drop such (𝑇, 𝑤).

18

3 3 3 3

𝑇

4 3 4 5 5 3 5 5 4 3 3 4 5 5 4 5

𝑇

Dijkstra

𝐷4 separates 𝐵 ∖ 𝑇 

slide-19
SLIDE 19

Restore dropped information (3)

If a Steiner tree 𝑈 for 𝑇 ∪ {𝑣} is unimportant, 𝑈 + 𝑄

𝑣𝑤

is also unimportant. So we can safely drop such (𝑇, 𝑤).

19

3 3 3 3

𝑇

4 3 4 3 4 3

𝑇

Dijkstra

𝐷4 separates 𝐵 ∖ 𝑇 

slide-20
SLIDE 20

Outline

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

20

slide-21
SLIDE 21

Data Structure (1)

How can we apply the merge operation efficiently? Let valid 𝑇 ≔ 𝑣 ∈ 𝑊 𝑒 𝑇, 𝑣 ≠ ∞ . We want to find all 𝑇′ such that 1. 𝑇 ∩ 𝑇′ = ∅ and 2. valid 𝑇 ∩ valid 𝑇′ ≠ ∅

21

𝑄 ← ∅ # set of processed 𝑇 while ∃unprocessed 𝑇 s.t. 𝑒 𝑇, 𝑣 ≠ ∞ for some 𝑣 … for 𝑇′ ∈ 𝑄 s.t. 𝑇 ∩ 𝑇′ ≠ ∅ update 𝑒(𝑇 ∪ 𝑇′, 𝑣) for ∀𝑣 push 𝑇 into 𝑄

slide-22
SLIDE 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. 𝐽𝑗 ≔ځ𝑢∈𝑀𝑗 𝑇𝑢 2. 𝑉𝑗 ≔ڂ𝑢∈𝑀𝑗 valid(𝑇𝑢) When searching 𝑇′, we can stop if 𝑇 ∩ 𝐽𝑗 ≠ ∅ or valid 𝑇 ∩ 𝑉𝑗 = ∅.

22

slide-23
SLIDE 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|𝑇|.

23

𝑄 ← ∅ # set of processed 𝑇 while ∃unprocessed 𝑇 s.t. 𝑒 𝑇, 𝑣 ≠ ∞ for some 𝑣 … for 𝑇′ ∈ 𝑄 s.t. 𝑇 ∩ 𝑇′ ≠ ∅ update 𝑒(𝑇 ∪ 𝑇′, 𝑣) for ∀𝑣 push 𝑇 into 𝑄

slide-24
SLIDE 24

Outline

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

24

slide-25
SLIDE 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

slide-26
SLIDE 26

Comparison with EMV

 No reductions  200 public instances from PACE

26

slide-27
SLIDE 27

Power of other techniques

DS: Data Structure MM: Meet in the Middle

27

slide-28
SLIDE 28

Comparison with HSV

 No reductions

28

𝐵 is ‘better’ than 𝐶 on an instance 𝑗 if 𝐵 could solve 𝑗 but B couldn’t or (run-time of 𝐶) > (run-time of 𝐵) × 10 + 1s.

slide-29
SLIDE 29

Comparison with HSV

29

slide-30
SLIDE 30

Comparison with SCIP-Jack

 Pruned used the same reductions as SCIP-Jack  Omit too-easy instances solved by the reductions alone

30

average of 𝑙/𝑜

slide-31
SLIDE 31

Comparison with SCIP-Jack

31

slide-32
SLIDE 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