• No se han encontrado resultados

CONSTRUCCIÓN DE AUTÓMATAS

4.- Construir un autómata con pila que reconozca cada uno de los siguientes lenguajes:

(a) L = { anb2n/ n > 0 } (b) L = { anbmcn/ n, m > 0 }

Ejercicios de Autómatas con Pila 2 (c) L = { x / x ∈ {0,1}+ & nº 0´s = nº 1´s } (d) L = { aibjci+j / i, j > 0 }

(e) L = { a2ib3i / i >= 0 }

(f) L = { anbmc2man+2, m > 0, n >= 0 }

(g) L = { xcy / x,y ∈ {a, b}+, nº de subcadenas “ab” en x = nº de subcadenas “ba” en y } (h) L = { 0n1n / n > 0 } ∪ { 0n12n / n > 0 } (i) L = {anbmcrasbn/ s = m + r, m,n > 0, r ≥ 0} (j) L = {a2nbm0ib2man, i = 0 ó 1, m, n > 0} (l) L = {x1n2mx-1 / n, m = 0 ó 1 y x ∈ {a, b}+} (m) L = {anbmcp / n,m >= 0, p > n + m}

5.- Construir un autómata con pila que reconozca por vaciado de pila el lenguaje que contiene las palabras formadas por los símbolos “0”, “1” y “2” que tienen tantas apariciones de las secuencia “01” como del símbolo “2”.

6.- Construir un autómata con pila que reconozca por vaciado de pila las palabras formadas por los símbolos “a” y “b” que tengan doble número de símbolos “a” que de símbolos “b” (incluyendo λ). Es decir, el autómata deberá reconocer por

ejemplo las palabras aabbaa, abbaaa, bababaaaa, bbbaaaaaa, y no debe reconocer palabras como abab, abbabab, a, b, aaa, bbb.

7.- Construir un autómata con pila que reconozca, por vaciado de pila, el lenguaje formado por las cadenas que contienen símbolos de abrir y cerrar paréntesis, es decir “(“ y “)”, que cumple las siguientes condiciones:

- todo paréntesis que se abre debe ser cerrado posteriormente

- todo paréntesis que se cierra debe haber sido abierto anteriormente - se permiten los paréntesis anidados.

Ténganse en cuenta los siguientes ejemplos de cadenas reconocidas y no reconocidas

por el autómata:

Cadenas reconocidas Cadenas no reconocidas

()()((()())()) ()())

((()))() )()(

8.- Dado el siguiente lenguaje: L = { anbcmdmen / n, m > 0 }

(a)Construir un autómata con pila que reconozca dicho lenguaje por vaciado de pila.

(b)Comprobar mediante el uso de descripciones instantáneas que la cadena “aabccddee” es aceptada por dicho autómata.

9.- Construir un autómata con pila que reconozca por vaciado de pila el lenguaje siguiente:

L = { 0n1n / n > 0 } ∪ { 0n12n / n > 0 } 10.- Dado el siguiente lenguaje:

L= {anbmdm / n, m > 0} ∪{anbmcmdn / n, m > 0}

(a) Encontrar un autómata con pila que reconozca L por vaciado de pila. (b) Comprobar mediante el uso de descripciones instantáneas que la cadena “aacd” es aceptada por dicho autómata.

Ejercicios Resueltos:

1. ¿Cuál es el lenguaje que acepta el autómata de pila cuyo diagrama de transiciones es el siguiente?

Solución:

Acepta la cadena vacía.

Según la rama superior, toda x que se reciba, se registrará en la pila; y el estado siguiente será de aceptación.

Según la rama inferior, sólo se aceptará la entrada y si se puede sacar una x de la pila.

Conclusión:

Acepta cualquier cadena que (empezando a contar por la izquierda) contenga un número de ‘y’ menor o igual a que de ‘x’. Pueden estar intercaladas

Ejemplos: xyx, xxy, xxyxyx, etc.

2.- Modifique el diagrama de transiciones del ejercicio anterior para que el autómata de pila acepte el mismo conjunto de cadenas, pero con su pila vacía.

Solución:

3.- Muestre que toda cadena derivada por la izquierda de una gramática independiente del contexto puede derivarse también por la derecha. Solución:

El lado por donde se empieza a construir (por la derecha o por la izquierda) sólo tiene relevancia en las etapas intermedias de la construcción del árbol. Pero con la construcción terminada, no es relevante el lado por donde se empezó. La cadena es la misma en ambos casos.

INTRODUCCIÓN

En las Unidades precendentes se han estudiado lo que se puede considerar las máquinas abstractas que permiten solucionar ciertos tipos de algoritmos, los algoritmos en los que no puede recordarse más que una cantidad fija de información y otros en los que la información desarrollada durante la ejecución del algoritmo puede recuperararse solo en concordancia con la regla “lifo” ultimos en entrar primeros en salir, en esta unidad se describe una maquina abstracta, llamada Máquina de turing , que es aceptada de manera amplia como modelo general de computación, aunque las operaciones básicas de esta máquina son comparables en su sencillez a las de las máquinas estudiadas en las unidades anteriores, las nuevas maquinas pueden realizar una ámplia varidad de operaciones de computo. Ademas de aceptar lenguajes les es posible computar funciones y de conformidad con la tesis de Church-Turing, ejecutar casi cualquier procedemiento algoritmico concebible.

OBJETIVO GENERAL

Reconocer la importancia y el poder computacional de las maquinas de turing en el contexto de la solución de problemas computacionales de reconocimiento de lenguajes.

OBJETIVOS ESPECIFICOS

LECCION 31. - DEFINICIÓN16

sí como en secciones anteriores vimos cómo al añadir al autómata finito básico una pila de almacenamiento auxiliar, aumentando con ello su poder de cálculo, cabría ahora preguntarnos que es lo que habría que añadir a un autómata de pila para que pudiera analizar lenguajes como {anbncn}. Partiendo del AP básico de la figura siguiente.

Figura (a)Automata de Pila (b) Maquina de Turing Algunas ideas podrían ser:

1. Añadir otra pila;

2. Poner varias cabezas lectoras de la entrada;

3. Permitir la escritura en la cinta, además de la lectura de caracteres.

Vamos a enfocar nuestra atención a una propuesta en particular que ha tenido un gran impacto en el desarrollo teórico de la computación: la Máquina de Turing. A. Turing propuso en los años 30 un modelo de máquina abstracta, como una extensión de los autómatas finitos, que resultó ser de una gran simplicidad y poderío a la vez. La máquina de Turing es particularmente importante porque es la más poderosa de todas las máquinas abstractas conocidas (A. Turing.- On computable numbers with an application to the Entscheidungs-problem, Proc. London Math. Soc., v.2, n.42, pp230-265.)

16

VAQUERO SÁNCHEZ, Antonio Ramon, Calculabilidad y maquinas de turing (2004) En: http://www.fdi.ucm.es/profesor/vaquero/TALF-5-Turing.doc

BRENA PIÑERO, Ramon F. Autómatas y lenguajes un enfoque de diseño (2003) ITESM, En: http://lizt.mty.itesm.mx/~rbrena/AyL.html.