La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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.

Presentaciones similares


Presentación del tema: "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."— Transcripción de la presentación:

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

2 4.1. Modelo básico de Máquina de Turing. anan a3a3 a2a2 a1a1... 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 Visión descriptiva 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 izquierda o derecha. B

3 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. 01B q 0 (q 0, 0, R) (q 0, 1, R) (q 1, B, L) q 1 -- (q 2, 1, R) -- Ejemplo: B q0q0 q0q0 q0q0 q0q0 q0q0 q1q1 q2q2 F ={q 2 }

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

5 Ejemplo. Máquina de Turing que acepta las palabras sobre el alfabeto {0, 1} que acaban 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,,,, q 0, B, F) Q = {q 0, q 1, q 2 } = {0,1}. = {0, 1, B}. (q 0, 0) = (q 0, 0, R), (q 0, 1) = (q 0, 1, R), (q 0, B) = (q 1, B, L), (q 1, 1) = (q 2, 1, R). F = {q 2 } q0q0 q1q1 q2q2 (0/0/R) (1/1/R) (B/B/L) (1/1/R) 01B q 0 (q 0, 0, R) (q 0, 1, R) (q 1, B, L) q 1 -- (q 2, 1, R) --

6 Descripción Instantánea Es una secuencia de la forma 1 q 2 con 1, 2 * y q Q Describe la situación de una MT con la cinta conteniendo 1 2 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: x 1 x 2...x i-1 q x i x i+1...x n., Si (q, x i ) = (p, y, L) se obtiene x 1 x 2...p x i-1 yx i+1...x n. (para i > 1). Si (q, x i ) = (p, y, R) se obtiene x 1 x 2... x i-1 y p x i+1...x n.. Si D 1 y D 2 son dos descripciones instantáneas representamos por D 1 D 2 el hecho de que D 1 pasa a D 2 en un movimiento. D 1 D 2 el hecho de que D 1 pasa a D 2 en cero o más movimientos.

7 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) q 0 x 1 q 2 con 1, 2 * y q F L(M) = {x * : q 0 x 1 q 2, 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.

8 Ejemplo. Sea el lenguaje L formado por todas las palabras sobre {0,1} que contienen al menos un 1. q0q0 q1q1 (0/0/R) (1/1/R) q0q0 q1q1 (0/0/R) (B/B/R) (1/1/R) Esta máquina se detiene siempre y reconoce L. Esta máquina reconoce L pero no se detiene para 0*. El lenguaje L es recursivo

9 Ejemplo. Máquina de Turing que acepta el lenguaje de las palabras sobre {0,1} que comienzan y terminan por el mismo símbolo. q0q0 q5q5 q4q4 (0/0/R) (1/1/R) (B/B/L) q1q1 q2q2 q3q3 (0/0/R) (1/1/R) (B/B/L) (1/1/R)

10 Ejemplo. Lenguaje de las palabras palíndromos sobre {0,1} q0q0 q5q5 q4q4 (B/B/R) (0/B/R) (0/0/R) (1/1/R) (B/B/L) (0/0/L) (1/1/L) q1q1 q2q2 q3q3 (0/B/L) (0/0/R) (1/1/R) (B/B/L) (1/B/L) (1/B/R) (B/B/R) q6q6

11 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 = { [q 0, B], [q 1, B], [q 1, 0], [q 1, 1]} q 0 = [q 0, B], F = { [q 1, B] } ([q 0, B], 0) = ([q 1, 0], 0, R) ([q 0, B], 1) = ([q 1, 1], 1, R) ([q 1, 0], 1) = ([q 1, 0], 1, R) ([q 1, 1], 0) = ([q 1, 1], 0, R) ([q 1, 0], B) = ([q 1, B], B, R) ([q 1, 1], B) = ([q 1, 1], B, R)

12 q0q0 (0/0/R) (1/1/R) (B/B/R) q1q1 q2q2 q3q3 (0/0/R) (B/B/R) (1/1/R) Con la representación expuesta anteriormente, la M.T. sería:

13 Ejemplo. Fragmento de código de máquina de Turing que desplaza el contenido de la cinta dos posiciones a la derecha. Se utilizan estados con tres componentes. anan a3a3 a2a2 a1a1... B anan a3a3 a2a2 B B ([q 0, B, B], a 1 ) = ([q 0, B, a 1 ], 0, R) [q 0, B, B] [q 0, B, a 1 ] anan a3a3 a2a2 B... B anan a3a3 BB B ([q 0,B, a 1 ], a 2 ) = ([q 0, a 1, a 2 ], B, R) [q 0, B, a 1 ] [q 0, a 1, a 2 ]

14 a n-2 a1a1 BB... B a n-1 a1a1 BB... B ([q 0, a n-1, a n ], B) = ([q 0, a n, B], a n-1, R) [q 0, a n-1, a n ] [q 0, a n, B] anan a3a3 BB... B ([q 0, a n, B], B) = ([q 0, B, B], a n, R) [q 0, B, B] a n-1 a1a1 BB... B [q 0, a n, B] Al final se realiza el proceso contrario. anan a3a3 BB... B anan a1a1 BB B ([q 0,B, a 1 ], a 2 ) = ([q 0, a 1, a 2 ], B, R) [q 0, a 2, a 3 ] [q 0, a 1, a 2 ]

15 q0q0 (0/B/R) (1/1/R) q1q1 q2q2 q3q3 (0/0/R) (1/B/R) Con la representación expuesta anteriormente, la M.T. para desplazar una celda 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

16 Cintas multipista. Se utiliza una cinta dividida en k pistas (nombre de símbolos: vectores de k componentes)... q0q0 a2a2 a1a1 B B La función de transición será de la forma (q, [x, y]) = (p, [x, y], R) Ejemplo. MT que reconoce {0 n 1 n : n>0} q0q0 (0B/0X/R) (0B/0B/R) (1Y/1Y/R) (1B/1Y/L) q1q1 q2q2 q3q3 (0B/0B/L) (1Y/1Y/L) (0X/0X/R) (1Y/1Y/R) q4q4 (BB/BB/R)

17 Ejemplo. MT que reconoce {0 n 1 n 0 n : n>0} (0/Z/L) q2q2 q3q3 (Z/Z/L) (0/0/L) (1/1/L) (Y/Y/L) (Y/Y/R) q4q4 (B/B/R) q0q0 (0/X/R) (0/0/R) (Y/Y/R) (1/Y/R) q1q1 q2q2 (Z/Z/R) (1/1/R) (X/X/R) (Y/Y/R) (Z/Z/R) para {0 n 1 n 0 n : n 0} (B/B/R)

18 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 sentidos M = (Q,,,, q 0, 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 M 1 = (Q 1,, 1, 1, q 1, B, F) 1-, construimos M 2 = (Q 2,, 2, 2, q 2, B, F) con: Q 2 = Q 1 {q 2 }, 2 = 1 {X} y 2 = 1 + las siguientes transiciones 1. 2 (q 2, a) = (q 2, a, L), a (para las que está definida ) 2. 2 (q 2, B) = (q 1, X, R) 3. No se define 2 (q i, X) a q2q2 Xa q2q2 Ba q1q1 X L(M 2 ) = L(M 1 )

19 A partir de una máquina M 2 = (Q 2, 2, 2, 2, q 2, B, F 2 ) con cinta 2 se construye una M 1 = (Q 1, 1, 1, 1, q 1, B, F 1 ) con dos pistas: Q 1 = {[q, x]: q Q 2, x {U, D}} {q 1 } 1 = {(a, B), a 2 } 1 = {(X, Y), X 2, Y 2 { }} F 1 = {[q, X]: q F 2, X {U, D}} 0 q2q B B12 -2 q1q1 simula comportamiento a la derecha simula comportamiento a la izquierda La función de transición es de la forma: Si 2 (q 2, a) = (q, X, R) 1 (q 1, (a, B)) = ([q, U], (X, ), R) (al comienzo) Si 2 (q 2, a) = (q, X, L) 1 (q 1, (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}

20 2. Máquina multicinta No confundir con máquina multipista X1X q X2X2 XnXn 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, X 1,X 2, X 3 ) = (p, Y 1,Y 2, Y 3, M 1,M 2, M 3 ) M i {L, R, S}

21 M = (Q,,,, q 0, B, F) Función de transición : Q k Q ( {-1, 0, 1}) k. Descripción instantánea ( 1 q 1, 2 q 2... k q k ) Lenguaje aceptado L(M) = {x * : (q 0 x, q 0 B... q 0 B) ( 1 q 1,... k q 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(M 1 ), M 1 multicinta con k cintas. Construimos M 2 con una cinta y 2k pistas:... BA1A1 B B B B B A2A2 A 3 x B1B1 B2B2 B 3 x K1K1 K2K2 K 3 x El CF de M 2 almacena el estado de M 1 y el número de marcas a la derecha del cabezal. Cada movimiento de M 1 supone dos recorridos de M 2. contenido de la cinta de M 1 marca con posición de cabeza de M 1

22 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) = {(p 1, a 1, z 1 ), (p 2, a 2, z 2 ),... (p n, a n, z n )}, p i Q, a i, z i {L,R} Tiene la misma potencia que la estándar. 4. Máquina de Turing Multidimensional... Ba2a2 B B B a3a3 a 4 a1a1 BB B a5a5 BB BB... 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.

23 5. Máquina de Turing Multicabeza X1X1 q X2X2 XnXn...X3X3 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(M 1 ), M 1 con k cabezas. Construimos M 2 con una cinta y k + 1 pistas:... B A1A1 B B B B B A2A2 A 3 x x El CF de M 2 almacena el estado de M 1. La primera pista de M 2 almacena el contenido de la cinta de M 1. Las restantes contienen marcas (posiciones de los cabezales de M 1 ). x x x BB BB BB BB BB k...k... Hipótesis de Church: funciones computables L. recursivamente enumerables

24 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(M 1 ). Hay que construir M 2 tal que L(M 2 ) = L. M 2 toma como entrada x y simula el comportamiento de M 1. Cada vez que M 1 genera una palabra se compara con x. Si son iguales M 2 acepta x. L(M 1 ) = L. Hay que construir tal que G(M 2 ) = L. Una posibilidad: Producir una enumeración de * y someter cada palabra a M 1. Si M 1 para, M 2 la genera en su cinta de salida. Problema: M 1 no necesariamente para ante todas las entradas. ¿Qué ocurre si M 1 (x i ) no para?

25 Método correcto: Se fija un orden canónico para *. Se obliga a que M 1 pare, proporcionándole: (número de orden de la palabra, pasos que ha de hacer M 1 ) = (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(M 1 ) y x *, M 1 (x) para. Construcción de M: Sometemos a M 1, de forma ordenada, *. Si M 1 acepta una palabra x, M la genera.

26 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 generar la última palabra de un lenguaje finito). Si la entrada es posterior a la última palabra de 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.

27 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(M 1 ) con M 1 = (Q, {0, 1}, 1,, q 0, B, F) Con k 0s y 1s se pueden codificar entre 2 k y 2 k símbolos de 1 cada celda de M 1 pasa a ser k celdas de M. Si la cinta de M 1 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 M 1 de supone k movimientos de M. Si L * recursivamente enumerable M con = {0, 1, B}y L = L(M) anan a3a3 a2a2 a1a1... B a 1k a21a21 a 12 a Ba22a22 a2ka2k an1an1 a n2... a nk código de a 1


Descargar ppt "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."

Presentaciones similares


Anuncios Google