String Matching Autmata Finito Un autmata finito M
- Slides: 22
String Matching
Autómata Finito • • Un autómata finito M es una 5 -tuple (Q, q 0, A, , δ), donde – Q es un conjunto finito de estados – q 0 ε Q es el estado inicial – A Q es un conjunto de estados de aceptacion o finales – es un alfabeto – δ es la funcion de transicion
Como trabaja un Automata en estados finitos • • Los automata finito M comienza en el estado q 0 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.
Ejemplo • • Pattern : gcag Text : gcgagcagc
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 }
0 q 0 1 2 3 4 P [q] - g c a g g 1 c q=0 Min(1, 4)=K=1 P[1]=g es sufijo P[0]+g=g δ( 0, g ) = 1 2 a 3 g g c a 0 1 0 0 1 - - - 2 - - - 3 - - - 4
q 0 1 2 3 4 P [q] - g c a g g c a 0 1 0 0 1 1 - - 2 - - - 3 - - - 4 - - - g 0 g 1 c 2 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 a 3 g 4
q 1 0 P [q] - 2 g c g 0 g 3 4 a g g c a 0 1 0 0 1 1 - - 2 1 - - 3 - - - 4 - - - g 1 c 2 a 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 3 g 4
0 q P [q] - 1 g 2 c g 0 g 3 a 4 g g c a 0 1 0 0 1 1 - - 2 1 - - 3 4 - - - g 1 c 2 q=3 Min(4, 4)= K = 4 P[4]=gcag es sufijo de P[3]+g=gcag δ( 3, g ) = 4 a 3 g 4
0 q P [q] - 1 g 2 c g 0 g 3 a 4 g g g c a 0 1 0 0 1 1 - - 2 1 - - 3 4 - - 4 1 - - g 1 c 2 a 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 3 g 4
• • Pattern : gcag Text : gcgagcagc g g 0 g g c a 0 1 0 0 1 1 2 0 2 1 0 3 3 4 0 0 4 1 2 0 g 1 c 2 a 3 c g 4
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
g 0 c a 0 1 0 0 1 1 2 0 2 1 0 3 3 4 0 0 4 1 2 0 g g 1 c a 2 g 3 4 c i 1 2 3 4 5 6 7 8 9 T [i] G C G A G C q 0 δ(q, T[i ]) 1
g g 0 g g c a 0 1 0 0 1 1 2 0 2 1 0 3 3 4 0 0 4 1 2 0 g 1 c a 2 g 3 4 c i 1 2 3 4 5 6 7 8 9 T [i] G C G A G C q 0 1 δ(q, T[i ]) 1 2
g g 0 g g c a 0 1 0 0 1 1 2 0 2 1 0 3 3 4 0 0 4 1 2 0 g 1 c a 2 g 3 4 c i 1 2 3 4 5 6 7 8 9 T [i] G C G A G C q 0 1 2 δ(q, X) 1 2 1
g g 0 g g c a 0 1 0 0 1 1 2 0 2 1 0 3 3 4 0 0 4 1 2 0 g 1 c a 2 g 3 4 c i 1 2 3 4 5 6 7 8 9 T [i] G C G A G C q 0 1 2 1 δ(q, X) 1 2 1 0
g g 0 g g c a 0 1 0 0 1 1 2 0 2 1 0 3 3 4 0 0 4 1 2 0 g 1 c a 2 g 3 4 c i 1 2 3 4 5 6 7 8 9 T [i] G C G A G C q 0 1 2 1 0 δ(q, X) 1 2 1 0 1
g g 0 g g c a 0 1 0 0 1 1 2 0 2 1 0 3 3 4 0 0 4 1 2 0 g 1 c a 2 g 3 4 c i 1 2 3 4 5 6 7 8 9 T [i] G C G A G C q 0 1 2 1 0 1 δ(q, X) 1 2 1 0 1 2
g g 0 g g c a 0 1 0 0 1 1 2 0 2 1 0 3 3 4 0 0 4 1 2 0 g 1 c a 2 g 3 4 c i 1 2 3 4 5 6 7 8 9 T [i] G C G A G C q 0 1 2 1 0 1 2 δ(q, X) 1 2 1 0 1 2 3
g g 0 g g c a 0 1 0 0 1 1 2 0 2 1 0 3 3 4 0 0 4 1 2 0 g 1 c a 2 g 3 4 c i 1 2 3 4 5 6 7 8 9 T [i] G C G A G C q 0 1 2 1 0 1 2 3 δ(q, X) 1 2 1 0 1 2 3 4
g g 0 g g c a 0 1 0 0 1 1 2 0 2 1 0 3 3 4 0 0 4 1 2 0 g 1 c a 2 g 3 4 c i 1 2 3 4 5 6 7 8 9 T [i] G C G A G C q 0 1 2 1 0 1 2 3 4 δ(q, X) 1 2 1 0 1 2 3 4 2
g g 0 g c a 0 1 0 0 1 1 2 0 2 1 0 3 3 4 0 0 4 1 2 0 g g c 1 a 2 g 3 4 c i 1 2 3 4 5 6 7 8 9 T [i] G C G A G C q 0 1 2 1 0 1 2 3 4 δ(q, X) 1 2 1 0 1 2 3 4 2
- Http protocol description
- Autmata
- Autmata
- String matching in data integration
- String matching cses
- A guided tour to approximate string matching
- String matching
- A guided tour to approximate string matching
- String matching
- Input enhancement in string matching
- String matching finite automata
- String matching
- Fft string matching
- Algorithm for string matching
- Private string name java
- Const table
- New string java
- Non piangere perche e finito sorridi perche c'e stato
- Il ciclo di vita dei materiali
- Algoritmo
- Ejemplos de conjuntos finitos
- Fuerzas verticales
- Deismo finito