Tema 6: Máquina de Turing

Anuncio
Tema 6: Máquina de Turing
Departamento de Sistemas Informáticos y Computación
DSIC - UPV
http://www.dsic.upv.es – p.1/28
Tema 6: Máquina de Turing
• La Máquina de Turing.
• Máquinas de Turing como aceptores
• Otros modelos de máquina de Turing
• Máquinas de Turing como computadores de funciones
• Máquinas de Turing como enumeradores
• Propiedades de cierre
DSIC - UPV
http://www.dsic.upv.es – p.2/28
La Máquina de Turing
Visión descriptiva
• Cinta semi-infinita dividida en celdas
• Control finito
• Cabezal de lectura/escritura
• En cada momento, cada celda contiene un símbolo del
alfabeto de cinta
• Los símbolos de la palabra inicial pertenecen al alfabeto de
entrada. El resto de la cinta contiene [
• Movimientos: En función del estado del C.F. y del símbolo
accedido por el cabezal, la máquina puede:
◦ Cambiar de estado
◦ Cambiar el símbolo contenido en la casilla accedida
◦ Desplazar el cabezal una posición a derecha o izquierda
DSIC - UPV
http://www.dsic.upv.es – p.3/28
La Máquina de Turing
Visión descriptiva
• Los movimientos se repiten hasta que:
◦ La máquina entra en estado final (se detiene aceptando
la entrada)
◦ La máquina intenta acceder a la celda a la izquierda de
la celda inicial (se detiene rechazando la entrada)
◦ La máquina entra en una situación para la que no hay
definido movimiento (se detiene rechazando la entrada)
• Puede ocurrir que ante determinada entrada, la máquina
siga realizando movimientos indefinidamente sin aceptar ni
rechazar dicha entrada
DSIC - UPV
http://www.dsic.upv.es – p.4/28
La Máquina de Turing
Ejemplo:
q0
q1
˛
˛0
˛
˛
˛↑
˛
˛
˛q0
0
0
1
[
(q0 ,0,R)
–
(q0 ,1,R)
(q2 ,1,R)
(q1 ,[,L)
–
1
˛
˛0
˛
˛
˛
˛
˛
˛
˛
˛
˛0
˛
[˛
˛
˛
˛
˛⇒˛
˛
˛
˛
˛
˛
˛
1
0
1
1
0
1
˛
˛
˛0
˛
[˛
˛
˛
˛
˛⇒˛
˛
˛
˛
˛
˛
˛
1
↑
q0
˛
˛
˛
˛0
[˛
˛
˛
˛
↑ ˛˛ ⇒ ˛˛
˛
˛
˛
q0 ˛
F = {q2 }
0
1
1
↑
q1
0
1
˛
˛
˛0
˛
[˛
˛
˛
˛
˛⇒˛
˛
˛
˛
˛
˛
˛
1
↑
q0
˛
˛
˛
˛0
[˛
˛
˛
˛
˛⇒˛
˛
˛
˛
˛
˛
˛
0
DSIC - UPV
1
1
0
1
1
↑
q0
˛
[˛˛
˛
˛
˛
˛
˛
˛
[ ˛˛
˛
↑ ˛˛
˛
q2 ˛
http://www.dsic.upv.es – p.5/28
La Máquina de Turing
Descripción formal
• M = (Q, Σ, Γ, δ, q0 , [, F ) donde:
◦ Q: conjunto de estados
◦ Σ: alfabeto de entrada
◦ Γ: alfabeto de cinta (Σ ⊆ Γ)
◦ δ : función de transición
δ : Q × Γ → Q × Γ × {L, R}
◦ q0 : estado inicial
◦ [: simbolo blanco ([ ∈ Γ − Σ)
◦ F : conjunto de estados finales
Descripción instantánea: secuencia de la forma α1 qα2 donde
a1 , α2 ∈ Γ∗ y q ∈ Q. Describe la situación de una MT
La cinta contiene la cadena α1 α2 seguida de infinitos blancos.
El cabezal señala el primer símbolo de α2
DSIC - UPV
http://www.dsic.upv.es – p.6/28
La Máquina de Turing
Definiciones
• Sobre el conjunto de descripciones instantáneas se define
la relación movimiento ():
Suponiendo que en un instante, la descripción de una MT
es: x1 x2 . . . xi−1 qxi xi+1 . . . xn ,
◦ Si δ(q, xi ) = (p, y, L) ⇒ x1 x2 . . . pxi−1 yxi+1 . . . xn , (i > 1)
◦ Si δ(q, xi ) = (p, y, R) ⇒ x1 x2 . . . xi−1 ypxi+1 . . . xn
• Si D1 , D2 son dos descripciones instantáneas:
◦ D1 D2 el hecho que D1 pasa a D2 en un movimiento
∗
◦ D1 D2 el hecho que D1 pasa a D2 en cero o más
movimientos
DSIC - UPV
http://www.dsic.upv.es – p.7/28
Máquinas de Turing como aceptores
• Una palabra x es aceptada por una máquina de Turing M
sii a partir de la descripción inicial se llega a una con estado
final
∗
x ∈ L(M ) ⇔ q0 x α1 qα2 con α1 , α2 ∈ Γ∗ y q ∈ F
∗
∗
L(M ) = {x ∈ Σ | q0 x α1 qα2 , α1 , α2 ∈ Γ∗ , q ∈ F }
• Un lenguaje es recursivamente enumerable si es aceptado
por una máquina de Turing
• Un lenguaje es recursivo si es aceptado por una máquina
de Turing que se detiene ante todas las entradas
DSIC - UPV
http://www.dsic.upv.es – p.8/28
Máquinas de Turing como aceptores
Ejemplo 1: Sea el lenguaje L formado por las palabras sobre
Σ = {0, 1} que contienen al menos un 1:
M1
0
1
[
q0
q1
(q0 ,0,R)
–
(q1 ,1,R)
–
–
–
M2
0
1
[
q0
q1
(q0 ,0,R)
–
(q1 ,1,R)
–
(q0 ,[,L)
–
F = {q1 }
F = {q1 }
• Ambas máquinas reconocen L
• M2 no se detiene para 0∗
• M1 se detiene ante cualquier entrada. L es recursivo
DSIC - UPV
http://www.dsic.upv.es – p.9/28
Máquinas de Turing como aceptores
Ejemplo 2: Máquina que acepta el lenguaje de palabras sobre
{0, 1} que comienzan y acaban con el mismo símbolo
(0/0/R)
(1/1/R)
(0/0/R)
q1
q3
(0/0/R)
(0/0/R)
(1/1/R)
q0
(1/1/R)
([/[/L)
q2
([/[/L)
q5
q4
(1/1/R)
DSIC - UPV
http://www.dsic.upv.es – p.10/28
Máquinas de Turing como aceptores
Ejemplo 3: Máquina que acepta el lenguaje de palíndromos
sobre {0, 1}
([/[/L)
(0/0/R)
(1/1/R)
q1
q3
([/[/R)
([/[/R)
(0/[/L)
q6
(0/[/R)
q0
(1/[/R)
(0/0/R)
(1/1/R)
q2
q5
([/[/R)
([/[/R)
(0/0/L)
(1/1/L)
(1/[/L)
q4
([/[/L)
DSIC - UPV
http://www.dsic.upv.es – p.11/28
Otros modelos de máquinas de Turing
Máquina con cinta infinita en ambos sentidos
M = (Q, Σ, Γ, δ, q0 , [, F )
Respecto el modelo básico, ante la descripción instantánea
qaα y disponiendo de la transición δ(q, a) = (p, b, L):
• El modelo básico para
• Este modelo conduce a la D.I. p[bα
Teorema: Un lenguaje L es reconocido por una máquina de
Turing con cinta infinita si y solo si L es reconocido por una
máquina de Turing con cinta semiinfinita
DSIC - UPV
http://www.dsic.upv.es – p.12/28
Otros modelos de máquinas de Turing
Máquina multicinta
• La máquina dispone de tantos cabezales
independientes como cintas
• Una cinta (la primera) contiene la entrada. Las demás
están en blanco
• Cada movimiento viene determinado por el estado y por
los símbolos leidos por los distintos cabezales:
◦ Cambiando de estado
◦ Sustituyendo los símbolos en las cintas accedidas
◦ Desplazando (L, R) o no (S ) la posición del cabezal
de cada cinta (nueva opción)
ejemplo de movimiento en una máquina con tres cintas:
δ(q, x1 , x2 , x3 ) = (p, y1 , y2 , y3 , m1 , m2 , m3 ), mi ∈ {L, R, S}
| {z }
| {z } |
{z
}
símbolos
símbolos
movimientos
DSIC - UPV
http://www.dsic.upv.es – p.13/28
Otros modelos de máquinas de Turing
Máquina multicinta
M = (Q, Σ, Γ, δ, q0 , [, F )
• δ : Q × Γk → Q × (Γ × {−1, 0, 1})k
• Desc. Intantanea: (α1 qβ1 , α2 qβ2 , . . . , αk qβk )
• Lenguaje aceptado: (αi , βi ∈ Γ∗ , q ∈ F )
L(M ) = {x ∈
Σ∗
∗
: q0 x, q0 [, . . . , q0 [ (α1 qβ1 , . . . , αk qβk )}
Teorema: Un lenguaje L es reconocido por una máquina de
Turing multicinta si y solo si L es reconocido por una máquina
de Turing estandar
DSIC - UPV
http://www.dsic.upv.es – p.14/28
Otros modelos de máquinas de Turing
Máquina no determinista
Máquina de Turing con una única cinta y control finito único
• δ : Q × Γ → P(Q × Γ × {L, R})
δ(q, a) = {(p1 , a1 , z1 ), (p2 , a2 , z2 ), . . . , (pn , an , zn )} donde:
pi ∈ Q, ai ∈ Γ y zi ∈ {L, R}
Teorema: Un lenguaje L es reconocido por una máquina de
Turing no detereminista si y solo si L es reconocido por una
máquina de Turing estandar
DSIC - UPV
http://www.dsic.upv.es – p.15/28
Otros modelos de máquinas de Turing
Máquina multicabezal
Un único movimiento permite desplazar
independientemente las n cabezas de la máquina sobre la
única cinta.
Máquina multidimensional
Máquina con una matriz de celdas k dimensional infinita
como cinta.
En función del estado y el símbolo analizado, la máquina
cambia de estado y desplaza el cabezal de lectura en una
de las 2k direcciones.
DSIC - UPV
http://www.dsic.upv.es – p.16/28
Máquinas de Turing como computadores de funciones
La máquina de Turing puede verse como un computador de
funciones enteras f : Zn → Zm
• Función parcial vs. función total
Para codificar los valores de entrada y salida adoptamos la
siguiente convención:
cod(x1 , x2 , . . . , xn ) = 0x1 10x2 1 . . . 10xn
p.e: cod(2, 1, 3, 2) = 00101000100; cod(0, 3) = 1000;
cod(2, 0, 1) = 00110; cod(0, 0, 1) = 110
Se dice que una máquina de Turing M = (Q, Σ, Γ, δ, q0 , [, ∅)
calcula la función f : Zn → Zm si y solo si M para tras la
computación:
∗
q0 cod(x1 , x2 , . . . , xn ) αqβ
M
donde: αβ = cod(f (x1 , x2 , . . . , xn ))
DSIC - UPV
http://www.dsic.upv.es – p.17/28
Máquinas de Turing como computadores de funciones
Ejemplo: diferencia propia: m n =
(
si m ≥ n
en otro caso
m−n
0
M = ({q1 , q2 , q3 , q4 , q5 , q6 }, {0, 1}, {0, 1, [}, δ, q0 , [, ∅)
M1
0
1
[
q0
q1
q2
q3
q4
q5
q6
(q1 , [, R)
(q1 , 0, R)
(q3 , 1, L)
(q3 , 0, L)
(q4 , 0, L)
(q5 , [, R)
–
(q5 , [, R)
(q2 , 1, R)
(q2 , 1, R)
(q3 , 1, L)
(q4 , [, L)
(q5 , [, R)
–
–
–
(q4 , [, L)
(q0 , [, R)
(q6 , 0, R)
(q6 , [, R)
–
DSIC - UPV
http://www.dsic.upv.es – p.18/28
Máquinas de Turing como transductores
• Podemos considerar que una máquina de Turing computa
una determinada función sobre una cadena (o un conjunto
de ellas) en lugar de computarla sobre un conjunto de
enteros
• En este caso hablamos de transducción
• ejemplos sencillos son:
◦ Dividir una palabra en dos
◦ Aplicar un homomorfismo
◦ Desplazar (rotar) los simbolos un número de veces a
derecha o izquierda
DSIC - UPV
http://www.dsic.upv.es – p.19/28
Máquinas de Turing como enumeradores
Sea una máquina de Turing M multicinta que posee una cinta
de solo escritura (salida) cuyo cabezal no se desplaza nunca a
la izquierda.
M escribe cadenas sobre la cinta de salida separadas por un
símbolo especial de separación #.
contenido de la cinta de salida: x1 #x2 # . . . #xn # . . . donde
x i ∈ Σ∗
Lenguaje generado por M : G(M ) = {x1 #x2 # . . . #xn # . . .}
Notese que L = G(M ) es finito a no ser que M no pare nunca
Todo lenguaje recursivo puede ser generado por una máquina
de Turing en orden lexicográfico
DSIC - UPV
http://www.dsic.upv.es – p.20/28
Construcción de máquinas de Turing
• Una vez definida la máquina de Turing y sus variaciones,
puede estudiarse que problemas pueden resolverse
mediante una máquina de Turing
• Podemos considerar máquinas de Turing como subrutinas
para la construcción de otras máquinas más complejas.
• Podemos considerar máquinas simples:
◦ Máquinas generadoras de un lenguaje
◦ Máquinas que aceptan lenguajes recursivos (paran para
toda entrada)
◦ Máquinas que aceptan lenguajes r.e. (paran para toda
palabra que pertenece al lenguaje)
◦ Máquinas que computan alguna función o transducción
• Podemos representar estas máquinas como cajas negras,
pudiendo utilizar el resultado que devuelven como entrada
o señal de activación de otras máquinas.
DSIC - UPV
http://www.dsic.upv.es – p.21/28
Construcción de máquinas de Turing
Ejemplo:
w
M1
si
si
no
start
M2
DSIC - UPV
si
no
no
http://www.dsic.upv.es – p.22/28
Propiedades de cierre
Dado un lenguaje recursivo L, su complementario es recursivo
Sea M1 una máquina de Turing que reconoce L
w
M1
si
no
no
si
DSIC - UPV
http://www.dsic.upv.es – p.23/28
Propiedades de cierre
La clase de los lenguajes recursivos es cerrada bajo unión
Sean dos lenguajes rec. L1 , L2 y dos máquinas de Turing M1 y
M2 , tales que L1 = L(M1 ) y L2 = L(M2 )
w
M1
si
si
no
start
M2
si
no
DSIC - UPV
no
http://www.dsic.upv.es – p.24/28
Propiedades de cierre
La clase de los lenguajes recursivos es cerrada bajo
intersección
Sean dos lenguajes rec. L1 , L2 y dos máquinas de Turing M1 y
M2 , tales que L1 = L(M1 ) y L2 = L(M2 )
w
M1
no
no
si
start
no
M2
si
DSIC - UPV
si
http://www.dsic.upv.es – p.25/28
Propiedades de cierre
La clase de los lengujes recursivamente enumerables es
cerrada bajo unión
Sean dos lenguajes r.e. L1 , L2 y dos máquinas de Turing M1 y
M2 , tales que L1 = L(M1 ) y L2 = L(M2 ).
(M1 y M2 únicamente aseguran el fin de la computación si la
entrada pertenece al lenguaje)
w
M1
si
si
M2
si
DSIC - UPV
http://www.dsic.upv.es – p.26/28
Propiedades de cierre
Si L es recursivamente enumerable y L es recursivamente
enumerable, entonces L es recursivo
Sean dos máquinas de Turing M1 y M2 , tales que L = L(M1 ) y
L = L(M2 ).
w
M1
M2
si
si
si
no
DSIC - UPV
http://www.dsic.upv.es – p.27/28
Propiedades de cierre
Dados un lenguaje L y su complementario L, únicamente
pueden darse las siguientes situaciones:
• Tanto L como L son recursivos
• El lenguaje L es recursivamente enumerable (no recursivo)
y L no es recursivamente enumerable
• Los lenguajes L y L no son recursivamente enumerables
DSIC - UPV
http://www.dsic.upv.es – p.28/28
Descargar