Maquina de Turing

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 28

Tema 6: Mquina de Turing

Departamento de Sistemas Informaticos


y Computacion

DSIC - UPV

http://www.dsic.upv.es p.1/28


Tema 6: Maquina
de Turing
La Mquina de Turing.
Mquinas de Turing como aceptores
Otros modelos de mquina de Turing
Mquinas de Turing como computadores de funciones
Mquinas de Turing como enumeradores
Propiedades de cierre

DSIC - UPV

http://www.dsic.upv.es p.2/28


La Maquina
de Turing
Visin descriptiva
Cinta semi-infinita dividida en celdas
Control finito
Cabezal de lectura/escritura
En cada momento, cada celda contiene un smbolo del

alfabeto de cinta

Los smbolos de la palabra inicial pertenecen al alfabeto de

entrada. El resto de la cinta contiene [

Movimientos: En funcin del estado del C.F. y del smbolo

accedido por el cabezal, la mquina puede:


Cambiar de estado
Cambiar el smbolo contenido en la casilla accedida
Desplazar el cabezal una posicin a derecha o izquierda
DSIC - UPV

http://www.dsic.upv.es p.3/28


La Maquina
de Turing
Visin descriptiva
Los movimientos se repiten hasta que:
La mquina entra en estado final (se detiene aceptando

la entrada)
La mquina intenta acceder a la celda a la izquierda de
la celda inicial (se detiene rechazando la entrada)
La mquina entra en una situacin para la que no hay
definido movimiento (se detiene rechazando la entrada)

Puede ocurrir que ante determinada entrada, la mquina

siga realizando movimientos indefinidamente sin aceptar ni


rechazar dicha entrada

DSIC - UPV

http://www.dsic.upv.es p.4/28


La Maquina
de Turing
Ejemplo:

q0
q1

q0

(q0 ,0,R)

(q0 ,1,R)
(q2 ,1,R)

(q1 ,[,L)

q0

0
[

q0

F = {q2 }

q1

q0

0
[

DSIC - UPV

q0

q2

http://www.dsic.upv.es p.5/28


La Maquina
de Turing
Descripcin formal
M = (Q, , , , q0 , [, F ) donde:
Q: conjunto de estados
: alfabeto de entrada
: alfabeto de cinta ( )
: funcin de transicin

: Q Q {L, R}
q0 : estado inicial
[: simbolo blanco ([ )
F : conjunto de estados finales

Descripcin instantnea: secuencia de la forma 1 q2 donde


a1 , 2 y q Q. Describe la situacin de una MT
La cinta contiene la cadena 1 2 seguida de infinitos blancos.
El cabezal seala el primer smbolo de 2
DSIC - UPV

http://www.dsic.upv.es p.6/28


La Maquina
de Turing
Definiciones
Sobre el conjunto de descripciones instantneas se define

la relacin movimiento ():


Suponiendo que en un instante, la descripcin de una MT
es: x1 x2 . . . xi1 qxi xi+1 . . . xn ,
Si (q, xi ) = (p, y, L) x1 x2 . . . pxi1 yxi+1 . . . xn , (i > 1)
Si (q, xi ) = (p, y, R) x1 x2 . . . xi1 ypxi+1 . . . xn

Si D1 , D2 son dos descripciones instantneas:


D1  D2 el hecho que D1 pasa a D2 en un movimiento

D1  D2 el hecho que D1 pasa a D2 en cero o ms

movimientos

DSIC - UPV

http://www.dsic.upv.es p.7/28


Maquinas
de Turing como aceptores
Una palabra x es aceptada por una mquina de Turing M

sii a partir de la descripcin inicial se llega a una con estado


final

x L(M ) q0 x  1 q2 con 1 , 2 y q F

L(M ) = {x | q0 x  1 q2 , 1 , 2 , q F }
Un lenguaje es recursivamente enumerable si es aceptado

por una mquina de Turing

Un lenguaje es recursivo si es aceptado por una mquina

de Turing que se detiene ante todas las entradas

DSIC - UPV

http://www.dsic.upv.es p.8/28


Maquinas
de Turing como aceptores
Ejemplo 1: Sea el lenguaje L formado por las palabras sobre
= {0, 1} que contienen al menos un 1:
M1

q0
q1

(q0 ,0,R)

(q1 ,1,R)

M2

q0
q1

(q0 ,0,R)

(q1 ,1,R)

(q0 ,[,L)

F = {q1 }

F = {q1 }

Ambas mquinas 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


Maquinas
de Turing como aceptores
Ejemplo 2: Mquina que acepta el lenguaje de palabras sobre
{0, 1} que comienzan y acaban con el mismo smbolo
(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


Maquinas
de Turing como aceptores
Ejemplo 3: Mquina que acepta el lenguaje de palndromos
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 maquinas
de Turing

Maquina
con cinta infinita en ambos sentidos

M = (Q, , , , q0 , [, F )

Respecto el modelo bsico, ante la descripcin instantnea


qa y disponiendo de la transicin (q, a) = (p, b, L):
El modelo bsico para
Este modelo conduce a la D.I. p[b
Teorema: Un lenguaje L es reconocido por una mquina de
Turing con cinta infinita si y solo si L es reconocido por una
mquina de Turing con cinta semiinfinita

DSIC - UPV

http://www.dsic.upv.es p.12/28


Otros modelos de maquinas
de Turing

Maquina
multicinta

La mquina dispone de tantos cabezales

independientes como cintas


Una cinta (la primera) contiene la entrada. Las dems
estn en blanco
Cada movimiento viene determinado por el estado y por
los smbolos leidos por los distintos cabezales:
Cambiando de estado
Sustituyendo los smbolos en las cintas accedidas
Desplazando (L, R) o no (S ) la posicin del cabezal
de cada cinta (nueva opcin)
ejemplo de movimiento en una mquina con tres cintas:
(q, x1 , x2 , x3 ) = (p, y1 , y2 , y3 , m1 , m2 , m3 ), mi {L, R, S}
| {z }
| {z } |
{z
}
smbolos

smbolos

movimientos

DSIC - UPV

http://www.dsic.upv.es p.13/28


Otros modelos de maquinas
de Turing

Maquina
multicinta

M = (Q, , , , q0 , [, F )
: Q k Q ( {1, 0, 1})k
Desc. Intantanea: (1 q1 , 2 q2 , . . . , k qk )
Lenguaje aceptado: (i , i , q F )

L(M ) = {x

: q0 x, q0 [, . . . , q0 [  (1 q1 , . . . , k qk )}

Teorema: Un lenguaje L es reconocido por una mquina de


Turing multicinta si y solo si L es reconocido por una mquina
de Turing estandar

DSIC - UPV

http://www.dsic.upv.es p.14/28


Otros modelos de maquinas
de Turing

Maquina
no determinista

Mquina 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 mquina de


Turing no detereminista si y solo si L es reconocido por una
mquina de Turing estandar

DSIC - UPV

http://www.dsic.upv.es p.15/28


Otros modelos de maquinas
de Turing

Maquina
multicabezal

Un nico movimiento permite desplazar


independientemente las n cabezas de la mquina sobre la
nica cinta.

Maquina
multidimensional

Mquina con una matriz de celdas k dimensional infinita


como cinta.
En funcin del estado y el smbolo analizado, la mquina
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


Maquinas
de Turing como computadores de funciones
La mquina de Turing puede verse como un computador de
funciones enteras f : Zn Zm
Funcin parcial vs. funcin total

Para codificar los valores de entrada y salida adoptamos la


siguiente convencin:
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 mquina de Turing M = (Q, , , , q0 , [, )
calcula la funcin f : Zn Zm si y solo si M para tras la
computacin:

q0 cod(x1 , x2 , . . . , xn )  q
M

donde: = cod(f (x1 , x2 , . . . , xn ))


DSIC - UPV

http://www.dsic.upv.es p.17/28


Maquinas
de Turing como computadores de funciones
Ejemplo: diferencia propia: m n =

si m n
en otro caso

mn
0

M = ({q1 , q2 , q3 , q4 , q5 , q6 }, {0, 1}, {0, 1, [}, , q0 , [, )


M1

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


Maquinas
de Turing como transductores
Podemos considerar que una mquina de Turing computa

una determinada funcin sobre una cadena (o un conjunto


de ellas) en lugar de computarla sobre un conjunto de
enteros

En este caso hablamos de transduccin


ejemplos sencillos son:
Dividir una palabra en dos
Aplicar un homomorfismo
Desplazar (rotar) los simbolos un nmero de veces a

derecha o izquierda

DSIC - UPV

http://www.dsic.upv.es p.19/28


Maquinas
de Turing como enumeradores
Sea una mquina 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
smbolo especial de separacin #.
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 mquina
de Turing en orden lexicogrfico

DSIC - UPV

http://www.dsic.upv.es p.20/28

de maquinas

Construccion
de Turing
Una vez definida la mquina de Turing y sus variaciones,

puede estudiarse que problemas pueden resolverse


mediante una mquina de Turing

Podemos considerar mquinas de Turing como subrutinas

para la construccin de otras mquinas ms complejas.

Podemos considerar mquinas simples:


Mquinas generadoras de un lenguaje
Mquinas que aceptan lenguajes recursivos (paran para

toda entrada)
Mquinas que aceptan lenguajes r.e. (paran para toda
palabra que pertenece al lenguaje)
Mquinas que computan alguna funcin o transduccin
Podemos representar estas mquinas como cajas negras,

pudiendo utilizar el resultado que devuelven como entrada


o seal de activacin de otras mquinas.
DSIC - UPV

http://www.dsic.upv.es p.21/28

de maquinas

Construccion
de Turing
Ejemplo:

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 mquina de Turing que reconoce L

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 unin

Sean dos lenguajes rec. L1 , L2 y dos mquinas 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
interseccin

Sean dos lenguajes rec. L1 , L2 y dos mquinas 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 unin
Sean dos lenguajes r.e. L1 , L2 y dos mquinas de Turing M1 y
M2 , tales que L1 = L(M1 ) y L2 = L(M2 ).
(M1 y M2 nicamente aseguran el fin de la computacin 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 mquinas 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

También podría gustarte