la máquina de turing mt - umafjv/uma/lcc/web/teaching/talf/... · máquina de turing urm, ram,...
TRANSCRIPT
![Page 1: la máquina de Turing MT - UMAfjv/UMA/LCC/web/Teaching/TALF/... · Máquina de Turing URM, RAM, basados en lenguajes. el formalismo propuesto por Turing recibió el nombre de máquina](https://reader033.vdocuments.pub/reader033/viewer/2022042916/5f54bb1fff6edb4a952d4d22/html5/thumbnails/1.jpg)
la máquina de Turing (MT)como sustituto formal del
concepto de algoritmo
0 0 r 10 1 l 01 0 h 11 1 0 0
![Page 2: la máquina de Turing MT - UMAfjv/UMA/LCC/web/Teaching/TALF/... · Máquina de Turing URM, RAM, basados en lenguajes. el formalismo propuesto por Turing recibió el nombre de máquina](https://reader033.vdocuments.pub/reader033/viewer/2022042916/5f54bb1fff6edb4a952d4d22/html5/thumbnails/2.jpg)
índice de materias• fundamentos matemáticos• introducción histórica•• modelos de cálculomodelos de cálculo• lenguajes WHILE y LOOP• funciones µ-recursivas• teorema de equivalencia• indexaciones y universalidad• problemas no resolubles
MMááquina de quina de TuringTuringURMURM, , RAMRAM,,
basados en lenguajesbasados en lenguajes
![Page 3: la máquina de Turing MT - UMAfjv/UMA/LCC/web/Teaching/TALF/... · Máquina de Turing URM, RAM, basados en lenguajes. el formalismo propuesto por Turing recibió el nombre de máquina](https://reader033.vdocuments.pub/reader033/viewer/2022042916/5f54bb1fff6edb4a952d4d22/html5/thumbnails/3.jpg)
el formalismo propuesto por Turingrecibió el nombre de máquina
máquina
funcionamientoautomático
objetividad
creatividad
![Page 4: la máquina de Turing MT - UMAfjv/UMA/LCC/web/Teaching/TALF/... · Máquina de Turing URM, RAM, basados en lenguajes. el formalismo propuesto por Turing recibió el nombre de máquina](https://reader033.vdocuments.pub/reader033/viewer/2022042916/5f54bb1fff6edb4a952d4d22/html5/thumbnails/4.jpg)
la máquina de Turing contienelos elementos básicos para el cómputo
condicionales
saltos
almacenamiento
X
programa
![Page 5: la máquina de Turing MT - UMAfjv/UMA/LCC/web/Teaching/TALF/... · Máquina de Turing URM, RAM, basados en lenguajes. el formalismo propuesto por Turing recibió el nombre de máquina](https://reader033.vdocuments.pub/reader033/viewer/2022042916/5f54bb1fff6edb4a952d4d22/html5/thumbnails/5.jpg)
el concepto de MT se ilustracon un símil mecánico
... 1 1 0 1 1 0 0 0 1 0 1 0 0 ...
![Page 6: la máquina de Turing MT - UMAfjv/UMA/LCC/web/Teaching/TALF/... · Máquina de Turing URM, RAM, basados en lenguajes. el formalismo propuesto por Turing recibió el nombre de máquina](https://reader033.vdocuments.pub/reader033/viewer/2022042916/5f54bb1fff6edb4a952d4d22/html5/thumbnails/6.jpg)
ingredientes básicospara operar con MT’s
estado inicial (cM)
estado de parada
U = {a1, ..., an}
(a0 ≡ símbolo vacío)
expresión de cinta
- paso de computación- instrucción parcial de cálculo- instrucción de cálculo
configuración
cuadrado escrutado (CE)∈[-∞,∞]
cinta infinita de cálculo
conjunto finito deestados
![Page 7: la máquina de Turing MT - UMAfjv/UMA/LCC/web/Teaching/TALF/... · Máquina de Turing URM, RAM, basados en lenguajes. el formalismo propuesto por Turing recibió el nombre de máquina](https://reader033.vdocuments.pub/reader033/viewer/2022042916/5f54bb1fff6edb4a952d4d22/html5/thumbnails/7.jpg)
el conjunto de instruccionesestá simplificado
Pasos de computación
ak → permite escribir el símbolo k-ésimo en el CE
r → situar la MT sobre el cuadrado a la derecha del CE
l → situar la MT sobre el cuadrado a la izquierda del CE
h → dar el cómputo por terminado
![Page 8: la máquina de Turing MT - UMAfjv/UMA/LCC/web/Teaching/TALF/... · Máquina de Turing URM, RAM, basados en lenguajes. el formalismo propuesto por Turing recibió el nombre de máquina](https://reader033.vdocuments.pub/reader033/viewer/2022042916/5f54bb1fff6edb4a952d4d22/html5/thumbnails/8.jpg)
la configuración define completamente el estado del cómputo
la línea de la configuración k es la líneade la MT de la forma
C B(A) b c'
K=(A, B, C)
- A es el CE actual- B es la expresión de cinta actual- C es el estado actual
![Page 9: la máquina de Turing MT - UMAfjv/UMA/LCC/web/Teaching/TALF/... · Máquina de Turing URM, RAM, basados en lenguajes. el formalismo propuesto por Turing recibió el nombre de máquina](https://reader033.vdocuments.pub/reader033/viewer/2022042916/5f54bb1fff6edb4a952d4d22/html5/thumbnails/9.jpg)
la instrucción de cálculoestá representada por una tabla
• la k-ésima instrucción parcial es una subtabla
k es el estado actualsi es el contenido del CEbi es la instrucciónki es el próximo estado
• la instrucción de cálculo es la unión de las instrucciones parciales
k s0 b0 k0
k s1 b1 k1
...
k sn bn kn
![Page 10: la máquina de Turing MT - UMAfjv/UMA/LCC/web/Teaching/TALF/... · Máquina de Turing URM, RAM, basados en lenguajes. el formalismo propuesto por Turing recibió el nombre de máquina](https://reader033.vdocuments.pub/reader033/viewer/2022042916/5f54bb1fff6edb4a952d4d22/html5/thumbnails/10.jpg)
terminología relativa a MT’s
dada una MT M, un número A y una función B
• colocar M en la expresión de cinta B sobre el cuadrado A equivale a hacer K0=(A, B, CM)
• M transita en un paso de cómputo de Kn a Kn+1, con Kn+1=F(Kn)
• M cesa de operar en la expresión de cinta Bn y sobre el cuadrado An si tras el n-ésimo paso Kn=(An, Bn, Cn), y la línea de la configuración Kn
contiene la instrucción h
![Page 11: la máquina de Turing MT - UMAfjv/UMA/LCC/web/Teaching/TALF/... · Máquina de Turing URM, RAM, basados en lenguajes. el formalismo propuesto por Turing recibió el nombre de máquina](https://reader033.vdocuments.pub/reader033/viewer/2022042916/5f54bb1fff6edb4a952d4d22/html5/thumbnails/11.jpg)
expresiones matemáticas de laconfiguración consecutiva
+≠∧≠
−=
b=rAlbrbA
b=lAA'
si1 si
si1
≠∧≠∧=∨=∧
≠=
lbrbAxblbrbx=AxB
AxxBxB'
= si) ( si)(
si)()(
'' cC =
![Page 12: la máquina de Turing MT - UMAfjv/UMA/LCC/web/Teaching/TALF/... · Máquina de Turing URM, RAM, basados en lenguajes. el formalismo propuesto por Turing recibió el nombre de máquina](https://reader033.vdocuments.pub/reader033/viewer/2022042916/5f54bb1fff6edb4a952d4d22/html5/thumbnails/12.jpg)
la simplicidad del modelo contrasta con la complejidad de la computación• función sucesor en decimal
0 * l 0 1 * h 1 2 * 1 1 0 0 1 1 1 0 r 1 2 0 l 2 0 1 2 1 1 1 r 1 2 1 2 1 0 2 3 1 1 2 r 1 2 2 3 1 0 3 4 1 1 3 r 1 2 3 4 1 0 4 5 1 1 4 r 1 2 4 5 1 0 5 6 1 1 5 r 1 2 5 6 1 0 6 7 1 1 6 r 1 2 6 7 1 0 7 8 1 1 7 r 1 2 7 8 1 0 8 9 1 1 8 r 1 2 8 9 1 0 9 0 2
1 9 r 1
2 9 0 2
![Page 13: la máquina de Turing MT - UMAfjv/UMA/LCC/web/Teaching/TALF/... · Máquina de Turing URM, RAM, basados en lenguajes. el formalismo propuesto por Turing recibió el nombre de máquina](https://reader033.vdocuments.pub/reader033/viewer/2022042916/5f54bb1fff6edb4a952d4d22/html5/thumbnails/13.jpg)
dos MT’s son equivalentes si siguenla misma secuencia de estados
• M1 equivale a M2 si existe una aplicaciónbiunívoca ϕ de los estados de M1 en los de M2, verificándose que
– toda línea de M1 de la forma
c a b c’se traduce en una línea de M2
ϕ(c) a b ϕ(c’)
– cM2 = ϕ(cM1)
![Page 14: la máquina de Turing MT - UMAfjv/UMA/LCC/web/Teaching/TALF/... · Máquina de Turing URM, RAM, basados en lenguajes. el formalismo propuesto por Turing recibió el nombre de máquina](https://reader033.vdocuments.pub/reader033/viewer/2022042916/5f54bb1fff6edb4a952d4d22/html5/thumbnails/14.jpg)
interpretación de la equivalencia
• MT’s equivalentes generan la misma secuencia de pares (Ai, Bi) si se las coloca en la misma expresión de cinta y sobre el mismo cuadrado
• si M1 da lugar a las configuraciones (Ai , Bi , Ci), y M2 equivale a M1 por la aplicación ϕ, y se coloca a M2 en B sobre el cuadrado A, M2 genera las configuraciones (Ai , Bi , ϕ(Ci))
![Page 15: la máquina de Turing MT - UMAfjv/UMA/LCC/web/Teaching/TALF/... · Máquina de Turing URM, RAM, basados en lenguajes. el formalismo propuesto por Turing recibió el nombre de máquina](https://reader033.vdocuments.pub/reader033/viewer/2022042916/5f54bb1fff6edb4a952d4d22/html5/thumbnails/15.jpg)
equivalencia en sentido amplio implica la misma transformación de símbolos
• M1 sobre U1 equivale en sentido amplio a M2 sobre U2 si existen aplicaciones biunívocas ϕ y ψtal que– ψ es una aplicación de U1 en U2 que verifica
ψ(r) = r ψ(l) = l ψ(h) = h– ϕ es una aplicación de los estados de M1 en los de M2
de manera que toda línea de M1c a b c’
se traduce en una línea de M2ϕ(c) ψ (a) ψ (b) ϕ(c’)
– cM2 = ϕ(cM1)
![Page 16: la máquina de Turing MT - UMAfjv/UMA/LCC/web/Teaching/TALF/... · Máquina de Turing URM, RAM, basados en lenguajes. el formalismo propuesto por Turing recibió el nombre de máquina](https://reader033.vdocuments.pub/reader033/viewer/2022042916/5f54bb1fff6edb4a952d4d22/html5/thumbnails/16.jpg)
otros modelos de cómputomás evolucionados
![Page 17: la máquina de Turing MT - UMAfjv/UMA/LCC/web/Teaching/TALF/... · Máquina de Turing URM, RAM, basados en lenguajes. el formalismo propuesto por Turing recibió el nombre de máquina](https://reader033.vdocuments.pub/reader033/viewer/2022042916/5f54bb1fff6edb4a952d4d22/html5/thumbnails/17.jpg)
el modelo URM(Unlimited Registers Machine)
• funcionamiento: un programa de i líneas se
ejecuta con unos datos de entrada que se sitúan en
los registros 1 a k; comenzando por la línea 1, si
la instrucción es de salto se continúa en la línea
especificada, en caso contrario se continúa en la
línea 2 y así sucesivamente hasta alcanzar la línea
i+1; el contenido del registro 1 es el resultado del
cómputo
![Page 18: la máquina de Turing MT - UMAfjv/UMA/LCC/web/Teaching/TALF/... · Máquina de Turing URM, RAM, basados en lenguajes. el formalismo propuesto por Turing recibió el nombre de máquina](https://reader033.vdocuments.pub/reader033/viewer/2022042916/5f54bb1fff6edb4a952d4d22/html5/thumbnails/18.jpg)
el conjunto de instrucciones de URMes más cercano a los lenguajes actuales
• instrucciones (<n> → contenido del registro n)
P(n) <n> = <n> + 1
D(n) <n> = <n> − 1 (<n> ≠ 0)
O(n) <n> = 0
C(m, n) <n> = <m>
J[i] salto a línea i
J(m)[i] salto a línea i si <m> = 0
![Page 19: la máquina de Turing MT - UMAfjv/UMA/LCC/web/Teaching/TALF/... · Máquina de Turing URM, RAM, basados en lenguajes. el formalismo propuesto por Turing recibió el nombre de máquina](https://reader033.vdocuments.pub/reader033/viewer/2022042916/5f54bb1fff6edb4a952d4d22/html5/thumbnails/19.jpg)
ejemplo de programa en URM
1 J(3)[4]
2 D(3)
3 J(1)
1 ≡ si el registro 3 contiene 0 terminar el cómputo
2 ≡ restar una unidad al contenido del registro 3
3 ≡ seguir computando por la línea 1
(este programa realiza el mismo cómputo que O(3))
![Page 20: la máquina de Turing MT - UMAfjv/UMA/LCC/web/Teaching/TALF/... · Máquina de Turing URM, RAM, basados en lenguajes. el formalismo propuesto por Turing recibió el nombre de máquina](https://reader033.vdocuments.pub/reader033/viewer/2022042916/5f54bb1fff6edb4a952d4d22/html5/thumbnails/20.jpg)
modelo RAM(Random Access Machine)
• conjunto de instrucciones
LOAD READ
STORE WRITE
ADD JUMP
SUB JGTZ
MULT JZERO
DIV HALT
![Page 21: la máquina de Turing MT - UMAfjv/UMA/LCC/web/Teaching/TALF/... · Máquina de Turing URM, RAM, basados en lenguajes. el formalismo propuesto por Turing recibió el nombre de máquina](https://reader033.vdocuments.pub/reader033/viewer/2022042916/5f54bb1fff6edb4a952d4d22/html5/thumbnails/21.jpg)
modelos basado enlenguajes no estructurados
Variables de entrada: Xi
Variables locales: Zi
Variable de salida: Y
Etiquetas: [ A | B | C | D | ... ]
Instrucciones: V ← V + 1
V ← V − 1
IF V ≠ 0 GOTO L
Ejemplo:
[A] X1←X1 − 1
Y←Y + 1
IF X1≠0 GOTO A
![Page 22: la máquina de Turing MT - UMAfjv/UMA/LCC/web/Teaching/TALF/... · Máquina de Turing URM, RAM, basados en lenguajes. el formalismo propuesto por Turing recibió el nombre de máquina](https://reader033.vdocuments.pub/reader033/viewer/2022042916/5f54bb1fff6edb4a952d4d22/html5/thumbnails/22.jpg)
función ‘suma de dos números’
X3 ← X3 + 1IF X1 ≠ 0 GOTO AIF X3 ≠ 0 GOTO B
[A] X1 ← X1 − 1Y ← Y + 1IF X1 ≠ 0 GOTO A
[B] IF X2 ≠ 0 GOTO CIF X3 ≠ 0 GOTO D
[C] X2 ← X2 − 1Y←Y + 1IF X2 ≠ 0 GOTO C
[D] X3←X3 − 1
![Page 23: la máquina de Turing MT - UMAfjv/UMA/LCC/web/Teaching/TALF/... · Máquina de Turing URM, RAM, basados en lenguajes. el formalismo propuesto por Turing recibió el nombre de máquina](https://reader033.vdocuments.pub/reader033/viewer/2022042916/5f54bb1fff6edb4a952d4d22/html5/thumbnails/23.jpg)
modelos basados enlenguajes estructurados
• lenguaje imperativo con notación tipo Pascal o Módula-2
• maneja como tipo de datos sólo naturales
• los identificadores de variables se forman con X seguido de un número mayor que cero
• las instrucciones básicas son la asignación, el sucesor, el predecesor y la inicialización
• para formar una secuencia con estas instrucciones se usa el separador 'punto y coma'
• la única estructura de control es un bucle indefinido con control al principio (tipo while)
![Page 24: la máquina de Turing MT - UMAfjv/UMA/LCC/web/Teaching/TALF/... · Máquina de Turing URM, RAM, basados en lenguajes. el formalismo propuesto por Turing recibió el nombre de máquina](https://reader033.vdocuments.pub/reader033/viewer/2022042916/5f54bb1fff6edb4a952d4d22/html5/thumbnails/24.jpg)
modelos basados enlenguajes estructurados
• un código es una secuencia entre un principio (begin) y un fin (end)
• un programa Q es una terna (n, p, C), donde: n es el número de variables de entrada (con identificadores X1, X2, …, Xn), p es el número de variables que usa y C es el código
• semántica similar a la de Pascal o Modula-2, con diferencias:
− no hay instrucciones de entrada ni de salida
− las variables que no son de entrada son inicializadas a cero
• un programa en este lenguaje expresa una relación funcional entre entradas y una salida; una única función de Nn en N se puede asociar a cada programa Q en este lenguaje