09:23
00
Temas
09:23
11
Objetivos 1) Comprender la importancia que tiene la Máquina de Turing para la Ciencia de la Computación. 2) Definir máquinas de Turing unicinta y multicinta, para reconocer lenguajes y para realizar procedimientos.
09:23
22
David Hilbert (1862, 1943)
Hilbert formuló su famosa lista de 23 problemas esenciales para el progreso en las matemáticas. Uno de esos problemas es el Entscheidungsproblem o problema de la decisión que trata de descubrir un método general para decidir si una fórmula lógica es verdadera o falsa.
La meta de Hilbert era crear un sistema matemático formal "completo" y "consistente", en el que todas las aseveraciones pudieran plantearse con precisión. Su idea era encontrar un algoritmo que determinara la verdad o falsedad de cualquier proposición en el sistema formal. Para dar respuesta al problema decisorio de Hilbert, se produjeron casi simultáneamente (alrededor de 1935) cuatro trabajos: 1. La teoría de funciones recursivas (S. Kleene, 1939) 2. Teorema de incompletitud (Kurt Gödel ,1931) 3. El -cálculo (A. Church, 1935) 4. Las máquinas de Turing (A. Turing, 1936) 09:23
33
Alan Turing, 1937, publicó un trabajo sobre números calculables que puede considerarse en parte como el origen de la Informática Teórica. Turing estaba convencido de que no existía un algoritmo para el problema de decisión planteado por Hilbert y su intención era demostrar dicha no existencia. Alan Turing (1912-1954) Introdujo la máquina de Turing (MT) como un modelo matemático abstracto que permitió formalizar el concepto de algoritmo. El modelo en el que se inspiró fue el de una persona real llevando a cabo un cálculo mecánico, por ejemplo una multiplicación de dos grandes números en el sistema decimal. La noción Turing-computabilidad puede considerarse como la base de la programación imperativa. 09:23
44
Una Máquina de Turing es un autómata que consiste de: • •
Una unidad de control Una memoria auxiliar que es una cinta infinita con acceso relativamente no-restringido. La cabeza lectora/grabadora de la cinta puede moverse a lo largo de la cinta en ambas direcciones leyendo y/o escribiendo el contenido de un cuadrado uno a uno.
Cinta .... Infinita Cabeza de lectura / escritura Unidad de Control
09:23
....
La cinta almacena inicialmente la entrada y subsecuentemente la máquina de Turing usa su cinta como almacenamiento operacional. 55
Una Máquina de Turing es:
T = (Q, ,, ,q0 ,F) donde:
Q es un conjunto finito y no vacío de estados. es el alfabeto de entrada, no vacío. es el alfabeto de la cinta, no vacío, . q0 Q es el estado inicial. F Q es el conjunto de estados finales. es la función de transición directa. Es una proyección: Q x en subconjuntos finitos de Q x x {D,I,N}
09:23
66
El funcionamiento de la Máquina de Turing está dado por la función de transición directa: (q,A1 ) = (p,A2 ,d) significa que: 1) La unidad de control de la Máquina de Turing está actualmente en el estado qQ y el símbolo A1 se lee mediante la cabeza de la cinta. 2) Al realizar un movimiento atómico, la unidad de control de la Máquina de Turing cambia al estado pQ, el símbolo A1 se reemplaza por A2, y la cabeza lectora/escritora se mueve un cuadrado en dirección d {D, I, ,N}. d = D la cabeza se mueve un cuadrado a la derecha. d = I la cabeza se mueve un cuadrado a la izquierda. d = N la cabeza no se mueve. 09:23
77
Diagrama de Transición 1.
Conjunto de nodos correspondientes a los estados de MT. •
Un estado
•
Estado de inicio
•
Estado final
2. Una transición se representa mediante arcos que unen los nodos, etiquetados de la siguiente manera:
X,Y, D q
r
Función de transición (q, X) = (r, Y, D) 09:23
88
Tabla de Transición
(q0, X) = (q1, Y, D)
q0
Estados
Símbolos pertenecientes a
X q1 , Y, D
Y
…..
q1 … qk
Estados Finales
q0 q1 09:23
99
INTERPRETACIONES 09:23
COMO RECONOCEDORA DE UN LENGUAJE: Dada una cadena x* *, como entrada a T, puede suceder que la máquina de Turing se detenga o no. Si T se detiene, con su unidad de control en estado q, se dice que T acepta x si qF y que T rechaza x si q F. Si T no se detiene, entonces se dice que ni acepta ni rechaza a x. Los lenguajes reconocidos por máquinas de Turing reciben el nombre de lenguajes recursivamente numerables.
10 10
INTERPRETACIONES 09:23
COMO UN PROCEDIMIENTO: considérese una máquina T y una cadena x *. T realizará una serie de computaciones y eventualmente se detendrá con una cadena y * en su cinta. Esto será así para cada posible cadena de entrada. De tal modo, T establece una relación entre sus entradas y sus salidas. Para cada posible x * produce a lo sumo un y *, es decir, define una función parcial F: * *. Las funciones definidas mediante este mecanismo reciben el nombre de funciones Turing-computables.
11 11
L={0n 1n / n ≥1}
q0
0,X,D
0,0,D Y,Y,D
q1
q4
Y,Y,I
1,Y,I
q2
Y,Y,D
X,X,D
q3
B,B,N
q5
0,0,I
T = ({q0 ,q1 ,q2 ,q3 ,q4 ,q5 } , {0,1} , {0,1,B,X,Y} , , q0 , {q5 }) δ (q0,0) = (q1,X, D) δ (q1,0) = (q1,0, D) δ (q1,Y) = (q1,Y, D) δ (q1,1) = (q2,Y, I) δ (q2,Y) = (q2,Y, I) 09:23
δ (q2,X) = (q3,X, D) δ (q2,0) = (q4,0, I) δ (q3,Y) = (q3,Y, D) δ (q3,B) = (q5,B, N) δ (q4,0) = (q4,0, I) δ (q4,X) = (q0,X, D)
12 12
La máquina de Turing que suma dos números naturales expresados en notación unaria. T = ({q0 ,q1 ,q2 ,q3 } , {1,+} , {1,B,+} , , q0 , {q3 })
1
1
1
1 +
1
+
...
+ 1B
B
1,1,D q0 q0
+,1,D
q1
1 q0 , 1, D
q1
+,B,N
q2
+ q2 , +, D q0 , 1, D
q1 , +, I
q3 q2 09:23
B,B,I
q3
B
Estado Final: q3
q3 ,B,I q3 ,B,N
13 13
Es una descripción instantánea de la máquina de Turing. Se llama configuración de una MT a una terna (q,,i) siendo q un estado, una cadena de símbolos de ( es la cadena que está en ese momento en la cinta) i es un número natural que representa la distancia desde el primer símbolo de hasta el símbolo que está examinando la MT. Un movimiento de una MT T, se define como sigue:
Sea (q, A1 A2 ...An , i) una configuaración de MT con 1 i n+1 Si 1 i n y (q,Ai ) = (p,A,D) entonces: (q,A1 A2 ..An ,i) ├─ (p,A1 A2 ...Ai-1 AAi+1 ...An ,i+1), MT imprime el símbolo A y se mueve a la derecha. Si (q,Ai ) = (p,A,I) con 2 i n entonces: (q,A1 A2 ...An ,i) ├─ (p,A1 A2 ..Ai-1 AAi+1 ..An ,i-1), T imprime el símbolo A y se mueve a la izquierda. 09:23
14 14
Si i = n+1 la máquina está leyendo un blanco (esta en la celda siguiente a la cadena impresa en la cinta), puede especificarse un movimiento a la derecha o a la izquierda. Si hay una instrucción (q,B) = (p,A,D) entonces: (q,A1 ...An ,n+1) ├─(p,A1 A2 ...An A,n+2)
Si la instrucción (q,B) = (p,A,I) entonces: (q,A1 ...An ,n+1) ├─(p,A1 A2 ...An A,n)
09:23
15 15
L={0n 1n / n ≥1}
q0
0,X,D
0,0,D Y,Y,D
q1
q4
Y,Y,I
1,Y,I
q2
Y,Y,D
X,X,D
q3
B,B,N
q5
0,0,I
Las configuraciones de MT correspondiente al procesamiento de 0011 es: (q0,0011,1),(q1,X011,2),(q1,X011,3),(q2,X0Y1,2),(q4,X0Y1,1),(q0,X0Y1,2), (q1,XXY1,3),(q1,XYY1,4),(q2,XXYY,3),(q2,XXYY,2), (q3 ,XXYY,3),(q3 ,XXYY,4), (q3 ,XXYYB,5) para en estado final. 09:23
16 16
T1
T2
TK-1
Tk
U.C
.
09:23
Consta de un número arbitrario (aunque finito) de cintas y de cabezas de lectura/escritura por cinta. Cada cabeza de lectura/escritura se desplaza de manera independiente. es el alfabeto de entrada y es el alfabeto de las cintas. Una palabra w* de entrada de largo n se colocan en las posiciones 1, . . ., n de la primera cinta. Las siguientes posiciones (n + 1, n + 2, . . .) de la primera cinta contienen el símbolo B. Las restantes cintas contienen el símbolo z0 en posición 1 y B en las posiciones 2, 3, . .. 17 17
Al comenzar, la máquina se encuentra en el estado q0, y cada cabeza lectora está en la posición 1 de su cinta.
(qi, a1, …, ak)=(qj,b1,…,bk,D,…,I) Significa que:
09:23
si la máquina está en el estado qi y, las cabezas desde la 1 a la k están leyendo los a1 a ak, la máquina pasa al estado qj, escribe b1 a bk en las cintas desde la 1 a la k respectivamente y, mueve cada cabeza hacia la izquierda , derecha o no mueve.
18 18
Una Máquina de Turing multicinta es:
TM = (Q, ,, ,q0 ,F) donde:
Q es un conjunto finito y no vacío de estados. es el alfabeto de entrada, no vacío. es el alfabeto de la cinta, no vacío, {zo,B} . q0 Q es el estado inicial. F Q es el conjunto de estados finales. es la función parcial. : Q x k Q x k x {D,I,N}k
donde k es el número de cintas 09:23
19 19
Las funciones de transición de una máquina de Turing multicinta se representan por una terna separada por barras, donde cada elemento de la terna es un conjunto de símbolos que expresan la lectura, escritura y movimientos respectivos. y1 , ... , yk / z1 , ... , zk / d1 , ... ,dk
q
r
donde: yr : representa el símbolo leído en Tr con r =1,…, k. zr: representa el símbolo que se escribe en Tr con r =1,…, k. dr { D, I, N } con r =1,…, k. 09:23
20 20
La máquina de Turing multicinta (k = 2) que reconoce el lenguaje:
L(G) = { an bn cn / n 1} es la siguiente: a,B/a,*/D,D
q0
a,z0/a,z0/N,D
q1
b,B/b,B/N,I
b,*/b,*/D,I
q2
c,*/c,*/D,D
c, z0/c,z0/N,D q 3
B,B/B,B/N,N
q4
TM = ({q0,q1,q2,q3,q4}, {a,b,c},{a,b,c,*,z0,B}, ,q0 ,{q4})
09:23
δ (q0,a,zo) = (q1,a,zo,N, D) δ (q1,a,B) = (q1,a,*,D, D) δ (q1,b,B) = (q2,b,B, N,I) δ (q2,b,*) = (q2,b,*,D, I) δ (q2,c,zo) = (q3,c,zo, N,D)
δ (q3,c,*) = (q3,c,*,D, D) δ (q3,B,B) = (q4,B,B, N,N) 21 21
Turing demostró que la actuación de una máquina de Turing arbitraria MT0 sobre una sucesión cualquiera w de símbolos de su cinta puede ser simulada por otra máquina, la Máquina Universal de Turing (MTu).
La idea básica de una máquina universal se trata sencillamente de un intérprete, ya que en la cinta de la máquina universal se puede codificar el programa (es decir, la función de transición) de toda otra máquina y los datos con que se desea ejecutar el programa. La máquina universal puede simular entonces, paso a paso, la ejecución de dicho programa con esos datos. 22 09:23 22
Mediante un complejo sistema de marcadores, la máquina universal lleva la cuenta del estado codificado de T que se está consultando. Turing demostró que el efecto de la máquina universal sobre la sucesión de símbolos x es exactamente el que produciría T sobre la misma sucesión.
δ (1,1) = (1,1, D) δ (1,+) = (2,+, D) δ (2,1) = (3,+, I) δ (2,B) = (4,B, I) δ (3,+) = (1,1, D) δ (4,+) = (4,B, N)
La cinta se divide en dos secciones principales: A la izquierda está la descripción codificada de la máquina T A la derecha está la sucesión de símbolos x que T encontrará al ir inspeccionando. La máquina universal se construye entonces de modo que su cabeza vaya 23 y venga entre las dos secciones, izquierda y derecha de la cinta. 09:23 23
Estados: pueden representarse por números naturales (1, 2, ... , n) expresados en notación binaria. Función de transición: se reproduce la tabla correspondiente, usando:
Se comienza la cadena con ccc
Luego se reproduce cada campo de una fila de la tabla de transición, separándolos por una c.
Se separa cada fila de la tabla de transición por cc.
La función de transición no especificadas se representan en la codificación con 0.
09:23
La codificación de la tabla finaliza con ccc.
24 24
Suma de dos números en notación unaria. 1,1,D 1
+
B
1
0
01
Símbolo 1
Estado
+,1,D
3 +,B,N
2
B,B,I
001
1
1, 1, D
2, 0, D
010
2
3, 0, I
011
3
1, 1, D
100
4
4, 01, N
4, 01, I
4
ccc 001 1 D c 010 0 D c 0 cc 0110 I c 0 c 10001 I cc 0 c 0011 D c 0 cc 0 c 100 01 D c 0 ccc
Comienzo
09:23
Separa las filas de la tabla de transición
Separa los campos
110111
Fin
25 25
Dado un programa (o algoritmo o Máquina de Turing) A y un valor de la entrada X, ¿podemos saber siempre si A se parará o no?
No hay manera de saber, en general y en un tiempo finito, si la ejecución de un programa dado con una entrada dada terminará o no.
09:23
26 26
Lenguajes recursivamente numerables
Máquina de Turing
Funciones Turingcomputables.
MT Unicinta
MT Multicinta
Todos los lenguajes aceptados por una MT con una cinta también serán aceptados por una MT con varias cintas y viceversa. 09:23
MT universal Emula el comportamiento de cualquier otra MT. Se trata, pues, de la primera noción de computador con programa almacenado de la historia. 27 27
El famoso problema de decisión planteado por Hilbert fue inmediatamente demostrado insoluble por Turing usando sus máquinas: si la veracidad de las fórmulas de la lógica de primer orden fuera soluble por una MT, ello implicaría que también sería decidible el problema de la parada. TESIS DE CHURCH-TURING “La clase de problemas que se pueden resolver utilizando el sistema de programación de Turing es exactamente el mismo que los que se pueden resolver utilizando cualquier sistema de programación razonable”. Si una función no es Turing-computable, no existe una solución (o algoritmo) para la misma en ningún sistema de computación.
Por lo tanto, es un hecho universalmente aceptado que la Máquina de Turing es una contrapartida formal, totalmente satisfactoria, de noción de algoritmo. 28 09:23 28