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

Modelos Urm

Embed Size (px)

Citation preview

Page 1: Modelos Urm

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: Modelos Urm

í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: Modelos Urm

el formalismo propuesto por Turingrecibió el nombre de máquina

máquina

funcionamientoautomático

objetividad

creatividad

Page 4: Modelos Urm

la máquina de Turing contienelos elementos básicos para el cómputo

condicionales

saltos

almacenamiento

X

programa

Page 5: Modelos Urm

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: Modelos Urm

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: Modelos Urm

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: Modelos Urm

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: Modelos Urm

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: Modelos Urm

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: Modelos Urm

expresiones matemáticas de laconfiguración consecutiva

+≠∧≠

−=

b=rAlbrbA

b=lAA'

si1 si

si1

≠∧≠∧=∨=∧

≠=

lbrbAxblbrbx=AxB

AxxBxB'

= si) ( si)(

si)()(

'' cC =

Page 12: Modelos Urm

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: Modelos Urm

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: Modelos Urm

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: Modelos Urm

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: Modelos Urm

otros modelos de cómputomás evolucionados

Page 17: Modelos Urm

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: Modelos Urm

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: Modelos Urm

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: Modelos Urm

modelo RAM(Random Access Machine)

• conjunto de instrucciones

LOAD READ

STORE WRITE

ADD JUMP

SUB JGTZ

MULT JZERO

DIV HALT

Page 21: Modelos Urm

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: Modelos Urm

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: Modelos Urm

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: Modelos Urm

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