Professional Documents
Culture Documents
Wyszukiwanie wzorca
String matching
Tomasz M. Gwizdałła
T [s..s + m − 1] = P[0..m − 1]
T [s] = P[0], .., T [s + m − 1] = P[m − 1]
znalezieniu
wszystkich poprawnych przesunięć
wzorca w tekście
w [x ⇐⇒ ∃y ∈Σ∗ x = wy
w ]x ⇐⇒ ∃y ∈Σ∗ x = yw
Algorytm naiwny Notes
KA T ARAKTA KATARA K TA
A RAK A R AK
• Złożoność obliczeniowa
O(m ∗ n)
Zagadnienie Notes
Σ = {A, K , R, T }
KATARAKTA = ”214131241”
ARAK = ”1312”
Algorytm Notes
ts = m
i=1 T [i + s] ∗ 10
m−i
P
t0 = 2141
p= mi=1 P[i] ∗ 10
m−i
P
p = 1312
ts = p
Algorytm Notes
Algorytm Notes
t0 = 2141 t1 = 1413
1413 = (2141 − 2000) ∗ 10 + 3
• Rozmiar alfabetu
• Zakres liczby całkowitej
Problemy Notes
Problemy Notes
h = d m−1 mod q
Podsumowanie Notes
• Złożoność obliczeniowa
O(n)
Założenia Notes
T T 1 znak
T A
A teraz?
TTAT C 2 znaki
TAT A
TTAT C 1 znak
T A
TTAT C 1 znak
T
TTATCTATA G 2 znaki
TA T
2 1 1 0
4 1 2 2
2 1 1 0
1 0 1 0
5 2 2 2
3 0 2 2
Kryterium przesuwania Notes
max(1, j − Π[j] − 1)
Założenia Notes
Założenia Notes
GSS Notes
Założenia Notes
K AT A RAKT A
A R A K
pre BC [A] = 1, pre GS[4] = 1, przesunięcie=1
KA T A R AKT A
A R A K
pre BC [R] = 2, pre GS[4] = 1, przesunięcie=2
KA T A RAK T A
A RAK
A co z przesunięciem? Zawsze pre GS[0].
Podsumowanie Notes