Uso de las técnicas de programación para las máquinas de Turing
1. Ingeniería en Sistemas Computacionales
Materia:
Autómatas y Lenguajes Formales Avanzada
Unidad VIII
Uso de las técnicas de programación para las máquinas de
Turing
Alumnos:
Dirk Hans Krakaur Floranes
Omar Ávila Martínez
Docente:
Rafael Alvarado Corona
Junio 13, 2020
2. Introducción
En este trabajo presentamos algunos lenguajes de programación que
resultan equivalentes entre sí y con la máquina de Turing con el objetivo
de computabilidad y complejidad computacional a un ámbito más familiar
para el estudiante de computación. Para lo cual utilizaremos técnicas e
instrucciones de programación usuales, como el enunciado de asignación
o la iteración, así como conceptos de teoría de lenguajes de
programación. Se enfatizará la equivalencia entre la máquina de Turing,
los lenguajes estructurados y los no estructurados. De esta manera
obtenemos como resultado no solo un acercamiento de la máquina de
Turing a los lenguajes de programación actuales sino un ejemplo
avanzado de la interacción entre las teorías de la computación y de
lenguajes de programación que resulta ser una evidencia matemática
formal de la validez de la tesis de Church-Turing.
3. Explica las extensiones de la máquina de Turing básica
Son modelos de computadora que están relacionados con las máquinas de Turing y que cuentan con la misma
funcionalidad en el reconocimiento de lenguajes de manera similar a la versión básica.
Equivalencia entre las MT de una sola cinta y de varias cintas
Los lenguajes recursivamente enumerables son los que son aceptados por una MT de una sola etapa. Por ser la
MT de una sola cinta un caso particular de la de varia cintas es verídico que las MT de varias cintas aceptan
todos los lenguajes recursivamente enumerables. En este sentido se cumplirá este teorema:
“Todo lenguaje aceptado por una MT de varias cintas es recursivamente enumerable”
4. Explica las extensiones de la máquina de Turing básica
Tiempo de ejecución en la construcción que pasa de muchas cintas a una
Es el número de pasos que k cintas M para la entrada w realiza antes de pararse. Cuando M no se
para con la entrada w, entonces el tiempo de ejecución de M para w es infinito.
El tiempo invertido por la MT de una cinta N del para simular n movimientos de la MT de k cintas M es :
O (n2)
5. Máquinas de Turing no deterministas
Es aquella que tiene una función de transición δ tal que para el estado q y símbolo de cinta X, δ (q,X) es un
conjunto de tuplas:
{(q1,Y1,D1), (q2,Y2,D2), . . . , (qk,Yk,Dk)}
Donde k es cualquier número entero finito. La MTN puede elegir, en cada paso, cuál de las tuplas será el
próximo movimiento. No obstante, no se puede seleccionar un estado de una, un símbolo de cinta de otra y
una dirección de una tercera.
Si MN es una máquina de Turing no determinista, entonces existe una máquina de Turing determinista MD
tal que:
L(MN) = L(MD).
Explica las extensiones de la máquina de Turing básica
6. Describe la máquina de Turing de varias cintas
Máquina de Turing multicinta
La MT define su movimiento dependiendo del símbolo que está leyendo cada uno de sus cabezales, da reglas
de sustitución para cada uno de los símbolos y dirección de movimiento para cada uno de los cabezales.
Inicialmente la MT empieza con la entrada en la primera cinta y el resto de las cintas en blanco.
La MT con múltiples cintas En el modelo multi-cintas hay k cintas diferentes, cada una dividida en celdas o
casillas, como se muestra en la figura que se muestra a continuación
7. Inicialmente, la cadena de entrada se coloca en la primera cinta y las demás cintas están llenas de blancos. En un paso
computacional, la unidad de control cambia el contenido de la casilla escaneada en cada cinta y realiza luego uno de los
desplazamientos ---+, +- o -. Esto se hace de manera independiente en cada cinta; la unidad de control tiene entonces k
"visores" que actúan independientemente en cada cinta. La función de transición tiene la siguiente forma:
Ó(q, (al' a2 , a3 ,···, ak)) = (p, (bl , DI)' (b2 , D2 ), (b 3 , D3 ), ••• , (bk, Dk)),
donde los ai Y los bi son símbolos del alfabeto de cinta r, y cada Di es un desplazamiento ---+, +- Ó -. Simulación. A pesar
de que el modelo multi-cinta parece, a primera vista, más poderoso que el modelo estándar, resulta que una MT con
múltiples cintas se puede simular con una MT multi-pista. A continuación bosquejaremos el procedimiento de
simulación.
Una MT con k cintas se simula con una MT que actúa sobre una única cinta dividida en 2k + 1 pistas. Cada cinta de la
máquina multi-cinta da lugar a dos pistas en la máquina simuladora: la primera simula la cinta propiamente dicha y la
segunda tiene todas sus celdas en blanco, excepto una, marcada con un símbolo especial X, que indica la posición actual
del visor de la máquina original en dicha cinta. La pista adicional de la máquina simuladora se utiliza para marcar, con un
símbolo especial Y, las posiciones más a la izquierda y más a la derecha de la unidad de control en la máquina original.
Para simular un solo paso computacional, la nueva máquina requiere hacer múltiples recorridos a izquierda ya derecha,
actualizando el contenido de las pistas y la posición de los marcadores X y Y.
Describe la máquina de Turing de varias cintas
8. Conclusiones
En este trabajo hemos presentado tres lenguajes de programación equivalentes a la máquina de Turing, el
primero, LTuring, modela de manera directa el mecanismo operacional de una máquina de Turing, puesto
que un programa en este lenguaje es esencialmente una definición de la función de transición de una
máquina. Para lograr una identificación directa de la programación con las máquinas de Turing hemos
presentado el lenguaje While así como su equivalencia con ´estas usando como puente el lenguaje Goto,
formalismo reminiscente de los antiguos lenguajes no estructurados como Cobol, Fortran o Basic.
La equivalencia entre Goto y While es de interés por sí sola pues nos permitió demostrar de una manera
rigurosa y sin apelar al uso de diagramas de flujo, el famoso teorema de la programación estructurada de
B¨ohm-Jacopini. Algunas cuestiones interesantes acerca de los programas While, por ejemplo, la existencia
y programación de un auto intérprete, contraparte de la maquina universal de Turing, se han omitido.
9. Referencias
Eugene Xavier, S.P. (2004). Theory of Automata, Formal Languages and Computation. Nueva Delhi. New Age
International
Brena, R. (2013). Autómatas y lenguajes: un enfoque de diseño. Distrito Federal: McGraw-Hill Interamericana.
C. B¨ohm y G. Jacopini, Flow diagrams, Turing machines and languages with only two formation rules,
Communications of the ACM 9(5) (1966) 366–371.
J. E. Hopcroft, R. Motwani, y J. D. Ullman, Introduction to Automata Theory, Languages, and Computation, 2 ed.,
Addison-Wesley Publishing Company, 2001.