11.07.2015 Views

Teor´ıa de Autómatas y Lenguajes Formales

Teor´ıa de Autómatas y Lenguajes Formales

Teor´ıa de Autómatas y Lenguajes Formales

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

7.7. MÁQUINAS DE TURING COMO GENERADORES 131Considérese ahora la generación <strong>de</strong> pares (i, j) en tal forma que cada par sea generado <strong>de</strong>spués <strong>de</strong> unacantidad finita <strong>de</strong> tiempo. La tarea no es tan simple como parece, el método ingenuo <strong>de</strong> generar: (1,1),(1,2), (1,3), . . . , nunca genera pares en que i ≥ 1. En lugar <strong>de</strong> esto, los pares se <strong>de</strong>ben generar en or<strong>de</strong>n <strong>de</strong>su suma, i + j, y entre los <strong>de</strong> igual suma, en or<strong>de</strong>n creciente <strong>de</strong> i. Esto es, se genera (1,1), (1,2), (2,1), (1,3),(2,2), (3,1), (1,4), . . . . El par (i, j) es el {[(i + j − 1)(i + j − 2)]/2 + i}-ésimo par generado. Este or<strong>de</strong>n tienela propiedad <strong>de</strong>seada <strong>de</strong> que hay un tiempo finito en el cual cualquier par en particular es generado.Una MT que genera pares (i, j) en este or<strong>de</strong>n en binario, es fácil <strong>de</strong> diseñar y se <strong>de</strong>ja al lector dicha labor.Tal MT será llamada el generador <strong>de</strong> pares. Inci<strong>de</strong>ntalmente, el or<strong>de</strong>n usado por el generador <strong>de</strong> pares<strong>de</strong>muestra que los pares <strong>de</strong> enteros pue<strong>de</strong>n ponerse en correspon<strong>de</strong>ncia 1 a 1 con los enteros, un resultadoaparentemente paradójico <strong>de</strong>scubierto por Georg Kantor cuando él mostró que los racionales (que en realidadson la razón entre dos enteros), eran equinumerosos con los enteros.Teorema 40 Un lenguaje es enumerable recursivamente si y sólo si es G(M 2 ) para alguna MT, M 2 .Demostración : Con el lema anterior ya probado, sólo se necesita probar cómo un lenguaje enumerablerecursivamente L = L(M 1 ) pue<strong>de</strong> ser generado por una MT, M 2 . M 2 simula al generador <strong>de</strong> pares. Cuandoel par (i, j) es generado, M 2 produce la i-ésima palabra w i , en or<strong>de</strong>n canónico y simula j pasos <strong>de</strong> M 1 enw i . Si M 1 acepta en el paso j, contando la DII como paso 1, entonces M 2 genera w i .Es claro que M 2 genera sólo strings en L. Si w ∈ L, sea w la i-ésima palabra en el or<strong>de</strong>n canónico parael alfabeto <strong>de</strong> L y suponga que M 1 acepta w en j movidas. Como toma sólo un tiempo finito para que M 2genere cualquier string en or<strong>de</strong>n canónico o simular un número <strong>de</strong>terminado <strong>de</strong> movidas <strong>de</strong> M 1 , es claroque M 2 eventualmente producirá el par (i, j). En ese momento, w será generado por M 2 . Por lo tanto,L = G(M 2 ).Corolario 3 Si L es un conjunto enumerable recursivamente, entonces hay un generador para L que enumeracada string en L exactamente una vez.Demostración : La MT, M 2 , <strong>de</strong>scrita en la <strong>de</strong>mostración <strong>de</strong>l teorema 40 tiene dicha propiedad ya que generaw i sólo cuando consi<strong>de</strong>ra el par (i, j), en que j es exactamente el número <strong>de</strong> pasos que M 1 toma para aceptarw i .Se mostrará ahora, que los conjuntos recursivos son precisamente aquellos conjuntos cuyos strings pue<strong>de</strong>nser generados en or<strong>de</strong>n canónico.Lema 12 Si L es recursivo, entonces hay un generador para L que imprime los strings <strong>de</strong> L en or<strong>de</strong>ncanónico y no imprime otras palabras.Demostración : Sea L = L(M 1 ⊆ Σ ∗ , en que M 1 se <strong>de</strong>tiene en todos sus inputs. Se construye M 2 paragenerar L, como sigue. M 2 genera (en una cinta <strong>de</strong> borrador) las palabras en Σ ∗ <strong>de</strong> a una a la vez y enor<strong>de</strong>n canónico. Después <strong>de</strong> generar algún string w, M 2 simula M 1 en w. Si M 1 acepta w, M 2 genera w.Como M 1 para siempre, se sabe que M 2 terminará <strong>de</strong> procesar cada string <strong>de</strong>spués <strong>de</strong> un tiempo finito y,por lo tanto, consi<strong>de</strong>rará eventualmente cada string en Σ ∗ . Obviamente, M 2 genera L en or<strong>de</strong>n canónico.El converso <strong>de</strong> este lema, que si L pue<strong>de</strong> ser generado en or<strong>de</strong>n canónico, entonces L es recursivo, estambién verda<strong>de</strong>ro. Sin embargo, hay un <strong>de</strong>talle que <strong>de</strong>biera quedar claro. En el lema anterior fue posibleconstruir M 2 a partir <strong>de</strong> M 1 . Sin embargo, dada una MT, M, que genera L en or<strong>de</strong>n canónico, se sabe queexiste una máquina <strong>de</strong> Turing que siempre para y que reconoce L, pero no hay algoritmo para construirla.Supóngase que M 1 genera L en or<strong>de</strong>n canónico. Lo natural es construir M 2 , tal que en input w simuleM 1 hasta que M 1 genere w o una palabra posterior a w en el or<strong>de</strong>n canónico. En el primer caso M 2 acepta✷✷✷

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!