4. Máquinas de Turing 4.1. Modelo básico. 4.2. Técnicas de diseño de máquinas de Turing. 4.3....

Post on 27-Jan-2015

39 views 0 download

Transcript of 4. Máquinas de Turing 4.1. Modelo básico. 4.2. Técnicas de diseño de máquinas de Turing. 4.3....

4. Máquinas de Turing

4.1. Modelo básico.4.2. Técnicas de diseño de máquinas de Turing.4.3. Otros modelos de máquinas de Turing.4.4. Lenguajes recursivamente enumerables y recursivos.4.5. Las máquinas de Turing como aceptores y enumeradores.4.6. Restricciones de la M. T.

4.1. Modelo básico de Máquina de Turing.

ana3a2a1 ...

control finito

• Cinta semi-infinita dividida en celdas.• Control finito.• Cabezal de lectura / escritura.• En cada momento cada celda contiene símbolo perteneciente a alfabeto de cinta.• Los símbolos de palabra inicial pertenecen a alfabeto de entrada. El resto de la cinta contiene B.

4.1.1. Visión descriptiva

Movimientos.En función del estado del C.F. y del símbolo accedido por el cabezal, la máquinapuede:• Cambiar de estado.• Cambiar el símbolo contenido en la casilla accedida.• Desplazar el cabezal una posición a izquierda o derecha.

B

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 casilla a la izquierda de la 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 sin aceptar ni rechazar dicha entrada.

0 1 B

q0 (q0, 0, R) (q0, 1, R) (q1, B, L)q1 -- (q2, 1, R) --

Ejemplo:

0 0 1 1 B 0 0 1 1 B0 0 1 1 B0 0 1 1 B0 0 1 1 B

q0 q0 q0 q0 q0

0 0 1 1 B

q1

0 0 1 1 B

q2

F ={q2}

M = (Q, , , , q0, B, F) • Q : Conjunto de estados.• : Alfabeto de entrada.• : Alfabeto de cinta ( ).• : Función de transición. : Q Q {L,R}.• q0 : Estado inicial, q0 Q.• B: Símbolo blanco B - .• F: conjunto de estados finales, F Q.

4.1.2. Descripción formal

Ejemplo. Máquina de Turing que acepta las palabras sobre el alfabeto {0, 1} queacaban por 1.

• Se desplaza el cabezal hasta la última casilla de entrada (primer Blanco)• Se comprueba que el último símbolo es 1.

M = (Q, , , , q0, B, F) • Q = {q0, q1, q2}• = {0,1}.• = {0, 1, B}.• (q0, 0) = (q0, 0, R), (q0, 1) = (q0, 1, R), (q0, B) = (q1, B, L), (q1, 1) = (q2, 1, R).• F = {q2}

q0 q1

q2

(0/0/R)(1/1/R)

(B/B/L)

(1/1/R)

0 1 B

q0 (q0, 0, R) (q0, 1, R) (q1, B, L)q1 -- (q2, 1, R) --

4.1.3. Descripción Instantánea

Es una secuencia de la forma 1q2 con 1, 2 * y q Q

Describe la situación de una MT con la cinta conteniendo 12 seguida de infinitos B, y el cabezal señalando el primer símbolo de 2 .

Sobre el conjunto de las descripciones instantáneas se define la relación movimiento ( ):

Supongamos que antes del movimiento la descripción es: x1x2...xi-1 q xix i+1...xn.,• Si (q, xi) = (p, y, L) se obtiene x1x2...p xi-1 yx i+1...xn. (para i > 1).• Si (q, xi) = (p, y, R) se obtiene x1x2... xi-1 y p x i+1...xn..

Si D1 y D2 son dos descripciones instantáneas representamos por

• D1 D2 el hecho de que D1 pasa a D2 en un movimiento.

• D1 D2 el hecho de que D1 pasa a D2 en cero o más movimientos.

*

*

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 1q2 con 1, 2 * y q F

*

L(M) = {x * : q0 x 1q2 ,1, 2 * , q F }

Un lenguaje se denomina:• Recursivamente Enumerable: si es aceptado por una máquina de Turing.• Recursivo: si es aceptado por una máquina de Turing que se detiene ante todas las entradas.

Ejemplo. Sea el lenguaje L formado por todas las palabras sobre {0,1} que contienenal menos un 1.

q0 q1

(0/0/R)

(1/1/R) q0 q1

(0/0/R)(B/B/R)

(1/1/R)

Esta máquina se detiene siemprey reconoce L.

Esta máquina reconoce L pero no sedetiene para 0*.

El lenguaje L es recursivo

Ejemplo.Máquina de Turing que acepta el lenguaje de las palabras sobre {0,1} que comienzan y terminan por el mismo símbolo.

q0 q5

q4

(0/0/R)

(0/0/R)(1/1/R)

(B/B/L)q1

q2

q3

(0/0/R)

(0/0/R)(1/1/R)

(B/B/L)

(1/1/R)(1/1/R)

Ejemplo.Lenguaje de las palabras palíndromos sobre {0,1}

q0 q5

q4(B/B/R)

(0/B/R)

(0/0/R)(1/1/R)

(B/B/L) (0/0/L)(1/1/L)

q1

q2

q3

(0/B/L)

(0/0/R)(1/1/R)

(B/B/L)

(1/B/L)(1/B/R)

(B/B/R)

q6

(B/B/R)

(B/B/R)

4.2. Técnicas de diseño de Máquinas de Turing.- Son técnicas que contribuyen a la comprensión (“subir” el nivel de la programación).- No afectan a la definición.

Almacenamiento en control finito Utilizamos para los estados vectores con un número finito de componentes.• Una componente cumple la función de control.• Las restantes almacenan información.

Ejemplo. Máquina de Turing que comprueba que el primer símbolo de una palabra (sobre {0,1}) no vuelve a aparecer

Q = { [q0 , B], [q1 , B], [q1 , 0], [q1 , 1]}

q0 = [q0 , B], F = { [q1 , B] }

([q0 , B], 0) = ([q1 , 0], 0, R) ([q0 , B], 1) = ([q1 , 1], 1, R)([q1 , 0], 1) = ([q1 , 0], 1, R) ([q1 , 1], 0) = ([q1 , 1], 0, R)([q1 , 0], B) = ([q1 , B], B, R) ([q1 , 1], B) = ([q1 , 1], B, R)

q0

(0/0/R)

(1/1/R)

(B/B/R)q1

q2

q3

(0/0/R)

(B/B/R)(1/1/R)

Con la representación expuesta anteriormente, la M.T. sería:

Ejemplo. Fragmento de código de máquina de Turing que desplaza el contenidode la cinta dos posiciones a la derecha.

Se utilizan estados con tres componentes.

ana3a2a1 ... B

ana3a2B ... B

([q0 , B, B], a1) = ([q0, B, a1], 0, R)[q0 , B, B] [q0 , B, a1]

ana3a2B ... B

ana3BB ... B

([q0 ,B, a1], a2) = ([q0, a1, a2], B, R)[q0 , B, a1] [q0 , a1, a2]

an-2a1BB ... B

an-1a1BB ... B

([q0 , an-1, an], B) = ([q0, an, B], an-1, R)[q0 , an-1, an] [q0 , an, B]

ana3BB ... B

([q0 , an, B], B) = ([q0, B, B], an, R) [q0 , B, B]

an-1a1BB ... B

[q0 , an, B]

Al final se realiza el proceso contrario.

ana3BB ... B

ana1BB ... B

([q0 ,B, a1], a2) = ([q0, a1, a2], B, R) [q0 , a2, a3][q0 , a1, a2]

q0

(0/B/R)

(1/1/R)

q1

q2

q3

(0/0/R)

(1/B/R)

Con la representación expuesta anteriormente, la M.T. para desplazar unacelda sobre {0, 1} es:

(0/1/R)(1/0/R)

(B/0/R)

(B/1/R)

Máquina que traslada símbolos una celda

Recuerda un 0

Recuerda un 1

Deposita el último 0

Deposita el último 1

Cintas multipista. Se utiliza una cinta dividida en k pistas (nombre de símbolos:vectores de k componentes)

...

q0

a2

a1

... B

BLa función de transición será de la forma(q , [x , y]) = (p , [x’ , y’], R)

Ejemplo. MT que reconoce {0n1n : n>0}

q0

(0B/0X/R)

(0B/0B/R)(1Y/1Y/R)

(1B/1Y/L)q1

q2

q3

(0B/0B/L)(1Y/1Y/L)

(0X/0X/R)

(1Y/1Y/R)q4

(1Y/1Y/R)

(BB/BB/R)

Ejemplo. MT que reconoce {0n1n 0n: n>0}

(0/Z/L)

q2

q3

(Z/Z/L)(0/0/L)(1/1/L)(Y/Y/L)

(Y/Y/R)

q4(B/B/R)

q0

(0/X/R)

(0/0/R)(Y/Y/R)

(1/Y/R)q1 q2

(Z/Z/R)(1/1/R)

(X/X/R)

(Y/Y/R)(Z/Z/R)

para {0n1n 0n: n0}(B/B/R)

4.3. Otros modelos de máquinas de Turing.Afectan a la definición, no a la potencia.

1. Máquina con cinta infinita en los dos sentidosM = (Q, , , , q0, B, F)Diferencia con el modelo básico: Con la D.I. qa, ante (q, a) = (p, x, L)• La anterior para.• Esta produce la D.I. pBx.

L es reconocido por una MT 2 L es reconocido por MT 1 M1= (Q1, , 1, 1, q1, B, F) 1- , construimos M2= (Q2, , 2, 2, q2, B, F) con: Q2 = Q1 {q2}, 2 = 1 {X} y 2 = 1 + las siguientes transiciones 1. 2 (q2, a) = (q2, a, L), a (para las que está definida )2. 2 (q2, B) = (q1, X, R)3. No se define 2 (qi, X)

a

q2

Xa

q2

B a

q1

X

1 2 3L(M2) = L(M1)

A partir de una máquina M2 = (Q2, 2, 2, 2, q2, B, F 2) con cinta 2 se construye una M1= (Q1, 1, 1, 1, q1, B, F 1) con dos pistas:

• Q1= {[q , x]: q Q2 , x {U, D}} {q1}• 1 = {(a, B), a 2}• 1 = {(X, Y), X 2 , Y 2 {}}

• F1 = {[q , X]: q F 2, X {U, D}}

0

q2

-1 21 ...-1

0... B

B1 2

-2

q1

simula comportamientoa la derecha

simula comportamientoa la izquierda

La función de transición es de la forma:Si 2 (q2, a) = (q, X, R) 1 (q1, (a, B)) = ([q , U] , (X, ), R) (al comienzo)Si 2 (q2, a) = (q, X, L) 1 (q1, (a, B)) = ([q , D] , (X, ), R) Si 2 (q, X) = (p, Z, A) 1 ([q , U] , (X, Y)) = ([p , U] , (Z, Y), A), A {L, R}............................

2. Máquina multicinta

No confundir con máquina multipista

X1

. . . . . . .

q

X2

Xn

• Una cinta contiene los datos de entrada, las demás están inicialmente en blanco.• Cada cinta tiene su cabezal de L/E que se desplaza de manera independiente.• Cada movimiento es función del estado y de los símbolos leidos por los cabezales. En función de ellos, la máquina:

- Cambia de estado.- Sustituye los símbolos de las cintas accedidas.- Se desplaza el cabezal (o no, nueva posibilidad).

• Ejemplo de movimiento de máquina con tres cintas: (q, X1 ,X2 , X3) = (p, Y1 ,Y2 , Y3, M1 ,M2 , M3) Mi {L, R, S}

M = (Q, , , , q0, B, F)•Función de transición : Q k Q ( {-1, 0, 1})k.•Descripción instantánea (1q1 , 2q 2 ... kq k )•Lenguaje aceptado L(M) = {x * : (q0 x, q0 B... q0 B) (1q1 ,... kq k ),1, 2 * , q F }

Máquina multicinta.- Formalización

*

L es reconocido por una MT multicinta L es reconocido por MT estándar L = L(M1), M1 multicinta con k cintas. Construimos M2 con una cinta y 2k pistas:

...

... BA1

B

...

... B

B

...

... B

B

A2 A3

x

B1 B2 B3

x

K1 K2 K3

x

•El CF de M2 almacena el estado de M1 y el número de marcas a la derecha del cabezal.• Cada movimiento de M1 supone dos recorridos de M2.

contenido de la cinta de M1

marca con posición de cabeza de M1

3. Máquina de Turing No Determinista

Máquina de Turing estándar con una sola cinta y un solo control finito.Su función de transición es : Q P(Q {L,R}).(p, a) = {(p1, a1, z1), (p2, a2, z2),... (pn, an, zn)}, pi Q, ai , zi {L,R}• Tiene la misma potencia que la estándar.

4. Máquina de Turing Multidimensional

...

... Ba2

B

...

... B

B

a3 a4

a1

B B B

a5

B B

B B

...

...

...

...

• Control finito usual.• Cinta: matriz de celdas k-dimensional infinita en las 2k direcciones.• En función del estado y símbolo, la máquina:

-cambia de estado.-se desplaza en una de las 2k direcciones.

5. Máquina de Turing Multicabeza

X1

q

X2 Xn...X3

En un movimiento cada cabeza puede moverse independientemente.

L es reconocido por una MT de k cabezas L es reconocido por MT estándar L = L(M1), M1 con k cabezas. Construimos M2 con una cinta y k + 1 pistas:

...

... B

A1 B

...

... B

B

...

... B

B

A2 A3

x

x

• El CF de M2 almacena el estado de M1.• La primera pista de M2 almacena el contenido de la cinta de M1. • Las restantes contienen marcas (posiciones de los cabezales de M1).x

x

x

B B

B B

B B

B B

B Bk

...k...

Hipótesis de Church:funciones computables L. recursivamente enumerables

4.5. Las M.T. como enumeradores

• M.T. multicinta con una en la que solo se puede escribir y avanzar a la derecha.• las palabras se separan por marcas (#).• Si aparece x escrito entre dos marcas, la máquina genera x.• Solo se genera lenguaje infinito si no para nunca. No se imponen restricciones en cuanto a orden ni repeticiones.• G(M) = {x * : x es eventualmente escrito en la cinta entre #}

L = G(M) L es recursivamente enumerable

Sea L = G(M1). Hay que construir M2 tal que L(M2) = L. • M2 toma como entrada x y simula el comportamiento de M1.• Cada vez que M1 genera una palabra se compara con x.• Si son iguales M2 acepta x. L(M1) = L. Hay que construir tal que G(M2) = L.Una posibilidad:• Producir una enumeración de * y someter cada palabra a M1. • Si M1 para, M2 la genera en su cinta de salida. Problema: M1 no necesariamente para ante todas las entradas.¿Qué ocurre si M1(xi ) no para?

Método correcto:• Se fija un orden canónico para *.• Se obliga a que M1 pare, proporcionándole:

(número de orden de la palabra, pasos que ha de hacer M1) = (i, j)• No todas las enumeraciones son válidas, ej (1, 1), (1, 2), (1, 3)... ¿(2, 1)?• Una enumeración es computable si todo par tiene la posibilidad de aparecer en tiempo finito. Ejemplo: Ordenar por i + j creciente. A igualdad valor de i + j ordenar por valores de i crecientes.

L es recursivamente enumerable M : L = G(M) sin repeticiones(el método anterior es el correcto)

L es recursivo M : L = G(M) en orden canónico L es recursivo L = L(M1) y x *, M1(x) para.Construcción de M:• Sometemos a M1, de forma ordenada, *.• Si M1 acepta una palabra x, M la genera.

Supongamos M : L = G(M) en orden canónico.Construimos M’ como sigue:• Toma como entrada x *• M’ simula a M (comienza a generar palabras en orden canónico)

• Si M genera x, M’ para y acepta la entrada.• Si M genera una palabra con índice posterior a x, M’ para y rechaza.

Problema: L es finito (no está garantizado que una máquina pare después de generarla última palabra de un lenguaje finito). Si la entrada es posterior a la última palabrade L, no sabemos si acepta No existe procedimiento efectivo para el cálculo de M’,pero: L es finito L es regular L es recursivo.

4.6. Restricciones de la M. T.Si L (0+1)* recursivamente enumerable M con = {0, 1, B}y L = L(M)

•Supongamos L = L(M1) con M1 = (Q, {0, 1}, 1, , q0, B, F)•Con k 0’s y 1’s se pueden codificar entre 2 k-1 + 1 y 2 k símbolos de 1 cada celda de M1 pasa a ser k celdas de M. Si la cinta de M1 contiene

la de M contiene

•El control finito de M ha de guardar además del estado, la posición módulo k de la cabeza.

• Cada movimiento M1 de supone k movimientos de M.

Si L * recursivamente enumerable M con = {0, 1, B}y L = L(M)

ana3a2a1 ... B

a1k a21a12a11... Ba22 a2k an1 an2

... ... ... ank

código de a1