7 Máquina de Turing. 7.1 Introducción. 7.2 El modelo de la Máquina de Turing

Tamaño: px
Comenzar la demostración a partir de la página:

Download "7 Máquina de Turing. 7.1 Introducción. 7.2 El modelo de la Máquina de Turing"

Transcripción

1 1 Curso Básico de Computación 7 Máquina de Turing Es este capítulo introducimos la Máquina de Turing que es, un modelo matemático simple de una computadora. 7.1 Introducción Hasta ahora no se ha podido demostrar que el modelo de la maquina de Turing es equivalente a nuestra noción intuitiva de una computadora, pero existen argumentos complejos que sugieren esta equivalencia, a esto se le conoce como la hipótesis de Church. La maquina de Turing tiene un poder computacional más grande que cualquier computadora digital actual y no parece factible que pueda ser superada algún día. Al igual que los AFD y los AP, la máquina de Turing es un dispositivo teórico que se utiliza principalmente en estudios de computabilidad y de análisis de complejidad computacional. 7.2 El modelo de la Máquina de Turing Un modelo formal de cómputo efectivo debe tener ciertas propiedades. Primero, cada procedimiento debe poder ser descrito de manera finita. Segundo, el procedimiento debe consistir de pasos separados, y cada uno de ellos debe poderse llevar a cabo de manera mecánica. Este modelo fue introducido por Alan Turing en Aquí presentaremos una variante. El modelo básico que se ilustra en la siguiente figura, a 1 a 2... a i... a n B B... Control Finito tiene un control finito, una cinta que está dividida en celdas, y una cabeza de la cinta que explora una celda en la cinta a la vez. La cinta tiene una primer celda ubicada en la posición más a la izquierda de la cinta pero es infinita del lado derecho. Cada celda en la cinta puede contener exactamente un símbolo tomado de un alfabeto finito. Inicialmente, las n celdas más a la izquierda, para algún número finito n 0, contienen la entrada de la máquina, la cual es una cadena de símbolos que se escogen de un alfabeto llamado símbolos de entrada. Todas las celdas restantes (que forman un conjunto infinito) contienen el símbolo blanco, el cual es un símbolo especial que no forma parte del alfabeto de entrada.

2 Feliú Sagols Troncoso Matemáticas-Cinvestav 2 Un movimiento en la Máquina de Turing depende del símbolo explorado por la cabeza de la cinta y del estado de control finito. De manera sintética se hace lo siguiente: 1) dependiendo del símbolo explorado por la cabeza lectora/escritora y del estado en el control finito se cambia de estado, 2) se imprime un símbolo en la celda explorada, reemplazando el símbolo que ésta contenga y 3) se mueve la cabeza de lectura una celda hacia la izquierda o derecha. Note que la diferencia entre la máquina de Turing y un autómata finito de doble vía es que la máquina de Turing tiene la habilidad de cambiar los símbolos en la cinta de entrada. Formalmente, una máquina de Turing (MT) se denota por: donde Q es un conjunto finito de estados, M = (Q, Σ, Γ, δ, q 0, B, F ), Γ es un conjunto finito de símbolos, llamado alfabeto de la cinta, B es un símbolo en Γ, y el símbolo blanco, Σ es un subconjunto de Γ que no incluye a B, es el alfabeto de símbolos de entrada, δ es la función que determina los movimientos de la máquina, es una transformación de Q Γ a Q Γ {L, R} (δ puede estar indefinida para algunos argumentos), q 0 Q es el estado inicial, F Q es el conjunto de estados finales. Una descripción instantánea (DI) de una máquina de Turing M es una expresión α 1 qα 2. Aquí q Q, es el estado actual de M; α 1 α 2 es una cadena en Γ y es el contenido de la cinta hasta el símbolo no blanco más a la derecha o el símbolo de la izquierda de la cabeza, cualquiera que este más a la derecha. (Observe que el blanco B puede ocurrir en α 1 α 2 ). Asumimos que Q y Γ son disjuntos. Finalmente, asumimos que la cabeza de la cinta explora el símbolo más a la izquierda de α 2, o si α 2 = ɛ, la cabeza explora un blanco. Se define un movimiento en M como: sea X 1 X 2 X i 1 qx i X n una DI. Se supone que δ(q, X i ) = (p, Y, L), si i 1 = n, entonces se considera a X i como

3 3 Curso Básico de Computación B. Si i = 1 entonces no es posible realizar el movimiento a la izquierda así que no hay DI siguiente porque la cabeza de la cinta no tiene permitido desprenderse del fin izquierdo de la cinta. Si i > 1, entonces escribimos 1) X 1 X 2 X i 1 qx i X n M X 1 X 2 X i 2 px i 1 Y X i+1 X n Sin embargo, si cualquier sufijo de X i 1 Y X i+1 X n es completamente blanco entonces el sufijo se borra en (1). Alternativamente si δ(q, X i ) = (p, Y, R) entonces escribimos: 2) X 1 X 2 X i 1 qx i X i+1 X n M X 1 X 2 X i 1 Y px i+1 X n Note que en el caso de i 1 = n, la cadena X i X n es vacía, y el lado derecho de (2) es más largo que el lado izquierdo. Si dos DI están relacionadas por M, decimos que la segunda resulta de la primera por un movimiento. Si una DI resulta de otra por un número finito de movimientos, incluyendo cero movimientos, ellas están relacionadas por el símbolo * M. El lenguaje aceptado por M, denotado por L(M), es el conjunto de las palabras en Σ que causan que M entre a un estado final cuando se colocan al principio de la cinta de M, con M en el estado q 0, y la cabeza de la cinta de M en la celda más a la izquierda. Formalmente, el lenguaje aceptado por M = (Q, Σ, Γ, δ, q 0, B, F ) es {w w Σ, q 0 w * M α 1 pα 2 para algún p F, y α 1, α 2 Γ } Dada una MT que reconoce un lenguaje L, asumimos sin perder generalidad que la MT se para, es decir, no tiene más movimientos, cuando la entrada es aceptada. Sin embargo, para algunas palabras no aceptadas, es posible que la MT nunca pare. Ejemplo: El diseño de una MT que acepte el lenguaje L = {0 n 1 n n 1} es: inicialmente, la cinta de entrada de M contendrá 0 n 1 n seguido de un número infinito de blancos. Repetidamente, M reemplaza el 0 más a la izquierda por X, mueve hacia la derecha la cabeza de la cinta hasta encontrar el 1 que esté más a la izquierda, reemplazandolo por Y, luego se mueve a la izquierda para encontrar la X más a la derecha, entonces mueve la cabeza una celda hacia la derecha y si encuentra un 0 entonces repite el ciclo. Sin embargo, si cuando se busca un 1, M encuentra un blanco en su lugar, entonces M se para sin aceptar su entrada. Si, después de cambiar un 1 por una Y, M no encuentra más 0 s, entonces M examina que no haya más 1, si no los hay entonces acepta su entrada. Sea Q = {q 0, q 1, q 2, q 3, q 4 }, Σ = {0, 1}, Γ = {0, 1, X, Y, B}, y F = {q 4 }. Informalmente, cada estado representa una declaración o un grupo de declaraciones en un programa. Al estado q 0 se ingresa inicialmente y es el estado previo a cada reemplazo del 0 más a la izquierda por una X. El estado q 1 se usa para buscar a la derecha, saltando sobre los 0 s y las Y s, hasta encontrar el 1 más a la izquierda. Si M encuentra 1, lo cambia por Y, y entra al estado q 2.

4 Feliú Sagols Troncoso Matemáticas-Cinvestav 4 El estado q 2 busca a la izquierda una X y entra en el estado q 0 cuando lo encuentra, luego se mueve hacia la derecha hasta el 0 ubicado más a la izquierda. Conforme M busca hacia la derecha en el estado q 1, si B o X aparecen antes de encontrar un 1, entonces la entrada es rechazada; puede que haya demasiados 0 s o la entrada no esta en 0 1. El estado q 0 tiene otro papel. Si, después del estado q 2 se encuentra la X más a la derecha, existe una Y inmediatamente a su derecha, entonces los 0 s están agotados. Desde q 0, se explora Y, entra el estado q 3 para explorar sobre las Y s y examina que no haya 1 s restantes. Si las Y s están seguidas por B, se entra al estado q 4 y la aceptación ocurre; en otro caso, la cadena es rechazada. La función δ es: Estado 0 1 X q 0 (q 1, X, R) q 1 (q 1, 0, R) (q 2, Y, L) q 2 (q 2, 0, L) (q 0, X, R) q 3 q 4 Estado Y B q 0 (q 3, Y, R) q 1 (q 1, Y, R) q 2 (q 2, Y, L) q 3 (q 3, Y, R) (q 4, B, R) q 4 La siguiente tabla muestra el cálculo de M para la entrada q Xq X0q 1 11 Xq 2 0Y 1 q 2 X0Y 1 Xq 0 0Y 1 XXq 1 Y 1 XXY q 1 1 XXq 2 Y Y Xq 2 XY Y XXq 0 Y Y XXY q 3 Y XXY Y q 3 XXY Y Bq Lenguajes computables y funciones Un lenguaje que es aceptado por una máquina de Turing se dice recursivamente enumerable (r.e.). El término enumerable deriva del hecho de que precisamente estos lenguajes tienen cadenas que pueden ser enumeradas (listadas) por la máquina de Turing. La clase de los lenguajes r.e es muy amplia e incluye propiamente a los LLC. La clase de lenguajes r.e. incluye algunos lenguajes para los cuales no se puede determinar mecánicamente su pertenecia. Si L(M) es tal lenguaje, entonces cualquier máquina de Turing que reconozca a L(M) falla y se detiene con alguna entrada que no está en L(M). Si w L(M), M eventualmente se para con la entrada w. Sin embargo, mientras M se mantenga en ejecución, puede que en algún momento pare y acepte su entrada o pueda que se mantenga así por siempre. Es conveniente distinguir una subclase de los conjuntos r.e. llamada conjuntos recursivos, los cuales son los lenguajes aceptados por al menos una máquina de Turing que se para con todas las entradas.

5 5 Curso Básico de Computación La máquina de Turing como un medio para evaluar funciones enteras La máquina de Turing puede verse como un medio para evaluar funciones de los enteros a los enteros. El método tradicional consiste en representar a los enteros en base 1; así el entero i 0 se representa por la cadena 0 i. Si una función tiene k argumentos, i 1, i 2,..., i k, entonces estos enteros se colocan inicialmente en la cinta separados por 1 s: 0 i 1 10 i i k. Si la MT se para y la cinta contiene 0 m para algún m, entonces se dice que f(i 1, i 2,..., i k ) = m, donde f es la función de k argumentos calculados por esta máquina de Turing. Note que una máquina de Turing puede calcular una función de un argumento, una función diferente de dos argumentos, y así sucesivamente. También note que si la MT M calcula la función f con k argumentos, entonces f no necesariamente tiene un valor para todas las diferentes k-tuplas de enteros i 1, i 2,..., i k. Si f(i 1, i 2,..., i k ) está definida para todas las i 1, i 2,..., i k, entonces se dice que f es una función recursiva total. Una función f(i 1, i 2,..., i k ) calculada por la MT se llama función recursiva parcial. En este sentido, las funciones recursivas parciales son análogas a los lenguajes r.e., las funciones recursivas totales corresponden a los lenguajes recursivos. Todas las funciones aritméticas sobre enteros, como la multiplicación, n!, 2 2n son funciones recursivas totales. Ejemplo: La sustracción propia se define como m n para m n, y 0 para m < n. La MT M = ({q 0, q 1,..., q 6 }, {0, 1}, {0, 1, B}, δ, q 0, B, {q 6 }) se define como: se inicia con 0 m 10 n en la cinta, se para con 0 m n. M reemplaza repetidamente el primer 0 por blanco, entonces busca a la derecha un 1 seguido de un 0 y cambia el 0 por el 1. Luego, M se mueve hacia la izquierda hasta encontrar un blanco, se mueve hacia la derecha y entonces repite el ciclo. La repetición termina si i) Al buscar hacia la derecha un 0, M encuentra un blanco. Entonces, los n 0 s en 0 m 10 n han sido todos cambiados por 1 s, y n + 1 de los m 0 s fueron cambiados por B. M reemplaza los n s por un 0 y n B s, quedando m n 0 s de la cinta. ii) Comenzando el ciclo, M no encontró un 0 para cambiarlos por un blanco, porque los primeros m 0 s ya fueron cambiados. Entonces n m, así m n = 0. M reemplaza el resto de todos los 1 s y 0 s por B. La función δ se describe como: 1. δ(q 0, 0) = (q 1, B, R) Comienza el ciclo. Reemplaza el primer 0 por el B. 2. δ(q 1, 0) = (q 1, 0, R) δ(q 1, 1) = (q 2, 1, R) Busca en la derecha, búscando al primer 1.

6 Feliú Sagols Troncoso Matemáticas-Cinvestav 6 3. δ(q 2, 1) = (q 2, 1, R) δ(q 2, 0) = (q 3, 1, L) Busca en la derecha al primer 0 que aparezca después de un 1. Cambia ese 0 por δ(q 3, 0) = (q 3, 0, L) δ(q 3, 1) = (q 3, 1, L) δ(q 3, B) = (q 0, B, R) Se mueve hacia la izquierda hasta encontrar el primer blanco. Entra al estado q 0 para repetir el ciclo. 5. δ(q 2, B) = (q 4, B, L) δ(q 4, 1) = (q 4, B, L) δ(q 4, 0) = (q 4, 0, L) δ(q 4, B) = (q 6, 0, R) Si en el estado q 2 aparece un símbolo B antes de un 0, se tiene la situación (i) que se describió antes. Entra al estado q 4 y se mueve hacia la izquierda, cambiando todos los 1 s por B s hasta encontrar a B. Esta B se cambia de regreso a 0, se entra al estado q 6, y M se detiene. 6. δ(q 0, 1) = (q 5, B, R) δ(q 5, 0) = (q 5, B, R) δ(q 5, 1) = (q 5, B, R) δ(q 5, B) = (q 6, B, R) Si en el estado q 0 aparece un 1 en lugar de un 0, el primer bloque de 0 s ha sido consumido, como en la situación (ii) anterior. M entra al estado q 5 para borrar el resto de la cinta, entonces entra al estado q 6 y se para. Un cálculo simple de M con la entrada 0010 es: q Bq B0q 1 10 B01q 2 0 B0q 3 11 Bq q 3 B011 Bq BBq 1 11 BB1q 2 1 BB11q 2 BB1q 4 1 BBq 4 1 Bq 4 B0q 6 Con la entrada 0100, M se comporta como: q Bq B1q 2 00 Bq q 3 B110 Bq BBq 5 10 BBBq 5 0 BBBBq 5 BBBBBq Técnicas para la construcción de máquinas de Turing Con el objeto de describir construcciones complicadas de la máquina de Turing es importante contar con herramientas conceptuales de alto nivel.

7 7 Curso Básico de Computación Almacenamiento en el control finito El control finito puede ser usado para almacenar una cantidad finita de información. Así, cada estado se escribe como un par de elementos, uno que ejerce el control y el otro almacena un símbolo. Ejemplo: Considere una máquina de Turing M que mira el primer símbolo de entrada, lo registra en su control finito, y verifica que el símbolo no aparezca en otra parte de la entrada. Note que M acepta un conjunto regular, pero M nos sirve para propósitos de demostración: M = (Q, {0, 1}, {0, 1, B}, δ, [q 0, B], B, F ) donde Q es {q 0, q 1 } {0, 1, B}. Es decir, Q consiste de los pares [q 0, 0], [q 0, 1],[q 1, 0],[q 1, 1] y [q 1, B]. El conjunto F es {[q 1, B]}. La intención es que el primer componente de un estado de control esté en acción, mientras el segundo componente recuerde un símbolo. Se define δ como 1. a) δ([q 0, B], 0) = ([q 1, 0], 0, R), b) δ([q 0, B], 1) = ([q 1, 1], 1, R), Inicialmente, q 0 es el componente de control del estado, y M se mueve hacia la derecha. Los primeros componentes de los estado de M se convierten en q 1, y el primer símbolo de entrada es almacenado en la segunda componente. 2. a) δ([q 1, 0], 1) = ([q 1, 0], 1, R), b) δ([q 1, 1], 0) = ([q 1, 1], 0, R), Si M tiene un 0 almacenado y ve un 1 o viceversa, entonces M continua moviendose hacia la derecha. 3. a) δ([q 1, 0], B) = ([q 1, B], B, L), b) δ([q 1, 1], B) = ([q 1, B], B, L), M entra al estado final [q 1, B] si se alcanza un símbolo blanco sin haber encontrado el primero una segunda copia del símbolo más a la izquierda. Si M alcanza un blanco en el estado [q 1, 0] o [q 1, 1], es aceptado. Para el estado [q 1, 0] y el símbolo 0 o para el estado [q 1, 1] y el símbolo 1, δ no está definida. Así si M encuentra símbolos en la cinta almacenados, M se para sin aceptar. En general, podemos permitir que el control finito tenga k componentes y todas, excepto una, almacenen información. Múltiples pistas

8 Feliú Sagols Troncoso Matemáticas-Cinvestav 8 Podemos imaginar que la cinta de la máquina de Turing está dividida en k pistas, para algún k finito. Por ejemplo, para k = 3 estamos hablando de una división como la que se muestra en la siguiente figura c $ B B B B B B B B B... B B B B Control Finito Es decir, bajo este esquema los símbolos en la cinta son considerados como un k-tuplas con un componente por cada pista. Ejemplo: La cinta de la figura anterior pertenece a una máquina de Turing que toma una entrada binaria más grande que 2, la escribe en la primera pista, y determina si es un primo. La entrada aparece rodeada por ç y $ en la primera pista. Así, las entradas permitidas son [ c,b, B], [0, B, B], [1, B, B], y [$,B, B]. Estos símbolos pueden ser identificados con c, 0, 1 y $, respectivamente, cuando se examina como entrada. El símbolo blanco es identificado por [B, B, B]. Para probar si esta entrada es un primo, la MT primero escribe el número dos en binario sobre la segunda pista y copia la primer pista en la tercera. Entonces la segunda pista es substraída, tantas veces como sea posible, de la tercera pista, efectivamente se divide la tercera pista por la segunda y deja el resto. Si el resto es 0, el número en la primera pista no es un primo. Si el resto no es cero, se incrementa en uno el número de la segunda pista. Si la segunda es igual a la primera, el número en la primera pista es primo, porque no se puede dividir por cualquier otro número propiamente situado entre 1 y el mismo. Si el segundo es menor que el primero, toda la operación se repite para el nuevo número de la segunda pista. En la figura anterior, la MT prueba si 47 es primo. La MT divide por 5, ya que el 5 es substraído dos veces, aparece el 37 en la tercera pista. Poniendo marcas de verificación sobre los símbolos Poner marcas de verificación sobre los símbolos es un truco útil para visualizar como una MT reconoce lenguajes definidos por cadenas repetidas, tales como: {ww w Σ } {wcy w, y Σ, w y} o

9 9 Curso Básico de Computación {ww R w Σ }. Es también útil cuando la longitud de las subcadenas deben ser comparadas, como en los lenguajes {a i b i i 1} o {a i b j c k i j o j k} Se introduce una pista extra en la cinta que tenga blancos o (la marca de verificación). La marca aparece cuando la MT considera el símbolo que aparece bajo la marca es una de sus comparaciones. Ejemplo: Considere una máquina de Turing M = (Q, Σ, Γ, δ, q 0, B, F ), la cual reconoce el lenguaje {wcw w (a + b) + }. Sea Q = {[q, d] q = q 1, q 2,..., q 9 ; d = a, b, o B} La segunda componente del estado se usa para almacenar un símbolo de la entrada, Σ = {[B, d] d = a, b, o c} El símbolo de entrada [B, d] se identifica con d. Recuerde que dos pistas son herramientas conceptuales, es decir, [B, d] es otro nombre de d: Γ = {[X, d] X = B o ; d = a, b, c, o B} q 0 = [q 1, B]; F = {[q 9, B]}; [B, B] es identificado con B, símbolo blanco. Para d = a o b y e = a o b se define δ como: 1) δ([q 1, B], [B, d]) = ([q 2, d], [, d], R) M busca el símbolo explorado en la cinta, almacena el símbolo en el control finito, y se mueve hacia la derecha. 2) δ([q 2, d], [B, e]) = ([q 2, d], [B, e], R) M continua moviendose hacia la derecha, mira hacia c. 3) δ([q 2, d], [B, c]) = ([q 3, d], [B, c], R) Al encontrar c, M entra a un estado con la primer componente q 3. 4) δ([q 3, d], [, e]) = ([q 3, d], [, e], R) M se mueve hacia la derecha sobre símbolos que tengan marcas de verificación. 5) δ([q 3, d], [B, d]) = ([q 4, B], [, d], L) M encuentra un símbolo sin marca de verificación. Si tal símbolo es igual al símbolo almacenado en el control finito. M le pone la marca de verificación y comienza a moverse hacia la izquierda. Si los símbolos son diferentes, M se para sin aceptar su entrada. M también se para si en el estado q 3, alcanza [B, B] antes de encontrar un símbolo sin marcas de verificación.

10 Feliú Sagols Troncoso Matemáticas-Cinvestav 10 6) δ([q 4, B], [, d]) = ([q 4, B], [, d], L) M se mueve hacia la izquierda sobre símbolos con marcas de verificación. 7) δ([q 4, B], [B, c]) = ([q 5, B], [B, c], L) M encuentra el símbolo c. 8) δ([q 5, B], [B, d]) = ([q 6, B], [B, d], L) Si el símbolo inmediato a la izquierda de c no tiene marca de verificación. M continúa hacia la izquierda para encontrar el símbolo con marca de verificación más a la derecha. 9) δ([q 6, B], [B, d]) = ([q 6, B], [B, d], L) M continúa a la izquierda. 10) δ([q 6, B], [, d]) = ([q 1, B], [, d], R) M encuentra un símbolo con marca de verificación y se mueve hacia la derecha para continuar con otro símbolo para la comparación. El primer componente del estado se convierte otra vez en q 1. 11) δ([q 5, B], [, d]) = ([q 7, B], [, d], R) M podría estar en el estado [q 5, B] inmediatamente después de cruzar c moviendose hacia la izquierda (ver regla 7). Si un símbolo con marca de verificación aparece inmediatamente a la izquierda de c, todos los símbolos a la izquierda de c tienen marcas de verificación. M debe probar si todos los símbolos a la derecha tienen marcas de verificación. Si es así, ellos deben haber sido comparados propiamente con los símbolos a la izquierda de c, así M aceptará su entrada. 12) δ([q 7, B], [B, c]) = ([q 8, B], [B, c], R) M se mueve hacia la derecha sobre c. 13) δ([q 8, B], [, d]) = ([q 8, B], [, d], R) M se mueve hacia la derecha sobre los símbolos con marcas de verificación. 14) δ([q 8, B], [B, B]) = ([q 9, B], [, B], L) Si M encuentra [B, B], el blanco, se para y la acepta. Si M encuentra un símbolo sin marca de verificación cuando su primer componente del estado es q 8, se para sin aceptarla. Corrimientos Una máquina de Turing puede hacer un espacio en su cinta para mover todos los símbolos no blancos a un número finito de celdas hacia la derecha. Para hacer esto, la cabeza de la cinta hace una excursión a la derecha, repetidamente almacena los símbolos leídos en el control finito y los reemplaza por símbolos leídos de celdas de la izquierda. La MT pueden entonces regresar a las celdas

11 11 Curso Básico de Computación vacantes e imprimir los símbolos escogidos. Si el espacio es suficiente, puede empujar bloques de símbolos a la izquierda de manera similar. Ejemplo: Construir una parte de la MT M = (Q, Σ, Γ, δ, q 0, B, F ), la cual puede ocasionalmente necesitar mover dos celdas de símbolos no blancos a la derecha. Suponemos que la cinta de M no contiene blancos entre no blancos, así que cuando se alcance un blanco se para el proceso de moverse. Supongamos que Q contiene estados de la forma [q, A 1, A 2 ] para q = q 1 o q 2, y A 1, A 2 Γ. Sea X un símbolo especial no usado por M excepto en el proceso de corrimiento. M comienza el proceso de corrimiento en el estado [q 1, B, B]. Las partes relevantes de la función δ son: 1) δ([q 1, B, B], A 1 ) = ([q 1, B, A 1 ], X, R) para A 1 Γ {B, X}. M almacena el primer símbolo leido en la tercera componente del estado. X se imprime sobre la celda explorada, y M se mueve hacia la derecha. 2) δ([q 1, B, A 1 ], A 2 ) = ([q 1, A 1, A 2 ], X, R) para A 1, A 2 Γ {B, X}. M mueve el símbolo de la tercera componente a la segunda componente, almacena el símbolo que comienza a leer en la tercera componente, imprime X y se mueve hacia la derecha. 3) δ([q 1, A 1, A 2 ], A 3 ) = ([q 1, A 2, A 3 ], A 1, R) para A 1, A 2, A 3 Γ {B, X}. Ahora M repetidamente lee el símbolo A 3, lo almacena en la tercera componente del estado, mueve el símbolo que previamente estaba en la tercera componente, A 2, a la segunda componente, deposita la segunda componente previa, A 1, en la celda explorada, y se mueve hacia la derecha. Así, un símbolo se deposita en dos celdas a la derecha de su posición original. 4) δ([q 1, A 1, A 2 ], B) = ([q 1, A 2, B], A 1, R) para A 1, A 2 Γ {B, X}. Cuando se ve un blanco en la cinta, los símbolos almacenados son depositados en la cinta. 5) δ([q 1, A 1, B], B) = ([q 2, B, B], A 1, L) Después de que todos los símbolos son depositados, M cambia la primer componente del estados a q 2 y se mueve hacia la izquierda para encontrar un X, el cual marca la celda vacante más a la derecha. 6) δ([q 2, B, B], A) = ([q 2, B, B], A, L) para A Γ {B, X}. M se mueve hacia la izquierda hasta encontrar a X. Cuando se encuentra X, M transfiere el control a un estado donde el autómata reanuda sus funciones. Subrutinas Como en la programación, un diseño modular o de arriba a abajo se facilita al emplear subrutinas para definir procesos elementales. Una máquina

12 Feliú Sagols Troncoso Matemáticas-Cinvestav 12 de Turing puede simular cualquier tipo de subrutinas encontradas en lenguajes de programación, incluyendo procesos recursivos y cualquier mecanismo conocido para transferir parámetros. Aquí sólo vamos a describir el uso de subrutinas sin parámetros y no recursivas, pero aún éstas son herramientas en extremo poderosas. La idea general es escribir parte de un programa de una MT como una subrutina; el diseño tiene un estado inicial designado y un estado de retorno también designado el cual temporalmente no tiene definidos movimientos y que se usa para efectuar el regreso a la rutina que lo ha invocado. Para diseñar una MT que invoque a la subrutina, se construye un conjunto nuevo de estados para la subrutina, y se especifica el movimiento al estado de retorno. La llamada se lleva a cabo ingresando al estado inicial de la subrutina, y el regreso se lleva a cabo mediante el movimiento al estado de retorno. Ejemplo: El diseño de una MT M que implemente la función multiplicación recursiva total es: M comienza con 0 m 10 n en la cinta y termina con 0 mn rodeados por blancos. La idea general es colocar un 1 después de 0 m 10 n y entonces copiar el bloque de n 0 s sobre la parte final de la derecha m veces, borrando en cada paso uno de los m 0 s. El resultado es 10 n 10 mn. Finalmente se borra el prefijo 10 n 1, y se deja 0 mn. El corazón del algoritmo es la subrutina COPIA, que comienza con la DI 0 m 1q 1 0 n 10 i y eventualmente genera una DI 0 m 1q 5 0 n 10 i+n. COPIA es definida en la siguiente tabla: B q 1 (q 2, 2, R) (q 4, 1, L) q 2 (q 2, 0, R) (q 2, 1, R) (q 3, 0, L) q 3 (q 3, 0, L) (q 3, 1, L) (q 1, 2, R) q 4 (q 5, 1, R) (q 4, 0, L) En el estado q 1, y con 0 bajo la cabeza de la cinta, M cambia a el 0 a 2 y entra al estado q 2. En el estado q 2, M mueve la cabeza de la cinta hacia la derecha, hasta alcanzar el siguiente símbolo blanco, cambia a este símbolo por 0, e inicia el siguiente movimiento hacia la izquierda en el estado q 3. En el estado q 3, M mueve la cabeza de la cinta hacia la izquierda hasta encontrar el 2. Al alcanzarlo, entra al estado q 1 y el proceso se repite hasta encontrar el 1, que indica que el proceso de copiar está completo. El estado q 4 se usa para convertir los 2 en 0 s, y la subrutina para en q 5. Para completar el programa de multiplicación, se añaden estados para convertir la DI inicial q 0 0 m 10 n en B0 m 1 1q 1 0 n 1. Es decir, necesitamos las reglas δ(q 0, 0) = (q 6, B, R), δ(q 6, 0) = (q 6, 0, R), δ(q 6, 1) = (q 1, 1, R). Se necesitan algunos estados adicionales para convertir la DI B i 0 m i 1q 5 0 n 10 ni en B i+1 0 m i 1 1q 1 0 n 10 ni, que prepara el entorno para volver a invocar a COPIA, y verifica si i = m, es decir, si todos los m 0 s fueron borrados. En caso que

13 13 Curso Básico de Computación i = m, se borra el prefijo 10 n 1 y el cálculo se detiene en el estado q 12. Los movimientos son: B q 5 (q 7, 0, L) q 7 (q 8, 1, L) q 8 (q 9, 0, L) (q 10, B, R) q 9 (q 9, 0, L) (q 0, B, R) q 10 (q 11, B, R) q 11 (q 11, B, R) (q 12, B, R)

Curso Básico de Computación

Curso Básico de Computación Curso Básico de Computación 7 Máquina de Turing Feliú Sagols Troncoso Matemáticas CINVESTAV-IPN 2010 Curso Básico de Computación (Matemáticas) 7 Máquina de Turing 2010 1 / 43

Más detalles

5 Autómatas de pila 5.1 Descripción informal. 5.2 Definiciones

5 Autómatas de pila 5.1 Descripción informal. 5.2 Definiciones 1 Curso Básico de Computación 5 Autómatas de pila 5.1 Descripción informal Un autómata de pila es esencialmente un autómata finito que controla una cinta de entrada provista de una cabeza de lectura y

Más detalles

Máquinas de Turing. 18 de junio de 2015

Máquinas de Turing. 18 de junio de 2015 Máquinas de Turing 18 de junio de 2015 1. Introducción Hasta ahora hemos visto clases de lenguajes relativamente simples. Lo que vamos a ver ahora es preguntarnos qué lenguajes pueden definirse por cualquier

Más detalles

Computabilidad y Lenguajes Formales: Teoría de la Computabilidad: Máquinas de Turing

Computabilidad y Lenguajes Formales: Teoría de la Computabilidad: Máquinas de Turing 300CIG007 Computabilidad y Lenguajes Formales: Teoría de la Computabilidad: Máquinas de Turing Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Máquina

Más detalles

Introducción. Máquinas de Turing. Turing restringidas. Turing y Computadoras INAOE (INAOE) 1 / 49

Introducción. Máquinas de Turing. Turing restringidas. Turing y Computadoras INAOE (INAOE) 1 / 49 y Computadoras INAOE (INAOE) 1 / 49 Contenido y Computadoras 1 2 3 4 y Computadoras (INAOE) 2 / 49 y Computadoras Hasta ahora hemos visto clases de lenguajes relativamente simples Lo que vamos a ver ahora

Más detalles

Ciencias de la Computación I

Ciencias de la Computación I Ciencias de la Computación I Autómatas Linealmente Acotados Máquinas de Turing Motivación - Es posible diseñar un AP que reconozca el lenguaje L 1? L 1 = { a n b n c n / n > 0 } Ejemplo una estrategia

Más detalles

TIPOS DE GRAMATICAS JERARQUIAS DE CHOMSKY

TIPOS DE GRAMATICAS JERARQUIAS DE CHOMSKY TIPOS DE GRAMATICAS JERARQUIAS DE CHOMSKY Para el estudio de este tema es necesario analizar dos tipos de gramáticas de la clasificación de Chomsky, las regulares y las independientes de contexto, las

Más detalles

Máquinas de Turing, recordatorio y problemas

Máquinas de Turing, recordatorio y problemas Máquinas de Turing, recordatorio y problemas Elvira Mayordomo, Universidad de Zaragoza 5 de diciembre de 2014 1. Recordatorio de la definición de máquina de Turing Una máquina de Turing, abreviadamente

Más detalles

Unidad 4. Autómatas de Pila

Unidad 4. Autómatas de Pila Unidad 4. Autómatas de Pila Una de las limitaciones de los AF es que no pueden reconocer el lenguaje {0 n 1 n } debido a que no se puede registrar para todo n con un número finito de estados. Otro lenguaje

Más detalles

Curso Básico de Computación

Curso Básico de Computación Curso Básico de Computación Autómatas finitos y expresiones regulares Feliú Sagols Troncoso Matemáticas CINVESTAV-IPN 2010 Curso Básico de Computación (Matemáticas) Autómatas

Más detalles

Unidad 4. Autómatas de Pila

Unidad 4. Autómatas de Pila Unidad 4. Autómatas de Pila Una de las limitaciones de los AF es que no pueden reconocer el lenguaje {0n1n} debido a que no se puede registrar para todo n con un número finito de estados. Otro lenguaje

Más detalles

MÁQUINAS DE TURING Y LENGUAJES ESTRUCTURADOS POR FRASES

MÁQUINAS DE TURING Y LENGUAJES ESTRUCTURADOS POR FRASES Máquinas de Turing y lenguajes estructurados por frases -1- MÁQUINAS DE TURING Y LENGUAJES ESTRUCTURADOS POR FRASES MÁQUINAS DE TURING - Son máquinas teóricas capaces de aceptar lenguajes generados por

Más detalles

Tema 6: Máquina de Turing

Tema 6: Máquina de Turing Tema 6: Máquina de Turing Departamento de Sistemas Informáticos y Computación http://www.dc.upv.es p.1/28 Tema 6: Máquina de Turing La Máquina de Turing. Máquinas de Turing como aceptores Otros modelos

Más detalles

MÁQUINAS DE TURING CIENCIAS DE LA COMPUTACION I 2009

MÁQUINAS DE TURING CIENCIAS DE LA COMPUTACION I 2009 MÁQUINAS DE TURING Las máquinas de Turing, así como los AF y los AP se utilizan para aceptar cadenas de un lenguaje definidas sobre un alfabeto A. El modelo básico de máquina de Turing, tiene un mecanismo

Más detalles

Examen. Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. Segundo Semestre, 2003.

Examen. Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. Segundo Semestre, 2003. Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación Examen IIC 2222 Teoría de Autómatas y Lenguajes Formales Segundo Semestre, 2003 Este examen tiene

Más detalles

Problemas de Decisión

Problemas de Decisión Problemas de Decisión La motivación de este capítulo puede estar dado por lo siguiente: Dado un conjunto Σ de fórmulas proposicionales en L(P ), existe un algoritmo general para determinar si Σ = ϕ Qué

Más detalles

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 42

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 42 Máquinas de Turing IIC3242 IIC3242 Máquinas de Turing 1 / 42 Complejidad Computacional Objetivo: Medir la complejidad computacional de un problema. Vale decir: Medir la cantidad de recursos computacionales

Más detalles

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 45

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 45 Máquinas de Turing IIC3242 IIC3242 Máquinas de Turing 1 / 45 Complejidad Computacional Objetivo: Medir la complejidad computacional de un problema. Vale decir: Medir la cantidad de recursos computacionales

Más detalles

Máquinas de Turing Definición y descripción

Máquinas de Turing Definición y descripción Capítulo 12 Máquinas de Turing 12.1. Definición y descripción Definición 1 Se llama máquina de Turing a toda séptupla M = (Γ,Σ,,Q,q 0,f,F), donde: Γ es el alfabeto de símbolos de la cinta. Σ Γ es el alfabeto

Más detalles

Autómatas de Pila. Descripciones instantáneas o IDs. El Lenguaje de PDA. Equivalencia entre PDAs y CFGs INAOE (INAOE) 1 / 50

Autómatas de Pila. Descripciones instantáneas o IDs. El Lenguaje de PDA. Equivalencia entre PDAs y CFGs INAOE (INAOE) 1 / 50 INAOE (INAOE) 1 / 50 Contenido 1 2 3 4 (INAOE) 2 / 50 Pushdown Automata Las gramáticas libres de contexto tienen un tipo de autómata que las define llamado pushdown automata. Un pushdown automata (PDA)

Más detalles

3 Propiedades de los conjuntos regulares 3.1 Lema de Bombeo para conjuntos regulares

3 Propiedades de los conjuntos regulares 3.1 Lema de Bombeo para conjuntos regulares Curso Básico de Computación 3 Propiedades de los conjuntos regulares 3. Lema de Bombeo para conjuntos regulares El lema de bombeo es una herramienta poderosa para probar que ciertos lenguajes son no regulares.

Más detalles

ALGORITMOS DIGITALES II. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006

ALGORITMOS DIGITALES II. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006 ALGORITMOS DIGITALES II Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006 OBJETIVOS Conocer los principios básicos de los algoritmos. Establecer paralelos entre los algoritmos, los programas y las

Más detalles

Maquina de Turing. 5. Fundamentos de algoritmos. Turing TURING TURING 10/08/2010. MI Elizabeth Fonseca Chávez

Maquina de Turing. 5. Fundamentos de algoritmos. Turing TURING TURING 10/08/2010. MI Elizabeth Fonseca Chávez Maquina de Turing 5. Fundamentos de algoritmos MI Elizabeth Fonseca Chávez matemático inglés Alan Turing Turing Definición de algoritmo: conjunto ordenado de operaciones que permite hallar la solución

Más detalles

Autómata de Pila (AP, PDA) Tema 18

Autómata de Pila (AP, PDA) Tema 18 Tema Autómata de Pila (Pushdown Automata Autómata de Pila (AP, PDA Un AP es una máquina que acepta el lenguage generado por una GLC Consiste en un NFA- aumentado con una pila (stack. Dr. Luis A. Pineda

Más detalles

Curso Básico de Computación

Curso Básico de Computación Curso Básico de Computación 8 Indecibilidad Feliú Sagols Troncoso Matemáticas CINVESTAV-IPN 2010 Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 1 / 58 8 Indecibilidad

Más detalles

Departamento de Tecnologías de la Información. Tema 4. Máquinas de Turing. Ciencias de la Computación e Inteligencia Artificial

Departamento de Tecnologías de la Información. Tema 4. Máquinas de Turing. Ciencias de la Computación e Inteligencia Artificial Departamento de Tecnologías de la Información Tema 4 Máquinas de Turing Ciencias de la Computación e Inteligencia Artificial Índice 4.1 Límites de los autómatas 4.2 Definición de Máquina de Turing 4.3

Más detalles

Teoría de Autómatas y Compiladores [ICI-445] Capítulo 2: Autómatas Finitos

Teoría de Autómatas y Compiladores [ICI-445] Capítulo 2: Autómatas Finitos Teoría de Autómatas y Compiladores [ICI-445] Capítulo 2: Autómatas Finitos Dr. Ricardo Soto [ricardo.soto@ucv.cl] [http://www.inf.ucv.cl/ rsoto] Escuela de Ingeniería Informática Pontificia Universidad

Más detalles

Autómatas Finitos Deterministicos (DFA)

Autómatas Finitos Deterministicos (DFA) Autómatas Finitos Deterministicos (DFA) Introducción a la Lógica Fa.M.A.F., Universidad Nacional de Córdoba 22//4 Info útil Bibliografía: Introducción a la teoría de autómatas, lenguajes y computación.

Más detalles

Autómatas Finitos Deterministicos (DFA)

Autómatas Finitos Deterministicos (DFA) Autómatas Finitos Deterministicos (DFA) Introducción a la Lógica y la Computación Fa.M.A.F., Universidad Nacional de Córdoba 26/0/6 Info útil Bibliografía: Introducción a la teoría de autómatas, lenguajes

Más detalles

Autómatas de Estados Finitos

Autómatas de Estados Finitos Asignatura: Teoría de la Computación Unidad 1: Lenguajes Regulares Tema 1: Autómatas de Estados Finitos Autómatas de Estados Finitos Definición de Autómatas de estados finitos: Tipo Lenguaje Máquina Gramática

Más detalles

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular.

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular. MODELOS DE COMPUTACION I Preguntas Tipo Test Indicar si son verdaderas o falsas las siguientes afirmaciones: 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular. 2.

Más detalles

Teoría de la Computación Lenguajes Regulares (LR) - Propiedades

Teoría de la Computación Lenguajes Regulares (LR) - Propiedades Teoría de la Computación Lenguajes Regulares (LR) - Propiedades Prof. Hilda Y. Contreras Departamento de Computación hyelitza@ula.ve http://webdelprofesor.ula.ve/ingenieria/hyelitza Objetivo Lenguajes

Más detalles

5. Propiedades de los Lenguajes Recursivamente Enumerables y de los Lenguajes Recursivos.

5. Propiedades de los Lenguajes Recursivamente Enumerables y de los Lenguajes Recursivos. 5. Propiedades de los Lenguajes Recursivamente Enumerables y de los Lenguajes Recursivos. 5.1 Esquemas de representación de áquinas de Turing. 5.2 Propiedades de cierre. 5.3 Codificación de áquinas de

Más detalles

Temas. Objetivo. Que el estudiante logre: 1) Identificar conceptos constructivos de la Teoría de la Computabilidad. 2) Definir autómatas de pila.

Temas. Objetivo. Que el estudiante logre: 1) Identificar conceptos constructivos de la Teoría de la Computabilidad. 2) Definir autómatas de pila. 0 Temas Definición de autómata de pila Autómata de pila determinístico y no determinístico Objetivo Que el estudiante logre: 1) Identificar conceptos constructivos de la Teoría de la Computabilidad. 2)

Más detalles

Máquinas de estado finito y expresiones regulares

Máquinas de estado finito y expresiones regulares Capítulo 3 Máquinas de estado finito y expresiones regulares En este tema definiremos y estudiaremos máquinas de estado finito, llamadas también máquinas de estado finito secuenciales o autómatas finitos.

Más detalles

7. Máquinas de Turing.

7. Máquinas de Turing. 7. Máquinas de Turing. Araceli Sanchis de Miguel Agapito Ledezma Espino José A. Iglesias Mar

Más detalles

Entscheidungsproblem I TEORÍA DE LA COMPUTACIÓN MÁQUINAS DE TURING Y DECIDIBILIDAD. Máquinas de Turing (TM) Procedimiento efectivo

Entscheidungsproblem I TEORÍA DE LA COMPUTACIÓN MÁQUINAS DE TURING Y DECIDIBILIDAD. Máquinas de Turing (TM) Procedimiento efectivo Entscheidungsproblem I TEORÍA DE LA COMPUTACIÓN MÁQUINAS DE TURING Y DECIDIBILIDAD Francisco Hernández Quiroz Departamento de Matemáticas Facultad de Ciencias, UNAM E-mail: fhq@ciencias.unam.mx Página

Más detalles

Lenguaje de programación S (Davis/Sigal/Weyuker) Lógica y Computabilidad. Ejemplo 1. Ejemplo 2

Lenguaje de programación S (Davis/Sigal/Weyuker) Lógica y Computabilidad. Ejemplo 1. Ejemplo 2 Lógica y Computabilidad Verano 2011 Departamento de Computación - FCEyN - UBA Computabilidad - clase 4 Lenguaje S, estado, descripción instantánea, cómputo, funciones parciales computables, minimización

Más detalles

13.3. MT para reconocer lenguajes

13.3. MT para reconocer lenguajes 13.3. MT para reconocer lenguajes Gramática equivalente a una MT Sea M=(Γ,Σ,,Q,q 0,f,F) una Máquina de Turing. L(M) es el lenguaje aceptado por la máquina M. A partir de M se puede crear una gramática

Más detalles

Curso Básico de Computación

Curso Básico de Computación Curso Básico de Computación 3 Propiedades de los conjuntos regulares Feliú Sagols Troncoso Matemáticas CINVESTAV-IPN 2010 Curso Básico de Computación (Matemáticas) 3 Propiedades

Más detalles

Propiedades de Lenguajes Regulares

Propiedades de Lenguajes Regulares de INAOE (INAOE) 1 / 44 Contenido 1 2 3 4 (INAOE) 2 / 44 Existen diferentes herramientas que se pueden utilizar sobre los lenguajes regulares: El lema de : cualquier lenguaje regular satisface el pumping

Más detalles

Teoría Matemática de la Computación Primer Problemario Prof. Miguel A. Pizaña 22 de Febrero de 2007

Teoría Matemática de la Computación Primer Problemario Prof. Miguel A. Pizaña 22 de Febrero de 2007 Teoría Matemática de la Computación Primer Problemario Prof. Miguel A. Pizaña 22 de Febrero de 2007 I Tareas 1. Dudar de todo, al menos una vez en la vida. 2. Qué emociones le produce el teorema de Cantor,

Más detalles

Curso Básico de Computación Preliminares

Curso Básico de Computación Preliminares Curso Básico de Computación Preliminares Feliú Sagols Troncoso Matemáticas CINVESTAV-IPN 2010 Curso Básico de Computación (Matemáticas) Preliminares 2010 1 / 11 1 Preliminares

Más detalles

Computabilidad y Lenguajes Formales: Autómatas de Pila

Computabilidad y Lenguajes Formales: Autómatas de Pila 300CIG007 Computabilidad y Lenguajes Formales: Autómatas de Pila Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. Gloria Inés Alvarez V. Basado en [SIPSER, Chapter 2] Autómatas

Más detalles

2 Autómatas finitos y gramáticas regulares.

2 Autómatas finitos y gramáticas regulares. 2 Autómatas finitos y gramáticas regulares. Autómata RAE Instrumento o aparato que encierra dentro de sí el mecanismo que le imprime determinados movimientos. Algo autónomo que se comporta de determinada

Más detalles

Universidad de Valladolid

Universidad de Valladolid Universidad de Valladolid Departamento de Informática Teoría de autómatas y lenguajes formales. 2 o I.T.Informática. Gestión. Examen de primera convocatoria. 18 de junio de 29 Apellidos, Nombre... Grupo:...

Más detalles

Capítulo 9. Introducción a los lenguajes formales. Continuar

Capítulo 9. Introducción a los lenguajes formales. Continuar Capítulo 9. Introducción a los lenguajes formales Continuar Introducción Un lenguaje es un conjunto de símbolos y métodos para estructurar y combinar dichos símbolos. Un lenguaje también recibe el nombre

Más detalles

Departamento de Tecnologías de la Información. Tema 5. Decidibilidad. Ciencias de la Computación e Inteligencia Artificial

Departamento de Tecnologías de la Información. Tema 5. Decidibilidad. Ciencias de la Computación e Inteligencia Artificial Departamento de Tecnologías de la Información Tema 5 Decidibilidad Ciencias de la Computación e Inteligencia Artificial Índice 5.1 Lenguajes reconocibles y decidibles 5.2 Problemas decidibles sobre lenguajes

Más detalles

1. Cadenas EJERCICIO 1

1. Cadenas EJERCICIO 1 LENGUAJES FORMALES Y AUTÓMATAS CURSO 2006/2007 - BOLETÍN DE EJERCICIOS Víctor J. Díaz Madrigal y José Miguel Cañete Departamento de Lenguajes y Sistemas Informáticos 1. Cadenas La operación reversa aplicada

Más detalles

Autómatas Finitos INAOE. Introducción a. Autómatas. Definición formal de un. Finito Determinístico. Finito No- Finitos y Lenguajes Formales

Autómatas Finitos INAOE. Introducción a. Autómatas. Definición formal de un. Finito Determinístico. Finito No- Finitos y Lenguajes Formales los s s s s INAOE (INAOE) 1 / 58 Contenido los s s 1 los s 2 3 4 s 5 (INAOE) 2 / 58 los s los s los s s : Conjunto de estados + Control Cambio de estados en respuesta a una entrada. Tipo de Control: :

Más detalles

1. Define que es un Autómatas finitos determinanticos y cuáles son sus elementos constitutivos (explique cada uno de ellos).

1. Define que es un Autómatas finitos determinanticos y cuáles son sus elementos constitutivos (explique cada uno de ellos). Unidad 2.- Lenguajes Regulares Los lenguajes regulares sobre un alfabeto dado _ son todos los lenguajes que Se pueden formar a partir de los lenguajes básicos?, {_}, {a}, a 2 _, por medio De las operaciones

Más detalles

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten

Más detalles

Introducción a la indecidibilidad

Introducción a la indecidibilidad Introducción a la indecidibilidad José M. empere Departamento de istemas Informáticos y Computación Universidad Politécnica de Valencia Lenguajes y problemas Un problema será considerado cualquier cuestión

Más detalles

La máquina de Turing

La máquina de Turing La máquina de Turing José M. Sempere Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia David Hilbert (1862, Rusia 1943, Alemania) Matemático que aportó diversos resultados

Más detalles

La Jerarquía Polinomial

La Jerarquía Polinomial La Jerarquía Polinomial IIC3810 IIC3810 La Jerarquía Polinomial 1/18 La noción de oráculo Qué tienen en común los problemas CROM y EQUIV? IIC3810 La Jerarquía Polinomial 2/18 La noción de oráculo Qué tienen

Más detalles

Expresiones regulares, gramáticas regulares

Expresiones regulares, gramáticas regulares Expresiones regulares, gramáticas regulares Los LR en la jerarquía de Chomsky La clasificación de lenguajes en clases de lenguajes se debe a N. Chomsky, quien propuso una jerarquía de lenguajes, donde

Más detalles

Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto Segundo Cuatrimestre de 2002

Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto Segundo Cuatrimestre de 2002 Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur Ejercicios Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto

Más detalles

Expresiones regulares, gramáticas regulares Unidad 3

Expresiones regulares, gramáticas regulares Unidad 3 Expresiones regulares, gramáticas regulares Unidad 3 Los LR en la jerarquía de Chomsky La clasificación de lenguajes en clases de lenguajes se debe a N. Chomsky, quien propuso una jerarquía de lenguajes,

Más detalles

CAPITULO 2: LENGUAJES

CAPITULO 2: LENGUAJES CAPITULO 2: LENGUAJES 2.1. DEFINICIONES PREIAS SIMBOLO: Es una entidad indivisible, que no se va a definir. Normalmente los símbolos son letras (a,b,c,.., Z), dígitos (0, 1,.., 9) y otros caracteres (+,

Más detalles

Análisis y Diseño de Algoritmos

Análisis y Diseño de Algoritmos Análisis y Diseño de Algoritmos Teoría NP-Completeness DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Problemas de Decisión Teoría de NP-Completeness Diseñada para aplicarse solo a problemas

Más detalles

Clases de complejidad computacional: P y NP

Clases de complejidad computacional: P y NP 1er cuatrimestre 2006 La teoría de Se aplica a problemas de decisión, o sea problemas que tienen como respuesta SI o NO (aunque es sencillo ver que sus implicancias pueden extenderse a problemas de optimización).

Más detalles

Computabilidad y Lenguajes Formales: Autómatas Finitos

Computabilidad y Lenguajes Formales: Autómatas Finitos 300CIG007 Computabilidad y Lenguajes Formales: Autómatas Finitos Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. Gloria Inés Alvarez V. No Determinismo Hasta ahora cada

Más detalles

Minimización de Aútomatas Finitos

Minimización de Aútomatas Finitos Minimización de Aútomatas Finitos Supongamos que para un AFD M = (Q, Σ, δ, q 0, F ) definimos la siguiente relación R M : xr M y ssi δ(q 0, x) = δ(q 0, y) Claramente, podemos notar que esta relación es

Más detalles

Procesadores de Lenguaje

Procesadores de Lenguaje Procesadores de Lenguaje Repaso TALF Cristina Tîrnăucă Dept. Matesco, Universidad de Cantabria Fac. Ciencias Ing. Informática Primavera de 2013 La Jerarquía de Chomsky Cuatro niveles de lenguajes formales

Más detalles

ANÁLISIS LÉXICO AUTÓMATAS FINITOS

ANÁLISIS LÉXICO AUTÓMATAS FINITOS Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público

Más detalles

Otras propiedades de los lenguajes regulares

Otras propiedades de los lenguajes regulares Capítulo 3 Otras propiedades de los lenguajes regulares En los dos capítulos anteriores hemos presentado las propiedades básicas de los lenguajes regulares pero no hemos visto cómo se puede demostrar que

Más detalles

8.1 Indecibilidad 8.5 Indecibilidad en el problema de la correspondencia de Post

8.1 Indecibilidad 8.5 Indecibilidad en el problema de la correspondencia de Post 1 Curso Básico de Computación 8.1 Indecibilidad 8.5 Indecibilidad en el problema de la correspondencia de Post Los problemas indecidibles aparecen en varias áreas. En las próximas tres secciones se analizarán

Más detalles

Máquinas de Turing, programas y tesis de Turing-Church

Máquinas de Turing, programas y tesis de Turing-Church Máquinas de Turing, programas y tesis de Turing-Church Elvira Mayordomo, Universidad de Zaragoza Ilustraciones: Costas Busch, Rensselaer Polytechnic Institute 1 Máquinas de Turing 2 La jerarquía de lenguajes

Más detalles

Complejidad computacional (Análisis de Algoritmos)

Complejidad computacional (Análisis de Algoritmos) Definición. Complejidad computacional (Análisis de Algoritmos) Es la rama de las ciencias de la computación que estudia, de manera teórica, la optimización de los recursos requeridos durante la ejecución

Más detalles

Curso Básico de Computación

Curso Básico de Computación Curso Básico de Computación 8.1 Indecibilidad Feliú Sagols Troncoso Matemáticas CINVESTAV-IPN 2010 Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 1 / 96 8.5

Más detalles

Modelos de Informática Teórica Capítulo 2 - Clases de Complejidad

Modelos de Informática Teórica Capítulo 2 - Clases de Complejidad Modelos de Informática TeóricaCapítulo 2 - Clases de Complejidad p. 1/40 Modelos de Informática Teórica Capítulo 2 - Clases de Complejidad Serafín Moral Callejón Departamento de Ciencias de la Computación

Más detalles

Introducción a la Teoría de Autómatas, Lenguajes y Computación

Introducción a la Teoría de Autómatas, Lenguajes y Computación Introducción a la Teoría de Autómatas, Lenguajes y Computación Gustavo Rodríguez Gómez y Aurelio López López INAOE Propedéutico 2010 1 / 53 Capítulo 2 Autómatas Finitos 2 / 53 1 Autómatas Finitos Autómatas

Más detalles

Computabilidad y lenguajes formales: Sesión 19. Gramáticas Incontextuales (Context Free Grammars)

Computabilidad y lenguajes formales: Sesión 19. Gramáticas Incontextuales (Context Free Grammars) Computabilidad y lenguajes formales: Sesión 19. Gramáticas Incontextuales (Context Free Grammars) Prof. Gloria Inés Alvarez V. Departamento de Ciencias e Ingeniería de la Computación Pontificia Universidad

Más detalles

Problemas fáciles, difíciles e imposibles

Problemas fáciles, difíciles e imposibles Problemas fáciles, difíciles e imposibles La computadora lo resuelve todo? Santiago Figueira Departamento de Computación FCEyN, UBA Semana de la Computación 2015 1 Qué son los métodos efectivos? Intuitivamente

Más detalles

Funciones de Variable Real

Funciones de Variable Real Tema 1 Funciones de Variable Real 1.1. La Recta Real Los números reales se pueden ordenar como los puntos de una recta. Los enteros positivos {1, 2, 3, 4,...} que surgen al contar, se llaman números naturales

Más detalles

PROGRAMACIÓN II AÑO 2009 TALLER 3: TEORÍA DE LENGUAJES Y AUTÓMATAS

PROGRAMACIÓN II AÑO 2009 TALLER 3: TEORÍA DE LENGUAJES Y AUTÓMATAS Licenciatura en Sistemas de Información PROGRAMACIÓN II AÑO 2009 TALLER 3: TEORÍA DE LENGUAJES Y AUTÓMATAS UNSE FCEyT 1. DESCRIPCIÓN Este taller consta de tres partes. En cada una de ellas se especifican

Más detalles

NOTAS PARA LA MATERIA LENGUAJES DE PROGRAMACIÓN

NOTAS PARA LA MATERIA LENGUAJES DE PROGRAMACIÓN NOTAS PARA LA MATERIA LENGUAJES DE PROGRAMACIÓN G r a m á t i c a s UNIVERSIDAD DE SONORA DEPARTAMENTO DE MATEMÁTICAS LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN Dra. María de Guadalupe Cota Ortiz Lenguaje

Más detalles

Autómatas Deterministas. Ivan Olmos Pineda

Autómatas Deterministas. Ivan Olmos Pineda Autómatas Deterministas Ivan Olmos Pineda Introducción Los autómatas son una representación formal muy útil, que permite modelar el comportamiento de diferentes dispositivos, máquinas, programas, etc.

Más detalles

Curso: Teoría de la Computación. Unidad 2, Sesión 7: Complejidad computacional

Curso: Teoría de la Computación. Unidad 2, Sesión 7: Complejidad computacional Curso: Teoría de la Computación. Unidad 2, Sesión 7: Complejidad computacional Instituto de Computación, Facultad de Ingeniería Universidad de la República, Montevideo, Uruguay dictado semestre 2-2009

Más detalles

Autómatas de Pila y Lenguajes Incontextuales

Autómatas de Pila y Lenguajes Incontextuales Autómatas de Pila y Lenguajes Incontextuales Elvira Mayordomo Universidad de Zaragoza 5 de noviembre de 2012 Contenido de este tema 1. Introducción a los autómatas de pila 2. Definiciones 3. Equivalencia

Más detalles

Problemas Seleccionados Resueltos: Máquinas de Turing

Problemas Seleccionados Resueltos: Máquinas de Turing Problemas Resueltos: Máquinas de Turing 1 Problemas Seleccionados Resueltos: Máquinas de Turing 1. Diseñar una máquina de Turing que al serle introducida una sucesión finita de 1, escritos en casillas

Más detalles

Teoría de Autómatas y Lenguajes Formales Equivalencia de Conjuntos Pruebas por Inducción

Teoría de Autómatas y Lenguajes Formales Equivalencia de Conjuntos Pruebas por Inducción y Lenguajes INAOE y (INAOE) 1 / 40 Contenido y 1 2 3 4 5 6 y (INAOE) 2 / 40 Objetivo General Proporcionar al estudiante los fundamentos de la teoría de autómatas así como los de lenguajes formales. También

Más detalles

Equivalencia Entre PDA y CFL

Equivalencia Entre PDA y CFL Equivalencia Entre PDA y CFL El Lenguaje aceptado por un Autómata con Pila Universidad de Cantabria Esquema 1 Introducción 2 3 Lenguaje Aceptado por un Autómata Como en los autómatas finitos, se puede

Más detalles

PRACTICA 5: Autómatas Finitos Deterministas

PRACTICA 5: Autómatas Finitos Deterministas E. T. S. DE INGENIERÍA INFORMÁTICA Departamento de Estadística, I.O. y Computación Teoría de Autómatas y Lenguajes Formales PRACTICA 5: Autómatas Finitos Deterministas 5.1. Requisito de codificación Cada

Más detalles

Ciencias de la Computación I

Ciencias de la Computación I Ciencias de la Computación I Autómatas Finitos No Determinísticos Minimización de Autómatas Finitos Determinísticos Agosto 2007 Autómatas Finitos Determinísticos Para cada estado y para cada símolo se

Más detalles

Convertir un AFND a un AFD

Convertir un AFND a un AFD Convertir un AFND a un AFD Existe una equivalencia entre los AFD y AFN, de forma que un autómata M es equivalente a un autómata M' si L(M) ) L(M'). Ejemplo: Los autómatas de la siguiente figura son equivalentes.

Más detalles

Álgebra y estructuras finitas/discretas (Grupos A)

Álgebra y estructuras finitas/discretas (Grupos A) Álgebra y estructuras finitas/discretas (Grupos A) Curso 2007-2008 Soluciones a algunos de los ejercicios propuestos en el Tema 2 Antes de ver la solución de un ejercicio, repase la teoría correspondiente

Más detalles

Introducción a la programación

Introducción a la programación Introducción a la programación Resolución de Problemas El objetivo principal para que las personas aprendan a programar en algún lenguaje de programación en particular es utilizar el computador como una

Más detalles

Teoría de la Computación puesta en Práctica

Teoría de la Computación puesta en Práctica Teoría de la Computación puesta en Práctica Marcelo Arenas M. Arenas Teoría de la Computación puesta en Práctica 1 / 24 Problema a resolver WiMAX (Worldwide Interoperability for Microwave Access): estándar

Más detalles

6 Propiedades de los lenguajes libres de contexto 6.1 El Lema de Bombeo para LLC

6 Propiedades de los lenguajes libres de contexto 6.1 El Lema de Bombeo para LLC 1 Curso ásico de Computación 6 Propiedades de los lenguajes libres de contexto 6.1 El Lema de ombeo para LLC El lema de ombeo para LLC nos dice que siempre existe dos subcadenas cortas muy juntas que se

Más detalles

Una (muy) breve introducción a la teoría de la computación

Una (muy) breve introducción a la teoría de la computación Una (muy) breve introducción a la teoría de la computación Marcelo Arenas M. Arenas Una (muy) breve introducción a la teoría de la computación 1 / 48 Ciencia de la computación Cuál es el objeto de estudio

Más detalles

Conjuntos. Un conjunto es una colección de objetos. Si a es un objeto y R es un conjunto entonces por. a R. se entiende que a pertenece a R.

Conjuntos. Un conjunto es una colección de objetos. Si a es un objeto y R es un conjunto entonces por. a R. se entiende que a pertenece a R. Conjuntos Un conjunto es una colección de objetos. Si a es un objeto y R es un conjunto entonces por se entiende que a pertenece a R. a R Normalmente, podremos definir a un conjunto de dos maneras: Por

Más detalles

Un árbol binario T se define como un conjunto finito de elementos, llamados nodos, de forma que:

Un árbol binario T se define como un conjunto finito de elementos, llamados nodos, de forma que: Instituto Universitario de Tecnología Industrial Rodolfo Loero Arismendi I.U.T.I.R.L.A. ÁRBOLES Sección 3DA Asignatura: Estructura de Datos Lenguaje (C). Ciudad Bolívar _ abril_ 2006. Introducción El siguiente

Más detalles

El Autómata con Pila: Transiciones

El Autómata con Pila: Transiciones El Autómata con Pila: Transiciones El Espacio de Configuraciones Universidad de Cantabria Esquema Introducción 1 Introducción 2 3 Transiciones Necesitamos ahora definir, paso por paso, como se comporta

Más detalles

LENGUAJES Y GRAMÁTICAS

LENGUAJES Y GRAMÁTICAS LENGUAJES Y GRAMÁTICAS Orlando Arboleda Molina Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle 20 de septiembre de 2008 Contenido Lenguajes y Gramáticas Gramáticas Gramáticas

Más detalles

Programación: Construcción del polinomio interpolante con la fórmula de Newton

Programación: Construcción del polinomio interpolante con la fórmula de Newton Programación: Construcción del polinomio interpolante con la fórmula de Newton Se recomienda resolver estos ejercicios antes de la clase de programación. Objetivos. Programar la construcción del polinomio

Más detalles

Modelos De Computación. Guía Modelos de Computación. Tema I: Lenguajes y Gramáticas

Modelos De Computación. Guía Modelos de Computación. Tema I: Lenguajes y Gramáticas Guía Modelos de Computación Tema I: Lenguajes y Gramáticas Introducción La sintaxis de un lenguaje natural, esto es, la de los lenguajes hablados, como el inglés, el español, el alemán o el francés, es

Más detalles

1. Probar pertenencia a Lenguajes libres de contexto

1. Probar pertenencia a Lenguajes libres de contexto Tarea 3 Curso : Teoría de la Computación Codigo : CC3102-1 Fecha : 8 de noviembre de 2017 Autor : Bastián Mail : mail@gmail.com 1. Probar pertenencia a Lenguajes libres de contexto 1.1. L 1 = {a m b n

Más detalles

300CIG007 Computabilidad y Lenguajes Formales: Autómatas Finitos

300CIG007 Computabilidad y Lenguajes Formales: Autómatas Finitos 300CIG007 Computabilidad y Lenguajes Formales: Autómatas Finitos Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. Gloria Inés Alvarez V. Qué es un computador? Todos lo sabemos!!!

Más detalles

Gramáticas libres de contexto

Gramáticas libres de contexto Gramáticas libres de contexto Conceptos básicos El siguientes es un ejemplo de una gramática libre de contexto, a la cual llamaremos G1. A 0A1 A B B # Una gramática consiste de una colección de reglas

Más detalles