Descargar la presentación
La descarga está en progreso. Por favor, espere
1
String Matching
2
Autómata Finito Un autómata finito M es una 5-tuple
(Q, q0, A, , δ), donde Q es un conjunto finito de estados q0 ε Q es el estado inicial A Q es un conjunto de estados de aceptacion o finales es un alfabeto δ es la funcion de transicion
3
Como trabaja un Automata en estados finitos
Los automata finito M comienza en el estado q0 Lee los caracteres desde uno a la vez Si M esta en el estado q y lee un caracter “a”, entonces M se mueve al estado δ(q,a) Los nodos correspondientes a los estados de aceptación están marcados por un doble círculo. Los que no con un círculo sencillo.
4
Ejemplo Pattern : gcag Text : gcgagcagc
5
Funcion de transicion For( q = 0; q<= m; q ++ )
For( cada carácter x del alfabeto ){ k = min( q +1, m) while( P[ k] no es sufijo de P[ k] + c ){ k = k – 1 } δ( q, x ) = k
6
g c a g q 1 2 3 4 P [q] - g c a 1 2 3 4 q = 0 Min(1,4)=K=1
1 - 2 3 4 q 1 2 3 4 P [q] - g c a g c a g 1 2 3 4 q = 0 Min(1,4)=K=1 P[1]=g es sufijo P[0]+g=g δ( 0, g ) = 1
7
g g c a g q 1 2 3 4 P [q] - g c a 1 2 3 4 q = 1 Min(2,4)=K=2
1 - 2 3 4 q 1 2 3 4 P [q] - g c a g g c a g 1 2 3 4 q = 1 Min(2,4)=K=2 P[2]=gc no es sufijo P[1]+g=gg k = k – 1 = 1 P[1] = g es sufijo de P[0]+g=g δ( 1, g ) = 1
8
g g g c a g q 1 2 3 4 P [q] - g c a 1 2 3 4 q = 2 Min(3,4)= K = 3
1 - 2 3 4 q 1 2 3 4 P [q] - g c a g g g c a g 1 2 3 4 q = 2 Min(3,4)= K = 3 P[3]=gca no es sufijo de P[2]+g=gcg k = k – 1 = 2 P[2] = gc no es sufijo de P[1]+g=gg k = k – 1 = 1 P[1] = g es sufijo de P[0]+g=g δ( 2, g ) = 1
9
g g g c a g q 1 2 3 4 P [q] - g c a 1 2 3 4 q = 3 Min(4,4)= K = 4
1 - 2 3 4 q 1 2 3 4 P [q] - g c a g g g c a g 1 2 3 4 q = 3 Min(4,4)= K = 4 P[4]=gcag es sufijo de P[3]+g=gcag δ( 3, g ) = 4
10
g g g g c a g q 1 2 3 4 P [q] - g c a 1 2 3 4 q = 4 Min(5,4)= K = 4
1 - 2 3 4 q 1 2 3 4 P [q] - g c a g g g g c a g 1 2 3 4 q = 4 Min(5,4)= K = 4 P[4]=gcag no es sufijo de P[4]+g=gcagg k = k – 1 = 3 P[3]=gca no es sufijo de P[2]+g=gcag k = k – 1 = 2 P[2] = gc no es sufijo de P[1]+g=gcg k = k – 1 = 1 P[1] = g es sufijo de P[0]+g=gg δ( 4, g ) = 1
11
Pattern : gcag Text : gcgagcagc g c a 1 2 3 4 g g g g c a g 1 2 3 4 c
12
Algorithm Entrada : T [1..n], δ and m
String_matcher_automata_finito (T, m, δ) n ← length[T ] q ← 0 for i ← 1 to n q ← δ (q, T [i]) if q = m print “pattern” i-m
13
g g g g c a g c 1 2 3 4 i 1 2 3 4 5 6 7 8 9 T [i] G C A q δ(q,T[i ]) g
1 2 3 4 g g g g c a g 1 2 3 4 c i 1 2 3 4 5 6 7 8 9 T [i] G C A q δ(q,T[i ])
14
g g g g c a g c 1 2 3 4 i 1 2 3 4 5 6 7 8 9 T [i] G C A q δ(q,T[i ]) g
1 2 3 4 g g g g c a g 1 2 3 4 c i 1 2 3 4 5 6 7 8 9 T [i] G C A q δ(q,T[i ])
15
g g g g c a g c 1 2 3 4 i 1 2 3 4 5 6 7 8 9 T [i] G C A q δ(q,X) g c a
1 2 3 4 g g g g c a g 1 2 3 4 c i 1 2 3 4 5 6 7 8 9 T [i] G C A q δ(q,X)
16
g g g g c a g c 1 2 3 4 i 1 2 3 4 5 6 7 8 9 T [i] G C A q δ(q,X) g c a
1 2 3 4 g g g g c a g 1 2 3 4 c i 1 2 3 4 5 6 7 8 9 T [i] G C A q δ(q,X)
17
g g g g c a g c 1 2 3 4 i 1 2 3 4 5 6 7 8 9 T [i] G C A q δ(q,X) g c a
1 2 3 4 g g g g c a g 1 2 3 4 c i 1 2 3 4 5 6 7 8 9 T [i] G C A q δ(q,X)
18
g g g g c a g c 1 2 3 4 i 1 2 3 4 5 6 7 8 9 T [i] G C A q δ(q,X) g c a
1 2 3 4 g g g g c a g 1 2 3 4 c i 1 2 3 4 5 6 7 8 9 T [i] G C A q δ(q,X)
19
g g g g c a g c 1 2 3 4 i 1 2 3 4 5 6 7 8 9 T [i] G C A q δ(q,X) g c a
1 2 3 4 g g g g c a g 1 2 3 4 c i 1 2 3 4 5 6 7 8 9 T [i] G C A q δ(q,X)
20
g g g g c a g c 1 2 3 4 i 1 2 3 4 5 6 7 8 9 T [i] G C A q δ(q,X) g c a
1 2 3 4 g g g g c a g 1 2 3 4 c i 1 2 3 4 5 6 7 8 9 T [i] G C A q δ(q,X)
21
g g g g c a g c 1 2 3 4 i 1 2 3 4 5 6 7 8 9 T [i] G C A q δ(q,X) g c a
1 2 3 4 g g g g c a g 1 2 3 4 c i 1 2 3 4 5 6 7 8 9 T [i] G C A q δ(q,X)
22
g g g g c a g c 1 2 3 4 i 1 2 3 4 5 6 7 8 9 T [i] G C A q δ(q,X) g c a
1 2 3 4 g g g g c a g 1 2 3 4 c i 1 2 3 4 5 6 7 8 9 T [i] G C A q δ(q,X)
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.