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

27
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.

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....

Page 1: 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.

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.

Page 2: 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.

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

Page 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.

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}

Page 4: 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.

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

Page 5: 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.

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) --

Page 6: 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.

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.

*

Page 7: 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.

*

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.

Page 8: 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.

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

Page 9: 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.

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)

Page 10: 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.

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)

Page 11: 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.

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)

Page 12: 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.

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:

Page 13: 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.

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]

Page 14: 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.

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]

Page 15: 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.

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

Page 16: 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.

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)

Page 17: 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.

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)

Page 18: 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.

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)

Page 19: 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.

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}............................

Page 20: 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.

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}

Page 21: 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.

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

Page 22: 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.

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.

Page 23: 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.

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

Page 24: 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.

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?

Page 25: 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.

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.

Page 26: 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.

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.

Page 27: 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.

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