43
MÁQUINAS DE TURING Teoría del Autómata

MÁQUINAS DE TURING

  • Upload
    maura

  • View
    49

  • Download
    0

Embed Size (px)

DESCRIPTION

MÁQUINAS DE TURING. Teoría del Autómata. Definición. Definimos una máquina de Turing como una 7-tupla M = ( Q , S , G , s , b , F , d ), donde. Q es un conjunto finito de estados S es un alfabeto de entrada G es un alfabeto llamado alfabeto de la cinta - PowerPoint PPT Presentation

Citation preview

Page 1: MÁQUINAS DE TURING

MÁQUINAS DE TURING

Teoría del Autómata

Page 2: MÁQUINAS DE TURING

Definición

Definimos una máquina de Turing como una 7-tupla M = (Q, , , s, b, F, ), donde

Q es un conjunto finito de estados es un alfabeto de entrada es un alfabeto llamado alfabeto de la cinta s Q es el estado inicial b es el símbolo blanco F Q es el conjunto de estados finales o de aceptación d: Q Q {L, R} es una función parcial que se llama función de transición

Page 3: MÁQUINAS DE TURING

La cinta

La máquina de Turing posee una cinta dividida en celdas, cada celda es capaz de almacenar un símbolo.

Además posee una cabeza lectora/escritora que lee y escribe un símbolo en la cinta. Inicialmente la cinta contiene b en todas sus celdas.

La función de transición transforma pares (q, ) en ternas de la forma (p, t, X), donde p es el siguiente estado, t es el símbolo escrito en la cinta y X es el movimiento de la cabeza lectora/escritora, que puede ser L o R.

a b b

Posición de la cabeza lectora/escritora

Estado interno q1

(q1, a) = (q5, b, R) b b b

Posición de la cabeza lectora/escritora

Estado interno q5

Page 4: MÁQUINAS DE TURING

Representación instantáneaSe puede dar una descripción instantánea de la máquina de Turing similar a la de los ADPND, para la transición anterior sería

(q1, abb) ├─ (q5, bbb)

el carácter subrayado indica la posición de la cabeza lectora/escritora.

Otra posibilidad es anteponer el estado actual al carácter señalado por la cabeza lectora/escritora como se muestra

q1abb ├─ bq5bb

Page 5: MÁQUINAS DE TURING

Máquinas de Turing como aceptadores de lenguajes

Sea M = (Q, , , s, b, F, ) una máquina de Turing. Entonces el lenguaje aceptado por M es

L(M) = {w * | q1w ├─* w1pw2 para p F y wi *}

Los lenguajes aceptados por las máquinas de Turing se conocen como lenguajes recursivamente enumerables.

Una cadena puede rechazarse por una máquina de Turing si se termina de procesarla en un estado de no aceptación. Otra forma es rechazarla al entrar en un bucle infinito.

Page 6: MÁQUINAS DE TURING

Ejemplo

El lenguaje regular a* es aceptado por la máquina Q = {q1, q2}, s = q1, F = {q2}, (q1, a) = (q1, a, R) y (q1, #) = (q2, #, R)

También puede se aceptar por la máquina:

Q = {q1, q2 , q3}, s = q1, F = {q3},

(q1, a) = (q1, a, R) (q2, a) = (q2, a, R)

(q1, b) = (q2, b, R) (q2, b) = (q2, b, R)

(q1, #) = (q3, #, R) (q2, #) = (q2, #, R)

Page 7: MÁQUINAS DE TURING

Ejemplo El lenguaje anbn es aceptado por la máquina Q = {q1, q2 , q3 , q4 , q4}, s = q1, F = {q5}

(q1, a) = (q2, c, R) (q2, d) = (q2, d, R)

(q2, a) = (q2, a, R) (q2, b) = (q3, d, L)

(q3, d) = (q3, d, L) (q3, a) = (q3, a, L)

(q3, c) = (q1, c, R)

(q1, d) = (q4, d, R) (q4, d) = (q4, d, R)

(q4, #) = (q5, #, L)

Page 8: MÁQUINAS DE TURING

Ejemplo

El siguiente grafo muestra una máquina de Turing transforma una cadena de la forma anbam en an+mb mediante la siguiente función de transición:

(q1, a) = (q1, a, R)(q1, b) = (q2, a, R)(q2, a) = (q2, a, R)(q2, #) = (q3, #, L)(q3, a) = (q4, b, L)(q4, a) = (q4, a, L)(q4, #) = (q5, #, R)

Page 9: MÁQUINAS DE TURING

Maquinas de Turing y lenguajes

Una máquina de Turing que acepta un lenguaje no necesita detenerse para cualquier cadena de entrada, solo para las que pertenecen al lenguaje.

Hay lenguajes RE para los cuales ninguna máquina de Turing que los acepte para con todas las entradas.

La subclase de lenguajes que son aceptados al menos por una máquina de Turing que para con toda cadena de entrada se llaman lenguajes recursivos.

Page 10: MÁQUINAS DE TURING

Funciones Turing computablesSe dice que una función de cadena f e sTuring computable si existe una máquina de Turing M = (Q, , , q1, #, F, ) para la cual q1w |–* qf u para algún qf F, cuando f (w) = u.

La función f (m, n) = m + n se puede implementar con

(q1, a) = (q1, a, R) (q3, a) = (q4, b, L)

(q1, b) = (q2, a, R) (q4, a) = (q4, a, L)

(q2, a) = (q2, a, R) (q4, #) = (q5, #, R)

(q2, c) = (q3, b, L)

Page 11: MÁQUINAS DE TURING

a/a,R

b/a,R

a/a,R

#/#,L a/b,L #/#,R

a/a,L

q2 q3 q4 q5q1

Diagrama de estados

Page 12: MÁQUINAS DE TURING

EjemploLa siguiente máquina de Turing reconoce el lenguaje anbn.

(q1, a) = (q2, c, R)(q2, a) = (q2, a, R)(q2, d) = (q2, d, R)(q2, b) = (q3, d, L)(q3, d) = (q3, d, L)(q3, a) = (q3, a, L)(q3, c) = (q1, c, R)(q1, d) = (q4, d, R)(q4, d) = (q4, d, R)(q4, b) = (q5, b, L)

a/a, L

a/c, R

a/a, R

d/d, R

b/b, L

d/d, R

q1q2 q3

q4

q5

b/d, L

d/d, R d/d, L

c/c, R

Page 13: MÁQUINAS DE TURING

Construcción de Máquinas de TuringDefinición. Sean M1 y M2 dos máquinas de Turing sobre el mismo alfabeto de entrada y el mismo alfabeto de salida , donde

M1 = (Q, , , s1, b, F1, 1)

M2 = (Q, , , s2, b, F2, 2)

se supone Q1 Q2 = , La composición de máquinas de Turing M1 y M2 es la máquina de Turing M = (Q, , , s, b, F, ), que se denota por M1M2. donde

Q = Q1 Q2

s=s1

F = F2

1(q, ) si q Q1 y 1(q, ) (p, , X) p F1

= 2(q, ) si q Q2

(s2, , X) si q Q1 y 1(q, ) =(p, , X) para algún p F1

{

Page 14: MÁQUINAS DE TURING

Bloques de construcciónDefinimos Rb como la máquina M1 con F1 = {q4} con

1(q1, a) = (q2, a, R)1(q1, #) = (q2, #, R)1(q2, a) = (q2, a, R)1(q2, #) = (q3, #, L)1(q3, #) = (q4, #, R)1(q3, a) = (q4, a, R)

Mueve la cabeza lec/esc hasta la posición del siguiente blanco a la derecha.

Definimos la máquina M2 con F2 = {p2} con

2(p1, a) = (p2, a, R)2(p1, #) = (p2, a, R)

Escribe a en la posición de la cabeza lec/esc. Se representa por el símbolo a.

Definimos M1M2 estará dada por

(q1, a) = (q2, a, R)(q1, #) = (q2, #, R)(q2, a) = (q2, a, R)(q2, #) = (q3, #, L)(q3, #) = (p1, #, R)(q3, a) = (p1, a, R)(p1, a) = (p2, a, R)(p1, #) = (p2, a, R)

con F = {p2}

Se mueve al siguiente blanco a la derecha y escribe una a.

Page 15: MÁQUINAS DE TURING

Ejemplo

a a a a a a

Cabeza lec/esc

Antes de R#R#

a a a a a a

Cabeza lec/esc

Después de R#R#

#

Page 16: MÁQUINAS DE TURING

Otra forma de R#

(q, )

# = #

q1 (q2, , R) (q2, #, R)

q2 (q2, , R) (q3, #, L)

q3 (q4, , R) (q4, #, R)

Page 17: MÁQUINAS DE TURING

Lb

Esta máquina busca el primer símbolo de la izquierda que no sea blanco.

(q, )

= # #

q1 (q2, #, L) (q2, , L)

q2 (q2, #, L) (q3, , R)

q3 (q4, #, L) (q4, , L)

Page 18: MÁQUINAS DE TURING

Ejemplo

a a a a a a

Cabeza lec/esc

Antes de R#L#

a a a a a a

Cabeza lec/esc

Después de R#L#

Page 19: MÁQUINAS DE TURING

Otras máquinas útiles

(q, )

q1 (q2, a, R)

q2 (q2, , L)

Escribe el símbolo a sobre la cinta y deja la cabeza sobre el símbolo

(q, )

= # = a

q1 (q2, #, L) (q4, a, L)

q2 (q3, #, R) (q3, a, R)

q4 (q5, #, R) (q5, a, R)

La siguiente máquina termina en q3 si el símbolo en la cinta es un blanco y termina en q5 si es una a. Esta máquina representa una bifurcación y se representa mediante dos flechas.

= #

= a

Page 20: MÁQUINAS DE TURING

Máquina de Turing que cambia aes por bes y bes por aes.

= a

= b

R b

a

En el simulador JCT:

Page 21: MÁQUINAS DE TURING

Flechas múltiples

Ra, b, #

RR

a

Rb

#

RR o R2

aR b

= a

aR b

a

Page 22: MÁQUINAS DE TURING

Desplazamiento de una cadena w

L2 #RaR#R = a

R

= #

= b

#Rb

L2 #RR#R #

R

= #El símbolo indica que la máquina recuerda cual símbolo escribió sobre #.

SR

En el simulador JCT:

Page 23: MÁQUINAS DE TURING

Reconocedor de wwI

#R#L L#R=

= #

#

# #

#

= #

#

Para en estado de aceptación Para en estado de no aceptación

#R#L L#R=

= #

#

# #

#

= #

b

Para en estado de aceptación

Page 24: MÁQUINAS DE TURING

Modificaciones de las máquinas de Turing

Transiciones sin movimiento de la cabeza lec/esc. Modificar

: Q Q {R, L}

Por : Q Q {R, L, S}

Donde S significa permanecer.

Puede obtenerse con una máquina normal agregando

(q, ) = (p’, ’, R) y (p’, ) = (p, , L)

Page 25: MÁQUINAS DE TURING

Cinta dividida en subceldas

a a a aa b a aa b b a

La cinta contiene múltiples caracteres. El movimiento de la cabeza dependerá del estado actual y de la n-tupla que represente el contenido actual.

Page 26: MÁQUINAS DE TURING

Suma binariaEl alfabeto estará formado por las ternas:

(b, b, b) (1, 1, b) (1, 1, 0) (1, 1, 1)(0, 0, b) (0, 0, 0) (0, 0, 1) (b, b, 1)(0, 1, b) (0, 1, 0) (0, 1, 1)(1, 0, b) (1, 0, 0) (1, 0, 1)

Primero buscará el extremo derecho mediante

(q1, ) = (q1, , R) si <> (b, b, b)

(q1, ) = (q2, , L) si = (b, b, b)

además:

(q2, (0, 0, b)) = (q2, (0, 0, 0), L) (q3, (0, 0, b)) = (q2, (0, 0, 1), L)

(q2, (0, 1, b)) = (q2, (0, 1, 1), L) (q3, (0, 1, b)) = (q3, (0, 1, 0), L)

(q2, (1, 0, b)) = (q2, (1, 0, 1), L) (q3, (1, 0, b)) = (q3, (1, 0, 0), L)

(q2, (1, 1, b)) = (q3, (0, 0, 0), L) (q3, (1, 1, b)) = (q3, (1, 1, 1), L)

(q2, (b, b, b)) = (q4, (b, b, 0), S) (q3, (b, b, b)) = (q2, (b, b, 1), S)

Page 27: MÁQUINAS DE TURING

Cinta semiinfinita

a a a a b ba a b

Máquina de Turing con una cinta semiinfinita.

Máquina de Turing con una cinta infinita puede simularse con una cinta semiinfinita de dos pistas

a b a a b ba a b

a a b a

b ba a b

*

*

a b a a b ba a b

a a b a

b ba a b

*

*

Page 28: MÁQUINAS DE TURING

Máquinas multicintaContiene varias cintas independientes. En un solo movimiento, esta máquina de Turing

1. Cambia de estado dependiendo del estado actual y del contenido de las celdas de todas las cintas, que están analizando actualmente las cabezas lec/esc.

2. Escribe un nuevo símbolo en cada una de las celdas barridas por sus cabezas lec/esc.

3. Mueve cada una de las cabezas hacia la izquierda o hacia la derecha (de forma independiente al resto de las cabezas).

: Q n Q n {L, R}n

(q,(, ,..., n)) = (p,(, ,..., n),(X1, X2,X3,...,Xn))

Page 29: MÁQUINAS DE TURING

Ejemplo: reconocer anbn

(q1, (a, b)) = (q1, (a, a), (R, R))(q1, (b, b)) = (q2, (b, b), (S, L))(q2, (b, a)) = (q2, (b, a), (R, L))(q2, (b, b)) = (q3, (b, b), (R, L))

a a b b

a a

a a b b

a

a a b b

aa

a a b b

aa

a a b b

aa

a a b b

estado: q1 estado: q1 estado: q1

estado: q2 estado: q2 estado: q2

Page 30: MÁQUINAS DE TURING

Máquina Universal de Turinguna máquina Universal de Turing es una máquina que a partir de una descripción de una máquina de Turing M y una cadena de entrada w, simula el comportamiento de M sobre la cadena w.

Suponemos que Q = {q1, q2, ..., qn} donde q1 es el estado inicial y q2 es el único estado de aceptación. Además = {1, 2, ..., m} donde 1 es el símbolo blanco.

Codificamos M de la siguiente manera

representamos q1 por 1

representamos q2 por 11, etc

representamos 1 por 1

representamos 2 por 11, etc

representamos L por 1 y representamos R por 11

Ejemplo: (q3, 1) = (q4, 3, L) 0111010011110111010

Page 31: MÁQUINAS DE TURING

Máquina Universal de Turing

La máquina de Turing Universal Mu consta de tres cintas

1er cinta – la codificación de M en uno y ceros.

2a. cinta – la codificación del contenido de la cinta de M en unos y ceros.

3a. cinta – la codificación del estado actual codificado de M.

Page 32: MÁQUINAS DE TURING

Problema de la parada

El problema de la parada o problema de la detención para máquinas de Turing es el ejemplo de problema irresoluble más conocido.

Consiste en determinar si una máquina de Turing se detendrá con cierta entrada, o bien quedará en un ciclo infinito.

Este fue el primer problema que se demostró formalmente que no tenía solución.

Page 33: MÁQUINAS DE TURING

Problema de la parada

Definición

Sea M una máquina de Turing arbitraria con un alfabeto de entrada Σ. Sea . ¿Puede decidirse si la máquina M se detendrá con la entrada w?

Demostración

Para demostrarlo, supongamos que el problema de la parada tiene solución, es decir, supondremos que existe una máquina de Turing que es capaz de determinar si otra máquina de Turing para con una entrada determinada.

Page 34: MÁQUINAS DE TURING

Problema de la paradaConsideremos una máquina de Turing P, que recibe como entrada una máquina de Turing M y una cadena w codificadas en la cinta y una a continuación de la otra (Mw), y que se encarga de ejecutar M sobre la cadena w.

La máquina P parará y aceptará la entrada si M para con w, y parará y rechazará la entrada si M no para con w.

Page 35: MÁQUINAS DE TURING

Modificamos la máquina P, creando una máquina P' equivalente.

Esta máquina no parará si M para con w, y parará si M no para con w.

Page 36: MÁQUINAS DE TURING

Ahora crearemos una máquina D, cuya función es la siguiente.

Recibe una máquina M, la pasa por una máquina que se encarga de copiar la máquina M a continuación. Por lo tanto, a la salida de la máquina copia, la cinta contendrá MM (la codificación de la máquina repetida).

A continuación, D coge este resultado y lo pasa a través de P'. Con esto intentamos decidir si la máquina M para con la entrada M. Es decir, si M para con la entrada M, entonces D no para, y si M no para con la entrada M, entonces D para.

Page 37: MÁQUINAS DE TURING

Por último, tomaremos una máquina D (denominaremos SD), y le aplicaremos como entrada una máquina D. SD aplica como entrada a la máquina que recibe, la misma máquina.Por lo tanto, esta máquina en principio parará si D no para con entrada D, y no parará si D para con entrada D. Pero si SD no para y si D para con entrada D, sabiendo que D=SD, llegamos a una contradicción, por que aplicar D a SD debería dar como resultado lo mismo que aplicar D sobre D. Del mismo modo para el otro caso. Por lo tanto, el problema de la parada no tiene solución.Obtenido de "http://es.wikipedia.org/wiki/Problema_de_la_parada"

Page 38: MÁQUINAS DE TURING

Lenguajes recursivamente enumerables

Un lenguaje L sobre un alfabeto se dice que es recursivamente enumerable si es aceptado por una máquina de Turing.

Un lenguaje L es recursivo si L es recursivamente enumerable y hay alguna máquina de Turign que para sobre todas las entradas que acepta L.

Page 39: MÁQUINAS DE TURING

Máquina para reconocer un lenguaje regular

Sea M = (Q, , s, F, ), un autómata finito determinista, Se puede construir una máquina de Turing que reconozca el lenguaje reconocido por M, M’ = (Q’, ’, , s’, #, F’, ’), donde

Q’ = Q {q’}

’ =

= {#}

F’ = {q’}

’(q, ) = (’(q, ), , R) para todo q Q y

’(q, ) = (q, #, S) para todo q Q

Page 40: MÁQUINAS DE TURING

Gramáticas no restringidas

Una gramática no restringida (también se conoce como una gramática estructurada por frases) es una 4-tupla G = (N, , S, P), donde

N es el alfabeto de símbolos no terminales

es el alfabeto de símbolos terminales

S N es el símbolo inicial

P es un conjunto de producciones de la forma , donde (N )+ u (N )* (es decir, P (N )+ (N )* y es un conjunto finito)

Page 41: MÁQUINAS DE TURING

Ejemplo

S aSBC | aBC

CB BC

aB ab

bB bb

bC bc

cC cc

La producción CB BC intercambia los no terminales B y C, obteniendo una cadena de la forma anBnCn.

Las producciones aB ab y bB bb transforman toda B en b, obteniendo anbnCn.

Las producciones bC bc y cC cc transforman toda C en c, obteniendo anbncn

Page 42: MÁQUINAS DE TURING

Ejemplo

S ACaB

Ca aaC

CB DB | E

aD Da

AD AC

aE Ea

AE

A y B actúan como marcadores de final de la cadena de aes.

C se desplaza a la derecha al duplicarse el número de aes hasta que está junto a B, entonces se transforma en D.

D se desplaza hacia la izquierda hasta que encuentra una A, y entonces se convierte en C.

Cuando CB se reemplaza por E, termina la generación de aes.

Entonces E se desplaza a la izquierda hasta que encuentra la A, momento en el cual se elimina AE.

Lenguaje generado: k

a2

Page 43: MÁQUINAS DE TURING

La Jerarquía de Chomsky

Tipo Language AutómataNormas de producción

de gramáticas

0recursivamenteenumerable (LRE)

Máquina de Turing (MT) Sin restricciones

1dependiente delcontexto (LSC)

Autómata linealmenteacotado

αAβ → αγβ

2independiente delcontexto (LLC)

Autómata con pila A → γ

3 regular (RL) Autómata finitoA → aB

A → a