Cap¶   ³tulo 3Teor¶ de aut¶matas y    ³a       olenguajes regulares.Los lenguajes regulares son de¯nidos mediante expresio...
¶3.1. AUTOMATAS FINITOS DETERMINISTAS.3.1     Aut¶matas ¯nitos deterministas.           oUn aut¶mata ¯nito determinista AF...
CAP¶                               ¶     ³TULO 3. TEOR¶ DE AUTOMATAS Y LENGUAJES                        ³AREGULARES.en que...
¶3.1. AUTOMATAS FINITOS DETERMINISTAS.    ² ± es una funci¶n de transici¶n:                    o             o            ...
CAP¶                    ¶   ³TULO 3. TEOR¶ DE AUTOMATAS Y LENGUAJES                ³AREGULARES.Figura~3.2: Un aut¶mata que...
¶3.1. AUTOMATAS FINITOS DETERMINISTAS.un AFD M si                     ¤                        (S0 ; w) `M (Si ; ¸) y Si 2...
CAP¶                    ¶   ³TULO 3. TEOR¶ DE AUTOMATAS Y LENGUAJES                ³AREGULARES.                    Figura~...
¶3.2. AUTOMATAS NO-DETERMINISTAS.3.2     Aut¶matas no-deterministas.           oLos aut¶matas que se analizaron en la secc...
CAP¶                    ¶   ³TULO 3. TEOR¶ DE AUTOMATAS Y LENGUAJES                ³AREGULARES.3.2.2     Introducir el con...
¶3.2. AUTOMATAS NO-DETERMINISTAS.                   λ              λ                         L(M1)                        ...
Upcoming SlideShare
Loading in …5
×

Capitulo3.1

296 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
296
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Capitulo3.1

  1. 1. Cap¶ ³tulo 3Teor¶ de aut¶matas y ³a olenguajes regulares.Los lenguajes regulares son de¯nidos mediante expresiones regulares y sonaceptados por un tipo especial de m¶quina de estados ¯nitos llamada aut¶ma- a ota.Un aut¶mata puede verse c¶mo una caja negra que reciben una entrada y o oproduce una salida. El autom¶ta se dice que es ¯nito ya que realiza un an¶ mero ¯nito de instrucciones y determina la salida, en ese momento el uaut¶mata termina su ejecuci¶n. o oExisten dos tipos de a¶ tomatas ¯nitos: deterministas y no deterministas. uLa diferencia r¶dica en que el determinista, dada la entrada, en cada paso as¶lo tiene una opci¶n para continuar, mientras que el no determinista puede o otener varias opciones. Para que la diferencia sea clara veamos los siguienteejemplos:Ejemplo 1 Determinista: Mar¶a le dice a Beto que va a tirar un volado: si ³cae sol, entonces ella gana y si cae aguila ella pierde.Ejemplo 2 No Determinista: Ahora Mar¶a le propone a Beto que si cae sol ³ella gana y si cae aguila entonces hay dos opciones, que ella acepte que haperdido o tira un nuevo volado con las mismas reglas.En este cap¶³tulo estudiaremos primero los autom¶tas ¯nitos deterministas, adespu¶s los no deterministas y ¯nalmente veremos la relaci¶n entre los au- e otom¶tas ¯nitos y las expresiones regulares. a Teor¶ de la Computaci¶n ³a o Maricela Quintana 23 ITESM-CEM Dept. C.C. Jes¶s S¶nchez u a
  2. 2. ¶3.1. AUTOMATAS FINITOS DETERMINISTAS.3.1 Aut¶matas ¯nitos deterministas. oUn aut¶mata ¯nito determinista AFD, es una m¶quina abstracta que dada o auna entrada produce una salida. Esta m¶quina tiene un n¶mero ¯nito de a uestados, (m¶quina de estados ¯nitos) de forma que al ejecutarse la m¶quina a aest¶ en el estado inicial y cuando termina debe estar en un estado ¯nal o en aun estado inv¶lido o de error. aLa m¶quina va del estado inicial al ¯nal mediante una serie de estados in- atermedios; el cambio de estado est¶ determinado por el estado en el que se aencuentra la m¶quina y el s¶ a ³mbolo a procesar de la entrada. Figura~3.1: Un aut¶mata ¯nito determinista. oUn AFD es utilizado para determinar si una cadena dada como entrada per-tenece al lenguaje que el autom¶ta reconoce. Es claro que el funcionamiento adel aut¶mata obedece a las reglas de cambio de estado; estas reglas son es- opeci¯cadas mediante una funci¶n de transici¶n ¶ diagrama de transiciones, o o oque podemos decir de¯ne a la m¶quina de estados. a3.1.1 Introducir el concepto de diagrama de transicio- nes o m¶quina de estados. aUn aut¶mata ¯nito es el modelo matem¶tico de un sistema que cuenta con o aun n¶mero in¯nito de con¯guraciones internas o estados. uUn diagrama de transici¶n o una funci¶n de transici¶n especi¯ca lo que la o o om¶quina debe hacer si su situaci¶n cumple con ciertas condiciones. La si- a otuaci¶n de un AFD, que reconoce un lenguaje, est¶ formado por el estado o a Teor¶ de la Computaci¶n ³a o Maricela Quintana 24 ITESM-CEM Dept. C.C. Jes¶s S¶nchez u a
  3. 3. CAP¶ ¶ ³TULO 3. TEOR¶ DE AUTOMATAS Y LENGUAJES ³AREGULARES.en que el autom¶ta est¶ y el s¶ a a ³mbolo que se est¶ analizando de la entrada. aAs¶ la funci¶n de transici¶n del AFD de la ¯gura 3.1 es: ³ o o E a b c d 0 1 ; 3 ; 1 ; 2 3 1 2 ; 2 3 ; 3 ; ; ; ;La lectura de las reglas del diagrama de transici¶n es como sigue: o ² Si estas en el estado cero y el s¶ ³mbolo a procesar es a,entonces ve al estado uno. ² Si estas en el estado uno y el s¶ ³mbolo a procesar es c, entonces ve al estado tres.Otra forma de representar el comportamiento del AFD es mediante un dia-grama de transici¶n, ¶ste es un grafo donde los nodos representan estados, y o elas °echas transiciones entre estados ocasionadas por la lectura del caracteretiquetado en el arco.Al observar el diagrama de transici¶n podr¶ o ³amos preguntarnos >cu¶l es el es- atado inicial? o >cu¶les son los estados ¯nales? En el rengl¶n correspondiente a o ³mbolo a, >qu¶ signi¯ca ;? Para dar respuesta a estasal estado dos, bajo el s¶ epreguntas, no basta con tener la funci¶n de transici¶n, necesitamos los dem¶s o o acomponentes del AFD.3.1.2 Especi¯car cu¶les son los elementos que confor- a man a una m¶quina de estados. aUn aut¶mata ¯nito determinista (AFD) M es una tupla M = (S; §; ±; S0 ; F ) odonde ² S es el conjunto ¯nito de estados. ² § es un alfabeto. Teor¶ de la Computaci¶n ³a o Maricela Quintana 25 ITESM-CEM Dept. C.C. Jes¶s S¶nchez u a
  4. 4. ¶3.1. AUTOMATAS FINITOS DETERMINISTAS. ² ± es una funci¶n de transici¶n: o o ± : S£§!S (3.1) b ± : S £ §¤ ! S (3.2) ² S0 es el estado inicial. ² F µ S es el conjunto de estados ¯nales.La forma de denotar el estado inicial en un diagrama de transici¶n es me- odiante una punta de °echa. Los estados ¯nales se especi¯can colocando uncirculo interno en el nodo (ver ¯gura 3.1).Un AFD lee la entrada de izquierda a derecha; un s¶ ³mbolo a la vez. Una vezque el s¶³mbolo ha sido procesado ya no tiene ning¶n efecto en el resto del uproceso. En cualquier paso de la ejecuci¶n, el resultado depende unicamente o ¶del estado actual y la cadena a procesar. A esta combinaci¶n estado-cadena" ose le llama descripci¶n instant¶nea. o aUna descripci¶n instant¶nea de un aut¶mata es un par (s; x) donde s repre- o a osenta el estado donde se encuentra el aut¶mata en un momento dado, y x es ouna cadena conteniendo los caracteres de entrada a¶ n no le¶ u ³dos. Si x = ay y±(Si ; a) = Sj tenemos que: (Si ; ay) `M (Sj ; y) (3.3) ¤ ³mbolo `M signi¯ca en un paso del autom¶ta. De manera similar `M yEl s¶ a+`M signi¯can en cero o m¶s pasos y en uno o m¶s pasos respectivamente. a a ¤Un AFD reconoce a la cadena w como parte del lenguje si: (S0 ; w) `M (Si ; ¸)y (Si 2 F ) PEjemplo 3 Las cadenas sobre = fa; bg que tienen a la subcadena bb o notienen a la subcadena aa son aceptadas por el DFA M de la ¯gura 3.2. P M = fS = fS0 ,S1 ,S2 ,S3 ,S4 ,S5 g, = fa; bg, ±, S0 , F = fS0 ,S1 ,S4 ,S5 gg a) funci¶n de transici¶n o o Teor¶ de la Computaci¶n ³a o Maricela Quintana 26 ITESM-CEM Dept. C.C. Jes¶s S¶nchez u a
  5. 5. CAP¶ ¶ ³TULO 3. TEOR¶ DE AUTOMATAS Y LENGUAJES ³AREGULARES.Figura~3.2: Un aut¶mata que acepta strings conteniendo bb o no conteniendo oaa. E a b 0 1 4 1 2 4 2 2 3 3 2 5 4 1 5 5 5 5 b) Descripciones de las cadenas abbab, babab, aab,aabba ² (S0 ; abbab) `M (S1 ; bbab) `M (S4 ; bab) `M (S5 ; ab) `M (S5 ; b) `M (S5 ; ¸) ² (S0 ; babab) `M (S4 ; abab) `M (S1 ; bab) `M (S4 ; ab) `M (S1 ; b) `M (S4 ; ¸) ² (S0 ; aab) `M (S1 ; ab) `M (S2 ; b) `M (S3 ; ¸) ² (S0 ; aabba) `M (S1 ; abba) `M (S2 ; bba) `M (S3 ; ba) `M (S5 ; a) `M (S5 ; ¸)3.1.3 Explicar que una m¶quina de estados (aut¶mata) a o es util para generar lenguajes. ¶Un aut¶mata puede ser usado para representar un lenguaje, si se considera o Pla entrada como una cadena de caracteres ¤ . La cadena x es aceptada por Teor¶ de la Computaci¶n ³a o Maricela Quintana 27 ITESM-CEM Dept. C.C. Jes¶s S¶nchez u a
  6. 6. ¶3.1. AUTOMATAS FINITOS DETERMINISTAS.un AFD M si ¤ (S0 ; w) `M (Si ; ¸) y Si 2 F (3.4) PEjemplo 4 Queremos generar L sobre = f1; 2g de todas las palabras quecontienen s¶lo un uno (al inicio) y por lo menos un dos al ¯nal. Es decir que o12, 1222, 12222 son palabras que pertenecen al lenguaje. De manera similar,el aut¶mata de la ¯gura 3.3 reconoce a L = abb¤ . o Figura~3.3: Un aut¶mata que reconoce abb¤ o3.1.4 De¯nir los t¶rminos: lenguaje generado por un e aut¶mata y equivalencia entre aut¶matas. o oEl lenguaje de un AFD M, denotado L(M) es el conjunto de cadenas sobreP¤ aceptadas por M. L siempre es regular. ¤ L(M ) = fwj(S0 ; w) `M (Si ; ¸) y Si 2 F g (3.5)Ejemplo 5 El lenguaje generado por el AFD de la ¯gura 3.4 es L(M ) = ab+Dos aut¶matas M1 y M2 son equivalentes si aceptan el mismo lenguaje, esto oes, L(M1 ) = L(M2 ).Ejemplo 6 Los autom¶tas de las ¯guras 3.3 y 3.4 reconocen los lenguajes aL1 = abb y L2 = ab , dado que abb¤ = ab+ los aut¶matas reconocen el ¤ + omismo lenguaje y por lo tanto son equivalentes. Teor¶ de la Computaci¶n ³a o Maricela Quintana 28 ITESM-CEM Dept. C.C. Jes¶s S¶nchez u a
  7. 7. CAP¶ ¶ ³TULO 3. TEOR¶ DE AUTOMATAS Y LENGUAJES ³AREGULARES. Figura~3.4: Aut¶mata que reconoce ab+ o3.1.5 Establecer las caracter¶ ³sticas particulares de un aut¶mata determinista. oUn aut¶mata determinista produce como salida dos posibles respuestas: ca- odena aceptada o rechazada. Un AFD por de¯nici¶n debe procesar toda la oentrada.Ejemplo 7 Al procesar la entrada w=ababb en el AFD de la ¯gura 3.3 ocurralo siguiente (S0 ; ababb) `M (S1 ; babb) `M (S2 ; abb) `M (;; abb) En ese momento sabemos perfectamente que la salida sera: rechazada.El tipo de determinismo de los aut¶matas mostrados es llamado determi- onismo incompleto. En ¶stos cada con¯guraci¶n tiene a lo m¶s una acci¶n e o a oespeci¯cada. Las transiciones de la m¶quina est¶n de¯nidas por una funci¶n a a o Pparcial ± : S £ ! S. En el momento en que es posible determinar que unacadena es rechazada, el proceso termina. Si el procesamiento termina antesde haber analizado toda la cadena de entrada, la cadena es rechazada.Una especi¯caci¶n incompleta de un DFA es transformada f¶cilmente a un o aDFA equivalente a~ adiendo un estado de error. En este estado se entra cada nvez que la m¶quina llega a una con¯guraci¶n para la cual no se ha especi¯cado a oalguna acci¶n. En este punto, la m¶quina lee el resto de la cadena y termina. o aEjemplo 8 Para convertir el DFA de la ¯gura 3.3 especi¯cado incompleta-mente, debemos agregar el estado S3 y las transiciones siguientes: ±(S0 ; b) = S3 , ±(S1 ; a) = S3 , ±(S2 ; a) = S3 , ±(S3 ; a) = S3 , ±(S3 ; b) = S3 El estado S3 ser¶ el estado de error. As¶ el procesamiento de la entrada a ³ababb es: (S0 ; ababb) `M (S1 ; babb) `M (S2 ; abb) `M (S3 ; abb) `M (S3 ; bb) `M(S3 ; b) `M (S3 ; ¸) Teor¶ de la Computaci¶n ³a o Maricela Quintana 29 ITESM-CEM Dept. C.C. Jes¶s S¶nchez u a
  8. 8. ¶3.2. AUTOMATAS NO-DETERMINISTAS.3.2 Aut¶matas no-deterministas. oLos aut¶matas que se analizaron en la secci¶n anterior responden de manera o o ¶determinista a una entrada. Esto signi¯ca que siempre responden de maneraunica a una entrada. Los aut¶matas no-deterministas pueden responder de¶ ovarias maneras a una entrada. Inclusive pueden cambiar de estado sin leerning¶n caracter de entrada. A ¶sto se le llama transici¶n vac¶ (o transici¶n u e o ³a o¸) .3.2.1 Especi¯car las caracter¶ ³sticas de aut¶mata no- o determin¶ ³sticoUn aut¶mata ¯nito no determinista (AFN) M es una tupla M = (S; §; ±; S0 ; F ) odonde ² S es el conjunto ¯nito de estados. ² § es un alfabeto. ² ± es una funci¶n de transici¶n: o o ± : S £ (§ [ f¸g) ! S ¤ (3.6) ² S0 es el estado inicial. ² F µ S es el conjunto de estados ¯nales. Note que a diferencia de los aut¶matas deterministas, la regla de transi- oci¶n de los AFN indica que un caracter (o ninguno) puede llevarnos de un o ¶estado a varios otros. Esto implica que hay varios caminos de ejecuci¶n que el oaut¶mata debe seguir. Si en alguno de los caminos de ejecuci¶n el aut¶mata o o oacepta una cadena de entrada, la cadena es aceptada. Es decir: ^ L(M ) = fx 2 §¤ j ± (S0 ; x) F 6= ;g (3.7) Teor¶ de la Computaci¶n ³a o Maricela Quintana 30 ITESM-CEM Dept. C.C. Jes¶s S¶nchez u a
  9. 9. CAP¶ ¶ ³TULO 3. TEOR¶ DE AUTOMATAS Y LENGUAJES ³AREGULARES.3.2.2 Introducir el concepto de transiciones m¶ltiples u y transiciones nulas.Un AFN permite varias transiciones posibles a partir de un mismo s¶³mbolo.Adem¶s, puede haber transiciones nulas (o instant¶neas) no ocasionadas por a as¶ ³mbolos.Ejemplo 9 Suponga que tenemos X M = (Q; ; ±; q0 ; fq2 ; q4 g) (3.8)donde ± 0 1 q0 fq0 ; q3 g fq0 ; q1 g q1 ; fq2 g q2 fq2 g fq2 g q3 fq4 g ; q4 fq4 g fq4 g ^ Encontremos ± (q0 ; 01001) viendo las descripciones instant¶neas de la eje- acuci¶n: o (q0 ; 01001) ` (fq0 ; q3 g; 1001) ` (fq0 ; q1 g [ ;; 001) ` (fq0 ; q3 g [ ;; 01) ` (fq0 ; q3 g [ fq4 g; 1) ` (fq0 ; q1 g [ ; [ fq4 g; ¸) ^ Por lo que ± (q0 ; 01001) = fq0 ; q1 ; q4 g: En esta corrida hubo varios cami-nos de ejecuci¶n representados por la uni¶n de diferentes estados actuales. o oNote que un ; signi¯ca un camino que no puede continuar. La cadena esaceptada por el aut¶mata pues o fq0 ; q1 ; q4 g fq2 ; q4 g = fq4 g 6= ; Una transici¶n instant¶nea puede ser usada, aprovechando los m¶ ltiples o a ucaminos de ejecuci¶n, para unir funcionalidades de aut¶matas. o oEjemplo 10 En la ¯gura siguiente podemos ver el uso de las transicionesvac¶ para obtener, en el primer caso, un aut¶mata que reconoce L(M1 ) [ ³as oL(M2 ), y en el segundo caso L(M1 )L(M2 ): Teor¶ de la Computaci¶n ³a o Maricela Quintana 31 ITESM-CEM Dept. C.C. Jes¶s S¶nchez u a
  10. 10. ¶3.2. AUTOMATAS NO-DETERMINISTAS. λ λ L(M1) λ L(M1) L(M2) λ L(M2) λ Figura~3.5: Uso de transiciones vac¶ ³as.3.2.3 Describir las facilidades que proporcionan este tipo de aut¶matas para el dise~o de ciertos ti- o n pos de lenguajes, as¶ como las di¯cultades que ³ presentan para su automatizaci¶n. oLos AFN tienen un poder de representaci¶n mayor que los AFD, pues con opocos estados es posible representar un funcionamiento complejo. Sin em-bargo el poder de expresi¶n es el mismo, pues cualquier AFN tiene un AFD oequivalente. Puede resultar dif¶ construir un programa que simule un AFN pues se ³cilnecesita guardar un espacio de estados enorme. Es por ello que normalmenteson convertidos a su AFD equivalente.3.2.4 Explicar c¶mo puede convertirse un aut¶mata o o no-determin¶³stico a uno determin¶ ³stico.Primero hay que ver c¶mo quitar las transiciones nulas para transformar un oAFN-2 a su equivalente AFN. Primero hay que calcular [ b ± : S £ (§ f¸g)¤ ! S (3.9)utilizando la notaci¶n de cerradura-¸(q), que es el conjunto de v¶rtices p tales o eque hay un camino de ¸ entre q y p. Teor¶ de la Computaci¶n ³a o Maricela Quintana 32 ITESM-CEM Dept. C.C. Jes¶s S¶nchez u a

×