La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

String Matching.

Presentaciones similares


Presentación del tema: "String Matching."— Transcripción de la presentación:

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)


Descargar ppt "String Matching."

Presentaciones similares


Anuncios Google