Máquinas de Turing y tesis de Turing-Church

Anuncio
Máquinas de Turing, programas
y tesis de Turing-Church
Elvira Mayordomo, Universidad de Zaragoza
Ilustraciones:
Costas Busch, Rensselaer Polytechnic Institute
1
Máquinas de Turing
2
La jerarquía de lenguajes
n n n ?
a b c
ww ?
Lengs. indeps. del contexto
n n
R
a b
ww
Lenguajes regulares
a*
a *b *
3
Lenguajes aceptados por
Máquinas de Turing
ww
n n n
a b c
Lengs. indeps. del contexto
n n
R
a b
ww
Lenguajes regulares
a*
a *b *
4
Una máquina de Turing
Entrada
$
a c d
cabeza de lectura
Unidad
de
control
lectura-escritura
Cinta $ g d e
5
La cinta de memoria
Sin límite derecho – longitud infinita
$
......
cabeza de lectura-escritura
La cabeza se mueve a la Derecha o
a la Izquierda o No se mueve
6
$
......
cabeza de lectura-escritura
La cabeza en cada paso de ejecución:
1. Lee un símbolo
2. Escribe un símbolo
3. Se mueve a Dcha o Izda o
No se mueve
7
Ejemplo:
$
Tiempo 0
......
a b a c
Tiempo 1
$
......
a b k c
1. Lee
a
2. Escribe
k
3. Se mueve a la Izda
8
Tiempo 1
$
......
a b k c
Tiempo 2
$
a
f
......
k c
1. Lee
b
2. Escribe
f
3. Se mueve a la Dcha
9
La cadena de entrada
Símb.
inicio
Cadena de entrada
$ a
b a c
  
Símbolo “blanco”
......
cabeza lectora
La cabeza empieza en la posición más a la
izda de la cadena de entrada
10
Estados y transiciones
Lee
No mover
(entrada y memoria)
entrada
Escribe
en memoria
Mov. a Izda
memoria
q1
a, c  N , b, I
q2
Mov. Dcha
Mov. a Dcha
entrada
memoria
a, c  D, b, D
q1
q2
11
Ejemplo:
Tiempo 1
$ d d d    
q1
estado actual
$ a b a c
q1
......
  
d , a  N , b, D
......
q2
12
Tiempo 1
$
d
d
d




c



q1
$
a
b
a
......
......
Tiempo 2
$ d d d    
......
q2
$ a
b b c
q1
  
d , a  N , b, D
......
q2
13
Ejemplo:
Tiempo 1
$
d
d
d




c



q1
$
a
a
b
......
......
Tiempo 2
$ d d d    
......
q2
$ a
b b c
q1
  
d , a  D, b, I
......
q2
14
Ejemplo:
Tiempo 1
$
d
d
d




c



q1
$
a
a
b
......
......
Tiempo 2
$ d d d
   
......
g  
......
q2
$ a
b b c
q1
d ,   D, g , D
q2
15
Definición formal
de
máquinas deTuring
16
Función de transición
q1
d , a  D, b, D
q2
 (q1 , d , a)  (q2 , D, b, D)
17
Función de transición
q1
b, c  N , d , I
q2
 (q1 , b, c)  (q2 , N , d , I )
18
Máquina de Turing:
Estados
Alfabeto
entrada
Alfabeto
cinta
M  (Q, , ,  , q0 , F )
Función de
transición
Estado
inicial
Estados
finales
19
Parar
La máquina para si no hay transición
posible desde la configuración actual
20
Ejemplo:
......
$ d d d    
q1
$ a b a c
d , a  D, b, D
q2
q1
a, b  I , d , I
q3
  
......
No hay transición posible
¡PARA!!!
21
Aceptar
Aceptar Entrada
Si la máquina para
en un estado final
Rechazar Entrada
Si la máquina para
en un estado no final
o
Si la máquina no para
nunca
22
El lenguaje aceptado
Para una máquina de Turing M
w :
L( M )  

desde el estado q0 , con w en la entrada,

la máquina para en un estado final

23
Un ejemplo de máquina de Turing
Una máquina de Turing que acepta:
a*
a,   D, , N
q0
,   I , , N
q1
24
Tiempo 0
a a a  
$
q0
a,   D, , N
q0
,   I , , N
q1
25
Tiempo 1
$
a a a  
q0
a,   D, , N
q0
,   I , , N
q1
26
Tiempo 2
$
a a a  
q0
a,   D, , N
q0
,   I , , N
q1
27
Tiempo 3
$
a a a  
q0
a,   D, , N
q0
,   I , , N
q1
28
Tiempo 4
$
a a a  
q1
a,   D, , N
q0
Para y acepta
,   I , , N
q1
29
Ejemplo de rechazo
Tiempo 0
a b
$
a  
q0
a,   D, , N
q0
,   I , , N
q1
30
Tiempo 1
$
a  
a b
q0
No hay transición posible
a,   D, , N
q0
Para y rechaza
,   I , , N
q1
31
Ejemplo con bucle infinito
Una máquina de Turing
para el lenguaje
a*
b,   I , , N
a,   D, , N
q0
,   I , , N
q1
32
Tiempo 0
$
a b a  
q0
b,   I , , N
a,   D, , N
q0
,   I , , N
q1
33
Tiempo 1
$
a b a  
q0
b,   I , , N
a,   D, , N
q0
,   I , , N
q1
34
Tiempo 2
$
a b a  
q0
b,   I , , N
a,   D, , N
q0
,   I , , N
q1
35
Tiempo 2
$
a b a  
q0
$
a b a  
q0
Tiempo 4
$
a b a  
q0
Tiempo 5
$
Bucle infinito
Tiempo 3
a b a  
q0
36
Por el bucle infinito:
•No se puede alcanzar el estado final
•La máquina nunca para
•No se acepta la entrada
37
Máquinas que paran siempre
Una máquina de Turing M para siempre
si para cualquier cadena w, M con
entrada w para
38
Lenguajes decidibles
Un lenguaje L es decidible si es el aceptado
por una máquina de Turing M que para
siempre
w L 
w L 
M para en un estado final
M para en un estado no final
39
Lenguajes semidecidibles
Para una máquina de Turing M
w :
L( M )  

desde el estado q0 , con w en la entrada,

la máquina para en un estado final

Un lenguaje es semidecidible si es aceptado
por una máquina de Turing
40
Variaciones de máquinas de Turing
• Más de una cinta de memoria
• Memoria ilimitada también por la izda
• Entrada en la cinta de memoria
• Memoria en varias dimensiones
• Máquina no determinista
¡¡Todas equivalentes!!
41
Programas
42
Programas …
Consideramos programas sintácticamente
correctos:
Tipos de datos predefinidos
booleano, carácter, natural, entero, real, cadena
Instrucciones condicionales
si <condición> entonces
<secuencia de acciones>
sino
<secuencia de acciones>
fsi
Instrucciones iterativas
mientrasQue <condición> hacer
<secuencia de acciones>
fmq
43
Programas …
Procedimientos y funciones
procedimiento <nombre>(ent <parámetros_1>:<tipo_1>;
sal <parámetros_2>:<tipo_2>;
e/s <parámetros_3>:<tipo_3> ... )
…
función <nombre>(<parám_1>:<tipo_1>; <parám_2>:<tipo_2> ...)
devuelve <tipo_fun>
<declaraciones locales de constantes, tipos, variables,
proced., funciones...>
principio
<secuencia de acciones>
devuelve <valor_de_tipo_fun>
{tras devolver el valor la
función termina}
fin
…
Y el resto de la sintaxis habitual
44
Programas ideales …
El único añadido es que la memoria es
ilimitada, es decir
No hay nunca errores por “overflow”
(de una variable o de un puntero)
De esta forma un programa real es un
programa ideal, y un programa ideal se
puede implementar en un computador
real si tiene suficiente memoria
45
Codificación
Cualquier dato elemental (booleano,
carácter, natural, entero, etc.) puede
codificarse como una cadena, y varias
cadenas en una sola (por ej. con un
símbolo extra #)
Luego cualquier programa es equivalente
a:
procedimiento ejemplo (ent w:cadena; sal z:cadena)
46
Nos interesan especialmente …
Un programa o algoritmo de decisión es
el que tiene salida de tipo tpresultado
tipo
tpresultado = (acepta,rechaza)
procedimiento ejemplo (ent w:cadena; sal z:tpresultado)
47
Parar
Un programa con una entrada para
si termina su ejecución
48
Aceptar
Aceptar Entrada
Si el programa para
y devuelve acepta
Rechazar Entrada
Si el programa para
y no devuelve acepta
o
Si el programa no para
nunca
49
El lenguaje aceptado
Para un programa p
w :
L( p )  

el programa p con entrada w

para y devuelve acepta

50
Ejemplo de programa que no para
51
Programas que paran siempre
Una programa p para siempre si para
cualquier cadena w, p con entrada w
para
52
Tesis de Turing-Church
53
Teorema
Las máquinas de Turing y los
programas son equivalentes
54
Son equivalentes quiere decir
Para cualquier máquina M
existe un programa p tal que:
• L(M)=L(p)
• M y p paran con las mismas entradas
y viceversa
para cualquier programa p
existe una máquina M tal que L(M)=L(p)
y M y p paran con las mismas entradas
55
Demostración
1) Para cualquier máquina M
existe un programa p tal que L(M)=L(p)
y M y p paran con las mismas entradas
Escribir un programa que simule una
máquina de Turing … (sencillo)
56
Demostración
1) Para cualquier programa p
existe una máquina M tal que L(M)=L(p)
y M y p paran con las mismas entradas
Escribir una máquina de Turing que simule
una programa … (complicado)
Primero hacer una máquina que simule cada
tipo de instrucción (condicional, bucle)
Luego combinarlas
57
Lenguajes semidecidibles
Para un programa
w :
L( p )  

p
el programa p con entrada w

para y devuelve acepta

Un lenguaje es semidecidible si es aceptado
por un programa
58
Lenguajes decidibles
Un lenguaje L es decidible si es el aceptado
por un programa que para siempre
w L 
w L 
p para y devuelve acepta
p para y no devuelve acepta
59
Tesis de Turing-Church: (1930)
Cualquier modelo de cálculo que se pueda
implementar físcamente es equivalente
a las máquinas de Turing
60
Tesis de Turing-Church:
Se cumple para los modelos conocidos:
•Programas (imperativos)
•Programas lógicos
•Programas funcionales
•Máquinas paralelas
•….
Tesis = conjetura. No hay demostración
61
Los programas son máquinas de Turing
Cuando decimos:
Existe un algoritmo que hace x
Es lo mismo que:
Existe una máquina de Turing
que hace x
62
Lenguajes semidecidibles
(aceptados por programas)
ww
n n n
a b c
Lengs. indeps. del contexto
n n
R
a b
ww
Lenguajes regulares
a*
a *b *
63
Descargar