41
Máquinas de Turing como Enumeradoras Una tercera forma de ver a las m´ aquinas de Turing es como enumeradoras de palabras. La idea es que cualquier lenguaje recursivamente enumerable siempre puede ser generado (escrito en una cinta) por una MT. Si el lenguaje es infinito, esta m´ aquina no se detiene, pero garantiza que eventualmente cualquier palabra w del lenguaje aparecer´ a escrita en la cinta. La m´ aquina que genera esta salida es una m´ aquina enumeradora. Jorge Baier Aranda, PUC 48

Máquinas de Turing como Enumeradoras

  • Upload
    others

  • View
    46

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Máquinas de Turing como Enumeradoras

Máquinas de Turing como Enumeradoras

Una tercera forma de ver a las maquinas de Turing es como enumeradoras depalabras.

La idea es que cualquier lenguaje recursivamente enumerable siempre puede sergenerado (escrito en una cinta) por una MT.

Si el lenguaje es infinito, esta maquina no se detiene, pero garantiza queeventualmente cualquier palabra w del lenguaje aparecera escrita en la cinta.

La maquina que genera esta salida es una maquina enumeradora.

Jorge Baier Aranda, PUC 48

Page 2: Máquinas de Turing como Enumeradoras

Una máquina para enumerarL(M)

Supongamos que tenemos una maquina M que acepta un lenguaje recursivamenteenumerable, L. ¿Como construimos una maquina enumeradora para L?

Necesitaremos numerar todas las posibles palabras en Σ∗, de tal manera que{w0, w1, . . .} = Σ∗.

Para hacer esto se escoge tıpicamente el orden canonico dado por el alfabeto.Ası, si Σ = {0, 1} el orden canonico es ε, 0, 1, 00, 01, 10, 11, 000, . . ..

Primer intento: Construimos una maquina con 2 cintas: una para salida y otrapara simular a M .

Siguiendo el orden canonico hacemos lo siguiente:

1. Escribimos wi en la segunda cinta.2. Simulamos a M ocupando la segunda cinta.3. Si M acepta a wj escribimos wj# en la cinta de salida.

Problema: ¿Que pasa si M no para con wi?

No podremos seguir generando las palabras que vienen a continuacion.

Jorge Baier Aranda, PUC 49

Page 3: Máquinas de Turing como Enumeradoras

Construir una maquina que simule a M pero solo un numero finito de pasos.

La maquina recorre la siguiente matriz:

w0 w1 w2 . . .1 (1, w0) (1, w1) (1, w2) · · ·2 (2, w0) (2, w1) (2, w2) · · ·3 (3, w0) (3, w1) (3, w2) · · ·... . . . · · ·

De tal forma que para cada par (i, wj) nuestra maquina simula i movidas de Mcon entrada wj. Si M acepta en a lo mas i movidas, escribe wj# en la cinta desalida.

El recorrido se realiza de tal manera que i + j = constante. Es decir, se recorrenprimero los pares (i, wj) tales que i + j = 1, luego los pares con i + j = 2 yası sucesivamente.

Con esto garantizamos que en tiempo finito recorreremos todas las palabrasposibles, tardando un tiempo finito con cada una de ellas.

Eventualmente, todas las palabras de L apareceran en la cinta de salida.

Jorge Baier Aranda, PUC 50

Page 4: Máquinas de Turing como Enumeradoras

Hipótesis de Church

La hipotesis de Church relaciona lo que es efectivamente computable (en maquinasreales) con lo que puede hacer una maquina de Turing.

En resumen, dice lo siguiente:

(( La nocion intuitiva de funcion computable puede ser identificada con la clasede funciones recursivas parciales. ))

Dado que la nocion de funcion computable no es formal, esta hipotesis no puedeser demostrada.

Jorge Baier Aranda, PUC 51

Page 5: Máquinas de Turing como Enumeradoras

Lenguajes Recursivos

Un lenguaje L es recursivo si es que existe al menos una maquina de Turing quelo acepta y que se detiene para toda entrada.

Esto no significa que todas las maquinas que aceptan L siempre se detienen paratoda entrada.

Jorge Baier Aranda, PUC 52

Page 6: Máquinas de Turing como Enumeradoras

Problemas de Decisión

Los problemas de decision estan caracterizados por preguntas con respuesta sı/no.

Por ejemplo:

Dada una gramatica libre de contexto G, ¿es G ambigua?

En la mayor parte de los casos, las preguntas son parametricas; o, dicho de otramanera, pueden tener muchas instancias.

Ese es el caso de la pregunta anterior.

Esperamos resolver los problemas de decision usando maquinas de Turing querespondan a la pregunta.

¿como funciona una MT que resuelve el problema del ejemplo?

Jorge Baier Aranda, PUC 53

Page 7: Máquinas de Turing como Enumeradoras

Problemas de Decisión y su Lenguaje

Por esa razon, conviene ver a las MT como aceptando o no un lenguaje asociadoal problema.

Para el caso anterior, lo que la maquina M = (Q,Σ,Γ, δ, q0, B, F ) debe aceptares:

L(M) = {〈G〉 |G es una GLC ambigua}

Diremos que la maquina ha entregado una respuesta si esta se detiene.

La respuesta sera sı si la maquina se detuvo en un estado de aceptacion.

Por otra parte, la respuesta sera no, si se detuvo en un estado en Q− F .

Jorge Baier Aranda, PUC 54

Page 8: Máquinas de Turing como Enumeradoras

Problemas Decidibles e Indecidibles

Diremos que un problema de decision P es decidible si su lenguaje asociado, L,es recursivo.

En caso contrario el problemas es indecidible.

De este ultimo tipo de problemas, debemos distinguir entre aquellos que tienenasociado un lenguaje recursivamente enumerable y los que no lo tienen.

Cabe notar que los problemas con una sola instancia tales como:

“¿Existe una infinidad de primos p tales que p + 2 es primo?”o

“¿Existe vida extra-terrestre?”

son decidibles.

Jorge Baier Aranda, PUC 55

Page 9: Máquinas de Turing como Enumeradoras

Propiedades

Teorema: Los lenguajes recursivos son cerrados bajo complemento. Demostra-cion: pizarra.

Teorema: Los lenguajes recursivos son cerrados bajo union.

Teorema: Los lenguajes recursivamente enumerables son cerrados bajo union.

Jorge Baier Aranda, PUC 56

Page 10: Máquinas de Turing como Enumeradoras

Un teorema importante

Teorema: Si L es r.e. y L es r.e., entonces L es recursivo.

Demostracion: Sean M1 y M2 maquinas para L y L. Usando a M1 y M2 podemosconstruir la siguiente maquina para L:

wM1

NoM2

Esta maquina se detiene para toda entrada, puesto que o M1 se detiene aceptandoo M2 se detiene aceptando.

Por lo tanto, L es recursivo.

Jorge Baier Aranda, PUC 57

Page 11: Máquinas de Turing como Enumeradoras

Conclusiones

De los teoremas anteriores, se concluye que si tenemos un lenguaje L arbitrariose tiene solo 3 posibilidades:

1. L y L son ambos recursivos.

2. Ni L ni L son r.e.

3. Uno de entre L y L es recursivamente enumerable, pero no recursivo, y el otrono es r.e.

Jorge Baier Aranda, PUC 58

Page 12: Máquinas de Turing como Enumeradoras

Codificación de Máquinas de Turing

Una MT se puede codificar como un string binario.

Si, por ejemplo, tenemos a la maquina

M = (Q, {0, 1}, {0, 1, B}, δ, q1, B, {q2}),

y esta tiene movidas del tipo3:

δ(qi, Xj) = (qk, Xl, Dm)

Representamos esta movida con el string:

0i10j10k10l10m (*)

Para M , podemos usar el codigo: 111cod111cod211 · · · 11codr111,

Donde cada cod i es del tipo (*).

3Suponemos que 0,1 y B son respectivamente X1, X2 y X3 y que D0 y D1 son respectivamente I y D.

Jorge Baier Aranda, PUC 59

Page 13: Máquinas de Turing como Enumeradoras

Un Lenguaje no R.E.

Supongamos que tenemos una lista de las palabras en {0, 1}∗ de tal manera quewi corresponde a la iesima palabra.

Sea Mj la MT cuyo codigo corresponde a wj.

Definamos a4

Ld = {wi |wi 6∈ L(Mi)}

Si Ld es recursivamente enumerable, entonces este debe ser aceptado por unamaquina. Esta maquina debe ser MJ , para algun J y Ld = L(MJ).

4En castellano, este es el lenguaje de todas las maquinas que no aceptan su propio codigo.

Jorge Baier Aranda, PUC 60

Page 14: Máquinas de Turing como Enumeradoras

La pregunta que nos hacemos es ¿pertenece wJ a L(MJ)?

• Si la respuesta es sı, entonces wJ ∈ L(MJ). Luego, por la definicion dellenguaje wJ 6∈ L(MJ).

• Si la respuesta es no, entonces wJ 6∈ L(MJ), por la definicion del lenguaje,wJ ∈ L(Mj).

En cualquier caso se produce una contradiccion. Concluimos que no puede existiruna maquina de Turing para Ld y, por lo tanto, Ld no es r.e.

Jorge Baier Aranda, PUC 61

Page 15: Máquinas de Turing como Enumeradoras

El Lenguaje Universal

El lenguaje universal se define de la siguiente manera:

Lu = {〈M,w〉 |M acepta a w},

El problema de decision asociado a este problema es:

Dada una MT M y una palabra w, ¿acepta M a w?

¿Es Lu recursivamente enumerable?

La respuesta es sı. Para aceptarlo, podemos construir una Maquina de Turing M ′

que recibe el codigo de M y w, y simula a M alimentada con w. Si M acepta aw, entonces responde sı.

Notese que esta maquina siempre acepta cuando 〈M,w〉 ∈ Lu.

Jorge Baier Aranda, PUC 62

Page 16: Máquinas de Turing como Enumeradoras

¿EsLu decidible?

Para demostrar que lo es tenemos 2 formas:

• Demostrar, directamente, que es recursivo.• Demostrar que Lu es recursivamente enumerable.

Para demostrar que no lo es basta con:

• Demostrar, directamente, que no es recursivo.• Que Lu no es recursivamente enumerable.

Jorge Baier Aranda, PUC 63

Page 17: Máquinas de Turing como Enumeradoras

Lu no es recursivo

Demostraremos que Lu no es recursivamente enumerable:

Supongamos que lo fuera y que Mu acepta Lu . Entonces, podemos construiruna maquina M ′ que acepta Ld de la siguiente manera:

M ′ recibe un argumento 〈M〉 y alimenta a Mu con 〈M, 〈M〉〉. Si Mu respondesı, significa que M no acepta 〈M〉 y, por lo tanto 〈M〉 ∈ Ld. Luego M ′ aceptaLd, lo cual no es posible.

Se concluye, por lo tanto, que Lu no es recursivo.

Jorge Baier Aranda, PUC 64

Page 18: Máquinas de Turing como Enumeradoras

El problema de la parada de una MT

Dada una maquina M y una palabra w, ¿para M alimentada w?

El lenguaje asociado a este problema es el siguiente:

Lh = {(〈M〉, w) |M(w) para}

Suponiendo que tal algoritmo existe construiremos un algoritmo M ′ para decidirLd.

Supongamos M ′′ que, dada la codificacion de una maquina M , entrega el codigode una maquina M0 que dice SI para las mismas entradas que M , pero que nopara cuando M dice que NO y cuando M no para.

Construir ese algoritmo es sencillo, lo que debemos hacer es “copiar” la funcion detransicion y estados de M a M0. Ademas, agregamos a M0 un estado adicional,ql. Para cada estado no final que no tenga una transicion a ningun otro estadoen un sımbolo cualquiera a, agregamos a δ una transicion a ql. ql sera un estadoen el cual la maquina entra en un loop infinito.

Jorge Baier Aranda, PUC 65

Page 19: Máquinas de Turing como Enumeradoras

La maquina resultante M0 funciona igual que M , con la diferencia que cada vezM dice NO, M0 entra en un loop infinito.

Jorge Baier Aranda, PUC 66

Page 20: Máquinas de Turing como Enumeradoras

El siguiente esquema muestra un algoritmo para aceptar Lu.

$w$

Si

No

Algoritmo que

Algoritmo que decide Lu

decide Lh

〈M〉 Si

No

Generador de M ′ 〈M ′〉

Jorge Baier Aranda, PUC 67

Page 21: Máquinas de Turing como Enumeradoras

Otro problema

¿Dada una maquina arbitraria M , es L(M) = ∅?

El lenguaje asociado a este problema:

Le = {〈M〉 |L(M) = ∅}

Por otro lado, tenemos que su complemento es:

Lne = {〈M〉 |L(M) 6= ∅}

¿Que podemos decir acerca de estos lenguajes?

La conclusion mas directa es que Lne es recursivamente enumerable. ¿por que?

Jorge Baier Aranda, PUC 68

Page 22: Máquinas de Turing como Enumeradoras

Le no es recursivo

Demostraremos que si suponemos que Le es recursivo entonces Lu tambien loes.

Supongamos que Me puede decidir Le. Construiremos una maquina M ′ para Lu

de la siguiente manera:

1. Recibimos el par 〈M,w〉 y construimos una maquina M ′′ que siempre ignorasu entrada y que simula a M alimentada con w, respondiendo lo mismo queesta.Notese que M ′′ acepta (0 + 1)∗ si M acepta a w y acepta ∅ si M no aceptaa w.

2. A continuacion pasamos a M ′′ como entrada a Me. Si Me responde no, M ′

responde sı y si responde sı, respondemos M ′ responde no.

Sabemos que M ′ no puede existir, y por lo tanto, Le no es recursivo.

Como conclusion final, tenemos que Le tampoco puede ser recursivamenteenumerable. (¿por que?)

Jorge Baier Aranda, PUC 69

Page 23: Máquinas de Turing como Enumeradoras

Otro problema

¿Dada una MT cualquiera M , acepta M un lenguaje con 3 palabras?

El lenguaje asociado es

L#3 = {〈M〉 | |L(M)| = 3}

L#3 es indecidible (no es recursivo).

Demostraremos que si L#3 es recursivo, entonces Lu tambien lo es.

En efecto, dado 〈M,w〉 arbitrarios, siempre podemos construir:

M

w Sı Partida

x

Sı Sı

M ′

M#3

Jorge Baier Aranda, PUC 70

Page 24: Máquinas de Turing como Enumeradoras

Donde M#3 es cualquier maquina que acepta un lenguaje de exactamente 3palabras (puede ser {0, 00, 000}, por ejemplo).

Para esta maquina se tiene que:

L(M ′) =

{L(M#3) si M acepta w

∅ si M no acepta w

Si tuvieramos un algoritmo para decidir L#3 podemos usarlo tambien para decidirLu pasandole M ′ y viendo que responde.

Jorge Baier Aranda, PUC 71

Page 25: Máquinas de Turing como Enumeradoras

Teorema de Rice

La construccion que hemos visto se puede hacer con cualquier conjunto que hablesobre propiedades de los lenguajes de maquinas de Turing.

Generalizando esta construccion se obtiene:

Teorema 1. [de Rice] Cualquier propiedad no trivial5 P de los lenguajes recur-sivamente enumerables es indecidible.

Demostracion: Supongamos (sin perdida de generalidad) que ∅ no cumple con lapropiedad (si no, podemos considerar P). Como P existe un lenguaje r.e. L quecumple con la propiedad. Supongamos que ML es la maquina que lo acepta.

Podemos construir la siguiente maquina M ′:

5Una propiedad no trivial es aquella que es cumplida solo por algunos lenguajes

Jorge Baier Aranda, PUC 72

Page 26: Máquinas de Turing como Enumeradoras

M

w Sı Partida

x

Sı Sı

M ′

ML

Cuyo lenguaje es

L(M ′) =

{L(ML) si M acepta w

∅ si M no acepta w

Claramente, si existe una maquina MP para decidir si un lenguaje tiene lapropiedad P, entonces podemos usar M ′ para decidir Lu.

Jorge Baier Aranda, PUC 73

Page 27: Máquinas de Turing como Enumeradoras

Corolarios

Todos los siguientes problemas de decision acerca de una maquina arbitraria Mson indecidibles:

1. ¿es el lenguaje aceptado por M vacıo?2. ¿es el lenguaje aceptado por M finito?3. ¿es el lenguaje aceptado por M vacıo?4. ¿es el lenguaje aceptado por M libre de contexto?5. ¿es el lenguaje aceptado por M recursivo?

Jorge Baier Aranda, PUC 74

Page 28: Máquinas de Turing como Enumeradoras

Propiedades de máquinas

El teorema de Rice no dice nada sobre las propiedades de las maquinas, solo delos lenguajes que estas aceptan.

Ejemplo de un problema sobre maquinas decidible:

L = {〈M〉 |M tiene 1 estado}

pues es facil hacer una maquina de Turing que revise si otra tiene un solo estado.

Ejemplo de un problema indecidible:

L = {〈M〉 | existe un w tal que M escribe tres 1’s consecutivos en la cinta}

¿por que?

Jorge Baier Aranda, PUC 75

Page 29: Máquinas de Turing como Enumeradoras

El problema de Correspondencia de Post (PCP)

Dadas dos listas de palabas:

A = w1, . . . , wk

B = x1, . . . , xk

el Problema de Correspondencia de Post tiene solucion si existe una secuenciade enteros i1, . . . , im tales que

wi1wi2 . . . wim = xi1xi2 . . . xim

La siguiente instancia del PCP:

w1 = 1 x1 = ε

w2 = 001 x2 = 00

w3 = 101 x3 = 111101

Jorge Baier Aranda, PUC 76

Page 30: Máquinas de Turing como Enumeradoras

tiene una solucion, porque

w2w1w1w3 = x2x1x1x3 = 00111101

Es posible demostrar que el PCP es un problema indecidible.

La idea de la demostracion consiste en que, dado una maquina de Turing My una palabra w, siempre es posible generar una instancia del PCP que tienesolucion si y solo si M acepta a w.

Jorge Baier Aranda, PUC 77

Page 31: Máquinas de Turing como Enumeradoras

Otro problema indecidible

A consecuencia de que PCP es indecidible es posible demostrar que el problemade determinar si una gramatica G es ambigua tambien lo es.

En efecto, sean

A = w1, . . . , wn B = x1, . . . , xn

dos listas de palabras sobre un alfabeto finito, y sean a1, . . . , an sımbolos que noestan en A ni en B.

Podemos definir los lenguajes

LA = {wi1wi2 · · ·wimaimaim−1 · · · a1|m ≥ 1}LB = {xi1xi2 · · ·ximaimaim−1 · · · a1|m ≥ 1}

y construir una gramatica G = ({S, SA, SB},Σ ∪ {a1, . . . , an}, P, S), para LA ∪

Jorge Baier Aranda, PUC 78

Page 32: Máquinas de Turing como Enumeradoras

LB, donde P esta compuesto por

S → SA |SB

SA → wiSAai |wiai (1 ≤ i ≤ n)

SB → xiSAai |xiai (1 ≤ i ≤ n)

Es sencillo ver que la gramatica es ambigua ssi existe una solucion al PCP definidopor A y B.

Jorge Baier Aranda, PUC 79

Page 33: Máquinas de Turing como Enumeradoras

Otras Gramáticas

Todos las clases de lenguajes que hemos visto hasta el momento se puedencaracterizar gramaticalmente.

Partiendo por los lenguajes regulares, es posible demostrar (de hecho ya lo hemoshecho en parte en ayudantıa!) que los lenguajes regulares se pueden generar conun tipo restringido de GLC’s.

Una gramatica es lineal por la derecha si todas las producciones son de la formaA → w o A → wB.

Por otro lado, una gramatica es lineal por la izquierda si todas las produccionesson de la forma A → w o A → Bw.

Teorema 2. Un lenguaje es regular ssi es generado por una gramatica lineal.

Jorge Baier Aranda, PUC 80

Page 34: Máquinas de Turing como Enumeradoras

Gramáticas sin Restricciones (GSR’s)

Una gramatica no restringida es una tupla G = (V, T, P, S) donde V , T , y Stienen el mismo significado que en las GLC, pero P es un conjunto de elementosdel tipo

α → β,

donde α, β ∈ (V ∪ T )∗ y α contiene al menos una variable.

Igual que antes, γαδ ⇒G γβδ si α → β ∈ P , y ⇒∗ es la clausura refleja ytransitiva de ⇒.

El lenguaje aceptado por una gramatica sin restricciones G es

L(G) = {w ∈ T ∗ |S ⇒∗G w}.

Jorge Baier Aranda, PUC 81

Page 35: Máquinas de Turing como Enumeradoras

Las gramaticas no restringidas son mas poderosas que las GLC’s.

De hecho, no es muy difıcil escribir una para {aibici | i ≥ 1}.

La siguiente gramatica lo genera.

S′ → ABCS′ |ABC

BA → AB

CA → AC

CB → BC

La usando las primeras dos producciones es posible generar desde S′ a (ABC)n,y las siguientes “ordenan” las variables. Las ultimas producciones generan los

Jorge Baier Aranda, PUC 82

Page 36: Máquinas de Turing como Enumeradoras

terminales.

cC → cc bC → bc

bB → bb aB → ab

aA → aa

El problema es que es necesario que alguna produccion sirva para hacer aparecerel primer terminal a. Eso se soluciona agregando una variable adicional F que vaal comienzo de la palabra y que tiene ese efecto.

Para terminar la gramatica agregamos las siguientes producciones:

S → FS′

FA → a

aA → aa

Jorge Baier Aranda, PUC 83

Page 37: Máquinas de Turing como Enumeradoras

Equivalencia entre MT’s y GSR’s

Teorema 3. Dada una GSR G, es posible construir una MT M tal que L(M) =L(G).

La demostracion se hace construyendo una maquina no determinıstica que simulalas derivaciones de la gramatica.

Teorema 4. Dada una MT M , es posible construir una GSR G tal que L(M) =L(G).

La demostracion no es tan compleja. Podemos construir una GSR que, inicialmen-te, genere nodeterministicamente dos copias de una representacion (con variables)de alguna palabra. (Potencialmente, cualquier palabra puede ser generada.) Luego,mediante producciones, la gramatica simula el comportamiento de la MT. Si laMT llega a un estado final, mediante producciones, la gramatica transforma enterminales una de las copias palabra inicialmente generada.

Jorge Baier Aranda, PUC 84

Page 38: Máquinas de Turing como Enumeradoras

Lenguajes Sensibles al Contexto (LSC’s)

Los lenguajes sensibles al contexto son los generados por Gramaticas Sensibles alContexto (GSC’s)

Una GSC es como una GSR, pero en la cual las producciones de la forma α → βademas cumplen que |β| ≥ |α|.

Obviamente, todo LSC es un LRE.

Es mas, todo LSC es un lenguaje recursivo.

Practicamente cualquier lenguaje recursivo imaginable es tambien un LSC.

Pero: Los lenguajes recursivos no son enumerables.

Los lenguajes sensibles al contexto sı son enumerables.

Conclusion: Hay lenguajes que es recursivo y que no es LSC.

Jorge Baier Aranda, PUC 85

Page 39: Máquinas de Turing como Enumeradoras

Autómatas Linealmente Acotados

Un automata linealmente acotado (ALA) es una MT no determinıstica quesatisface las siguientes conditiones:

• Su alfabeto de entrada contiene dos sımbolos especiales: # (marcador izuierdo)y $ (marcador derecho).

• El ALA no hace movidas a la izquierda de # ni a la derecha de $.

El nombre proviene del hecho que una MT cuya cinta se restringe en un tamanopolinomial en la entrada, tiene identico poder de computo que un ALA.

Jorge Baier Aranda, PUC 86

Page 40: Máquinas de Turing como Enumeradoras

Equivalencia entre ALA’s y LSC’s

Es posible demostrar que los ALA’s aceptan exactamente la clase de los LSC’s.

La demostracion es similar que la de las MT’s con los LSR’s.

Jorge Baier Aranda, PUC 87

Page 41: Máquinas de Turing como Enumeradoras

La Jerarquía de Chomsky

Noam Chomsky, definio, en trabajos entre 1956 y 1959, cuatro tipos de lenguajes.

Esos tipos de lenguajes son los que hemos visto en este curso. Se pueden resumiren la siguiente tabla:

Tipo Lenguaje Tipo de Producciones Maquina que lo acepta

3 Regular A → wB, A → w AFD

2 Libre de Contexto A → α AA

1 Sensible al Contexto α → β (|α| ≤ |β|) ALA

0 Recursivamente Enumerable α → β MT

Jorge Baier Aranda, PUC 88