Está en la página 1de 4

Cuadernillo de Ejercicios sobre Autmatas

Pgina 1 de 4

CUADERNILLO DE EJERCICIOS SOBRE AUTMATAS


Nota Aclaratoria Lo ms importante de los ejercicios que se proponen a continuacin no es la solucin en s misma, sino el proceso mental que se debe seguir para llegar a dicha solucin. Solamente busque ayuda, si ha intentado infructuosamente durante un tiempo razonablemente largo y no consigue ver algn camino viable para encontrar la solucin. Tenga presente que si no intenta hallar por s solo la solucin, no lograr descubrir los conceptos e ideas que cada ejercicio pretende ilustrar. CMO DISEAR UN AUTMATA? El diseo es un proceso creativo y como tal no tiene una frmula o una receta. Sin embargo puede ser til el que usted se coloque en el lugar de la mquina que est intentando disear y mire cmo hara para llevar a cabo la tarea que le fue encomendada. Usted ve los smbolos de la cadena de entrada de uno en uno. Despus de cada smbolo tiene que decidir si la cadena vista hasta el momento est en el lenguaje. La razn es que usted, como la mquina, no saben cuando es el fin de la cadena, y por eso siempre debe haber una respuesta disponible. Primero, para hacer estas decisiones, tiene que determinar lo que necesita recordar acerca de la cadena a medida que la va leyendo. Por qu no recordar todo lo que ha visto? Porque solo tiene un nmero finito de estados, lo cual significa una memoria finita. Solo necesita recordar cierta informacin crucial. Cul informacin es la crucial depende del lenguaje particular siendo considerado. Supongamos que = {0,1} y A = { w | w con un nmero impar de unos}. Pretendiendo que usted sea el autmata entonces usted recibe una cadena de ceros y unos, smbolo a smbolo. Necesita recordar toda la cadena vista, para determinar si el nmero de unos es impar? Claro que no! Simplemente recuerde si el nmero de unos vistos hasta ese momento es par o impar y mantenga registro de esa informacin a medida que lee smbolos nuevos. Si lee un 1 cambie o conmute la respuesta, pero si lee un 0, deje la respuesta tal cual. Cmo ayuda esto al diseo? Una vez haya determinado la informacin necesaria a recordar de la cadena a medida que es leda, usted representa esta informacin como una lista finita de posibilidades. En nuestro caso sern 1. Par hasta el momento, y 2. Impar hasta el momento. Luego asigne un estado a cada una de las posibilidades. Estos son los estados del autmata:

Q par

Q impar

Luego, asigne las transiciones viendo cmo pasar de una posibilidad a otra solamente leyendo un smbolo de la entrada. Si el estado qpar representa la posibilidad par y el estado qimpar la posibilidad

Ctedra de Compiladores Mario Zuluaga Tobn Universidad Catlica de Oriente

Cuadernillo de Ejercicios sobre Autmatas

Pgina 2 de 4

impar, debera establecer las transiciones para cambiar de estado cuando vea en la entrada un 1 y debe quedarse all, en el estado qpar, cuando vea en la entrada un 0, como se muestra a continuacin: 0 1 Q par Q impar Q impar

Haciendo un anlisis similar se establecen las transiciones para el estado qimpar, como se muestra a continuacin: 0 1 Q par 1 0 Q impar Q impar

Luego, establezca el estado inicial para que sea el estado correspondiente con haber visto cero smbolos de la entrada hasta ese instante (la cadena vaca ). En este caso el estado inicial corresponde a qpar porque cero es un nmero par. Finalmente, establezca los estados de aceptacin que correspondan a aquellas posibilidades donde usted quiere aceptar la cadena de entrada. En nuestro caso es qimpar porque queremos aceptar cuando hayamos visto un nmero impar de unos. 0 1 Q par 1 0 Q impar Q impar

EJERCICIOS FUNDAMENTALES Estos ejercicios exigen el tener claro algn concepto o manera de hacer las cosas que posteriormente servir para enfrentarse a los ejercicios complementarios. No intente realizar los ejercicios ms complejos sin primero tener claro el mecanismo de solucin para cada ejercicio fundamental (exceptuando los indicados como difciles). Construya los AFD que acepten los siguientes lenguajes con el alfabeto {0,1}: F1. El conjunto de todas las cadenas terminadas en 00. F2. El conjunto de todas las cadenas con tres ceros consecutivos (no necesariamente al final). F3. El conjunto de las cadenas con 011 como subcadena. F4. El conjunto de las cadenas que comienzan con 0 y tienen longitud impar, o comienzan con 1 y tienen longitud par. F5. El conjunto de las cadenas en donde cada posicin impar de la cadena es un 1.

Ctedra de Compiladores Mario Zuluaga Tobn Universidad Catlica de Oriente

Cuadernillo de Ejercicios sobre Autmatas

Pgina 3 de 4

F6. El conjunto de las cadenas que no contengan la subcadena 110. F7. (Difcil!) El conjunto de todas las cadenas en las que cada bloque de cinco smbolos consecutivos contiene al menos dos ceros. F8. (Difcil) El conjunto de las cadenas en las que el nmero de ceros sea divisible por cinco y el nmero de unos sea divisible por tres. F9. Convertir en un AFD cada uno de los AFN de los ejercicios F10, F11 y F12. Disear AFN para reconocer los siguientes conjuntos de cadenas: F10. abc, abd y aacd. Asumir que el alfabeto es {a,b,c,d} F11. 0101, 101 y 011. F12. ab, bc y ca. Asumir que el alfabeto es {a,b,c} Disear AFN- para reconocer los siguientes lenguajes. Intente utilizar transiciones para simplificar el diseo. F13. El conjunto de cadenas con cero o ms letras a seguidas de cero o ms letras b, seguidas de cero o ms letras c. F14. (Difcil!) El conjunto de cadenas formadas por 01 repetido una o ms veces, o por 010 repetido una o ms veces. F15. (Difcil!) El conjunto de cadenas de ceros y unos que contienen un 1 al menos en una de las diez ltimas posiciones. EJERCICIOS COMPLEMENTARIOS Los siguientes ejercicios pretenden darle prctica adicional en todos los conceptos aprendidos en los ejercicios fundamentales, por lo cual no debera intentarlos hacer antes de haber resuelto los primeros. Tenga presente que muchos de los ejercicios complementarios requieren de la mezcla de varios de los conceptos fundamentales para poderlos resolver exitosamente. Construya los AFD que acepten los siguientes lenguajes con el alfabeto {a,b}: C1. { w | w tienen al menos tres aes y al menos dos bes}. C2. { w | w tienen exactamente dos aes y al menos dos bes}. C3. { w | w tienen un nmero par de aes y una o dos bes}. C4. { w | w tienen un nmero par de aes y cada a es seguida por al menos una b}. C5. { w | w comienza con una a y tiene como mximo una b}. C6. { w | w tienen un nmero impar de aes y termina con ab}.

Ctedra de Compiladores Mario Zuluaga Tobn Universidad Catlica de Oriente

Cuadernillo de Ejercicios sobre Autmatas

Pgina 4 de 4

C7. { w | w tienen longitud par y un nmero impar de aes} C8. { w | w no contenga la subcadena ab} C9. { w | w no contenga ni la subcadena ab ni la subcadena ba} C10. { w | w contiene un nmero igual de ocurrencias de las subcadenas ab y ba}. Por ejemplo, bab es vlida porque contiene una sola ab y una sola ba, pero baba no es vlida porque contiene dos ba y una sola ab. Elaborado por: Mario Zuluaga Tobn Ctedra de Compiladores Sitio Web del Curso: www.geocities.com/marioztobon

Ctedra de Compiladores Mario Zuluaga Tobn Universidad Catlica de Oriente

También podría gustarte