Download - Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

Transcript
Page 1: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

Efficient All Path Score Computations on Grid Graphs

Ury Matarazzo

Dekel Tsur

Michal Ziv-Ukelson

Page 2: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

Grid graph from string alignment

0

0

0

0

0

0

0

0

0

0

0

0

0

2

0

1

0

0

0

0

0

0

1

0 0

0 0 0 1 2

0

0 2

a

a

c

b

c c δ - a b c

- 0 0 0

a 0 2 0 1

b 0 0 2 0

c 0 1 0 2

A

B

Ury Matarazzo, Efficient All Path Score Computation on Grid Graphs

Page 3: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

Grid All Path Scores (GAPS)

Goal compute heaviest paths

from every vertex on first row to every vertex on last row

1

1

1

1

1

1

2.3

1

2.3

1

2.3

1

3.5

5.2

4.7

4

Schmidt: 𝑶(𝒏𝟐 ⋅ 𝒍𝒐𝒈𝒏)

Ury Matarazzo, Efficient All Path Score Computation on Grid Graphs

Page 4: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

Integers Grid All Path Scores (IGAPS)

Weights are integers from the set {0,1, … , 𝐶}

1

1

1

1

1

1

2

1

2

1

2

1

3

5

4

4

𝐶 = 5

Schmidt: 𝑶(𝑪 ⋅ 𝒏𝟐)

Ury Matarazzo, Efficient All Path Score Computation on Grid Graphs

Page 5: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

Binary Grid All Path Scores (BGAPS)

Weights are integers from the set {0,1}

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

1

Alves, Caceres, Song: 𝑶(𝒏𝟐)

Tiskin: 𝑶 𝒏𝟐 ⋅ (𝒍𝒐𝒈𝒍𝒐𝒈𝒏 𝒍𝒐𝒈𝒏 )𝟐

For grid graph of LCS problem

Schmidt: 𝑶(𝒏𝟐)

Ury Matarazzo, Efficient All Path Score Computation on Grid Graphs

Page 6: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

Sparse Binary Grid All Path Scores (sparse BGAPS)

Horizontal and vertical weights are 0 and diagonal weights are 0 or 1. Number

of diagonal edges of weights 1 is 𝑟.

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

1

𝑟 = 2 Krusche, Tiskin: 𝑶(𝒏 ⋅ 𝒓)

Ury Matarazzo, Efficient All Path Score Computation on Grid Graphs

Page 7: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

Periodic Integers Grid All Path Scores (periodic IGAPS)

Weights are integers from the set {0,1, … , 𝐶}. The graph is infinite and the weights values are

periodic. The representation is finite.

Tiskin: 𝑂(𝐶2 ⋅ 𝑛2) 1

1

1

1

1

1

2

1

2

1

3

5

4

4

1

1

1

1

1

1

2

1

2

1

3

5

4

4

1

1

1

1

1

1

2

1

2

1

2

1

3

5

4

4

. . .

Page 8: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

𝑪 ⋅ 𝒏𝟐

𝑪𝟐 ⋅ 𝒏𝟐 ⋅ ( 𝒍𝒐𝒈𝒍𝒐𝒈𝒏

𝒍𝒐𝒈𝒏)𝟐

𝒓 ⋅ 𝒍𝒐𝒈𝟑(𝒏𝟐 𝒓 ) 𝒓 ⋅ 𝒍𝒐𝒈𝟑(𝒏𝟐 𝒓 )

Contribution

• Integers Grid All Path Scores (IGAPS) - Weights are integers in {0,…,C} • Binary Grid All Path Scores (BGAPS) - Weights are 0 or 1 • sparse BGAPS – 𝑟 represents the amount of edges with weight 1 • periodic infinite – Graph is infinite and weights are periodic

Finite Infinite periodic

IGAPS S, 1998: 𝐶 ⋅ 𝑛2 T, 2009: 𝐶2 ⋅ 𝑛2

IGAPS from

alignment

T: 𝐶2 ⋅ 𝑛2 ⋅ ( 𝑙𝑜𝑔𝑙𝑜𝑔𝑛

𝑙𝑜𝑔𝑛)2

Sparse BGAPS

K, T, 2008: 𝑛 ⋅ 𝑟

Ury Matarazzo, Efficient All Path Score Computation on Grid Graphs

Page 9: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

Some definitions 𝑂𝑃𝑇𝑖(𝑘, 𝑗) is the maximum weight of a path from (0, 𝑘) to (𝑖, 𝑗) DiffC 𝑖,𝑗 𝑘 = 𝑂𝑃𝑇𝑖 𝑘, 𝑗 + 1 − 𝑂𝑃𝑇𝑖 𝑘, 𝑗

DiffR 𝑖,𝑗 𝑘 = 𝑂𝑃𝑇𝑖+1 𝑘, 𝑗 − 𝑂𝑃𝑇𝑖 𝑘, 𝑗

0

0

0

0

0

0

0

0

0

0

0

0

0

3

1

2

𝑂𝑃𝑇2 0, 2 = 3 𝑂𝑃𝑇1 0, 2 = 1 DiffR 1,2 0 = 3 − 1 = 2

We will compute all DiffR and DiffC values which give us implicit representation of the all-scores matrix of 𝐺.

Ury Matarazzo, Efficient All Path Score Computation on Grid Graphs

Page 10: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

Computing Diff with compact representation

0

0

0

0

0 0 0 3 2

0

0

0 1

𝑂𝑃𝑇0(0,3) = 0

𝑂𝑃𝑇1(0,3) = 3

DiffR 0,3(0) = 3

0

0

0 4

DiffR 0,3= (3,2,1,0)

Ury Matarazzo, Efficient All Path Score Computation on Grid Graphs

Page 11: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

Computing Diff with compact representation

0

0

0

0

0 0 0 3 2

0

0

0 1

𝑂𝑃𝑇0(1,3) = 0

𝑂𝑃𝑇1(1,3) = 2

DiffR 0,3(1) = 2

0

0

0 4

DiffR 0,3= (3,2,1,0)

Ury Matarazzo, Efficient All Path Score Computation on Grid Graphs

Page 12: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

Computing Diff with compact representation

0

0

0

0

0 0 0 3 2

0

0

0 1

𝑂𝑃𝑇0(2,3) = 0

𝑂𝑃𝑇1(2,3) = 1

DiffR 0,3(2) = 1

0

0

0 4

DiffR 0,3= (3,2,1,0)

Ury Matarazzo, Efficient All Path Score Computation on Grid Graphs

Page 13: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

Computing Diff with compact representation

0

0

0

0

0 0 0 3 2

0

0

0 1

𝑂𝑃𝑇0(3,3) = 0

𝑂𝑃𝑇1(3,3) = 0

DiffR 0,3(3) = 0

0

0

0 4

DiffR 0,3= (3,2,1,0)

Ury Matarazzo, Efficient All Path Score Computation on Grid Graphs

Page 14: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

Bounding DiffC and DiffR

0 ≤DiffC 𝑖,𝑗(𝑘) ≤ 𝐶 and 0 ≤DiffR 𝑖,𝑗 (𝑘) ≤ 𝐶

0

0

0 0 𝐶

Ury Matarazzo, Efficient All Path Score Computation on Grid Graphs

Page 15: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

Compact representation of Diff 𝑆𝐶𝑖,𝑗 (𝑆𝑅𝑖,𝑗) is sequence that contains the

indices in which DiffC 𝑖,𝑗 (DiffR 𝑖,𝑗) function

changes.

Example 𝐶 = 5 𝑛 = 9 𝑘 = (1,2,3,4,5,6,7,8,9) DiffC 9,9= (1,1,1,1,1,2,2,2,4) Diff function 𝑆𝐶𝑖,𝑗 = (−∞, 6,9,9,∞) Compact representation

(−∞, 6,9,9,∞)

4 1 1 0 0

Page 16: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

𝑪 ⋅ 𝒏𝟐

𝑪𝟐 ⋅ 𝒏𝟐 ⋅ ( 𝒍𝒐𝒈𝒍𝒐𝒈𝒏

𝒍𝒐𝒈𝒏)𝟐

𝒓 ⋅ 𝒍𝒐𝒈𝟑(𝒏𝟐 𝒓 ) 𝒓 ⋅ 𝒍𝒐𝒈𝟑(𝒏𝟐 𝒓 )

Contribution

• Integers Grid All Path Scores (IGAPS) - Weights are integers in {0,…,C} • Binary Grid All Path Scores (BGAPS) - Weights are 0 or 1 • sparse BGAPS – 𝑟 represents the amount of edges with weight 1 • periodic infinite – Graph is infinite and weights are periodic

Finite Infinite periodic

IGAPS S, 1998: 𝐶 ⋅ 𝑛2 T, 2009: 𝐶2 ⋅ 𝑛2

IGAPS from

alignment

T: 𝐶2 ⋅ 𝑛2 ⋅ ( 𝑙𝑜𝑔𝑙𝑜𝑔𝑛

𝑙𝑜𝑔𝑛)2

Sparse BGAPS

K, T, 2008: 𝑛 ⋅ 𝑟

Ury Matarazzo, Efficient All Path Score Computation on Grid Graphs

Page 17: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

Algorithm for finite sparse BGAPS

1 0 0

𝑾𝒊,𝒋 = 𝟏 𝑆𝐶𝑖+1,𝑗 = 𝑆𝑅𝑖,𝑗

𝑆𝑅𝑖,𝑗+1 = 𝑆𝐶𝑖,𝑗

𝑾𝒊,𝒋 = 𝟎

𝑆𝐶𝑖+1,𝑗 = max {𝑆𝐶𝑖,𝑗 , 𝑆𝑅𝑖,𝑗} 𝑆𝑅𝑖,𝑗+1 = min {𝑆𝐶𝑖,𝑗 , 𝑆𝑅𝑖,𝑗}

Indexes didn’t cross: They cross once

Indexes crossed: don’t cross again

DiffR

DiffR DiffC

DiffC

Max

DiffR

DiffR DiffC

DiffC

DiffR

DiffR DiffC

DiffC

Max

DiffR

DiffR DiffC

DiffC

DiffR

DiffR DiffC

DiffC

Max

DiffR

DiffR DiffC

DiffC

𝑆𝑅 < 𝑆𝐶 𝑆𝐶 < 𝑆𝑅

Page 18: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

Algorithm for finite sparse BGAPS 1 2 3 0

−∞

−∞

−∞

−∞

1

−∞

3

−∞

−∞ 0 −∞ 2 Ury Matarazzo, Efficient All Path Score

Computation on Grid Graphs

Page 19: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

Algorithm for finite sparse BGAPS 0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

active edge

inactive row 0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

𝑮

0

0

0 1

G’ 0

𝑂(𝑛)

inactive column

Ury Matarazzo, Efficient All Path Score Computation on Grid Graphs

Page 20: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

Algorithm for finite sparse BGAPS with 𝑟 ≤ 𝑛 • Case 1: 𝐺 has at most 𝑛 ∕ 2 active edges:

• then there are at least 𝑛 ∕ 2 inactive rows and at least 𝑛 ∕ 2 inactive columns.

• Choose 𝑛 ∕ 2 inactive rows and 𝑛 ∕ 2 inactive columns and remove them from 𝐺 to obtain a grid graph 𝐺′.

• Recursively compute 𝑂𝑈𝑇(𝐺′) and then obtain 𝑂𝑈𝑇(𝐺).

G’ G O(n)

Page 21: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

𝑖 = 4

• Case 2: 𝐺 has more than 𝑛 ∕ 2 active edges:

• let 𝑖 be the maximum index such that 𝐺1 = 𝐺[0. . 𝑖, 0. . 𝑛] has at most 𝑛 ∕ 2 active edges.

• Let 𝐺2 = 𝐺[𝑖. . 𝑖 + 1, 0. . 𝑛] and 𝐺3 = 𝐺[𝑖 + 1. . 𝑛, 0. . 𝑛].

• 𝐺1, 𝐺2, 𝐺3 have at most 𝑛 ∕ 2 active edges.

𝐺1

𝐺2

𝐺3

𝐺

𝐺’1

𝐺’3

𝑂(𝑛 ⋅ 𝑙𝑜𝑔𝑛) 𝐺2

Ury Matarazzo, Efficient All Path Score Computation on Grid Graphs

Algorithm for finite sparse BGAPS with 𝑟 ≤ 𝑛

Page 22: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

Algorithm for finite sparse BGAPS • If the number of active edges is at most 𝑛, compute 𝑂𝑈𝑇(𝐺), Stop

• Partition 𝐺 into four subgraphs:

𝐺1 = 𝐺[0. . 𝑛 ∕ 2, 0. . 𝑛 ∕ 2], 𝐺2 = 𝐺[0. . 𝑛 ∕ 2, 𝑛 ∕ 2. . 𝑛],

𝐺3 = 𝐺[𝑛 ∕ 2. . 𝑛, 0. . 𝑛 ∕ 2], 𝑎𝑛𝑑 𝐺4 = 𝐺[𝑛 ∕ 2. . 𝑛, 𝑛 ∕ 2. . 𝑛].

• Recursively compute 𝑂𝑈𝑇(𝐺𝑖) for each of the subgraphs.

• Compute 𝑂𝑈𝑇(𝐺) by application of Theorem 3 three times.

Page 23: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

Algorithm for finite sparse BGAPS

nlogn

nlogn nlogn

• If the number of active edges is at most 𝑛, compute 𝑂𝑈𝑇(𝐺), Stop

• Partition 𝐺 into four subgraphs:

𝐺1 = 𝐺[0. . 𝑛 ∕ 2, 0. . 𝑛 ∕ 2], 𝐺2 = 𝐺[0. . 𝑛 ∕ 2, 𝑛 ∕ 2. . 𝑛],

𝐺3 = 𝐺[𝑛 ∕ 2. . 𝑛, 0. . 𝑛 ∕ 2], 𝑎𝑛𝑑 𝐺4 = 𝐺[𝑛 ∕ 2. . 𝑛, 𝑛 ∕ 2. . 𝑛].

• Recursively compute 𝑂𝑈𝑇(𝐺𝑖) for each of the subgraphs.

• Compute 𝑂𝑈𝑇(𝐺) by application of Theorem 3 three times.

Page 24: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

Time complexity • number of graphs handled in level 𝑗 is at most 4𝑗

• number of subgraphs in level 𝑗 − 1 with high 𝑟 is at most 𝑟

𝑛 2𝑗−1

• number of graphs handled in level 𝑗 is at most 4 ×𝑟

𝑛 2𝑗−1

• The time complexity of handling one subgraph in level 𝑗 is either 𝑂(𝑛′ · 𝑙𝑜𝑔2𝑛′) if amount of active edges is smaller than 𝑛’, and 𝑂(𝑛′ ⋅ 𝑙𝑜𝑔 𝑛′) otherwise.

• Therefore, the total time of the algorithm is

𝑂( min (4𝑗 ,𝑟 ⋅ 2𝑗

𝑛) ⋅𝑛

2𝑗𝑙𝑜𝑔2𝑛

2𝑗) = 𝑂(𝑟 ⋅ 𝑙𝑜𝑔3

𝑛2

𝑟)

𝑙𝑜𝑔𝑛

𝑗=0

Where 𝑟 is the number of edges whose weight is 1.

Ury Matarazzo, Efficient All Path Score Computation on Grid Graphs

Page 25: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

𝑪 ⋅ 𝒏𝟐

𝑪𝟐 ⋅ 𝒏𝟐 ⋅ ( 𝒍𝒐𝒈𝒍𝒐𝒈𝒏

𝒍𝒐𝒈𝒏)𝟐

𝒓 ⋅ 𝒍𝒐𝒈𝟑(𝒏𝟐 𝒓 ) 𝒓 ⋅ 𝒍𝒐𝒈𝟑(𝒏𝟐 𝒓 )

Contribution

• Integers Grid All Path Scores (IGAPS) - Weights are integers in {0,…,C} • Binary Grid All Path Scores (BGAPS) - Weights are 0 or 1 • sparse BGAPS – 𝑟 represents the amount of edges with weight 1 • periodic infinite – Graph is infinite and weights are periodic

Finite Infinite periodic

IGAPS S, 1998: 𝐶 ⋅ 𝑛2 T, 2009: 𝐶2 ⋅ 𝑛2

IGAPS from

alignment

T: 𝐶2 ⋅ 𝑛2 ⋅ ( 𝑙𝑜𝑔𝑙𝑜𝑔𝑛

𝑙𝑜𝑔𝑛)2

Sparse BGAPS

K, T, 2008: 𝑛 ⋅ 𝑟

Ury Matarazzo, Efficient All Path Score Computation on Grid Graphs

Page 26: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

−3 0 1 2 3

1

−7 −3

−1 3

−11 −7

2 −1 0 −11

𝐺∞

𝐺1

Algorithm for periodic BGAPS

Page 27: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

−3 0 1 2 3

1

−7 −3

−1 3

−11 −7

2 −1 0 −11

𝐺∞

𝐺2

Algorithm for periodic BGAPS

Page 28: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

−3 0 1 2 3

1

−7 −3

−1 3

−11 −7

2 −1 0 −11

𝐺∞

𝐺3

Algorithm for periodic BGAPS

Page 29: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

−3 0 1 2 3

1

−7 −3

−1 3

−11 −7

2 −1 0 −11

𝐺∞

𝐺4

Algorithm for periodic BGAPS

Page 30: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

−3 0 1 2 3

1

−7 −3

−1 3

−11 −7

2 −1 0 −11

𝐺∞

𝐺5 13 16 17 18 19

17

9 13

15 19

5 9

18 15 16 5

Equivalence

Algorithm for periodic BGAPS

Page 31: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

• (1) Compute 𝑂𝑈𝑇′(𝐺). • (2) Let 𝑛′ be the smallest power of 2 which is greater than or equal to 𝑛 • (3) For 𝑘 = 1, 2, 4, … , 𝑛′ ∕ 2 do

• (4) Compute 𝑂𝑈𝑇′ 𝐺2𝑘 from 𝑂𝑈𝑇′ 𝐺𝑘

• (5) Output (𝑂𝑈𝑇′(𝐺𝑛′) 1 − 𝑛′ − 1 𝑛,… , 𝑂𝑈𝑇′(𝐺𝑛′) 𝑛 − 𝑛′ − 1 𝑛)

G1 G2 G3 G4

• Runtime: 𝑇 𝐺 + 𝑂(𝑛 ⋅ 𝑙𝑜𝑔2𝑛), where

• 𝑇(𝐺) is the time complexity of solving BGAPS on 𝐺.

…𝑂𝑈𝑇’(𝐺8) 𝑂𝑈𝑇’(𝐺4) 𝑂𝑈𝑇’(𝐺2) 𝑂𝑈𝑇’(𝐺) 𝐺5

Algorithm for periodic BGAPS

Ury Matarazzo, Efficient All Path Score Computation on Grid Graphs

Page 32: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR

𝑪 ⋅ 𝒏𝟐

𝑪𝟐 ⋅ 𝒏𝟐 ⋅ ( 𝒍𝒐𝒈𝒍𝒐𝒈𝒏

𝒍𝒐𝒈𝒏)𝟐

𝒓 ⋅ 𝒍𝒐𝒈𝟑(𝒏𝟐 𝒓 ) 𝒓 ⋅ 𝒍𝒐𝒈𝟑(𝒏𝟐 𝒓 )

Summary

• sparse BGAPS – 𝑟 represents the amount of edges with weight 1 • periodic sparse BGAPS – Graph is infinite and weights are periodic

Finite Infinite periodic

IGAPS S, 1998: 𝐶 ⋅ 𝑛2 T, 2009: 𝐶2 ⋅ 𝑛2

IGAPS from

alignment

T: 𝐶2 ⋅ 𝑛2 ⋅ ( 𝑙𝑜𝑔𝑙𝑜𝑔𝑛

𝑙𝑜𝑔𝑛)2

Sparse BGAPS

K, T, 2008: 𝑛 ⋅ 𝑟

Ury Matarazzo, Efficient All Path Score Computation on Grid Graphs

Page 33: Efficient All Path Score Computations on Grid Graphsstelo/cpm/cpm13/18_matarazzo.pdf · DiffC , = , +1− , DiffR , = +1 , − , 0 0 0 0 0 0 0 0 0 0 0 0 0 1 3 1 2 20,2=3 0,2=1 DiffR