"Traducción" Máquina de Turing

Page 1

Tesis de Church-Turing Hasta ahora, en nuestro desarrollo de la teoría de la computación se han presentado varios modelos de dispositivos informáticos. Autómatas finitos son buenos modelos para los dispositivos que poseen pequeñas cantidades de memoria. Los autómatas pushdown son buenos modelos para los dispositivos que poseen una memoria ilimitada que se puede usar sólo en el último en entrar, primero en forma de una chimenea. Hemos demostrado que algunas tareas son muy sencillas más allá de las capacidades de estos modelos. Por lo tanto, son demasiado restringidos para servir como modelos de ordenadores de propósito general. Máquinas de Turing Pasamos ahora al modelo mucho más potente, en primer lugar propuesto por Alan Turing en 1936, llamado la máquina de Turing. Similar a un autómata finito, pero con un ilimitado y sin restricciones de memoria, una máquina de Turing es mucho más exacta de un modelo de computadora de propósito general. Una máquina de Turing puede hacer todo lo que un ordenador puede hacer. No obstante, incluso una máquina de Turing no puede resolver algunos problemas. En un sentido muy real de estos problemas están más allá de los límites teóricos de la computación. El modelo utiliza la máquina de Turing una infinita cinta como su memoria ilimitada. Tiene una cinta de cabeza que puede leer y escribir símbolos y moverse en la cinta. Inicialmente la cinta sólo contiene la cadena de entrada está en blanco y en todas partes. Si la máquina tiene que almacenar la información, puede escribir esta información en la cinta. Para leer la información que ha escrito, la máquina puede mover su cabeza hacia atrás del mismo. La máquina continúa hasta que se decida la informática para producir una salida. El aceptar y rechazar los productos se obtienen mediante la introducción de la aceptación y el rechazo designado estados. Si no lo hace entrar en una aceptación o un rechazo de Estado, se van para siempre, nunca frenar.

FIGURA 3.1 Esquema de una máquina de Turing La siguiente lista resume las diferencias entre autómatas finitos y Máquinas de Turing. 1. Una máquina de Turing puede escribir en la cinta y leer de ella. 2. La cabeza de lectura-escritura pueden moverse tanto a la izquierda y la derecha.


3. La cinta es finita 4. El especial de los estados para rechazar y aceptar tener efecto inmediato. Vamos a considerar una máquina de Turing M1 para probar la pertenencia al lenguaje:

Es decir, queremos que el diseño de la M1 a aceptar su entrada si es un miembro de B. Para entender mejor la M1, ponerse en su lugar de imaginar que usted está parado sobre una milla de largo, compuesto de entrada de millones de caracteres. Su objetivo es determinar si la entrada es un miembro de B, es decir, si la entrada se compone de dos cadenas idénticas separadas por un símbolo #. La entrada es demasiado larga para que usted recuerde que todos, pero se le permite moverse hacia adelante y hacia atrás sobre la entrada y hacer marcas sobre ella. Por supuesto, la estrategia obvia es zig-zag a los lugares correspondientes a los dos lados de la # y determinar si coinciden. yo uso las marcas realizar un seguimiento de los lugares que corresponden. Diseñamos M1 a trabajar en la misma forma. Hace más de los múltiples pases de entrada de cadena con la cabeza de lectura-escritura. En cada paso que coincide con uno de los personajes a cada lado del símbolo #. Para mantenerse al tanto de los símbolos que se han comprobado ya, M1 cruza frente a cada símbolo, ya que es examinado. Si se cruza de todos los símbolos, lo que significa que todo lo que combinado con éxito, y M1 va a aceptar un Estado. Si se descubre un desfase, se entra en un estado rechazar. En resumen M1 del algoritmo es el siguiente. M1 = "En la cadena de entrada w: 1. La exploración de entrada para asegurarse de que contiene un único símbolo #. Si no es así, rechazar. 2. Zig-zag a través de la cinta correspondiente a las posiciones en ambos lados del símbolo #, para comprobar si contienen estas posiciones el mismo símbolo. Si no lo hacen, rechazar. Frente a símbolos como la Cruz sean para llevar un registro de los símbolos que corresponden. 3. Cuando todos los símbolos a la izquierda de la # se han cruzado fuera, la verificación de los restantes símbolos a la derecha de la #. Si cualquiera de los símbolos siguen siendo, rechazar, aceptar otra cosa”. La siguiente figura contiene varias instantáneas de la M1, mientras que la cinta es la computación en las etapas 2 y 3 cuando se inicia en la entrada 011000 # 011000.

FIGURA 3.2 Instantáneas de la máquina de Turing M1 informática en las aportaciones 011000 # 011000


Esta descripción de la máquina de Turing M1 bocetos de la manera en que funciona, pero no todos sus detalles. Podemos describir máquinas de Turing completo en detalle, dando descripciones formales análogas a las que se presentó para pushdown y autómatas finitos. la descripción formal, especifica cada una de las partes de la definición formal del modelo de máquina de Turing que se presentará en breve. En realidad casi nunca nos dan las descripciones oficiales de máquinas de Turing, ya que tienden a ser muy grande.

DEFINICIÓN FORMAL DE UNA MÁQUINA DE TURING El corazón de la definición de una máquina de Turing es la transición y la función, ya que nos indica cómo la máquina es de un paso a la siguiente. Para una máquina de Turing, & toma la forma:

Es decir, cuando la máquina está en un cierto estado q y la cabeza es a través de una cinta que contiene un símbolo cuadrado, y si, la máquina de escribir el símbolo y la sustitución de la una, y va al estado r. El tercer componente es o L o R e indica si la cabeza se mueve hacia la izquierda o la derecha después de escribir. En este caso, la L indica un movimiento hacia la izquierda. DEFINICIÓN 3.1 Una máquina de Turing es una 7-tupla son conjuntos finitos y

dónde

1. Q es el conjunto de los estados, 2. Σ es el alfabeto de entrada que no contengan el símbolo en blanco especial de la U, 3. T es el alfabeto de cinta, donde 4. 5. 6. 7.

es la función de transición, Estado es el comienzo. es aceptar el estado, y es rechazar el estado, donde

Una máquina de Turing Inicialmente M recibe su entrada

calcula de la siguiente manera. izquierdo n que tienen las plazas de la


cinta, y el resto de la cinta está en blanco (es decir, llena de símbolos en blanco). El jefe comienza en la plaza a la izquierda de la cinta. Tenga en cuenta que E no contiene el símbolo blanco, por lo que el primer blanco que aparece en la cinta marca el final de la entrada. H Una vez se inicia, el cálculo procede de acuerdo con las normas descritas por la transmisión función. Si M nunca intenta mover la cabeza a la izquierda de la izquierda final de la cinta, la cabeza permanece en mismo lugar que para que se mueven, aunque la transición indica L. El cálculo continúa hasta que se entra o bien aceptar la rechazar los estados en cuyo momento se detiene. Si no se produce, H es eterna. Como se calcula una máquina de Turing, se produzcan cambios en el estado actual, el actual contenido de la cinta, y el actual jefe ubicación. Un establecimiento de estos tres elementos se denomina configuración de la máquina de Turing. Configuraciones de frecuencia están representadas en una manera especial. Para que un estado y dos cadenas de U y V sobre la cinta alfabeto Lo escribimos uqu para la configuración en que la es q estado actual, el actual contenido de la cinta es UV, y la actual ubicación de la cabeza es el primer símbolo de la cinta El c. sólo contiene espacios en blanco después de la última símbolo de c. Por ejemplo () representa la configuración de la cinta cuando se 101101111, es el estado actual Q7, y la cabeza se encuentra actualmente en el segundo 0, La siguiente figura muestra una máquina de Turing con esa configuración.

FIGURA 3.3 Una máquina de Turing con configuración 1011q701111

Aquí formalizar nuestra comprensión intuitiva de la forma en que una máquina de Turing computa. Decir que la configuración de C1 rendimientos C2 si la configuración de máquina de Turing puede legalmente pasar de C1 a C2 en un solo paso. Se define este concepto como formalmente siguiente. Supongamos que tenemos a, y c en Г, así como u y v en Г * y los estados y qi y qj. En ese caso uaqi bu y uqj acu son dos configuraciones. Decir que


Si en la transición y la función & (qi, b) = (qj, c, L). Que maneja el caso en que la máquina de Turing se mueve hacia la izquierda. Para un mover la derecha, dicen que

uaqibu rendimiento uacqju Casos especiales se producen cuando la cabeza se encuentra en uno de los extremos de la configuración. Por la izquierda efecto, la configuración qi, bu rendimientos qj, cv, si la transición es la izquierda en movimiento (ya que evitar que la máquina va de la mano izquierda de la final cinta), y los rendimientos cqjv movimiento por el derecho transición. Por el extremo derecho, la configuración qaqi es equivalente a un uaqiU porque suponemos que siga en blanco la parte de la cinta representados en la configuración. Esto es lo que puede manejar esta caso como antes, con la cabeza ya no en el extremo derecho. El comienzo de las fusiones en configuración entrada w es la configuración q0w, lo que indica que la maquina es el inicio en el estado q0 con su cabeza en la posición izquierda de la cinta. En una configuración de aceptar el estado de la configuración es qaccept. En un rechazo de la configuración del estado de la configuración es qreject. La aceptación y el rechazo de las configuraciones son detener configuraciones y, en consecuencia, no dan más de configuraciones. Una máquina de Turing M acepta w, si de entrada una secuencia de configuraciones C1, C2 ..., Ck donde existes.

1. C1 es el inicio de configuración de entrada de M w, 2.cada Ci rinde Ci+1 3. Ck es una aceptación de configuración.

La colección de cadenas que acepta M es el idioma de M, denotado L (M)

DEFINICIÓN 3.2 Llamar a un lenguaje Turing- reconocible si algunas maquinas de turing lo reconocen.


Cuando empezamos una TM en una entrada, tres resultados son posibles. la máquina puede aceptar, rechazar, o bucle. Por bucle que significa que la máquina simplemente no se detiene. No es necesario repetir los mismos pasos de la misma manera como siempre la connotación de bucle sugiere. Puede implicar cualquier bucle simple o procesamiento complejo que nunca pone fin a un estado. Una maquina turing M puede fallar a aceptar una entrada por la entrada qreject estado y rechazo, o por bucle. Algunas veces distinguir una maquina que es un bucle de uno que es simple puede tomar un largo tiempo, es difícil. Por esta razón, preferimos máquinas turing que detener a todos las entradas, tales máquinas nunca se repiten. Estas máquinas se denominan deciders porque siempre toma la decisión de aceptar o rechazar. Un decider reconoce que algunos lenguajes también se dice para que idioma decidir. Llamar a un lenguaje turing-decidable o simplemente si algunas decidable máquina de Turing deciden. Cada idioma decidable es turing-reconocible pero seguro lenguajes turing-reconocible Lenguajes no son decidable Se presentan ejemplos de Lenguajes de turin-reconocibles pero no decidable después de desarrollar una técnica para probar undecidability en el capítulo 4. EJEMPLOS DE MÁQUINAS DE TURING Como lo hicimos para finito y empuje autómatas, podemos dar una descripción formal de una máquina de Turing particular especificando cada uno de sus siete partes. Sin embargo, hacia ese nivel de detalle para la fabricación de máquinas turing puede resultar engorroso para los más pequeños, pero todos los equipos. En consecuencia, no vamos a pasar mucho tiempo que tales descripciones porque son lo suficientemente precisa para nuestros propósitos y son mucho más fáciles de entender. Sin embargo, es importante recordar que cada descripción de nivel superior es en realidad corto para su contraparte. con paciencia y cuidado que podría describir las máquinas turing en este libro en forma completa los detalles. Que le ayude a hacer la conexión entre las descripciones formales y el nivel superior las descripciones, diagramas de estado que damos en los próximos dos ejemplos. Usted puede saltarlos si ya se sienten cómodos con esta conexión.

Aquí se describe una TM M2 que reconoce el lenguaje consistente en todas las cadenas de 0s, cuya longitud es una potencia de 2. que decida el lenguaje A = (02n | n> 0). M2 = "en la cadena de entrada w: 1. barrido de izquierda a derecha de la cinta, paso de desactivar todos los demás 0. 2. si en la fase 1, la cinta contiene una sola 0, aceptar. 3. si en la fase 1, la cinta contenía más de un solo 0 y el número de 0s es extraño, rechazar.


4. volver la cabeza a la izquierda del final de la cinta. 5. ir a la etapa 1”. Cada iteración de la etapa 1 el número de cortes en la mitad 0s. que la máquina se extiende por toda la cinta, en la fase 1, se realiza un seguimiento de si el número de 0s visto es par o impar. si ese número es impar y mayor que 1, el número original de 0s en la instancia. Sin embargo, si el número de 0s visto es 1, el número original debe haber sido una potencia de 2. por lo que en este caso, la máquina acepta. ahora damos la descripción formal de M2 = (Q, Σ, Г, δ, q1, qaccept, qreject) Q = (q1, q2, q3, q4, q5, qaccept, qreject), Σ = (0), y Г = (0, x, υ) δ se describen con un diagrama de estado (véase la figura 3.4) el comienzo, aceptar y rechazar los estados son q1, qaccept y, qreject En el estado en la figura 3.4 diagrama de la etiqueta 0 → υ, R aparece en la transición de q1 a q2. Significa que, cuando en el estado q1 con la cabeza de lectura 0, la máquina va a estado q2, escribe υ, y mueve la cabeza hacia la derecha. En otras palabras, δ (q1, 0) = (q2, υ, R). en aras de la claridad que el uso de atajos de 0 → R en la transición de la q3 a q4, en el sentido de que la máquina se mueve a la derecha durante la lectura de 0 en el estado q3, pero no altera la cinta, por lo que δ (q3, 0) - (q4 , 0, R). Esta máquina comienza escribiendo un símbolo blanco en el extremo izquierdo 0 en la cinta para que pueda encontrar la izquierda de finales de la cinta en la etapa 4. Mientras que se suele utilizar más sugerente, como símbolo # para la parte izquierda del delimitador final, utilizamos un banco aquí para mantener la cinta alfabeto y, por tanto, el diagrama de estado, los pequeños. Ejemplo 3.6 da otro método de búsqueda de la parte izquierda del final de la cinta. Le damos un simple plazo de esta máquina en la entrada 0000. A partir de la configuración es q10000. La secuencia de las configuraciones de la máquina aparece la entrada siguiente figura 3.4. Leer las columnas y de izquierda a derecha.


FIGURA 3.4 DIAGRAMA DE ESTADO PARA LA MÁQUINA DE TURING M2 una muestra de M2 entrada en 0000:

EJEMPLO 3.5 La siguiente es una descripción formal de la M1 = (Q, Σ, Г, δ, q1, qaccept, qreject), la máquina de Turing de que oficiosamente se describe en la página 127 para decidir la lengua B = (w w # | wє (0, * 1)). ·Q = (q1 ,..., q14, qaccept, qreject), ·Σ = (0,1, #), y Г = (0,1, #, x, υ). ·Δ se describen con un diagrama de estado (véase la figura 3.5). ·El comienzo, aceptar y rechazar los estados son q1, qaccept, y qreject.


En la figura 3.5 que representa el diagrama de estado TM M1, se encuentra la etiqueta 0,1 → R en la transición que va de q3 a sí mismo. Etiqueta que significa que la máquina se queda en q3 y mueve a la derecha cuando se lee un 0 o un 1 en el estado q3. No cambia el símbolo de la cinta. FIGURA 3.5 DIAGRAMA DE ESTADO PARA LA MÁQUINA DE TURING M1


Como en el ejemplo 3.4, la máquina empieza por el símbolo escrito en blanco para delimitar el margen izquierdo de la cinta. este tiempo puede sobrescribir un 0 o un 1, cuando hacerlo, y que recuerda el símbolo sobrescriben utilizando el control finito. Etapa 1 se realiza por los estados q1 través q7, y las fases 2 y 3 por el resto de los estados. Para simplificar la figura, que no muestran el estado o rechazar la transición va a rechazar el estado. Esas transiciones ocurren implícitamente cuando un Estado carece de una salida de transición para un símbolo. Así, porque en ningún estado q5 saliente con una flecha # está presente, si se produce un # bajo la cabeza cuando la máquina se encuentra en estado q5, va a declarar qreject. EJEMPLO 3.6 Aquí, una máquina M3 de turing hace algún elemental aritmético. Decide el lenguaje C = {ai bj ck|i x j = k y i, j, k >= 1} M3=" en la cadena W de entrada: 1.- escudriña la entrada de la izquierda al derecho de estar seguro que es un miembro de un*B*C y el rechazo si isn´T. 2.- vuelve la cabeza al fin izquierda de la cinta. 3.- tacha y un escáner a la derecha hasta que una B ocurra. Transbordador entre la B y la C, tachando uno de cada hasta que toda B sea ida. 4.- restaura el cruzado de B y repite etapa 3 si hay otro un cruzar de. si todo un´ es cruzada de, el cheque en si toda C´ también es tachada. Si sí, acepta; de otro modo, el rechazo. " Examinemos las cuatro etapas de M3 mas afondo. En la primera etapa la maquina opera como un autómata finito. Ninguna escritura es necesaria para q el índice se mueva de izquierda a derecha, cuidando q las pistas utilizadas en los estados de si la entrada esta en forma apropiada. la etapa 2 se ve igualmente simple pero contiene una sutileza. ¿Cómo puede la maquina encontrar el termino de la mano izquierda de la entrada de la cinta? encontrar el termino de la mano derecha de la entrada es fácil debido a que termina con un símbolo en blanco. Pero el termino de la mano izquierda no tiene ningún terminador al principio. Una técnica q permita a la maquina encontrar el termino la mano izquierda de la cinta es para marcar el símbolo al extremo izquierdo in algún camino (manera) para cuando la maquina empiece con ese índice sobre este símbolo. Entonces la maquina podrá escanear la izquierda hasta que encuentre la marca cuando la quiera para reiniciar su índice hacia el termino de la mano izquierda. Ejemplo 3.4 ilustra esta técnica, usando un símbolo en blanco para marcar mano izquierda el símbolo de la cinta Un "truco" de encontrar el termino de la mano izquierda de la cinta toma ventaja de la manera q definimos el modelo de la máquina de turing. Rellama esto, si la maquina trata de mover su índice mas allá del término de la mano izquierda de la cinta, se está en el mismo lugar. Podemos usar este rasgo para hacer el término de la mano izquierda detector. Para detectar si el índice esta sobre el termino de la mano izquierda la maquina puede escribir un símbolo especial sobre la


posición actual, mientras se graba el símbolo ello es remplazado en el control. Entonces esto puede tentar mover el índice hacia la izquierda. Si es todavía alrededor del símbolo especial, a la izquierda el movimiento no tuvo éxito, y así el índice debe haber sido en el término de la mano izquierda. Si en cambio está sobre un diferente símbolo, algunos símbolos permanecen en la izquierda de aquella posición sobre la cinta. Antes de ir más lejos, la maquina debe estar segura de restaurar el símbolo cambiado por el original. Las etapas 3 y 4 tienen puestas en práctica francas que usan varios estados cada uno.

EJEMPLO 3.7 Aquí una maquina de turing M4 soluciona lo que llaman "problema de claridad de elemento". Le dan una lista de cadenas sobre {0,1} separadas por #s y su trabajo es q acepte si todas las cadenas con diferentes. El lenguaje es E= {#x1#x2#x3....#xi} la maquina M4 funciona comparando x1 con x2 por xi, entonces comparando x2 con x3 por xi, etc. una descripción informal de M4 la decisión de este lenguaje es la siguiente: M4="sobre entrada w: 1.- coloca una marca encima del símbolo de cinta de izquierda extrema. si este símbolo esta en blanco, acepta, si esta con #, continua con la siguiente etapa, de otro modo rechaza. 2.-escanea derecha al para el siguiente # y coloca una segunda marca en la cima del. Si # no es encontrado antes del símbolo en blanco, únicamente xi se presentara, entonces aceptara 3.-por zigzag compara las dos cadenas hacia la derecha del #s marcado. Si son iguales, rechaza. 4.-mueve en la de derecha de las dos marcas hacia el siguiente símbolo # a la derecha. Si el símbolo # no es encontrado antes que un símbolo en blanco, mueve en la de la marca de la izquierda hacia el siguiente # a su derecha y la marca # a la derecha después de. Esta vez si no # es disponible para la marca de la derecha, todas las cadenas son comparadas, entonces acepta. 5.- ir a la etapa 3 Esta máquina ilustra la técnica del marcado de símbolos en la cinta. En la etapa 2 la maquina coloca una marca por encima de el símbolo, en este caso #. En la implementación actual, la maquina tiene dos símbolos diferentes, # y #p, en esta cinta alfabeto. Como la maquina coloca una marca encima # significa que la maquina escribe el símbolo #p en ese lugar. Removiendo la marca significa que la maquina escribe el símbolo sin el punto. En general podemos querer colocar marcas sobre varios símbolos en la cinta. Para ello solo incluimos versiones de todos esos símbolos de la cinta con puntos en la cinta alfabeto. Podemos concluir de los ejemplos anteriores que los lenguajes descritos A, B, C, y E son decidable. Todo lenguaje de decidable es turing-reconocible, así que estos lenguajes son también turing-


reconocible. Demostrando un lenguaje que no es turing-reconocible pero decidable es más difícil, que hacemos en el CAPÍTULO 4 3.2 VARIANTES DE LAS MAQUINAS DE TURING Varias definiciones de máquina de turing abundan. Incluyendo versiones con múltiples cintas o no deterministas. Son llamadas variantes del modelo de la máquina de turing. El modelo original y sus razonables variantes todas tienen el mismo poder- reconocen la misma clase de lenguajes. En esta sección describiremos algunas de estas variantes y las pruebas de equivalencia en poder. Llamamos esta invariancia ciertos cambios en la definición "vigor". Ambos autómatas finitos y autómata de pushdown son en algo modelos robustos, pero las maquinas de turing tienen un grado asombroso de "vigor". Para ilustrar el "vigor" del modelo de la máquina de turing variaremos el tipo de función de transición permitido. En nuestra definición, la función de transición fuerza al índice para moverse de derecha a izquierda después de cada paso; el índice no simplemente se está quieto. Supóngase que tenemos permitida la habilidad de que la máquina de turing este quieta. la función de transición entonces tendría la forma g:QxT▬QxTx{L,R,S}. ¿Puede esta característica permitir a la máquina de turing reconocer lenguajes adicionales, así añadir a el poder del modelo? claro que no, debido a que podemos convertir cualquier TM con la característica "estar poner" a uno que no lo tiene. Hacemos así por re emplazamiento cada transición estar poner con dos transiciones, una mueve a la derecha y la segunda vuelve a la izquierda. Este es un pequeño ejemplo que contiene la llave para mostrar la equivalencia de las variantes de la máquina de turing. Para mostrar dos modelos que son equivalentes simplemente necesitamos mostrar que podemos simular uno por otro. Maquinas de turing multicinta Una maquina de turing multicinta es como una máquina de turing ordinaria con varias cintas. Cada cinta tiene su propio índice para leer y escribir. Inicialmente la entrada aparece en la cinta 1 y las otras empiezan en blanco, la función de transmisión es cambiada para permitirla lectura, escritura, y movimiento de los índices en todas las cintas simultáneamente, formalmente es Donde k es el número de cintas. La expresión Significa que si la maquina está en estado qi y el índice 1 en k lee los símbolos a1 por ak, la maquina va al estado qj, escribe el símbolo b1 por bk, y se mueve cada índice hacia la izquierda o derecha según especifique.las maquinas de turing multicinta parecen ser mas poderosas que una ordinaria, pero mostramos que son iguales en poder. Recuerde que dos maquinas son iguales si ambas reconocen el mismo lenguaje Teorema 3.8


Toda máquina de turing multicinta tiene un equivalente con una maquina de turing de una cinta. Prueba. Mostraremos como convertir TM M multicinta a un equivalente TM de una cinta. La idea clave es mostrar como simula M con S. Se dice que M tiene k cintas. Entonces S simula el efecto de las K cintas almacenando su información en su sola cinta. Este usa el nuevo símbolo # como un delimitador para separar el contenido de las diferentes cintas. Además del contenido de estas cintas, S debe mantener el recorrido de las ubicaciones de los índices. Hace así escribiendo un símbolo de cinta con un punto encima para marcar el lugar donde sería el índice en esa cinta. Piense en estas como cintas e índices "virtuales". Como antes, los símbolos "de puntos" son símbolos simplemente nuevos que han sido añadidos al alfabeto de cinta. la siguiente figura muestra como una cinta puede ser usada para representar tres cintas. fig 3.6 Representando tres cintas con una

S=" sobre entrada w=w1...wn: 1.-primero S pone su cinta en el formato que representa todas cintas de k de M. la cinta formateada contiene 2.-para simular un solo movimiento, S escudriña su cinta del primer #, que marca el fin izquierda, para (k+1)esimo #, que marca el fin derecho, para determinar los símbolos bajo los índices virtuales. Entonces S hace una segunda pasada para actualizar las cintas según la manera que esa función de transición M dicta. 3.-Si en cualquier S de punto mueve uno de los índices virtuales a la derecha en un #, esta acción significa que M ha movido al correspondiente índice en la anteriormente porción en blanco no leída de esa cinta. Así que S escribe un símbolo en blanco en esta célula de cinta y cambia el contenido de cinta, de esta célula hasta el más de la derecha #, una unidad a la derecha. Entonces la simulación continúa como antes. Corolario 3.9 Un lenguaje es turing-reconocible si y solo únicamente alguna maquina de turing multicapa la reconoce. Prueba. Un lenguaje turing-reconocible es reconocido por una ordinaria maquina de turing (de una sola cinta), cual es un caso especial de una maquina de turing multicinta. Eso demuestra una dirección de este corolario. La otra dirección sigue Del teorema 3.8


Maquinas de turing no determinativa Una maquina de turing no determinativa es definida en la manera esperada. en cualquier punto en computación la maquina puede proceder de acuerdo a varias posibilidades. La función de transición para una maquina de turing no determinativa tiene la forma El cómputo de una máquina de turing no determinativa es un árbol cuyas ramas corresponden diferentes posibilidades para la maquina. Si alguna rama del cómputo lleva al estado aceptar, la máquina acepta su entrada. si usted siente que la necesidad de revisar el no determinismo, la vuelta al sección 1,2 en la página 47. Ahora mostramos que él no determinismo no afecta el poder del modelo de la máquina de turing. Teorema 3.10 Toda máquina de turing no determinativa tiene un equivalente a una maquina de turing determinativa.

Idea de prueba Mostramos como podemos simular cualquier no determinativo TM N con una determinativa TM D.la idea detrás de la simulación es de tener D tratando todas ramas posibles de N computación no determinativa. Si D jamás encuentra el estado acepta en una de estas ramas, D acepta. De otro modo la simulación de D no terminara. Vimos la computación de n sobre una entrada w como un árbol. Cada rama del árbol representa una de las ramas del no determinismo. Cada nodo de árbol es una configuración de N. la raíz del árbol el inicio de la configuración. La TM D busca este árbol para la configuración de aceptación. Realizar esta búsqueda con cuidado es crucial por temor a que D falle de visitar el árbol entero. Un tentar, aunque malo, la idea es de tener D que explore el árbol utilizando la búsqueda de profundidad del primero.la estrategia de la búsqueda de la profundidad del primero va completamente abajo una rama antes de retroceder para explorar otras ramas. Si D fue de explorar el árbol en esta manera, D podría ir para siempre abajo de una rama infinita y perder una configuración que acepta en alguna otra rama. De ahí diseñamos D para explorar el árbol utilizando la anchura de la primera búsqueda en el lugar. Esta estrategia explora todas las ramas para la misma profundidad antes de ir a explorar cualquier rama de la siguiente profundidad. Este método garantiza que D visitara cada nodo en el árbol hasta encontrar la configuración de aceptación.

Prueba La simulación de TMD determinista tiene tres cintas. Teorema 3.8 por este acuerdo es equivalente a tener una sola cinta. D utiliza la máquina de sus tres cintas de una manera particular, como se ilustra en la siguiente figura. 1 cinta siempre contiene la cadena de entrada y nunca es alterada. 2 cintas mantienen una copia de las cintas N `s en alguna rama de su cálculo no determinista. 3 cintas hace un seguimiento de D `s ubicando en N` s no determinista árbol de computación.


Deja considerar en primer lugar la representación de los datos en la cinta 3. Cada nodo del árbol puede tener en la mayoría de los niños b, donde b es el tamaño de la más grande serie de posibles opciones dadas por N transición función. Para cada nodo del árbol nosotros asignamos una dirección que es una cadena sobre el alfabeto ∑b = {1,2, ..., b}. Asignamos 231 a la dirección del nodo que por llegar a partir de la raíz, va a su 2 º hijo, ir a ese nodo 3er niño y, finalmente, ir a ese nodo 1er niño. Cada símbolo en la cadena nos dice que las opciones para hacer el próximo, cuando la simulación de un paso en una rama en N computación no determinista. A veces, un símbolo que no corresponde a ninguna opción si son muy pocas opciones disponibles para una configuración. En caso de que la dirección no es válida y no corresponde a ningún nodo. La cinta 3 contiene más de una cadena ∑b. Representa la rama de N de cálculo de la raíz a la dirigida por el nodo de la cadena, a menos que la dirección no es válida. La cadena vacía es la dirección de la raíz del árbol. Ahora estamos listos para describer D. 1. Inicialmente 1 contiene la cinta de entrada w, y la cinta 2 y 3 están vacíos. 2. Copia de cinta 1 a cinta 2. 3. Utilice cinta de 2 a simular N con un w de entrada de una sucursal de su cálculo no determinista. Antes de cada paso de la N consulta el siguiente símbolo en la cinta de 3 a determinar qué opción de hacer entre los autorizados por la N transición función. Si no hay más símbolos permanecen en la cinta 3, o si esta opción no determinista no es válida, por abortar esta rama va a la etapa 4. También ir a la etapa 4 si se encuentra un rechazo de configuración. Si una configuración se encuentra la aceptación, aceptar la entrada. 4. Reemplazar la cadena en la cinta 3 con el siguiente cadena lexicográfica. Simular la siguiente rama de N cómputo por ir a la fase 2.

140 Capítulo 3 / Tesis de la iglesia-turing. Corolario 3.11 Una lengua es Turing-reconocible si y sólo si algunos no tan determinista TM y una dirección de este teorema sigue inmediatamente. La dirección siguiente de Teorema 3.10.


Podemos modificar la prueba del Teorema de 3,10 N de manera que si se detiene siempre en todas las ramas de la computación, D siempre se detiene. Decimos determinista o no una máquina de Turing, si decide poner fin a todas las ramas en todas las entradas. Ejercicio 3.3 le pide que modifique la prueba de esta manera para obtener el siguiente corolario de Teorema 3.10.

Corolario 3.12 Una lengua es decidible si y sólo si alguna máquina de Turing no determinista lo decide. Encuestadores Como mencionamos en una nota anterior, algunas personas utilizan el término recursivamente enumerable para el idioma Tirung-reconocible. Este término proviene de un tipo de máquina de Turing una variante llamada enumerador. Vagamente definidas, un enumerador es una máquina de Turing con una impresora adjunta. La máquina de Turing que puede utilizar la impresora como un dispositivo de salida para imprimir cadenas. Todos los tiempos de la máquina de Turing quieren añadir una cadena a la lista, envía la cadena a la impresora. Ejercicio 3.4 le pide que dé una definición formal de un enumerador. La siguiente figura muestra un esquema de este modelo.

Un enumerador comienza con una cinta de entrada en blanco. Si el enumerador no se detiene, puede imprimir una lista infinita de cadenas. Enumerados por el lenguaje E es la recopilación de toda la cadena que finalmente se imprime. Por otra parte, E puede generar las secuencias de la lengua en la podrá ordenar, en su caso con repeticiones. Ahora estamos listos para desarrollar la conexión entre los encuestadores y los idiomas de Turing-reconocible. Teorema 3.13 Una lengua es Turing-reconocible si y sólo si se enumera algunos enumerador.


En primer lugar, la prueba de demostrar que si tenemos un enumerador E que enumera una lengua A, TM O A. reconoce la TM M funciona de la siguiente manera. M = "entrada w: 1. Ejecutar E. Cada vez que una cadena de productos, comparar con w. 2. W Si nunca aparece en la salida de E de aceptar. " Evidentemente, M acepta las cadenas que aparecen en la lista E `s. Ahora hacemos la otra dirección. Si TM M reconoce una lengua A, podemos construir el siguiente E enumerador para A. Di que s1, s2, s3, ... es una lista de todos los posibles en la cadena. E = "hacer caso omiso de la entrada. 1. Repetir lo siguiente para I = 1, 2, 3, ... 2. M para ejecutar medidas que en cada entrada s1, s2, s3, ..., si. 3. Si aceptar cualquier cálculos, imprimir los correspondientes, sj. Si M acepta una cadena s, con el tiempo que aparecerá en la lista elaborada por E., de hecho, aparecerá en la lista hasta el infinito, porque muchas veces se ejecuta M desde el inicio de cada cadena para cada repetición de la etapa 1. Este procedimiento le da el efecto de funcionamiento de M en paralelo en todas las posibles cadenas de entrada. EQUIVALENCIA CON OTROS MODELOS Hasta ahora hemos presentado varias versiones del modelo de máquina de Turing y han demostrado que son equivalentes en el poder. Muchos otros modelos de computación de uso general se han propuesto. Algunos de estos modelos son muy similares a las máquinas de Turing, mientras que otros son muy diferentes. Todos comparten la característica esencial de las máquinas de Turing, a saber, el acceso sin restricciones a la memoria ilimitada, luego de distinguir los modelos más débiles, como autómatas finitos y autómatas pushdown. Sorprendentemente, todos los modelos con características que resultan ser equivalentes en el poder, siempre que cumplan determinados requisitos razonables. Por ejemplo, un requisito es la capacidad para llevar a cabo sólo una multa la cantidad de trabajo en un paso. 142 Capitulo 3 / Tesis de la iglesia-turing. Para entender este fenómeno considerar la simulación de análogos para lenguajes de programación. Muchos, como Pascal y LISP, se miran tranquilos y diferentes uno de otros estilos y estructuras. ¿Puede que algún algoritmo sea programado en uno de ellos y no en otros? -Por supuesto que no podemos compilar LISP en PASCAL y PASCAL en LISP, lo que significa que las dos lenguas describir exactamente la misma clase de algoritmos. Así que todos los demás lenguajes de programación son razonables. La amplia equivalencia de modelos computacionales tiene precisamente la misma razón. Cualquiera de los dos modelos computacionales que cumplan determinados requisitos razonables puede simular un otro y, por tanto, son equivalentes en el poder.


Este fenómeno de equivalencia tiene un importante corolario filosófico. Aunque hay muchos diferentes modelos computacionales, la clase de los algoritmos que describen es única. Considerando que cada modelo tiene una cierta arbitrariedad a su definición, las clases de algoritmos que describe es natural porque es la misma clase que otros modelos de describir. Este fenómeno también ha tenido profundas consecuencias para las matemáticas, como se muestra en la siguiente sección.

3.3 LA DEFINICIÓN DE ALGORITMO Informalmente hablando, un algoritmo es un conjunto de instrucciones sencillas para llevar a cabo algunas tareas. Común en la vida cotidiana, a veces se llaman algoritmos de procedimientos o recetas. Los algoritmos también desempeñan un papel importante en las matemáticas. Las matemáticas, la literatura antigua contiene las descripciones de los algoritmos para una variedad de tareas, tales como la búsqueda de números primos y máximo común divisores. En los algoritmos de la matemática contemporánea abundan. Aunque los algoritmos han tenido una larga historia en la matemática, el concepto de algoritmo en sí no estaba definido con precisión hasta el siglo XX. Antes de eso, los matemáticos tenían una noción intuitiva de lo que los algoritmos y se basa este concepto cuando se utilizan y los describen. Pero esa noción intuitiva, fue insuficiente para obtener una comprensión más profunda de los algoritmos. La siguiente historia de cómo se relaciona la definición precisa de algoritmo es fundamental para un importante problema matemático. Los Problemas de Hilbert En 1900 el matemático David Hilbert entregó una nueva dirección sobre el famoso congreso internacional de matemáticos en París. En su conferencia, él identificó veintitrés problemas matemáticos y los planteó como desafío para el siglo que venía. El décimo problema en su lista se refirió a algoritmos. Antes de describir ese problema, los anteriores discuten brevemente sobre polinomios. Un polinomio es una suma de términos, donde su producto consta de ciertas variables y de una constante llamado un coeficiente por ejemplo: Es un término con el coeficiente 6 y 6x+3yz2+3xy2-x3-10 es un polinomio con cuatro términos sobre las variables X, Y y Z. Una raíz de un polinomio es una asignación de valores a sus variables de modo que el valor del polinomio sea 0. Este polinomio tiene una raíz en x-5, y-3 y z=0. Esta raíz es una raíz integral porque a todas las variables se asignan valores de número entero. Algunos polinomios tienen una raíz integral y algunos no.


El décimo problema de Hilbert era idear un algoritmo que realice pruebas para saber si un polinomio tiene una raíz de número entero. Él no utilizó el algoritmo del término pero algo “un proceso según el cual puede ser determinado por un número finito de operaciones” es interesante de la manera en que él expresó este problema, Hilbert postulo explícitamente que un algoritmo “esté ideado”. Él asumió que en cada algoritmo debe existir – y alguien debe encontrarlo. Pues ahora no sabemos de ningún algoritmo que exista para esta tarea; es algorítmico insoluble. Para los matemáticos el período llegaría a esta conclusión con su concepto intuitivo de algoritmo habría sido virtualmente imposible. El concepto intuitivo puede haber sido adecuado para dar los algoritmos para cierta tarea, pero era inútil para demostrar que ningún algoritmo existe para una tarea particular. Probar que no existe un algoritmo requiere tener una definición clara del algoritmo. El progreso en cuanto al décimo problema tenía que esperar para esa definición. La definición vino en 1936 con los documentos de Alonso Church y Alan Turing. Church utilizó un sistema teórico llamado el cálculo de la lambda para definir algoritmos. Turing la hizo con sus máquinas. Estas dos definiciones fueron demostradas para ser equivalentes. Esta conexión entre la noción informal del algoritmo y la definición exacta ha venido ser llamada la tesis de la ChurchaTuring. La tesis Church-Turing proporciona la definición del algoritmo necesaria para resolver el décimo problema de Hilbert. En 1970 Yuri Matijasevic en el trabajo de Martin Davis, Hilary Putnam y Julia Robinson, demostraron que ningún algoritmo existe para la prueba si un polinomio tiene raíces integrales. En el capítulo 4 desarrollamos las técnicas básicas para probar que estos y otros problemas son insolubles algorítmicamente. La ultima frase del problema 10 de Hilbert in nuestra terminología. Entonces hacerlos ayuda a introducirnos a algunos temas que exploramos en los capítulos 4 y 5. Entonces: D= {p| p es un polinomio con una raíz integral} El décimo problema de Hilbert pregunta esencialmente si el sistema D es correcto. La respuesta es negativa. En cambio podemos demostrar que D es reconocible. Antes de hacer así pues, dejaremos de consideran los anteriores problemas por un problema más simple. Es un análogo del décimo problema de Hilbert´s para los polinomios que tienen solamente una sola variable, tal como 4x3-2x2+x-7. Entonces D1- {p| p es polinomio sobre c con una raíz integral} Aquí está una máquina de Turing M1 que reconoce D1: M1=” la entrada es p poli nómico sobre el x variable 1. Evalúe p donde x tenga sucesivamente a los valores 0, 1, - 1, 2, - 2, 3, - 3. Si en cualquier momento el polinomio evalúa a 0, acepte.” Si p una raíz integral, M1 la encuentra y la acepta eventualmente. Si p no tiene una raíz integral, M1 funcionará por siempre. Para el caso multivariable, podemos presentar una máquina de Turing similar M que reconozca D. Aquí, M pasa a través de todos los ajustes posibles de sus variables a los valores integrales. M1 y M son reconocidos pero ninguno es correcto. Podemos convertir M1 para ser correcto D1 porque


podemos calcular los límites dentro de los cuales las raíces de un solo polinomio variable deben limitar y restringir la búsqueda a éstos. En el problema 3.18 le piden demostrar que las raíces de polinomio mienten entre los valores: + - k; cmax/C1 Donde k es el número de términos en el polinomio, cmax es el coeficiente con los valores absolutos más grandes. Y c1 es el coeficiente del término más alto de la orden. Si una raíz no se encuentra dentro de estos límites, la máquina los rechaza. El teorema de Matijasevic´s demuestra que el cálculo de tal límite para los polinomios multivariables es imposible. Terminología Para Describir Las Máquinas De Turing Hemos llegado a un punto de Turín en el estudio de la teoría del cómputo. Continuamos hablando de las máquinas de Turing, pero nuestro foco verdadero de ahora en adelante está en algoritmos. Es decir, la máquina de Turing sirve simplemente como modelo exacto para la definición del algoritmo. Saltaremos sobre la teoría extensa de las Máquinas de Turing y nos pasaremos muchas horas en la programación baja de las máquinas de Turing. Necesitamos solamente ser bastante cómodos con las máquinas de Turing creer que capturan todos los algoritmos. Con eso en mente los dejaremos estandarizar la manera en que describimos algoritmos de la máquina de Turing. Inicialmente, pedimos: ¿cuál es el nivel de detalle correcto a dar al describir tales algoritmos? Los estudiantes hacen comúnmente esta pregunta. Especialmente al preparar soluciones a los ejercicios y a los problemas. Dejaremos entre ver tres posibilidades. La primera es la descripción formal que explica por completo los estados de las máquinas de Turing, función de transición, y así sucesivamente. Es el más bajo, la mayoría del detallado, llano de la descripción. El segundo es uno de alto nivel de la descripción, llamado la descripción de la puesta en práctica. En cuál utilizamos prosa inglesa que describa la manera que la máquina de Turing mueve su cabeza y la manera que almacena datos en su cinta. A este nivel no damos los detalles de estados o de la función de transiciones. El tercero es la descripción de alto nivel, en donde utilizamos prosa inglesa para describir un algoritmo, no haciendo caso del modelo de la puesta en práctica. A este nivel no necesitamos mencionar cómo la máquina maneja su cinta o cabeza. En este capítulo hemos dado descripciones formales y de la puesta en práctica-nivel de varios ejemplos de las máquinas de Turing. Práctica con ayudas más bajas de las descripciones de la máquina de Turing usted entiende las máquinas de Turing y gana confianza al usarlas. Una vez que usted se siente confiado, las descripciones de alto nivel son suficientes. Ahora fijamos un formato y una notación para describir las máquinas de Turing. La entrada a una máquina de Turing es siempre una secuencia pues la entrada nosotros debe primero representar ese objeto como secuencia. Las secuencias pueden representar fácilmente polinomios, gramáticas, gráficos, los autómatas y cualquier combinación de esos objetos. Una máquina de Turing se puede programar para descifrar la representación y poder interpretarla de la manera que pensamos. Nuestra notación para descifrar de un objeto 0 en su representación como secuencia es (0). Si tenemos varios objetos 01, 02… 0k, denotamos su codificación en una sola secuencia cerca (01,


02… 0k), la codificación sí mismo podemos ser hechos de muchas maneras razonables. No importa cuál escogemos, porque una máquina de Turing puede traducir siempre una codificación a otra. En nuestro formato, describimos algoritmos de la máquina de Turing con un segmento mellado del texto dentro de cotizaciones. Rompemos el algoritmo en etapas, cada uno que implica generalmente muchos pasos individuales del cómputo de las máquinas de Turing. Indicamos que el algoritmo describe la entrada a la máquina. Si la descripción de la entrada es la codificación de los objetos como en (a), la máquina de Turing primero prueba implícitamente si la entrada codifica correctamente un objeto el dormitorio deseado y lo rechaza si no lo esta. Ejemplo 3.14 Deje A ser el lenguaje que consiste en todas las secuencias que representan los gráficos sin señas que están conectados. Recuerde que un gráfico está conectado si cada nodo se puede alcanzar de cada otro nodo viajando a lo largo de los bordes del gráfico. Escribimos: A= {(G) |G es un gráfico sin señas conectado} Lo que sigue es una descripción de alto nivel de TM M que decida A. M= “en el (G) de la entrada, la codificación de una tabla G: 1. Seleccione el nodo de los abetos de G y márquelo. 2. Repita la etapa siguiente hasta que no se marque ningunos nuevos nodos. 3. Para cada nodo en G, márquelo si es atado por un borde a un ánodo que se marque ya. 4. Explore todos los nodos de G para determinar si todos están marcados. Si son, acepte; si no rechace.” Para la práctica adicional, dejaremos examinar algunos detalles del nivel de implementación de la máquina de Turing M. Generalmente nosotros no damos este nivel de detalle en el futuro y de usted necesidad de esto, a menos que sea específicamente petición en un ejercicio. Primero, debemos entender cómo el (G) codifica el gráfico como secuencia. Considere una codificación que sea una lista de los nodos de G seguidos por una lista de los nodos de G seguidos por una lista de los bordes de cada nodo del G. sea número decimal, y cada borde es el par de números decimales que representen los nodos en las dos puntos finales del borde. La figura siguiente representa este gráfico y su codificación.


CUADRO 3.10 Una tabla G y su (G) de la codificación Cuando M recibe el (G) de la entrada, primero comprueba para determinar que la entrada es la codificación apropiada de un cierto gráfico. De ser así pues, M explora la cinta para estar seguro que hay la lista dos y que están en el apropiado. La primera lista debe ser una lista de números decimales distintos, y la segunda debe ser una lista de pares de números decimales. Entonces M comprueba varias cosas. Primero, la lista del nodo no debe contener ninguna repetición, y en segundo lugar, cada nodo que aparece en la lista del borde debe también aparecer en la lista del nodo. Para el primer, podemos utilizar el procedimiento dado en el ejemplo 3.7 para TM 1 que compruebe particularidad del elemento. Los trabajos similares de un método para el segundo cheque, si w pasa este revisión, es la codificación de alguna tabla G. esta verificación termina la revisión de la entrada, y M se enciende para efectuar 1. Para la etapa 1, M marca el primer nodo con un punto en el dígito extremo izquierdo. Para la etapa 2, M explora la lista de nodos para encontrar un nodo denotado n1 y señalarlo por medio de una bandera marcándolo diferentemente, subrayando el primer símbolo. Entonces M explora la lista otra vez para encontrar un n2 y las líneas de este también. Ahora M explora la lista de bordes. Para cada borde, prueba de M si los dos nodos subrayados n1 y el n2 son los que aparecen en ese borde. Si son, los puntos n1 de M quitan rayas de el, y van encendido del principio de la etapa 2. Si el no están, M comprueban el borde siguiente en la lista. Si no hay bordes, {n1, n2} no es ahora llama este n2 del nodo. Repite los pasos en este párrafo para comprobar, como antes si el nuevo par {n1, n2} es un borde. Si no hay nodos punteados, n1 no se ata a ninguna nota punteada. Entonces M fija las rayas de modo que n1 sea el párrafo. Si no hay nodos declarados cenagal, M no ha podido encontrar ningún nodo nuevo para puntear, así que se mueve encendido para efectuar 4. Para la etapa 4, M explora la lista de nodos para determinar si todos están punteados. Si son, incorpora el estado del aceptado; si no incorpora el estado del rechazo. Esto termina la descripción de TM M.

EJERCICIOS


3.1 Este ejercicio trata de TM M2 cuya descripción y diagrama de estado aparezca en el ejemplo. 3.4. En cada uno de las piezas, dé la secuencia de configuraciones que el M2 incorpore cuando está comenzado en la secuencia indicada de la entrada. a. 0. b. 00. c. 000. d. 000000. 3.2 Este ejercicio trata de TM M1 cuya descripción y diagrama de estado aparezca en el ejemplo. 3.5. En cada uno de las piezas dé la secuencia de configuraciones que M1 incorpore cuando está comenzado a la secuencia indicada de la entrada. a. 11. b. 1#1. c. 1##1. d. 10#11. e. 10#10. 3.3 Modifique la prueba del teorema 3.10 en la página 138 para obtener el resultado que demuestra que un lenguaje es correcto si algún TM no determinista la decide. (Tu voto en contra asume el teorema siguiente sobre árboles, si cada nodo en un árbol tiene finito muchos niños y mismo la rama del árbol tiene finito muchos nodos, el árbol sí mismo tiene finito muchos nodos.) 3.4 Dé una definición formal de un empadronador. Considerando ser un tipo de dos-partes la máquina de Turing que utiliza su segunda cinta como la impresora. Incluya una definición del lenguaje utilizado. 3.5 Examine la definición formal de una máquina de Turing para contestar a las preguntas siguientes, y explique su razonamiento. a. ¿Puede una máquina de Turing un espacio en blanco del símbolo su cinta? b. ¿Puede el alfabeto de la cinta ser el sano como el alfabeto de la entrada? c. ¿Puede una cabeza de la máquina de Turíng nunca estar en la misma localización en dos pasos sucesivos? d. ¿Puede una máquina de Turín contener apenas un solo estado?


3.6 En el teorema 3.13 demostramos que un lenguaje es reconocible por Turín si algún empadronador del lo enumera. ¿Por qué no uso un algoritmo más simple para la dirección delantera de la prueba? Como antes, el S1, s2… es una lista de todas las secuencias en alpha*. E=” no hace caso de la entrada. 1. Repita el siguiente para I=1, 2, 3…. 2. Compruebe M en el S1. 3. Si acepta, imprima s2.” 3.7 Explique porqué lo que sigue no es una descripción de una máquina de Turing del lenguaje. Mbad= ” la entrada es un p polinomio sobre xk de las variables x1 ..... 1. Intente todos los ajustes posibles de x1….xk él valores de número entero 2. Evalúe p en todos estos ajustes. 3. Si ninguno de estos ajustes evalúan a 0, acepte; si no, rechace.”

3.8 Dé las descripciones puestas en práctica-nivel de las máquinas de Turing que deciden a los idiomas siguientes sobre el alfabeto {0, 1}: a. {w| w contiene un número igual de 0s y de 1s} b. {w| w contiene dos veces tanto 0s y 1s} c. {w| w no contiene dos veces tanto 0s y 1s} PROBLEMAS 3.9 Deje un k-PDA ser un autómata que tiene apilados de k. Así un 0-PDA es un NFA y un 1-PDA es un PDA convencional. Usted sabe ya que 1-PDA es de gran alcance (reconozca una clase más grande si las idiomas) que 0-PDAs. a. Demuestre que 2-PDAs son más de gran alcance que 1-PDAs. b. Demuestre que 3-PDAs no son más de gran alcance que 2-PDAs. (simule una cinta de la máquina de Turín con dos apilados.)


3.10 Diga que una máquina de Turín escribe solo una vez si es solo-graba a TM que pueda alterar cada cuadrado de la cinta a lo más una vez (porción incluyendo de la entrada de la cinta). Demuestre que este modelo de máquina variable de Turín es equivalente al modelo de máquina ordinario de Turing. (En primer lugar considere el caso por el que la máquina de Turing pueda alterar cada al del cuadrado de la cinta lo más dos veces posible. Utilice las porciones de cinta.) 3.11 Una máquina de Turing con la cinta doble infinita es similar a una máquina ordinaria de Turing salvo que su cinta es infinita él la izquierda así como a la derecha. La cinta se llena inicialmente de los espacios en blanco a excepción de la porción que contiene la entrada. El cómputo se define como de costumbre salvo que la cabeza nunca encuentra un extremo a la cinta mientras que se mueve hacia la izquierda. Demuestre que este tipo de máquina de Turing reconoce la clase de Turing-máquina. Demuestre que este tipo de máquina de Turing reconoce la clase de idiomas Turing-reconocibles.

3.12 Una máquina de Turing con reajuste izquierdo es similar a una máquina ordinaria de Turing salvo que la función de transición tiene la forma: {R, reajuste} Si (1, a)= (r, b, REAJUSTE), cuando que la máquina está en el estado q que lee una a, la cabeza de la máquina salta al extremo izquierdo de la cinta después del ir escribe b en la cinta e incorpora el estado T. Observe que estas máquinas no tienen la capacidad generalmente de mover el un símbolo principal dejado. Demuestre que las máquinas de Turing con reajustes izquierdos reconocen la clase de idiomas Turing-reconocibles. 3.13 Una máquina de Turing con la estancia puesta en vez de izquierda es similar a una máquina ordinaria de Turing salvo que la función de transición tiene la forma:

En cada punto la máquina puede mover su derecho principal o lo dejó decir la misma posición. Demuestre que esta variante de la máquina de Turín no es equivalente a la versión generalmente. ¿Qué clase de idiomas reconocen estas máquinas?

3.14 Demuestre que la colección de idiomas correctos es cerrada bajo operaciones de: a. Unión. b. Encadenamiento. c. Estrella.


d. Complementación. e. Intersección

3.15 Demuestre que la colección de idiomas Turing-reconocibles es cerrada bajo operaciones de: a. Unión. b. Encadenamiento. c. Estrella. d. Intersección.

3.16 Demuestre que un lenguaje es correcto si algún empadronador enumera la lenguaje en orden lexicográfico. 3.17 Demuestre que solo-grabar a TM el cañón escribe en la porción de la cinta que contiene la secuencia de la entrada puede reconocer solamente idiomas regulares. 3.18 Deje para ser un polinomio con una raíz en x=X0. Deje el cmax ser el valor absoluto más grande de un ci. Demuestre esto:

3.19 Deje A ser la lengua que contiene solamente la sola secuencia s, donde: 0 Si no existe bien S= 1 Si existe bien.

¿Es “A” correcto? ¿Por qué o por qué no? (Nota que la respuesta depende de sus convicciones religiosas)


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.