Está en la página 1de 56

Escuela de Ingenierı́a Civil Informática

Facultad de Ingenierı́a

Lenguajes y Autómatas
Capı́tulo III: Máquinas de Turing y computabilidad

Fabián Riquelme Csori


fabian.riquelme@uv.cl

2018-II

1
Máquinas de Turing
Máquinas de Turing universales
Computabilidad y Complejidad

Index

Máquinas de Turing
Máquina de Turing
Máquina de Turing en notación modular
Variaciones de máquinas de Turing

Máquinas de Turing universales


Máquina de Turing universal

Computabilidad y Complejidad
Tesis de Church-Turing
NP-completitud basada en Máquinas de Turing

2
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Historia de la lógica

3
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Historia de la lógica

4
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Historia de la lógica

5
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Historia de la lógica

6
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Jerarquı́a de Chomsky

Tipo Lenguaje Autómata Reglas prod. gramatical


0 LRE Máquina de Turing α → β (sin restricciones)
1 LSC A. linealmente acotado αAβ → αγβ
2 LLC A. con pila A→γ
3 LR A. finito A → aB o A → a

Las máquinas de Turing:


I Mantienen el espı́ritu de los autómatas.
I Son formales y sencillos de describir.
I Constituyen un modelo general de computación.

7
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Entscheidungsproblem: “El” Problema de decisión


¿Existe un algoritmo que pueda aplicarse a cualquier sentencia
matemática y nos diga si esa sentencia “SI” o “NO” es cierta?
I David Hilbert y Wilhelm Ackermann (1928). Grundzüge der theoretischen Logik
(Principios de lógica matemática). Springer-Verlag.

Alonzo Church y Allan Turing demostraron independientemente


que lo anterior no es posible.
I Church, “An unsolvable problem of elementary number theory”, American
Journal of Mathematics, 58 (1936), pp 345–363.
I Church, “A note on the Entscheidungsproblem”, Journal of Symbolic Logic, 1
(1936), pp 40–41.
I Turing, “On computable numbers, with an application to the
Entscheidungsproblem”, Proceedings of the London Mathematical Society,
Series 2, 42 (1936-7), pp 230–265. Errata aparecida en Series 2, 43 (1937), pp
544–546.
I Emil Leon Post, “Finite Combinatory Processes–Formulation I”, Journal of
Symbolic Logic, 1 (1936).
8
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Introducción

I Las máquinas de Turing (TM) son un mecanismo de


computación que permite llevar a cabo cualquier cómputo que
podamos hacer en nuestro PC (Tesis de Church-Turing).
I Una TM opera con un cabezal dispuesto sobre una cinta que
tiene comienzo pero no tiene fin (“memoria infinita”).
I Cada celda de la cinta almacena un carácter, y cuando se
examina un carácter de la celda nunca visto, éste contiene un
blanco (#).
I El cabezal se suele ubicar inicialmente al final de la entrada
dispuesta en la cinta.
I Como los autómatas, la TM está en un estado, de un
conjunto finito de posibilidades.

9
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Máquinas de Turing (TM)

I Al leer cada carácter de la cinta, pasa a un estado y lleva a


cabo una acción sobre la cinta: cambiar el carácter que leyó
por uno nuevo, o mover el cabezal hacia la izquierda o
derecha.
I Como puede escribir la cinta, la TM no tendrá estados finales
o no finales, pues puede dejar escrita la respuesta al detenerse.
I Existe un estado especial h (por “halt” o “stop”), donde la
computación de la TM se detiene.
I La computación también se interrumpe (sin llegar al estado h)
si la TM trata de moverse hacia la izquierda de la primera
celda de la cinta. En este caso decimos que la TM se “cuelga”,
pero NO que se detiene o que la computación termina.

10
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Máquinas de Turing (TM)

I Al igual que los autómatas, las TMs pueden ser


esquematizadas mediantes grafos donde los nodos son los
estados y las transiciones están rotuladas.
I Una transición de p a q rotulada a, b significa que si la TM
está en el estado p y hay una letra a bajo el cabezal, entonces
pasa al estado q y realiza la acción b.
I La acción de escribir una letra a ∈ Σ se denota simplemente a.
I La acción de moverse a la izquierda o derecha se denota ← y
→ respectivamente.
I La acción de escribir un blanco (#) se llama también borrar la
celda.

11
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Ejemplo

Dado un alfabeto Σ = {a, #}. La siguiente es una TM que borra


todas las a’s que hay desde el cabezal hacia atrás, hasta encontrar
otro #.

a, #
Inicio q0 q1

#, ←
#, #

12
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

¡Gracias!

13
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Máquina de Turing

Formalmente, una máquina de Turing (TM) es una tupla


M = (Q, Σ, δ, s) donde:
I Q es un conjunto finito de estados, h 6= Q.
I Σ es un alfabeto finito, # ∈ Σ.
I s ∈ Q es el estado inicial.
I δ : Q × Σ −→ (Q ∪ {h}) × (Σ ∪ {←, →}) es la función de
transición.

Existen notaciones un poco diferentes, pero el poder


computacional es siempre el mismo.

14
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Ejemplo

La TM vista anteriormente se escribe formalmente


a, #
Inicio q0 q1
δ q0 q1
#, ←
#, # a (q1 , #) (q1 , a)
# (h, #) (q0 , ←)
h

M = (Q, Σ, δ, s) con Q = {q0 , q1 }, Σ = {a, #}, s = q0 .

15
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Configuraciones

Para definir una configuración, necesitamos conocer:


I estado actual,
I contenido de la cinta, y
I la posición del cabezal.
Los dos últimos elementos se expresan separando la cinta en tres
partes:
I la cadena que precede al cabezal (ε si estamos al inicio de la
cinta),
I el caracter sobre el que está el cabezal, y
I la cadena a la derecha del cabezal. Como esta es infinita, esta
cadena se indica solo hasta la última posición distinta de #.

16
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Configuraciones

Una configuración de una TM M = (Q, Σ, δ, s) es un elemento de:

CM = (Q ∪ {h}) × Σ∗ × Σ × Σ∗

I Una configuración (q, u, a, v ) se escribe también (q, uav ) o


incluso simplemente uav cuando el estado es irrelevante.
I Una configuración de la forma (h, u, a, v ) se llama
configuración detenida.
I El funcionamiento de la TM se describe mediante cómo nos
lleva de una configuración a otra.

17
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Configuraciones

La relación “lleva en un paso” para una TM M = (Q, Σ, δ, s) ,


`M ⊆ CM × CM , se define como (q, u, a, v ) `M (q 0 , u 0 , a0 , v 0 ) si
q ∈ Q, δ(q, a) = (q 0 , b) y
1. Si b ∈ Σ, entonces u 0 = u, v 0 = v , a0 = b.
2. Si b =←, entonces u 0 a0 = u y si av 6= #, entonces v 0 = av ,
de otro modo v 0 = ε.
3. Si b =→, entonces u 0 = ua y si v 6= #, entonces a0 v 0 = v , de
otro modo a0 v 0 = #.

Una computación de M de n pasos es una secuencia de


configuraciones C0 ` C1 ` · · · ` Cn .

18
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Ejemplo

Mostremos las configuraciones por las que pasa la TM


M = (Q, Σ, δ, s) con Q = {q0 , q1 }, Σ = {a, #}, s = q0 y

δ q0 q1
a q1 , # q1 , a
# h, # q0 , ←

al ser arrancada desde la configuración #aaaa:

(q0 , #aaaa) ` (q1 , #aaa#) ` (q0 , #aaa) ` (q1 , #aa#)


` (q0 , #aa) ` (q1 , #a#) ` (q0 , #a)
` (q1 , ##) ` (q0 , #) ` (h, #)

19
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Funciones Turing-computables

Sea f : Σ∗0 → Σ∗1 donde # ∈


/ Σ0 ∪ Σ1 .
Decimos que una TM M = (Q, Σ, δ, s) computa f si

∀w ∈ Σ∗0 , (s, #w #) `∗M (h, #f (w )#)

La definición se extiende al caso de funciones de múltiples


argumentos f (w1 , w2 , ..., wk ):

(s, #w1 #w2 #...#wk #) `∗M (h, #f (w1 , w2 , ..., wk )#)

Una función para la cual existe una TM que la computa se dice


Turing-computable o simplemente computable.

20
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Ejemplo

Una TM que calcula f (w ) = w , es decir, cambiar las a’s por las


b’s y viceversa en w ∈ {a, b}∗ , es la que sigue

a, b
b, a
#, ←
Inicio q0 q1 q2

a, ←
#, →
b, ←
a, → #, #
q3 h
b, →

21
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Ejemplo
Veamos una TM que calcula f (w ) = ww R
a, ←

#, → #, a #, a
q2 q3 q4 q5

a, # a, → a, ←
#, ← b, → b, ←
Inicio q0 q1
a, → a, ←
b, # b, → b, ←

q6 q7 q8 q9
#, → #, b #, b
#, →

b, ←

a, → #, #
q10 h
b, →
22
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Computación con TMs

Sea f : N → N. Una TM M computa f si M computa


g : {I }∗ → {I }∗ dada por g (I n ) = I f (n) .

La definición se extiende similarmente a funciones de varias


variables y se puede hablar de funciones Turing-computables entre
los números naturales.

Ejemplo
Esta TM calcula f (n) = n + 1

#, I I,→
Inicio q0 q1 h

23
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Computación con TMs


Esta TM calcula f (n, m) = n + m

I,←

#, ← I,# #, ←
Inicio q0 q1 q2 q3

#, # #, I
#, #
h q4

I,→

24
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Decidibilidad con TMs


Una TM decide un lenguaje L si calcula la función
fL : Σ∗ −→ {S, N}, definida como:
(
S si w ∈ L
fL (w ) =
N si w ∈/L

Si existe tal TM, decimos que L es Turing-decidible o simplemente


decidible.
Una TM M = (Q, Σ, δ, s) acepta un lenguaje L si se detiene
exactamente frente a las cadenas de L, es decir
(s, #w #) `∗M (h, uav ) ⇐⇒ w ∈ L.
Si existe tal TM, decimos que L es Turing-aceptable o simplemente
aceptable.
25
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Ejercicios

1. Construya una TM que calcula f (w ) = w w .


2. Construya una TM que busque hacia la izquierda hasta
encontrar aa (dos a seguidas) y se detenga.
3. Construya una TM que decida el lenguaje
{w ∈ {a, b}∗ | w contiene al menos una b}.
4. Construya una TM que decida el lenguaje {an b an | n ≥ 0}.

26
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

MTs mecánicas

27
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

¡Gracias!

28
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Notación modular
Una TM se puede representar más compactamente en notación modular:
I Un grafo cuyos nodos son las acciones y las aristas las condiciones.
I En cada nodo se puede escribir una secuencia de acciones, que se
ejecutan al llegar al nodo.
I Luego de ejecutarlas, se consideran las aristas que salen del nodo.
En principio, son flechas rotuladas con sı́mbolos de Σ.
I Si la flecha que sale del nodo está rotulada con la letra que está
bajo el cabezal luego de ejecutar el nodo, entonces se sigue la flecha
y se llega a otro nodo.
I Nunca debe haber más de una flecha aplicable a cada nodo
(determinismo).
I Hay un nodo inicial donde la máquina comienza a operar.
I La máquina se detiene cuando de un nodo no hay otro adonde ir.
29
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Notación modular

Las acciones básicas de la notación modular son:


I Moverse hacia la izquierda (C): esta es una TM que pase lo
que pase, se mueve hacia la izquierda una casilla y se detiene.
C = ({s}, Σ, δ, s) donde ∀a ∈ Σ δ(s, a) = (h, C).
I Moverse hacia la derecha (B): esta es una TM que pase lo
que pase, se mueve hacia la izquierda una casilla y se detiene.
B = ({s}, Σ, δ, s) donde ∀a ∈ Σ δ(s, a) = (h, B).
I Escribir el sı́mbolo σ ∈ Σ (σ): esta es una TM que, pase lo
que pase, escribe σ en la cinta y se detiene.
σ = ({s}, Σ, δ, s) donde ∀a ∈ Σ δ(s, a) = (h, σ).

30
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Notación modular
Las máquinas CA , BA y B se definen según el siguiente diagrama:

A A
#
CA = → C BA = → B B= → C #

La máquina shift left (SC ) se define según el siguiente diagrama

σ #
SC = → C# B Cσ B

SC : #w # −→ w #
Ejercicio
Esquematizar SB : #w # −→ ##w #

31
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Ejemplo
TM que calcula f (w ) = ww R

σ 6= #
→C # B# σ C# σ
#
B#

Ejercicio
Esquematizar la copiadora C : #w # −→ #w #w #.
Con esta máquina podemos componer fácilmente una TM que
calcule f (w ) = ww , como: C SC .

32
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Ejemplo
TM que implementa la función diferencia entre números naturales
(resultando 0 si es negativa)

I I
→C # C# C # B B# SC

#
B B# B

Ejercicio
Implemente la máquina M, que multiplica dos números naturales
n y m:
M : #I n #I m # −→ #I n·m #

33
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Ejemplo
TM que decide el lenguaje {an b n c n | n ≥ 0}, el cual no es libre del
contexto.

c b a #
→C # Cc # Cb # Ca B# B# B# SC SC

a, # c, # b, c
# a, b
B# B B# B# B B B# B# B# B B B

BSB
BNB
34
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

¡Gracias!

35
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Variaciones de TMs

A continuación veremos diversas variaciones de las TM.


Estas diferencias normalmente tienen que ver con variaciones en la
forma y uso de memoria (cabezales).
Ojo: ¡Ninguna variación aumenta el poder de cómputo!

36
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Cinta infinita por ambos lados

M = (Q, Σ, δ, s)

37
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Multicintas

δ : Q × Γm → Q × Γm × {I , D}

38
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Multi-cabezales

δ : Q × Γm → Q × Γm × {I , D}m

39
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Cinta bidimensional

δ : Q × Γ → Q × Γ × {J, I, N, H}

40
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

No-determinismo
I Una TM no determinista (NTM), se diferencia de la máquina
determinista, en que tiene una función de transición δ tal que
para el estado q y sı́mbolo X , δ(q, X ) es un conjunto de
tuplas:
{(q1 , A1 ), (q2 , A2 ), ..., (qk , Ak )}
donde k es cualquier número finito.
I La NTM puede elegir, en cada paso, cuál de las tuplas será el
siguiente movimiento. Sin embargo, no puede elegir un estado
de una y una acción de otra.
I La NTM M acepta una entrada w si existe cualquier secuencia
de movimientos que lleva desde la configuración inicial con w
como entrada hasta una configuración con el estado h.
I La NTM no acepta ningún lenguaje que no sea aceptado por
una TM.
41
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

No-determinismo

Formalmente, una máquina de Turing no determinista (NTM) es


una tupla M = (Q, Σ, δ, s) , donde Q, Σ y s son como en la
definición para una TM y
∆ ⊆ (Q × Σ) × ((Q ∪ {h}) × (Σ ∪ {C, B})).

42
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Ejemplo
Implementemos una TM que acepte el lenguaje de los números
compuestos {I n : ∃p, q ≥ 2 , n = p q}. Lo que se harı́a con una
TM determinı́stica, serı́a generar uno a uno, todos los posibles

divisores de n, desde 2 hasta n y probarlos. Si se encuentra un
divisor entonces n es compuesto, sino es primo. Con una NTM es
más sencillo. Comencemos con la siguiente NTM que genera, no
determinı́sticamente, una cantidad de I ’s mayor o igual que 2

G= → B I B I

43
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Ejemplo (cont.)

Ahora una NTM que acepta los números compuestos es GGME ,


donde G es la máquina anterior,M es la máquina multiplicadora y
E es una máquina que recibe como entrada #u#v # y se detiene
si u = v .
¿Qué hace esta máquina entonces?
I Aplica G dos veces, la cinta queda #I n #I p #I q #, para algún
p, q ≥ 2.
I Al aplicar M, la cinta queda #I n #I pq #.
I Al aplicar E , solo se detendrá si n = pq.

44
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

Ejercicio

Construya una NTM que acepte {an | ∃p, q ≥ 0 , n = p 2 + q 2 }.


Asuma que ya tiene construidas las máquinas: G, que genera un
número natural mayor o igual que 2, C, una copiadora, M, una
multiplicadora, S, una que suma, R, una que resta (si la diferencia
es negativa, el resultado es cero), y E que se detiene si sus dos
entradas son iguales.

45
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing Máquina de Turing
Máquinas de Turing universales Máquina de Turing en notación modular
Computabilidad y Complejidad Variaciones de máquinas de Turing

¡Gracias!

46
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing
Máquinas de Turing universales Máquina de Turing universal
Computabilidad y Complejidad

MT universal
Una máquina de Turing universal (UTM) es una máquina de
Turing que puede simular el comportamiento de cualquier otra
máquina de Turing para una entrada arbitraria.
I Una UTM recibe como entrada (input) una máquina de
Turing TM y un input w para dicha TM.
I Una UTM genera como salida (output) el output que
generarı́a dicha TM para dicho input w .

47
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing
Máquinas de Turing universales Máquina de Turing universal
Computabilidad y Complejidad

MT universal

I El concepto de UTM fue definido por Alan Turing en 1936, al


mismo tiempo que las máquinas de Turing.
I Por analogı́a, si una TM es un programa, una UTM podemos
verla como un sistema operativo.
¿Cómo se construye?
I Debemos codificar la entrada (TM, w ):
I TM = (Q, Σ, δ, s) (usar separadores especiales para las comas
y para cada elemento de los conjuntos);
I w ∈ Σ puede mantenerse intacto a continuación en la cinta.
I La UTM comienza leyendo el final de la entrada (w ) como es
lo usual, y sus transiciones deben ejecutar la función δ de la
TM.

48
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing
Máquinas de Turing universales Máquina de Turing universal
Computabilidad y Complejidad

MT universales compactas

I Turing se preguntó cuál serı́a el modelo computacional más


simple para poder ejecutar todas las funciones computables.
I Claude Shannon en 1956 planteó formalmente el problema:
¿Cuál es la UTM más pequeña posible?
I Marvin Minsky en 1962 descubrió una UTM (7,4): 7 estados y
4 sı́mbolos.
I Se han descubierto desde entonces la (15,2), (9,3), (6,4),
(5,5), (4,6), (3,9) y (2,18).
I La (4,6) de Rogozhin solo usa 22 transiciones.
I Existen generalizaciones notacionales (análogas a la notación
modular) que permiten definir UTM aún más compactas.

49
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing
Máquinas de Turing universales Máquina de Turing universal
Computabilidad y Complejidad

¡Gracias!

50
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing
Tesis de Church-Turing
Máquinas de Turing universales
NP-completitud basada en Máquinas de Turing
Computabilidad y Complejidad

Máquinas de Turing vs. Computadores actuales


Máquina de Turing Computador
Memoria infinita; Γ finito Memoria finita
(reducible a {0, 1, #}; Post) (bits)
Escribe/Lee sı́mbolos en Escribe/Lee bits en memoria
una cinta principal o secundaria
Posee un cabezal móvil CPU posee Program Counter
con instrucción actual
Un conjunto de estados Ejecuta programas
describe su operación (secuencias de instrucciones)

Tesis de Church-Turing
Todo algoritmo es equivalente a una máquina de Turing o sistema
equivalente.

51
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing
Tesis de Church-Turing
Máquinas de Turing universales
NP-completitud basada en Máquinas de Turing
Computabilidad y Complejidad

MT universales: el lı́mite de lo decidible

Sabemos que N ⊆ R, y que ambos conjuntos son infinitos.


¿Hay más naturales que reales? ¿cuántos reales hay entre 0 y 1?
Existen infinitos-contables máquinas de Turing.
Existen infinitos-incontables lenguajes sobre el mismo alfabeto.
Ergo, existen lenguajes indecidibles, que las MT (o cualquier
computador) no pueden computar.

52
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing
Tesis de Church-Turing
Máquinas de Turing universales
NP-completitud basada en Máquinas de Turing
Computabilidad y Complejidad

Problema decidible

53
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing
Tesis de Church-Turing
Máquinas de Turing universales
NP-completitud basada en Máquinas de Turing
Computabilidad y Complejidad

Problema indecidible
Halting problem o problema de la parada
Dado un programa P y una entrada x válida para ese programa,
determinar si P se detendrá para x.

54
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing
Tesis de Church-Turing
Máquinas de Turing universales
NP-completitud basada en Máquinas de Turing
Computabilidad y Complejidad

Ver diapositivas adicionales...

55
Fabián Riquelme Csori Lenguajes y Autómatas
Máquinas de Turing
Tesis de Church-Turing
Máquinas de Turing universales
NP-completitud basada en Máquinas de Turing
Computabilidad y Complejidad

Referencias

Estos apuntes están en parte basados en los del profesor y colega,


Dr. Roberto León Vásquez, ası́ como en material propio.

Recuerden utilizar la bibliografı́a sugerida para el curso, disponible


en las Bibliotecas de la Universidad.

56
Fabián Riquelme Csori Lenguajes y Autómatas

También podría gustarte