Está en la página 1de 84

ICEE1012

La Mquina de Turing
Mquina de Turing (1936)

Alan Turing (1912 -1954)


Matemtico, Lgico, Criptoanalista
Considerado el padre del Computer Science y
de la Artificial Intelligence
Provee una formalizacin a los conceptos de
Algoritmo y Computacin
Defini el Stored-Program Computer

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 2


Una Mquina de Turing
Cinta
...... ......

Cabezal Lectura-Escritura
Unidad de Control

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 3


La Cinta

Sin lmites largo infinito

...... ......

Cabezal Lectura-Escritura

El cabezal se mueve a Izquierda o Derecha

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 4


Cabezal Lectura-Escritura

...... ......

Cabezal Lectura-Escritura

El cabezal en cada paso de tiempo:


Lee un smbolo
Escribe un smbolo
Se mueve a izquierda o derecha

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 5


Ejemplo:
Tiempo 0
...... a b a c ......

Tiempo 1
...... a b k c ......

Leer a
Escribir k
Moverse a la Izquierda

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 6


Tiempo 1
...... a b k c ......

Tiempo 2
...... a f k c ......

Leer b
Escribir f
Moverse a la derecha

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 7


Caracteres de Entrada (String)
smbolo del blanco
string de entrada

...... a b a c ......

cabezal
Cabezal comienza en la posicin ms a la izquierda
de la cadena de caracteres de entrada
La cadena de caracteres de entrada nunca es vaca
Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 8
Estados y Transiciones

Leer Escribir
Mover a la izquierda

q1 a b, L q2

Mover a la derecha

q1 a b, R q2
Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 9
Ejemplo:
Tiempo 1

...... a b a c ......

q1
estado actual

q1 a b, R q2

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 10


Tiempo 1
...... a b a c ......

q1
Tiempo 2
...... a b b c ......

q2
q1 a b, R q2
Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 11
Ejemplo: Tiempo 1
...... a b a c ......

q1
Tiempo 2
...... a b b c ......

q2
q1 a b, L q2

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 12


Ejemplo: Tiempo 1
...... a b a c ......

q1
Tiempo 2
...... a b b c g ......

g, R q2
q1 q2

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 13


Determinismo
Las Maquinas de Turing son determinsticas

Permitido No Permitido

a b, R q2 a b, R q2

q1 q1
q3 a d, L q3
b d, L
No se permiten transiciones lambda
Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 14
Funcin de Transicin Parcial

...... a b a c ......

q1
a b, R q2 Permitido:
No hay transicin
q1 para el smbolo de
q3 entrada c
b d, L
Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 15
Detencin

La mquina se detiene si no existen posibles


transiciones a seguir

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 16


Ejemplo:

...... a b a c ......

q1
a b, R q2
No hay transicin posible
q1
PARAR!!!
b d, L q3

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 17


Estados Finales

q1 q2 Permitido

q1 q2 No Permitido

Estados finales no tienen transiciones salientes


En un estado final, la mquina se detiene

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 18


Aceptacin

Si la mquina para en
Acepta Entrada
un estado no final

Si la mquina para en
un estado final
Rechaza Entrada o
Si la maquina entra en
un loop infinito

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 19


Ejemplo Mquina de Turing

Una mquina de Turing que acepta un lenguaje:

a a, R

, L
q0 q1

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 20


Ejemplo Mquina de Turing

Tiempo 0 a a a

q0
a a, R

, L
q0 q1

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 21


Ejemplo Mquina de Turing

Tiempo 1 a a a

q0
a a, R

, L
q0 q1
Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 22
Ejemplo Mquina de Turing

Tiempo 2 a a a

q0
a a, R

, L
q0 q1
Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 23
Ejemplo Mquina de Turing

Tiempo 3 a a a

q0
a a, R

, L
q0 q1
Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 24
Ejemplo Mquina de Turing

Tiempo 4 a a a

q1
a a, R Parar y Aceptar

, L
q0 q1
Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 25
Ejemplo de Rechazo

Tiempo 0 a b a

q0

a a, R

, L
q0 q1
Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 26
Ejemplo de Rechazo

Tiempo 0 a b a

q0
a a, R No hay transicin posible
Parar y Rechazar
, L
q0 q1

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 27


Ejemplo Loop Infinito
Una Maquina de Turing para:

b b, L
a a, R

, L
q0 q1

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 28


Ejemplo Loop Infinito

Tiempo 0 a b a

q0
b b, L
a a, R

, L
q0 q1
Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 29
Ejemplo Loop Infinito

Tiempo 1 a b a

q0
b b, L
a a, R

, L
q0 q1
Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 30
Ejemplo Loop Infinito

Tiempo 2 a b a

q0
b b, L
a a, R

, L
q0 q1
Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 31
Tiempo 2 a b a
q0
a b a

loop infinito
Tiempo 3

q0
Tiempo 4 a b a
q0
Tiempo 5 a b a
q0
Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 32
Loop Infinito

Dado el loop infinito:


No se puede llegar al estado final
La mquina nunca se detiene
La entrada no es aceptada

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 33


Definiciones Formales para las
Maquinas de Turing
Funcin de Transicin

q1 a b, R q2

(q1, a) (q2 , b, R)

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 35


Funcin de Transicin

q1 c d, L q2

(q1, c) (q2 , d , L)

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 36


Mquina de Turing

Alfabeto de Alfabeto de
entrada salida
Estados

M (Q, , , , q0 , , F )

Funcin de Estados
transicin Estado finales
inicial blanco

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 37


Configuracin

c a b a

q1

Descripcin Instantnea: ca q1 ba

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 38


Tiempo 4 Tiempo 5

x a y b x a y b

q2 q0

Un desplazamiento: q2 xayb x q0 ayb

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 39


Tiempo 4 Tiempo 5

x a y b x a y b

q2 q0

Tiempo 6 Tiempo 7

x x y b x x y b

q1 q1
q2 xayb x q0 ayb xx q1 yb xxy q1 b
Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 40
Creando un Lenguaje

q2 xayb x q0 ayb xx q1 yb xxy q1 b


Notacin equivalente: q2 xayb xxy q1 b

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 41


Configuracin Inicial: q0 w

Cadena de caracteres de entrada


w

a a b b

q0

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 42


El Lenguaje Aceptado

Para toda Mquina de Turing M



L( M ) {w : q0 w x1 q f x2 }

Estado inicial Estado final

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 43


Mquina de Turing Estndar
La mquina que hemos descrito es la estndar:
Determinstica
Cinta infinita en ambas direcciones
La cinta es el archivo de entrada/salida

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 44


Procesamiento de Funciones con
Mquinas de Turing
Una funcin f (w) tiene:

Dominio: D Regin Resultado : S

f (w)
w D f ( w) S

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 46


Una funcin puede tener muchos parmetros:

Ejemplo: Funcin Adicin

f ( x, y ) x y

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 47


Ejemplo: Dominio de los Enteros
Decimal: 5

Binario: 101

Unario: 11111

Se prefiere representacin unaria; fcil de manipular


con mquinas de Turing

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 48


Definicin
Una funcin f es computable si existe una Mquina
de Turing M tal que:

configuracin inicial configuracin final

w f (w)

q0 estado inicial qf estado final

Para todo w D dominio

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 49


Definicin
Una funcin f es computable si existe una Mquina
de Turing M tal que:


q0 w q f f ( w)

Configuration Initial Configuration Final

Para todo w D dominio

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 50


Ejemplo
La funcin f ( x, y ) x y es computable
x, y son enteros
Mquina deTuring:
Caracteres de entrada: x0 y unario
Caracteres de salida: xy0 unario

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 51


x y

Partida 1 1 1 0 1 1

q0
estado inicial

El 0 es el limitador que
separa a los dos nmeros

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 52


x y

Partida 1 1 1 0 1 1

q0 estado inicial
x y

Fin 1 1 1 1 0
qf estado final
Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 53
El 0 ayuda cuando se utiliza el
resultado para otras operaciones

x y

Fin 1 1 1 1 0
qf estado final

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 54


Mquina de Turing para la funcin:

f ( x, y ) x y

1 1, R 1 1, R 1 1, L

0 1, R , L q 1 0, L
q0 q1 2 q3

, R
q4

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 55


Ejemplo de Ejecucin:
Tiempo 0
x y
x 11 (2)
1 1 0 1 1
y 11 (2)
q0
Resultado Final
x y
1 1 1 1 0

q4
Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 56
Tiempo 0 1 1 0 1 1

q0

1 1, R 1 1, L
1 1, R

0 1, R q , L q2 1 0, L q3
q0 1
, R
q4

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 57


Tiempo 1 1 1 0 1 1

q0

1 1, R 1 1, R 1 1, L

q0 0 1, R , L 1 0, L
q1 q2 q3
, R
q4

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 58


Tiempo 2 1 1 0 1 1

q0

1 1, R 1 1, R 1 1, L

q0 0 1, R q1 , L q 1 0, L q3
2

, R
Semestre Otoo 2017 ICEE1012 Sistemas Digitales II
q4 59
Tiempo 3 1 1 1 1 1

q1

1 1, R 1 1, R 1 1, L

q0 0 1, R q1 , L q 1 0, L q3
2

, R
Semestre Otoo 2017 ICEE1012 Sistemas Digitales II
q4 60
Tiempo 4 1 1 1 1 1

q1

1 1, R 1 1, R 1 1, L

q0 0 1, R q1 , L q 1 0, L q3
2

, R
Semestre Otoo 2017 ICEE1012 Sistemas Digitales II
q4 61
Tiempo 5 1 1 1 1 1

q1

1 1, R 1 1, R 1 1, L

q0 0 1, R q1 , L q 1 0, L q3
2

, R
Semestre Otoo 2017 ICEE1012 Sistemas Digitales II
q4 62
Tiempo 6 1 1 1 1 1

q2

1 1, R 1 1, R 1 1, L

q0 0 1, R q1 , L q 1 0, L q3
2

, R
Semestre Otoo 2017 ICEE1012 Sistemas Digitales II
q4 63
Tiempo 7 1 1 1 1 0

q3

1 1, R 1 1, R 1 1, L

q0 0 1, R q1 , L q 1 0, L q3
2

, R
Semestre Otoo 2017 ICEE1012 Sistemas Digitales II
q4 64
Tiempo 8 1 1 1 1 0

q3

1 1, R 1 1, R 1 1, L

q0 0 1, R q1 , L q 1 0, L q3
2

, R
Semestre Otoo 2017 ICEE1012 Sistemas Digitales II
q4 65
Tiempo 9 1 1 1 1 0

q3

1 1, R 1 1, R 1 1, L

q0 0 1, R q1 , L q 1 0, L q3
2

, R
Semestre Otoo 2017 ICEE1012 Sistemas Digitales II
q4 66
Tiempo 10 1 1 1 1 0

q3

1 1, R 1 1, R 1 1, L

q0 0 1, R q1 , L q 1 0, L q3
2

, R
Semestre Otoo 2017 ICEE1012 Sistemas Digitales II
q4 67
Tiempo 11 1 1 1 1 0

q3

1 1, R 1 1, R 1 1, L

q0 0 1, R q1 , L q 1 0, L q3
2

, R
Semestre Otoo 2017 ICEE1012 Sistemas Digitales II
q4 68
Tiempo 12 1 1 1 1 0

q4

1 1, R 1 1, R 1 1, L

q0 0 1, R q1 , L q 1 0, L q3
2

, R
Semestre Otoo 2017 ICEE1012 Sistemas Digitales II
q4 69
Otro Ejemplo
La funcin f ( x) 2 x es computable

x es entero
Mquina de Turing:
Caracteres de entrada: x unario
Caracteres de salida: xx unario

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 70


x

Partida 1 1 1

q0 estado inicial

2x

Fin 1 1 1 1 1
qf estado final
Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 71
Pseudo cdigos de la Mquina de Turing para:
f ( x) 2 x
Remplazar cada 1 con $
Repetir:
Encontrar $ de ms a la derecha, remplazar con 1
Ir al extremo derecho, insertar 1
Hasta que no queden ms $

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 72


Mquina de Turing para: f ( x) 2 x

1 $, R 1 1, L 1 1, R

, L $ 1, R
q0 q1 q2
, R
1, L
q3

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 73


Ejemplo
Inicio Fin
1 1 1 1 1 1

q0 q3

1 $, R 1 1, L 1 1, R

q0 , L q1 $ 1, R
q2
, R 1, L
q3

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 74


Otro Ejemplo

1 si x y
La funcin es f ( x, y )
computable
0 si x y
Entrada: x0 y
Output: 1 0

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 75


Pseudo cdigos de la Mquina de Turing

Repetir
x con un 1 de y
Hacer coincidir un 1 de
Hasta que todos los 1 de x y de y coincidan
Si un 1 de x no coincide,
borrar cinta, escribir 1 ( x y )
Si no,
borrar cinta, escribir 0 ( x y)

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 76


Combinacin de Mquinas de Turing
Diagrama en Bloques

Mquina
Entrada de Salida
Turing

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 78


Ejemplo: x y si x y
f ( x, y )
0 si x y

x, y
Sumar x y
x, y x y
Comparar

x y Borrar 0

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 79


Tesis de Turing
Tesis de Turing

Cualquier cmputo llevado a cabo por medios


mecnicos puede ser realizado por una
Mquina de Turing (1930)

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 81


Ley del Computer Science

Un cmputo es mecnico si se puede realizar


en una mquina de Turing
No hay ningn modelo conocido de cmputo
ms potente que la mquina de Turing

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 82


Definicin de Algoritmo

Un algoritmo para una funcin f (w) es una


Maquina de Turing la cual procesa f (w)

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 83


Los Algoritmos son Mquinas de Turing

Cuando se dice: Existe un algoritmo


Quiere decir: Existe una Maquina de Turing que
ejecuta dicho algoritmo

Semestre Otoo 2017 ICEE1012 Sistemas Digitales II 84

También podría gustarte