24
la máquina de Turing (MT) como sustituto formal del concepto de algoritmo 0 0 r 1 0 1 l 0 1 0 h 1 1 1 0 0

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

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

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

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

í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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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