Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Algoritmer og Datastrukturer 2

Lignende præsentationer


Præsentationer af emnet: "Algoritmer og Datastrukturer 2"— Præsentationens transcript:

1 Algoritmer og Datastrukturer 2
Gerth Stølting Brodal Mønstergenkendelse [CLRS, kapitel , 32.4]

2 Mønster genkendelse forekomst på position 4 1 2 3 4 5 6 7 8 9 10 11 12 13 skift på 3 1 2 3 4 Input: Tekst T af længde n og mønster P af længde m Output: Alle positioner i T hvor P forekommer

3 Naive Algoritme O(n∙m)
For tilfædig streng eller pattern, forventet tid O(n) Worst-case O(n*m) Eksempel: P = ababc T = babababcab O(n∙m)

4 Rabin-Karp : Eksempel P = 31415
T hash værdier 2 3

5 p = P[1]dm-1 +P[2]dm-2 + ∙∙∙ +P[m-1]d1+P[m]d0 mod q
1981 Rabin-Karp O(n∙m) p = P[1]dm-1 +P[2]dm-2 + ∙∙∙ +P[m-1]d1+P[m]d0 mod q

6 π (q) = max { i | i<q og P[1..i] er et suffix af P[1..q] }
Knuth-Morris-Pratt 1977 π(0) = 0 π (q) = max { i | i<q og P[1..i] er et suffix af P[1..q] } Π(q) = max { i | i<q og P[1..i] er et suffix af P[1..q] } i T y P x π(q) z q P O(n)

7 Knuth-Morris-Pratt: Eksempel
π(0) = 0 π (q) = max { i | i<q og P[1..i] er et suffix af P[1..q] }

8 Knuth-Morris-Pratt: Beregning af prefix funktionen
q P = y P x O(m) k

9 Knuth-Morris-Pratt: Beregning af prefix funktionen

10 Worst-case tider [CLRS] 32.1 32.2 (32.3) 32.4
Mere info: Se Bill Smyth’s bog (Kapitel 8) og Handbook of Exact String-Matching Algorithms (Charras og Lecroq, 32.4


Download ppt "Algoritmer og Datastrukturer 2"

Lignende præsentationer


Annoncer fra Google