You are on page 1of 9

Curso de doctorado: Mquinas y mentes: introduccin a la teora de la Turingcomputabilidad Profesor: Juan Jos Acero Curso: 1994/1995

1. MQUINAS DE TURING (TEORA)

2. MQUINAS DE TURING (PRCTICA)

1.1. Tesis de Turing 1.2. Qu es una mquina de Turing? 1.3. El problema de la indicidibilidad en las mquinas de Turing 2.1. Tarea 1. Buscar la primera casilla en blanco y parar 2.2. Tarea 2. Encontrar el primer 2 hacia la derecha y parar 2.3. Tarea 3. Localizar el segundo 2 y parar 2.4. Tarea 4. Parar ante dos 1 consecutivos y parar 2.5. Tarea 5. Buscar el patrn 2112 y parar 2.6. Tarea 6. Recordar una expresin, recordarla y copiarla 2.7. Tarea 7. Computar el siguiente nmero de uno dado anteriormente 2.8. Tarea 8. Sumar dos nmeros separados por un indicador y parar 2.9. Tarea 9. Multiplicar dos nmeros separados por un indicador y parar

En este trabajo se presentan una serie de cuestiones tericas y prcticas sobre la nocin de mquina de Turing. En la primera parte se tratan dos tesis centrales para comprender qu es una mquina de Turing, as como los conceptos tericos que aparecen asociados a ellas. En la segunda parte se realizan algunas de las tareas tpicas que pueden desarrollar las mquinas de Turing. Estas tareas son especialmente tiles para comprender la nocin de computacin, y en general para conocer cmo funcionan las mquinas de Turing.

I. MQUINAS DE TURING. (TEORA) I.1. TESIS DE TURING


Tesis 1. Todo problema que pueda resolverse algortmicamente, puede ser resuelto por una mquina de Turing Conceptos asociados a la Tesis 1 Algoritmo: conjunto de reglas que aplicadas de forma mecnica pueden resolver un problema de una clase dada. Fundamentalmente en contextos matemticos. Clculo: Toda operacin que se desarrolle mediante manipulacin de smbolos en un medio de representacin dado. Las operaciones simblicas son atmicas, esto es, absolutamente simples y se realizan en un computador. La accin del computador va a depender de los smbolos que tenga el sistema y del estado interno en el que se encuentra el computador. Tesis 2. Toda funcin computable puede ser computada por una mquina de Turing. Todo problema que puede ser resuelto por mtodos algortmicos puede ser resuelto por una mquina de Turing Conceptos asociados a la Tesis 2. Funcin computable: Clases de problemas que pueden ser resueltos algortmicamente, esto es, si al algoritmo se le dan los argumentos correspondientes, entonces computar esos valores terminando la tarea en un nmero finito de pasos.

I.2.Qu es una mquina de Turing?


Una mquina de Turing es una mquina ideal -formalmente hablando se trata de un algoritmo- en dos aspectos bsicos. La primera idealizacin se debe a que su memoria es ilimitada. La segunda idealizacin se produce por el hecho de una mquina de Turing nunca comete errores. A efectos de representar una mquina de Turing, podemos imaginarla como una cinta infinita dividida en cuadros sobre la que se realizan las operaciones de manipulacin de smbolos. La mquina dispone de un lector que realiza las siguientes funciones:

i. ii. iii.

Est situado en todo momento ante uno de los cuadros de la cinta Lee lo que hay en ese cuadro. Lleva a cabo una instruccin en el momento siguiente.

Una descripcin formal de una mquina de Turing la presentara como una tabla de la siguiente forma: Q1 S1 S2 S1 q1 M S1 q1 M Q2 ..Qn S1 q2 M S2 q2 M S1 qn M S2 qn M

Sm Sm

S1 q2 M Sm q1 M

S m q2 M Sm q2 M

S m qn M Sm qn M

M = movimientos del lector de la mquina de Turing [L= izquierda y R= derecha] q = estado computacional en el que se encuentra la mquina de Turing S = smbolo con el que realiza los cmputos la mquina de Turing Lo que en esta tabla expresa es una funcin por la cual, a cada par formado por un smbolo y un estado, la mquina asocia un smbolo, un estado y un movimiento que se representa mediante el triplo {S1 q1 M}

I.3. El problema de la indecidibilidad en las mquinas de Turing


La idea central de Turing es que all donde exista un procedimiento de decisin habr una mquina de Turing que pueda realizarlo. Ahora bien, la existencia de problemas indecidibles significara que para esa clase de problemas no existira una mquina de Turing que respondiera si o no cuando esta mquina se aplicara a una cinta donde tenemos el problema dado. En particular, existe un problema indecidible para cualquier mquina de Turing. Este es el problema conocido como el problema de la parada para la mquina de Turing. Dada una mquina T y una cinta en blanco C, siempre podremos realizar la siguiente pregunta: Parar T iniciando sus cmputos sobre C en un punto en un nmero finito de pasos? Esto es, dado cualquier problema Sabra T de ante mano que ese problema tiene solucin en un nmero finito de pasos?, o lo que es lo mismo, si al problema de la parada lo denominamos P. Podr T solucionar P en un nmero finito de pasos? La respuesta es que el problema es indecidible.

II. MQUINAS DE TURING. (PRCTICA)


Los smbolos que se van a utilizar para esquematizar los diseos de las mquinas de Turing son los siguientes:

La mquina dispone de una cinta lectora sobre la que se escriben, borran o modifican smbolos. Esta cinta tiene una memoria infinita; lo que permite, en principio, realizar un nmero infinito de operaciones.

Para realizar las operaciones con smbolos la mquina utiliza un lector que se sita sobre cada una de las casillas de la cinta. Este lector puede desplazarse a derecha o a izquierda de la cinta para operar con los smbolos
se representan los movimientos del lector sobre la Mediante este dibujo cinta. La inclusin en el dibujo de la letra R indicar que el lector se mueve hacia la derecha, y la inclusin de la letra L indicar que se mueve a la izquierda. Los movimientos de la mquina tambin se indican mediante flechas Para poder operar, la mquina debe de disponer de un vocabulario o sistema de smbolos que debe ser especificado antes de realizar el diseo de la misma. Por ejemplo: S= {I, *, A} En este caso el sistema de smbolos con el que opera la mquina estara compuesto por un palote, un asterisco y la letra A. La inscripcin de un smbolo en una casilla de la cinta se representa del siguiente modo: I Lo que se quiere indicar aqu es que cuando el lector encuentra un cuadrado en blanco escribe un palote y se desplaza hacia la izquierda o hacia la derecha. La inclusin de un hexgono nos indicar el estado computacional en el que se encuentra una mquina, esto es, el conjunto de operaciones que la mquina est realizando en un momento dado.

Tarea I: Buscar la primera casilla en blanco y parar

S={ ,

rt

Sta

Stop

Tarea II: Encontrar el primer 2 hacia la derecha y parar

S={

2 1}
2 1 1

Start

L 1

L
2

Stop

Tarea III: Localiza el segundo 2 y parar

S={

2 1}
2 2 1

Start

L
2

,1

L
2

,1
Stop

Tarea IV: Parar ante dos 1 consecutivos

S={

1}
1 1 1

Start

Stop

Tarea V: Buscar el patrn 2112

S={

2 1}
2 1 1 2

1 Start 2 1 1

R
2

R
2

Stop

Tarea VI: La mquina lee una expresin, la recuerda y la copia

S={

1 0 A B}
0 0 1 0 1

R
Start 1 B

0 B, A

0,1

L
0

A 1

B 0

,1

Stop

Tarea VII: Computar el siguiente nmero de uno dado.


La mquina inicia el cmputo en el inicio de la funcin, de forma que al terminar los cmputos tenemos escrito en la cinta de la mquina el nmero en el que se iniciaba la serie y el siguiente.

S = { ,1, , A }
1
Start
A

1 1
A

R
A 1 1

1 1

Stop

Tarea VIII: Suma dos nmeros separados por un indicador

S={

, |, , A,}
| | |
A

Start

A,

A,

| A

Stop

Tarea IX: Mquina que multiplica dos nmeros separados por un indicador

S={

,|, , A, }
| | |
A

,|,
Start A

L
A |

L R
| | |

R
Stop

,|,

You might also like