Documentos de Académico
Documentos de Profesional
Documentos de Cultura
08 Teoria de Lenguajes
08 Teoria de Lenguajes
INTRODUCCIN
La informacin se codifica en cadenas de smbolos, y un autmata es un dispositivo que manipula cadenas de smbolos que se le presentan a su entrada, producindose otras tiras o cadenas de smbolos a su salida. El autmata recibe los smbolos de entrada, uno detrs de otro, es decir secuencialmente. El smbolos de salida que en un instante produce un autmata, no slo depende del ltimo smbolo recibido a la entrada, sino de toda la secuencia o cadena, que ha recibido hasta ese instante. Todo lo anterior conduce a definir un concepto fundamental: estado de un autmata.
AUTMATAS
1
Teora de Lenguajes
ESTADO DE UN AUTMATA
Es toda la informacin necesaria en un momento dado, para poder deducir, dado un smbolo de entrada en ese momento, cul ser el smbolo de salida; as, el estado inicial, es conocer en qu estado se encontraba el autmata al recibir el primero de los smbolos de entrada. El autmata tendr un determinado nmero de estados (pudiendo ser infinitos). Se define la configuracin de un autmata a la situacin en un instante. Se define movimiento de un autmata como el trnsito entre dos configuraciones. El autmata al recibir un smbolo, producir un smbolo de salida y efectuar un cambio o transicin a otro estado(o puede quedarse en el mismo).
Un autmata reconocedor de un lenguaje, funciona de tal forma que cuando reciba a su entrada una determinada cadena de smbolos, indica si dicha cadena pertenece o no al lenguaje. Se mostrar cmo existe un tipo de autmata para reconocer cada uno de los tipos de lenguajes generados por las correspondientes gramticas
22/05/2012
E es un conjunto finito y sus elementos se llaman entradas o smbolos de entrada. S es un conjunto finito, y sus elementos se llaman salidas o smbolos de salida. Q es el conjunto de estados posibles, puede ser finito o infinito.
REPRESENTACIN DE AUTMATAS
REPRESENTACIN DE AUTMATAS
f q1 q2 q3 a q1 q3 q3 b q2 q2 q1 g q1 q2 q3 a 0 0 1 b 1 0 0
TABLA DE TRANSICIONES Las funcin f y g pueden representarse mediante una tabla, con tantas filas como estados y tantas columnas como entradas. As por ejemplo se puede representar el autmata A=(E,S,Q,f,g) donde E={a,b}, S={0,1}, Q={q1,q2,q3} y las funciones f y g se pueden representar por:
7
As se obtiene que f(a,q1)=q1 ; g(a, q1)=0; o tambin que f(a,q2)=q3 ; g(a, q3)=1. Ambas funciones tambin se pueden representar en una misma tabla de la siguiente forma:
f/g q1 q2 q3
22/05/2012
DIAGRAMAS DE MOORE
Son otra forma de representar las funciones de transicin y salida de un autmata. El diagrama de Moore es un grafo orientado en el que cada nodo corresponde a un estado; y si f(,qi)=qj y g(,qi)=s existe un arco dirigido del nodo qi al qj sobre el que se pone la etiqueta /s, tal y como se muestra en la figura:
EJEMPLO DE DIAGRAMA
a/0
DE MOORE
q1 b/1 b/0
/s q2 q3
qi Diagrama de Moore
qj
b/0
a/1 a/0
10
AUTMATAS FINITOS
Los autmatas finitos reconocen los lenguajes regulares, o de tipo 3 y se pueden representar intuitivamente por una cinta y una cabeza de lectura.
Movimiento a Izquierda
CINTA 0 1 1 1 1 1 1
Celda 0 1 1
1 0
Para efectos de estudio, iniciaremos con los autmatas finitos (Gramticas tipo 3) y luego veremos autmatas con pila (Gramticas tipo 2), que son las gramticas que como ya hemos indicado, son las que nos interesan.
11
Control de estados
12
22/05/2012
AUTMATAS FINITOS
La cinta de entrada solo contiene smbolos de un determinado alfabeto, y se mueve en una sola direccin. El control de estados, determina el funcionamiento del autmata. Una sentencia de un lenguaje determinado, colocada en la cinta, y leda por el autmata finito, es reconocida por ste, si el control de estados llega a un estado final.
E={conjunto finito de smbolos de entrada, que constituye el vocabulario} Q={conjunto finito de estados} f: E* x Q Q es la funcin de transicin q1 Q, es estado inicial F Q, es el conjunto de estados finales
Se entiende por configuracin de autmata finito a un par de la forma (q,W) donde q es el estado actual y W la cadena que queda por leer en ese instante.
14
13
16
22/05/2012
TEOREMAS Y COROLARIOS
TEOREMA 1. Para toda gramtica regular G3, existe un autmata finito AF tal que el lenguaje reconocido por el autmata finito es igual al lenguaje reconocido por la gramtica. L(AF)=L(G3) TEOREMA 2. Para todo autmata finito AF existe una gramtica regular G3, tal que el lenguaje generado por la gramtica es igual al lenguaje reconocido por el autmata finito. L(G3) =L(AF) COROLARIO. Segn el teorema 1 se tiene que {L(G3)}{L(AF)} y por el teorema 2 {L(AF)}{L(G3}, luego {Lregulares}={L(AF)}={L(G3}
La forma habitual de representar los autmatas finitos es mediante un grafo o diagrama de estados, donde los nodos son los estados y las ramas estn marcadas con los smbolos del alfabeto de entrada. Las ramas se construyen segn la funcin de transicin, as debe de cumplir f(q1,a)q2.
a
17
q1
q2
18
SOLUCIN
Determinar el lenguaje que reconoce, representar el diagrama de Moore, e indicar la expresin regular que representa al lenguaje.
q1 q2 q3 q4
q2 q2 q4 q4
q4 q3 q3 q4
19
Se construye el diagrama de Moore, colocando en primer lugar todos los estados dentro de crculos, marcando con doble crculo el estado final. El estado inicial se indica con una flecha que lo seala la palabra INICIO encima. Para construir las ramas, nos situamos en el primer estado de la tabla de transiciones y se observa que f(q1,a)=q2, entonces se traza una flecha entre q1 y q2 apuntando a q2, y se coloca encima de la flecha el smbolo del vocabulario de entrada a. De igual forma se recorre la tabla de transiciones para cada estado y entrada completndose el diagrama de Moore.
20
22/05/2012
SOLUCIN
INICIO
SOLUCIN
El lenguaje generado se obtiene partiendo del estado inicial y recorriendo todos los caminos posibles para alcanzar el estado final. As se obtiene que este autmata reconoce el lenguaje: L(A1)={ab,aab,,abbb,,aabb,} L(A1)={anbm/n 1, m 1}
q1
q2
q3
q4
a,b
21
EJEMPLO 2
SOLUCIN
Sea el autmata finito A2=(E,Q,f,q1,F) donde E={0,1}, Q={q1,q2,q3,q4} y f se define por la tabla siguiente, y F={q2}. Construir el diagrama de Moore y determinar el lenguaje que reconoce, denotndolo con su expresin regular.
f q1 q2 q3 q4 0 q4 q3 q4 q4 1 q2 q4 q2 q4
23
INICIO
24
22/05/2012
EJERCICIOS: PARA LOS SGTS. AF CONSTRUIR EL DIAGRAMA DE MOORE Y DETERMINAR EL LENGUAJE QUE RECONOCE, DENOTNDOLO CON SU EXPRESIN REGULAR.
1.
2.
26
Determinar el lenguaje que reconoce y dar su expresin regular. SOLUCIN El diagrama de Moore se construye al igual que en los ejemplos anteriores de autmatas finitos, con la salvedad que para una entrada a un estado puede salir ms de una flecha e un determinado estado. El lenguaje reconocido es el siguiente: a(b*ba*b)a* o tambin a(b*a*)ba* .
a
INICIO
q2 b
b q4 b
q1 q2 q3 q4
{q2,q3} q3 q4
{q2,q4} q4
27
q1 a q3 a
a
28
Diagrama de AFND
22/05/2012
AFND A AFD El teorema dice as: Para todo autmata finito no determinista AFND=(E,Q,f,q1,F) se puede construir un autmata finito determinista AFD=(E,Q,f,q1,F) tal que el lenguaje reconocido por el autmata finito no determinista AFND, es decir L(AFD)=L(AFND). DEMOSTRACIN Se determina en primer lugar Q que es el conjunto de las partes del conjunto de estados Q. Q=P(Q)={conjunto de las partes de Q} El cardinal de Q o nmero de estados del conjunto Q es: cardinal(Q)=2cardinal(Q).
29
30
Q={,[q1],[q2],[q3],[q4],[q1q2],[q1q3], ,[q1q2q3q4]}
EJEMPLO. SEA
a [q2q3] [q3] [q4] [q2q3] [q2q3] [q2q3q4] [q3] [q4] [q3q4] [q2q3] [q2q3q4] [q2q3q4] [q3q4] [q2q3q4]
b [q2q4] [q4] [q2q4] [q4] [q2q4] [q2q4] [q4] [q2q4] [q2q4] [q4] [q2q4] [q2q4]
32
Sea el autmata finito no determinista AFND=(E,Q,f,q1,F) donde E={a,b}, Q={q1,q2,q3,q4}, F={q4} y la funcin f viene dada por la siguiente tabla: f a b
q1 q2 q3 q4 {q2,q3} q3 q4 {q2,q4} q4
Solucin: Siguiendo la construccin del teorema, el AFD tendr en un principio 24 estados, es decir Q conjunto de las partes de Q tiene en un principio 16 estados. Tambin se define el estado inicial y el conjunto de estados finales F.
31
22/05/2012
Ahora bien, en un AF los estados que no son accesibles desde el inicial pueden eliminarse , as se eliminan los marcados en la tabla con flechas: [q2], [q1q2], [q1q3], [q1q4], [q1q2q3],[q1q2q4], [q1q3q4] y [q1q2q3q4] por no aparecer dentro de la tabla. [q2q3q4] por no aparecer en la tabla como transicin de un estado eliminado anteriormente. [q3q4] por aparecer en la tabla como transicin de un estado eliminado anteriormente, y tambin en su propio estado, no es accesible por no aparecer en otro estado. Evidentemente [q1] nunca puede eliminarse como estado, por ser el estado inicial. Entonces f puede resumirse segn la tabla:
El estado [ ] no puede eliminarse en este caso, pues es accesible desde [q1] y [q4]. De los 16 estados posibles slo han quedado 6, con los que se construye el diagrama de Moore de la figura:
33
34
Se puede comprobar que el lenguaje reconocido por el AFD es el mismo que el reconocido por el AFND. As el lenguaje reconocido por el AFD es: abb*abb*aa*aaa*ba* = abb*(aa*)aaa*ba* = abb*a*aaa*ba* = ab*ba*aaa*ba* = a(b*aa*)ba* = a(b*a*)ba*
35
Sea una gramtica de tipo 3 o regular G=(N,T,P,S) y se desea obtener un autmata finito AF=(E,Q,f,q1,F) que reconozca el lenguaje generado por la gramtica. El autmata obtenido, en general ser no determinista. SOLUCIN. Se determinan los distintos elementos del autmata de la siguiente forma: E=T Q=N {qf} A cada smbolo no terminal de la gramtica se le asocia un estado del autmata. Adems se introduce un nuevo estado, denominado qf que ser el nico estado final del autmata. q1=S F={qf}
36
22/05/2012
ALGORITMO
DE TRANSFORMACIN DE UNA
GRAMTICA DE TIPO
3 EN UN AUTMATA
La funcin de transicin f se determina a partir de la forma de las reglas de produccin P, de la manera siguiente: a) Para las reglas de la forma AaB se obtiene f(A,a)=B siendo A y B los estados correspondientes a los no terminales A y B.
a Diagrama de Moore de f(A,a)=B
A
b)
Ejemplo: Sea la gramtica de tipo 3 siguiente: G=(N={A,S}, T={a,b}, S, P) Donde P son las reglas: SaS S aA A bA A b Obtener un AFND y otro AFD que reconozcan el mismo lenguaje que esta gramtica genera. SOLUCIN. Se define el AFND a partir de la gramtica como AFND=(E,Q,f,q1,F) donde E={A,S,X}, q1=S, F=[X], y f viene dada por la siguiente tabla:
f S A
37
a {S,A} -
b {A,X} 38
Se eliminan de la tabla los estados inaccesibles desde el estado inicial [S], y se representa el diagrama de Moore:
El lenguaje que reconoce: a*ab*b=aa*bb*=a*b* El AFD se define como AFD=(E,Q,f,q1,F) donde fviene dado por la tabla:
39
40
10
22/05/2012
41
42
43
44
11