Capitulo3.1

10
Cap¶ ³tulo 3 Teor¶ ³a de aut¶ omatas y lenguajes regulares. Los lenguajes regulares son de¯nidos mediante expresiones regulares y son aceptadosporuntipoespecialdem¶ aquinadeestados¯nitosllamadaaut¶ oma- ta. Un aut¶ omata puede verse c¶ omo una caja negra que reciben una entrada y produce una salida. El autom¶ ata se dice que es ¯nito ya que realiza un umero ¯nito de instrucciones y determina la salida, en ese momento el aut¶ omata termina su ejecuci¶ on. Existen dos tipos de a¶ utomatas ¯nitos: deterministas y no deterministas. La diferencia r¶ adica en que el determinista, dada la entrada, en cada paso olo tiene una opci¶ on para continuar, mientras que el no determinista puede tener varias opciones. Para que la diferencia sea clara veamos los siguiente ejemplos: 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 ha perdido o tira un nuevo volado con las mismas reglas. En este cap¶ ³tulo estudiaremos primero los autom¶ atas ¯nitos deterministas, despu¶ es los no deterministas y ¯nalmente veremos la relaci¶ on entre los au- tom¶ atas ¯nitos y las expresiones regulares. Teor¶ ³a de la Computaci¶ on ITESM-CEM Dept. C.C. 23 Maricela Quintana Jes¶ usS¶ anchez

Transcript of Capitulo3.1

Page 1: Capitulo3.1

Cap¶³tulo 3

Teor¶³a de aut¶omatas ylenguajes regulares.

Los lenguajes regulares son de¯nidos mediante expresiones regulares y sonaceptados por un tipo especial de m¶aquina de estados ¯nitos llamada aut¶oma-ta.

Un aut¶omata puede verse c¶omo una caja negra que reciben una entrada yproduce una salida. El autom¶ata se dice que es ¯nito ya que realiza unn¶umero ¯nito de instrucciones y determina la salida, en ese momento elaut¶omata termina su ejecuci¶on.

Existen dos tipos de a¶utomatas ¯nitos: deterministas y no deterministas.La diferencia r¶adica en que el determinista, dada la entrada, en cada pasos¶olo tiene una opci¶on para continuar, mientras que el no determinista puedetener 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: sicae sol, entonces ella gana y si cae aguila ella pierde.

Ejemplo 2 No Determinista: Ahora Mar¶³a le propone a Beto que si cae solella 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¶atas ¯nitos deterministas,despu¶es los no deterministas y ¯nalmente veremos la relaci¶on entre los au-tom¶atas ¯nitos y las expresiones regulares.

Teor¶³a de la Computaci¶onITESM-CEM Dept. C.C.

23Maricela Quintana

Jes¶us S¶anchez

Page 2: Capitulo3.1

3.1. AUT¶OMATAS FINITOS DETERMINISTAS.

3.1 Aut¶omatas ¯nitos deterministas.

Un aut¶omata ¯nito determinista AFD, es una m¶aquina abstracta que dadauna entrada produce una salida. Esta m¶aquina tiene un n¶umero ¯nito deestados, (m¶aquina de estados ¯nitos) de forma que al ejecutarse la m¶aquinaest¶a en el estado inicial y cuando termina debe estar en un estado ¯nal o enun estado inv¶alido o de error.

La m¶aquina va del estado inicial al ¯nal mediante una serie de estados in-termedios; el cambio de estado est¶a determinado por el estado en el que seencuentra la m¶aquina y el s¶³mbolo a procesar de la entrada.

Figura~3.1: Un aut¶omata ¯nito determinista.

Un AFD es utilizado para determinar si una cadena dada como entrada per-tenece al lenguaje que el autom¶ata reconoce. Es claro que el funcionamientodel aut¶omata obedece a las reglas de cambio de estado; estas reglas son es-peci¯cadas mediante una funci¶on de transici¶on ¶o diagrama de transiciones,que podemos decir de¯ne a la m¶aquina de estados.

3.1.1 Introducir el concepto de diagrama de transicio-nes o m¶aquina de estados.

Un aut¶omata ¯nito es el modelo matem¶atico de un sistema que cuenta conun n¶umero in¯nito de con¯guraciones internas o estados.

Un diagrama de transici¶on o una funci¶on de transici¶on especi¯ca lo que lam¶aquina debe hacer si su situaci¶on cumple con ciertas condiciones. La si-tuaci¶on de un AFD, que reconoce un lenguaje, est¶a formado por el estado

Teor¶³a de la Computaci¶onITESM-CEM Dept. C.C.

24Maricela Quintana

Jes¶us S¶anchez

Page 3: Capitulo3.1

CAP¶³TULO 3. TEOR¶³A DE AUT¶OMATAS Y LENGUAJESREGULARES.

en que el autom¶ata est¶a y el s¶³mbolo que se est¶a analizando de la entrada.As¶³ la funci¶on de transici¶on del AFD de la ¯gura 3.1 es:

E a b c d0 1 ; 3 ;1 ; 2 3 12 ; 2 3 ;3 ; ; ; ;

La lectura de las reglas del diagrama de transici¶on es como sigue:

² Si estas en el estado cero y el s¶³mbolo a procesar es a,entonces ve alestado uno.

² Si estas en el estado uno y el s¶³mbolo a procesar es c, entonces ve alestado tres.

Otra forma de representar el comportamiento del AFD es mediante un dia-grama de transici¶on, ¶este es un grafo donde los nodos representan estados, ylas °echas transiciones entre estados ocasionadas por la lectura del caracteretiquetado en el arco.

Al observar el diagrama de transici¶on podr¶³amos preguntarnos >cu¶al es el es-tado inicial? o >cu¶ales son los estados ¯nales? En el rengl¶on correspondienteal estado dos, bajo el s¶³mbolo a, >qu¶e signi¯ca ;? Para dar respuesta a estaspreguntas, no basta con tener la funci¶on de transici¶on, necesitamos los dem¶ascomponentes del AFD.

3.1.2 Especi¯car cu¶ales son los elementos que confor-man a una m¶aquina de estados.

Un aut¶omata ¯nito determinista (AFD) M es una tupla M = (S;§; ±; S0; F )donde

² S es el conjunto ¯nito de estados.

² § es un alfabeto.Teor¶³a de la Computaci¶onITESM-CEM Dept. C.C.

25Maricela Quintana

Jes¶us S¶anchez

Page 4: Capitulo3.1

3.1. AUT¶OMATAS FINITOS DETERMINISTAS.

² ± es una funci¶on de transici¶on:

± : 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¶on es me-diante 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¶un efecto en el resto delproceso. En cualquier paso de la ejecuci¶on, el resultado depende ¶unicamentedel estado actual y la cadena a procesar. A esta combinaci¶on \estado-cadena"se le llama descripci¶on instant¶anea.

Una descripci¶on instant¶anea de un aut¶omata es un par (s; x) donde s repre-senta el estado donde se encuentra el aut¶omata en un momento dado, y x esuna cadena conteniendo los caracteres de entrada a¶un no le¶³dos. Si x = ay y±(Si; a) = Sj tenemos que:

(Si; ay) `M (Sj; y) (3.3)

El s¶³mbolo `Msigni¯ca en un paso del autom¶ata. De manera similar¤`M y

+

`M signi¯can en cero o m¶as pasos y en uno o m¶as pasos respectivamente.

Un AFD reconoce a la cadena w como parte del lenguje si: (S0; w)¤`M (Si; ¸)

y (Si 2 F )

Ejemplo 3 Las cadenas sobreP= fa; bg que tienen a la subcadena bb o no

tienen a la subcadena aa son aceptadas por el DFA M de la ¯gura 3.2.M = fS = fS0,S1,S2,S3,S4,S5g,

P= fa; bg, ±, S0, F = fS0,S1,S4,S5gg

a) funci¶on de transici¶on

Teor¶³a de la Computaci¶onITESM-CEM Dept. C.C.

26Maricela Quintana

Jes¶us S¶anchez

Page 5: Capitulo3.1

CAP¶³TULO 3. TEOR¶³A DE AUT¶OMATAS Y LENGUAJESREGULARES.

Figura~3.2: Un aut¶omata que acepta strings conteniendo bb o no conteniendoaa.

E a b0 1 41 2 42 2 33 2 54 1 55 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¶aquina de estados (aut¶omata)es ¶util para generar lenguajes.

Un aut¶omata puede ser usado para representar un lenguaje, si se considerala entrada como una cadena de caracteres

P¤. La cadena x es aceptada por

Teor¶³a de la Computaci¶onITESM-CEM Dept. C.C.

27Maricela Quintana

Jes¶us S¶anchez

Page 6: Capitulo3.1

3.1. AUT¶OMATAS FINITOS DETERMINISTAS.

un AFD M si

(S0; w)¤`M (Si; ¸) y Si 2 F (3.4)

Ejemplo 4 Queremos generar L sobre P= f1; 2g de todas las palabras que

contienen s¶olo un uno (al inicio) y por lo menos un dos al ¯nal. Es decir que12, 1222, 12222 son palabras que pertenecen al lenguaje. De manera similar,el aut¶omata de la ¯gura 3.3 reconoce a L = abb¤.

Figura~3.3: Un aut¶omata que reconoce abb¤

3.1.4 De¯nir los t¶erminos: lenguaje generado por unaut¶omata y equivalencia entre aut¶omatas.

El 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 Fg (3.5)

Ejemplo 5 El lenguaje generado por el AFD de la ¯gura 3.4 es L(M) = ab+

Dos aut¶omatas M1 y M2 son equivalentes si aceptan el mismo lenguaje, estoes, L(M1) = L(M2).

Ejemplo 6 Los autom¶atas de las ¯guras 3.3 y 3.4 reconocen los lenguajesL1 = abb¤ y L2 = ab+, dado que abb¤ = ab+ los aut¶omatas reconocen elmismo lenguaje y por lo tanto son equivalentes.

Teor¶³a de la Computaci¶onITESM-CEM Dept. C.C.

28Maricela Quintana

Jes¶us S¶anchez

Page 7: Capitulo3.1

CAP¶³TULO 3. TEOR¶³A DE AUT¶OMATAS Y LENGUAJESREGULARES.

Figura~3.4: Aut¶omata que reconoce ab+

3.1.5 Establecer las caracter¶³sticas particulares de unaut¶omata determinista.

Un aut¶omata determinista produce como salida dos posibles respuestas: ca-dena aceptada o rechazada. Un AFD por de¯nici¶on debe procesar toda laentrada.

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¶omatas mostrados es llamado determi-nismo incompleto. En ¶estos cada con¯guraci¶on tiene a lo m¶as una acci¶onespeci¯cada. Las transiciones de la m¶aquina est¶an de¯nidas por una funci¶onparcial ± : S£P ! 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¶on incompleta de un DFA es transformada f¶acilmente a unDFA equivalente a~nadiendo un estado de error. En este estado se entra cadavez que la m¶aquina llega a una con¯guraci¶on para la cual no se ha especi¯cadoalguna acci¶on. En este punto, la m¶aquina lee el resto de la cadena y termina.

Ejemplo 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) = S3El estado S3 ser¶a el estado de error. As¶³ el procesamiento de la entrada

ababb es:(S0; ababb) `M (S1; babb) `M (S2; abb) `M (S3; abb) `M (S3; bb) `M

(S3; b) `M (S3; ¸)

Teor¶³a de la Computaci¶onITESM-CEM Dept. C.C.

29Maricela Quintana

Jes¶us S¶anchez

Page 8: Capitulo3.1

3.2. AUT¶OMATAS NO-DETERMINISTAS.

3.2 Aut¶omatas no-deterministas.

Los aut¶omatas que se analizaron en la secci¶on anterior responden de maneradeterminista a una entrada. ¶Esto signi¯ca que siempre responden de manera¶unica a una entrada. Los aut¶omatas no-deterministas pueden responder devarias maneras a una entrada. Inclusive pueden cambiar de estado sin leerning¶un caracter de entrada. A ¶esto se le llama transici¶on vac¶³a (o transici¶on¸) .

3.2.1 Especi¯car las caracter¶³sticas de aut¶omata no-determin¶³stico

Un aut¶omata ¯nito no determinista (AFN)M es una tuplaM = (S;§; ±; S0; F )donde

² S es el conjunto ¯nito de estados.

² § es un alfabeto.

² ± es una funci¶on de transici¶on:

± : 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¶omatas deterministas, la regla de transi-ci¶on de los AFN indica que un caracter (o ninguno) puede llevarnos de unestado a varios otros. ¶Esto implica que hay varios caminos de ejecuci¶on que elaut¶omata debe seguir. Si en alguno de los caminos de ejecuci¶on el aut¶omataacepta una cadena de entrada, la cadena es aceptada. Es decir:

L(M) = fx 2 §¤j^

± (S0; x) \ F 6= ;g (3.7)

Teor¶³a de la Computaci¶onITESM-CEM Dept. C.C.

30Maricela Quintana

Jes¶us S¶anchez

Page 9: Capitulo3.1

CAP¶³TULO 3. TEOR¶³A DE AUT¶OMATAS Y LENGUAJESREGULARES.

3.2.2 Introducir el concepto de transiciones m¶ultiplesy transiciones nulas.

Un AFN permite varias transiciones posibles a partir de un mismo s¶³mbolo.Adem¶as, puede haber transiciones nulas (o instant¶aneas) no ocasionadas pors¶³mbolos.

Ejemplo 9 Suponga que tenemos

M = (Q;X; ±; q0; fq2; q4g) (3.8)

donde

± 0 1q0 fq0; q3g fq0; q1gq1 ; fq2gq2 fq2g fq2gq3 fq4g ;q4 fq4g fq4g

Encontremos^

± (q0; 01001) viendo las descripciones instant¶aneas de la eje-cuci¶on:

(q0; 01001) ` (fq0; q3g; 1001) ` (fq0; q1g [ ;; 001) ` (fq0; q3g [ ;; 01)` (fq0; q3g [ fq4g; 1) ` (fq0; q1g [ ; [ fq4g; ¸)

Por lo que^

± (q0; 01001) = fq0; q1; q4g: En esta corrida hubo varios cami-nos de ejecuci¶on representados por la uni¶on de diferentes estados actuales.Note que un ; signi¯ca un camino que no puede continuar. La cadena esaceptada por el aut¶omata pues

fq0; q1; q4g \ fq2; q4g = fq4g 6= ;

Una transici¶on instant¶anea puede ser usada, aprovechando los m¶ultiplescaminos de ejecuci¶on, para unir funcionalidades de aut¶omatas.

Ejemplo 10 En la ¯gura siguiente podemos ver el uso de las transicionesvac¶³as para obtener, en el primer caso, un aut¶omata que reconoce L(M1) [L(M2), y en el segundo caso L(M1)L(M2):

Teor¶³a de la Computaci¶onITESM-CEM Dept. C.C.

31Maricela Quintana

Jes¶us S¶anchez

Page 10: Capitulo3.1

3.2. AUT¶OMATAS NO-DETERMINISTAS.

λ

λ

λ

λ

λL(M1)

L(M2)

L(M1) L(M2)

Figura~3.5: Uso de transiciones vac¶³as.

3.2.3 Describir las facilidades que proporcionan estetipo de aut¶omatas para el dise~no de ciertos ti-pos de lenguajes, as¶³ como las di¯cultades quepresentan para su automatizaci¶on.

Los AFN tienen un poder de representaci¶on mayor que los AFD, pues conpocos estados es posible representar un funcionamiento complejo. Sin em-bargo el poder de expresi¶on es el mismo, pues cualquier AFN tiene un AFDequivalente.Puede resultar dif¶³cil construir un programa que simule un AFN pues se

necesita guardar un espacio de estados enorme. Es por ello que normalmenteson convertidos a su AFD equivalente.

3.2.4 Explicar c¶omo puede convertirse un aut¶omatano-determin¶³stico a uno determin¶³stico.

Primero hay que ver c¶omo quitar las transiciones nulas para transformar unAFN-2 a su equivalente AFN. Primero hay que calcular

b± : S £ (§[

f¸g)¤ ! S (3.9)

utilizando la notaci¶on de cerradura-¸(q), que es el conjunto de v¶ertices p talesque hay un camino de ¸ entre q y p.

Teor¶³a de la Computaci¶onITESM-CEM Dept. C.C.

32Maricela Quintana

Jes¶us S¶anchez