|
Autómatas Finitos
Autómatas Finitos Deterministas
Se llama Autómata Finito Determinista (AFD) a la quíntupla:
(å , Q, f, q0, F)
Un AFD puede considerarse como una máquina secuencial de Moore, cuyo alfabeto de entrada sea å , su alfabeto de salida å S={ 0,1} , y donde F será el conjunto de los estados tales que g(q)=1.
Tabla de Transición
Será una tabla cuyas filas están encabezadas por los estados (elemen-tos de Q). Los encabezamientos de las columnas son los símbolos del alfabeto de entrada (los elementos de å ). Cumpliéndose que el elemento i, j de la tabla de transición corresponde al valor de f(qi, ej), donde qi es el elemento i-ésimo de Q, y ej es el elemento j-ésimo de å . Tanto el estado inicial como el final estarán marcados por ® y por * respectivamente. Nota: el estado final puede ser indicado también rodeando el estado por un círculo.
|
(å ): a1...an |
® q0 ..... qi ...... *qf |
|
Ejemplo:
AF=({ 0,1} ,{ q0,q1,q2} , f, q0, { q1} )
f |
0 |
1 |
® q0 |
q1 |
q0 |
*q1 |
q0 |
q2 |
q2 |
q1 |
- |
Diagrama de Transición
Es un grafo dirigido que se forma de la siguiente manera:
Representamos los estados como:
Ejemplo: (partiendo del autómata anterior)
Lenguaje asociado a un autómata finito determinista L(AFD)
Sea un AFD (å , Q, f, q0, F). Decimos qie una palabra x Î å * es "aceptada" o "reconocida" por el autómata si f(q0,x) Î F. Se llama lenguaje asociado al autómata finito, o conducta del autómata finito al conjunto de todas las palabras aceptadas por éste. Es decir: L = { x | xÎ å * & f(q0,x)Î F}
Ejemplo:
0 Î L(AF), ya que f(q0, 0) = q1 Î F
10 Î L(AF)
1*0 Î L(AF)
1*010 Î L(AF)
Luego L(AF) = 1*0(10)*
Ejemplo 2 :
Calculo posibles caminos desde q0 a q0 (por ser el estado inicial): (1*+(10)*0)*
Caminos desde el estado inicial hasta el estado final (el mas corto): 0
Caminos desde el estado final al estado final sin pasar por el inicial: (10)*
Luego L(AF)= (1*+(10)*0)* 0 (10)*
Estado Accesible
Un estado de un AF es accesible si existe una palabra x que permite que el autómata se pare en ese estado partiendo del estado inicial. Es decir, un estado q es accesible desde otro estado p del autómata si existe una cadena x que permite que el autómata transitando desde p con x se pare en el estado q:
qÎ Q es accesible si $ x | x Î å * | q = f(q0, x)
Por definición de función de transición, todo estado es accesible desde sí mismo, y es accesible mediante la palabra vacía.
LEMA del estado accesible
Dado un AF que tiene n estados, |Q|= n, un estado qÎ Q es accesible desde otro estado p si y sólo si $ xÎ å * | |x|<n (siendo n el nº de estados de autómata) | f(p,x)=q.
Supongamos |x|>=n | f(p,x=q Þ siempre es posible escontrar otra cadena x'Î å * | |x|<n | f(p,x')=q.
Es decir, que si yo tengo un autómata con n estados, si transito por todos los estados, pasando una vez por cada estado, habré realizado n-1 transiciones, que es menos que n estados.
Si |x|>=n para la transición se repetirá al menos un estado.
Ejemplo :
q2 es accesible desde q0, por ejemplo con la palabra: x=110001, |x|=6, como |Q|=3, decimos que siempre podremos encontrar una palabra x' tal que |x'|<|x| (puesto que |x|>|Q|)
y ademá cumple que |x'|<|Q|. Esta x' sería: x'=01
Autómatas conexos
Sea (å , Q, f, qo, F) un autómata finito determinista. Diremos que el autómata es "conexo" si todos los estados de Q son accesibles desde el estado inicial qo.
Dado un autómata no conexo, podemos obtener a partir de él otro autómata que sea conexo eliminando todos los estados que no sean accesibles desde qo. Es evidente que los dos autómatas aceptarán el mismo lenguaje.
Ejemplo: sea el autómata definido por el diagrama de transición siguiente:
Es evidente que los estados q y s son inaccesibles desde el estado inicial p. Por lo tanto, el autómata siguiente aceptará el mismo lenguaje:
Minimización de AF
Equivalencia de estados en AF
Sea el autómata finito determinista (å , Q, f, q0, F). Decimos que dos estados p,qÎ Q son equivalentes (se representa por pEq) si para toda palabra xÎ å *, se verifica que f(p,x)Î FÛ f(q,x)Î F.
Nota: Si pEq entonces pEnq, para todo n.
Propiedades de la equivalencia de estados
Dado AF=(å , Q, f, q0, F), con p,qÎ Q
LEMA1(propiedad de estados)
Si pEk+1q Þ pEkq y f(p,a)Ekf(q,a) " aÎ å
LEMA2
Pk=Pk+1 Þ Pk= PE
LEMA3 (Se va a establecer cuando se estabiliza el valor de la partición)
Si |Q| = n >1 Þ pEnq Û pEn-2q
Es decir, n-2 es el grado de equivalencia menor al que habría que llegar para conseguir confirmar la equivalencia de dos estados en un autómata con n estados.
TEOREMA
Si |Q|=n>1 Þ $ j<=n-2 | Pj= Pj+1
Algoritmo para construir PE
Ejemplo :
Para hallar las partes de equivalencia del autómata primero debemos partir de un autómata finito conexo. Para ello vamos a eliminar q4, ya que no es posible acceder a él desde el estado inicial (q1). Ahora vamos a establecer las partes de equivalencia:
® P0={ Q-F, F} ={ { q1} , { q2, q3} }
Ahora hacemos P1, para ello sabemos que { q1} va a seguir igual, es decir, va a ser equivalente con sigo mismo, puesto que accede a los mismo estados(finales o no finales).
Miramos { q2, q3} y comprobamos si acceden al mismo tipo de estado para las mismas entradas, es decir, sabiendo que q2 E0 q3 vamos a ver si q2 E1 q3:
f(q2,a)=q3Î F f(q2,b)=q1Ï F
f(q3,a)=q2Î F f(q3,b)=q1Ï F
luego q2 E1 q3.
P1={ { q1} , { q2, q3} } = P0= PE
Algoritmo para hallar el autómata mínimo de uno dado
a. C0 es la clase donde se encuentra q0 ;
b. F'={ c | c contiene al menos un estado de F(es decir, existe un qÎ F, tal que qÎ c)} ;
c. f': Q/E x å ® Q/E, donde
f'(ci, a)= cj Û $ qi Î ci y $ qj Î cj | f(qi,a)=qj
Ejemplo:
Es un autómata conexo, pues todos sus estados son accesibles, vamos a hallar las partes de equivalencia:
P0={ { s,t,u,v} ,{ p,q,r} } (={ Q-F,F} )
miramos la equivalencia de las clases de equivalencia establecidas en P0.
f(p,a) = pÎ F; f(p,b)= qÎ F;
f(q,a)= rÎ F; f(q,b)=pÎ F;
f(r,a)= rÎ F; f(r,b)=rÎ F;
aqui vemos que { p,q,r} se conserva pues tienen iguales transiciones a estados finales a partir de las entradas.
f(s,a)=tÏ F; f(s,b)=pÎ F
f(t,a)=tÏ F; f(t,b)=uÏ F
f(u,a)=tÏ F; f(u,b)=vÏ F
f(v,a)=vÏ F; f(v,b)=uÏ F
ahora vemos que mientras t,u,v tienen iguales transiciones a estados no finales para las mismas entradas, siguen siendo equivalentes, mientras que s para b transita a un estado final, ya será equivalente a los tres estados anteriores:
P1={ { p,q,r} ,{ s} ,{ t,u,v} }
Ahora hallamos P2:
f(p,a) = pÎ F; f(p,b)= qÎ F;
f(q,a)= rÎ F; f(q,b)=pÎ F;
f(r,a)= rÎ F; f(r,b)=rÎ F;
f(t,a)=tÏ F; f(t,b)=uÏ F
f(u,a)=tÏ F; f(u,b)=vÏ F
f(v,a)=vÏ F; f(v,b)=uÏ F
P2= { { p,q,r} ,{ s} ,{ t,u,v} } = P1
luego PE= { { p,q,r} ,{ s} ,{ t,u,v} }
El autómata mínimo nos va a quedar:
Si nos pidieran el lenguaje del autómata: L(A)=L(A')={ b(a+b)*} , (donde A es el autómata inicial, y A' es el autómata mínimo).
Autómatas Equivalentes
Suma directa de autómatas finitos deterministas
Sean los AFD A1=(å , Q1, f1, q01, F1) y A2=(å , Q2, f2, q02, F2), tales que Q1 y Q2 no tienen elementos comunes. Llamamos suma directa de A1 y A2 al autómata A=A1+A2=(å , Q1UQ2, f, q0, F1U F2), dinde q0 es uno cualquiera de los dos estados q01 o q02, y f se define así:
f(q,a)=f1(q,a) si qÎ Q1
f(q,a)=f2(q,a) si qÎ Q2
Equivalencia de autómatas
Sean los AFD A1=(å , Q1, f1, q01, F1) y A2=(å , Q2, f2, q02, F2). Decimos que dos estados pÎ Q1 y qÎ Q2 son equivalentes si f(p,x)Î F1Û f(q,x)Î F2, para todo xÎ å *.
Decimos que los dos autómatas son equivalentes si reconocen el mismo lenguaje. Es decir: si f(q01,x)Î F1Û f(q02,x)Î F2, para todo xÎ å *. Dicho de otro modo, decimos que dos autómatas son equivalentes si sus estados iniciales los son: q01Eq02.
Teorema.- Sean dos autómatas finitos deterministas A1=(å , Q1, f1, q01, F1) y A2=(å , Q2, f2, q02, F2), tales que Q1 y Q2 no tienen estados comunes y |Q1|=n1 y |Q2|=n2. Entonces, A1 y A2 son equivalentes si q01 yq02 son equivalentes en el autómata A=A1+A2, es decir, si ambos autómatas aceptan las mismas palabras de longitud menor que n1+n2-1. Además, en general, n1+n2-2 es el valor más pequeño que cumple siempre este teorema.
ALGORITMO PARA VER SI DOS AUTóMATAS SON EQUIVALENTES
Ejemplo:
El autómata suma me dará:
fÅ |
a |
b |
® q1 |
q2 |
q1 |
*q2 |
q3 |
q1 |
*q3 |
q2 |
q1 |
q4 |
q1 |
q1 |
p1 |
p2 |
p1 |
*p2 |
p2 |
p1 |
p3 |
p2 |
p1 |
P0={ { q1, q4, p1, p3} , { q2, q3, p2} }
P1={ { q1, p1, p3} , { q4} ,{ q2, q3, p2} }
P2={ { q1, p1, p3} , { q4} ,{ q2, q3, p2} }
luego P1= P2 =PE
Isomorfismo entre Autómatas
Se dice que A1 es isomorfo a A2, es decir, A1 A2 si $ i :Q1® Q2, (i : imagen). Por lo tanto :
Por lo tanto A1 y A2 son iguales renombrando estados.
Entonces si dos autómatas son isomorfos van a ser equivalentes, es decir, los lenguajes que van a generar ambos autómatas van a ser el mismo : L(A1) = L(A2). Con esto comprobamos que la isomorfía implica la equivalencia.
Teorema : Si dos autómatas son equivalentes, entonces sus autómatas mínimos son isomorfos, es decir : A1EA2 Þ Â1 Â2 (siendo  i º autómata mínimo de Ai).
Autómatas Finitos No Deterministas
Llamaremos "autómata finito no determinista" (AFND) a la séxtupla:
A = ( å , Q, f, q0, F, T ), donde:
Ejemplo: Sea el autómata finito no determinista:
({ a, b} , { p, q, r, s} , f, p, { p, s} , { (q,s), (r,r), (r,s), (s,r)} ), donde f se define asi:
f(p,a)={ q} f(p,b)=Æ
f(q,a)={ p,r,s} f(q,b)={ p,r}
f(r,a)=Æ f(r,b)={ p,s}
f(s,a)=Æ f(s,b)=Æ
Representación
En Diagrama: Con tantos nodos como estados.
Pueden sobrar o faltar arcos de un estado a otro
Si f(p,a)=Q1, trazaremos una rama dirigida desde p hasta cada uno de los estados del conjunto de estados Q1, con la etiqueta a.
Pueden existir arcos de un estado a otro por medio de l , en el caso de pTq, que trazaremos una rama desde p hasta q con la etiqueta l .
Ejemplo (continuación):
Tabla: Tendrá tantas filas como estados, y tantas columnas como elementos de å ,
más una columna adicional encabezada por la palabra vacía l , esta será la clumna reservada a las l -transiciones.
Ejemplo (continuación) :
|
a |
b |
l |
® p |
{ q} |
|
|
q |
{ p,r,s} |
{ p,r} |
{ s} |
r |
|
{ p,s} |
{ r,s} |
*s |
|
|
{ r} |
Relación T
Sabemos que: (p,q) Î T*, donde T* = T0 É T1 É T2 É ....
Utilizaremos las matrices booleanas de representación T, para representar si un estado q es accesible desde un estado p mediante una l -transición.
Primero se representará la matriz booleana de representación de T, o, lo que es lo mismo, la matriz booleana que representa la posibilidad de transitar a otro estado a partir de una l -transición:
T |
p |
q |
r |
s |
p |
0 |
0 |
0 |
0 |
q |
0 |
0 |
0 |
1 |
r |
0 |
0 |
1 |
1 |
s |
0 |
0 |
1 |
0 |
T* |
p |
q |
r |
s |
p |
0 |
0 |
0 |
0 |
q |
0 |
0 |
1 |
1 |
r |
0 |
0 |
1 |
1 |
s |
0 |
0 |
1 |
1 |
Ahora se hace la clausura transitiva de la relación T, es decir, la relación T*, que no es más que calcular la accesibilidad de unos estados a otros mediante un número de l -transiciones mayor.
Lo que se ha hecho en esta clausura no es más que calcular aquellos estados q, que a partir de un estado p, es posible acceder mediante l -transiciones. Esto se puede ver tanto en el diagrama de estados, como en la matriz booleana de la relación T. Se puede observar que el estado r no accesible desde q mediante una l -transición, sin embargo si será accesible mediante dos l -transiciones. Este también será el caso del estado s y su acceso a sí mismo mediante l -transiciones.
Extensión de f a palabras
Ahora vamos a definir f' como una nueva función de transición que, en lugar de actuar sobre letras del alfabeto de entrada, actúe sobre palabras (que incluyan la palabra vacía l ). Es decir: f': Q x å * ® P(Q) (P(Q), partes de Q)
a) f'(q,l ) = { p | q T* p} , para todo qÎ Q
b) Sea x = a1a2...an , n > 0 . Entonces, f'(q,x) = { p | p es accesible desde q mediante la cadena de entrada l i0a1l i1a2... anl in} para todo qÎ Q (la sucesión anterior es idéntica a x).
Ejemplo (en el autómata anterior):
f'(p,l ) = { p} f'(q,l ) = { q,r,s}
f'(r,l ) = { r,s} f'(s,l ) = { r,s}
f'(p,a) = { q,r,s} f'(p,b) = Æ
f'(q,a) = { p,r,s} f'(q,b) = { p,r,s}
f'(r,a) = Æ f'(r,b)={ p,r,s}
f'(s,a) = Æ f'(s,b) = { p,r,s}
f'(p,aa) = { p,r,s} f'(p,ab) = { p,r,s}
f'(q,aa) = { q,r,s} f'(r,ba) = { q,r,s}
Lenguaje aceptado por un AFND
El L(AFND) estará formado por el conjunto de cadenas que acceden a un estado final: L(AFND) = { x | x Î å * | f (q0, x) = Ci | $ qf Î Ci | qf Î F }
La cadena vacía l , es aceptada por el AFND , cuando el estado final es un estado final: l Î L(AFND) si q0 Î F ú q0 T* qf | qf Î F (esto quiere decir que si l pertenece al lenguaje asociado al AFND entonces: O el estado inicial es también un estado final, o que el estado final es accesible mediante l -transiciones desde el estado inicial)
Autómata finito determinista equivalente a uno no determinista
Dado un autómata finito no determinista, siempre es posible construir otro finito determinista que acepta el mismo lenguaje que el primero. Puesto que el conjunto de lenguajes aceptados por los autómatas finitos no deterministas es idéntico al conjunto de los lenguajes finitos deterministas: L(AFD) = L (AFND)
Sea el autómata finito no determinista A = ( å , Q, f, q0, F, T). Definiremos a partir de él el siguiente autómata finito determinista: B = ( å , Q', f', q'0, F') donde:
Ejemplo :
Sea el autómata finito no determinista definido por la tabla siguiente :
f |
a |
b |
® p |
p |
|
q |
q, r |
|
*r |
|
r |
tendrá el diagrama siguiente :
Þ El autómata finito determinista equivalente será (por pasos) :
1º) p será el estado inicial
2º) (hallamos las partes de Q)
P(Q) = { Æ , { p} , { q} , { r} , { p, q} , { q, r} , { r, p} , { p, q, r} }
3º) Hago una tabla de transiciones, y pongo en la columna de estados aquellos que sean accesibles desde el estado inicial, no se ponen todas las partes de Q (P(Q)). Podría hacerse primero de esa forma, poniendo en los estados P(Q), pero después tendríamos que hallar el autómata conexo asociado.
|
a |
b |
® { p} |
{ p} |
Æ |
{ q} |
{ q, r} |
Æ |
*{ r} |
Æ |
{ r} |
*{ q,r} |
{ q,r} |
{ r} |
Y este es el autómata finito determinista equivalente al no determinista.
Si nos pidieran minimizar el AFD obtenido:
Renombramos:
Hallamos el autómata equivalente hallando la partición de equivalencia correspondiente:
P0={ { A,B,E} , { C,D} }
P1={ { A,E} , { B} , { C} , { D} }
P2={ { A} , { B} , { C} , { D} , { E} } = PE luego el autómata ya es mínimo
Autómata finito no determinista equivalente a uno determinista
Un AFD es igual a un AFND sin l -transiciones.
Autómata Finito asociado a una Gramática Regular(Gramática tipo 3)
Notas
Gramáticas |
Autómatas |
Quitamos variables inaccesibles |
Creamos autómata finito conexo |
Variables no generativas |
Estados trampa |
Producciones reductoras (A® l ) |
l -transición a estado final (A ® l qf) |
Producción A® B |
l -transición(A® l B) |
Producción a® A |
l -transición(A® l A) |
Aún no hay comentarios para este recurso.
Monografias, Exámenes, Universidades, Terciarios, Carreras, Cursos, Donde Estudiar, Que Estudiar y más: Desde 1999 brindamos a los estudiantes y docentes un lugar para publicar contenido educativo y nutrirse del conocimiento.
Contacto »