8.2. MÁQUINA DE TURING UNIVERSAL 135w✲✲M 1✲SI✲SI✲M 2✲SI✲NOFigure 8.4: Construcción <strong>de</strong> M, que simula simultáneamente a dos MT, M 1 y M 2El primero y último <strong>de</strong> estos teoremas tienen una consecuencia muy importante. Sean L y L un par <strong>de</strong>lenguajes complementarios. Entonces una sola <strong>de</strong> las siguientes aserciones se cumple:1. L y L son recursivos2. Ni L ni L son enumerables recursivamente3. Uno entre L y L es enumerable recursivamente, pero no recursivo; el otro no es enumerable recursivamente.Una técnica importante para mostrar que un problema no es <strong>de</strong>cidible es mostrar, por diagonalización,que el complemento <strong>de</strong>l lenguaje para ese problema no es enumerable recursivamente. Por lo tanto, los casos(2) ó (3) anteriores no son aplicables. Esta técnica será esencial para probar el primer problema no-<strong>de</strong>cidible.Después, varias formas <strong>de</strong> reducciones pue<strong>de</strong>n emplearse para mostrar que otros problemas no son <strong>de</strong>cidibles.8.2 Máquina <strong>de</strong> Turing UniversalAhora se usará la técnica <strong>de</strong> diagonalización para mostrar que un cierto problema no es <strong>de</strong>cidible. El problemaes: “¿Acepta una MT, M, un string <strong>de</strong> entrada, w?” En este caso, tanto M como w son parámetros <strong>de</strong>lproblema.Al formalizar el problema como un lenguaje, se restringirá w a ser sobre el alfabeto {0, 1} y a que Mtenga alfabeto <strong>de</strong> la cinta {0, 1, B}. Como el problema restringido es no-<strong>de</strong>cidible, con toda seguridad elproblema más general también lo es. Se escoge esta versión restringida para simplificar la codificación <strong>de</strong>instancias como strings.Para comenzar, se codifican las máquinas <strong>de</strong> Turing con alfabetos restringidos como strings sobre elalfabeto {0, 1}. SeaM = (Q, {0, 1}, {0, 1, B}, δ, q 1 , B, {q 2 })una máquina <strong>de</strong> Turing restringida como se <strong>de</strong>sea. A<strong>de</strong>más supóngase que Q = {q 1 , q 2 , . . . , q N } es el conjunto<strong>de</strong> estados, y que q 2 es el único estado final. Un teorema anterior asegura que si L ⊆ {0, 1} ∗ es aceptadopor una MT, entonces es aceptado por una con alfabeto {0, 1, B}. También, no hay necesidad <strong>de</strong> más <strong>de</strong> unestado final, ya que una vez que acepta pue<strong>de</strong> parar.Es conveniente llamar los símbolos 0, 1 y B como X 1 , X 2 y X 3 ; también las direcciones I y D seránllamadas D 1 y D 2 , respectivamente. Entonces una movida cualquiera δ(q i , X j ) = (q k , X l , D m ) se codificapor el string binario0 i 10 j 10 k 10 l 10 m✷
136 PROPIEDADES DE L. ENUMERABLES RECURSIVAMENTE Y RECURSIVOSUn código binario para una máquina <strong>de</strong> Turing M, es111 codigo 1 11 codigo 2 11 . . . 11 codigo r 111en que cada código i es un string que codifica una movida <strong>de</strong> M y en que cada movida está codificada enalguno <strong>de</strong> los código i . No es necesario que las movidas aparezcan en algún or<strong>de</strong>n en particular, por lo quecada MT tiene en realidad muchos códigos. Cualquiera <strong>de</strong> esos códigos se <strong>de</strong>notará por < M >.Cada string binario representa el código <strong>de</strong> a lo más una MT; muchos strings binarios no representanMT. El par MT,w se representa por el código <strong>de</strong> M seguido por w, y se <strong>de</strong>nota como < M, w >.Ejemplo 89 Sea M = ({q 1 , q 2 , q 3 }, {0, 1}, {0, 1, B}, δ, q 1 , B, {q 2 }), con movidasδ(q 1 , 1) = (q 3 , 0, D)δ(q 3 , 0) = (q 1 , 1, D)δ(q 3 , 1) = (q 2 , 0, D)δ(q 3 , B) = (q 3 , 1, I)Entonces el string <strong>de</strong>notado por < M, 1011 > es111010010001010011000101010010011000100100101001100010001000100101111011Note que muchos otros strings son también códigos para el par < M, 1011 > y que cualquiera <strong>de</strong> ellos esrepresentado por la notación < M, 1011 >.Suponga que se tiene una lista <strong>de</strong> {0, 1} ∗ en or<strong>de</strong>n canónico, don<strong>de</strong> w i es la i-ésima palabra y M j es laMT cuyo código es el entero j escrito en binario.Imagine una tabla infinita que indique para todo i y j si w i ∈ L(M j ). La Figura 8.5 sugiere cómo seríaesa tabla; en ella, un 0 significa que w i ∉ L(M j ) y un 1 que w i ∈ L(M j ). En realidad, como todas las MT<strong>de</strong> “numeración baja” aceptan el conjunto vacío, la porción mostrada <strong>de</strong> la tabla sólo <strong>de</strong>bería tener ceros.✷j✲11 2 3 4 ...0 ❅ 1 1 0 ...❅❅❅❅❅❅❅❅❅❅❅❅❅2❅❅❅❅❅❅❅❅❅❅❅❅❅❅1 1 0 0...i❄30 0 1 0...40 1 0 1 ..... . . . ..DiagonalFigure 8.5: Construcción <strong>de</strong> tabla para diagonalización