5. Propiedades de los Lenguajes Recursivamente Enumerables y de los Lenguajes Recursivos. 5.1 Esquemas de representación de áquinas de Turing. 5.2 Propiedades de cierre. 5.3 Codificación de áquinas de Turing. 5.4 Un lenguaje no recursivamente enumerable: Lenguaje diagonal. 5.5 Un lenguaje rcursivamente enumerable no recursivo: Lenguaje Universal.
5.1 Esquemas de representación de áquinas de Turing. T. Aceptora que se detiene para todas las entradas: áquina de Turing Aceptora que puede no deternerse para alguna entrada: áquina de Turing Generadora áquina de Turing que utiliza a otra áquinas de Turing como subrutina: START
5.2 Propiedades de cierre 1. La clase de los Lenguajes Recursivamente Enumerables es cerrada bajo UNIÓN. L 1 L 0 1 : L( 1 ) = L 1 L 2 L 0 2 : L( 1 ) = L 2 1 2 2. La clase de los Lenguajes Recursivos es cerrada bajo la operación UNIÓN. L 1 1 : L( 1 ) = L 1 L 2 2 : L( 2 ) = L 2 L() = L 1 L 2 1 START 2 L() = L 1 L 2
3. La clase de los Lenguajes Recursivos es cerrada bajo la COPLEENTACIÓN L : L() = L L() = L 4. Un Lenguaje es Recursivo si y solo si él y su complementario son Recursivamente Enumerables. a) L L L 0 L 1 : L( 1 ) = L 1 L() = L( 1 ) = L L L 0 b) L L L 0
b) L, L L 0 L L L 0 1 : L( 1 ) = L L L 0 1 : L( 1 ) = L 1 1 L() = L( 1 ) = L y se detiene siempre L Ejercicio b) L 1, L 2 L 1 L 2 1 START 2
A partir de 4, dado cualquier par L, L siempre se dará una de las tres posibilidades L, L L 0 L, L L R L, L Una forma de demostrar que un lenguaje no es recursivamente enumerable es demostrar que su complementario es r.e. no recursivo.
5. La clase de los Lenguajes Recursivos es cerrada bajo INTERSECCIÓN. L 1 1 : L( 1 ) = L 1 L 2 2 : L( 2 ) = L 2 1 START 2 L() = L( 1 ) L( 2 ) = L 1 L 2 6. La clase de los Lenguajes Recursivamente Enumerables es cerrada bajo la INTERSECCIÓN. L 1 L 0 1 : L( 1 ) = L 1 L 2 L 0 2 : L( 2 ) = L 2 2 START 1 L() = L( 1 ) L( 2 ) = L 1 L 2
7. La clase de los Lenguajes Recursivos es cerrada bajo la CONCATENACIÓN. L 1 L 2 = 1 2, 1 L 1, 2 L 2 1 A 2 START 2 Σ * START 1 L 1 1 : L( 1 ) = L 1 L 2 2 : L( 2 ) = L 2 Funcionamiento de : El módulo A divide en dos mitades 1 y 2 comenzando por 1 = λ y 2 =. La primera mitad se pasa a 1, la segunda posiblemente a 2. Cada vez que se vuelve a activar A, 1 aumenta una unidad hasta 1 = Si ninguna partición devuelve, el módulo A activa.
5.3 Codificación de áquinas de Turing. Objetivo: Codificar una.t. con {0,1}. Sup L (0+1)* rec. enumerable con Γ = {0, 1, B} tal que L = L(). Sea = ({q 1, q 2,..., q n }, {0, 1}, {0, 1, B}, δ, q 1, B, {q 2 }) Codificación de un movimiento Sea δ(q i, X j ) = (q k, X l, D m ) con 1 i, k n 1 j, l 3 1 m 2 D 1 = L D 2 = R X 1 = 0 X 2 = 1 X 3 = B Se codifica de forma unívoca como 0 i 10 j 10 k 10 l 10 m Una.T. se codifica como 111código 1 11código 2 11...11código r 111 Una.T. puede tener varios códigos, pero la decodificación es única. A una codificación de una.t le llamamos <> El par (máquina, entrada w) lo denominamos <, w>
5.4 Un lenguaje no recursivamente enumerable: Lenguaje diagonal. Se emplea el mismo argumento que para demostrar que el conjunto de las funciones f : N {0,1} no es numerable. Si lo fuera, se tendría A = {f 1, f 2, f 3,...}. Construimos f: f (i) = f i (i) + 1(mod 2). Si f A se tendría f = f j y sin embargo f (j) f j (j). Supongamos una tabla infinita en la que: En la primera columna se colocan las palabras de (0 + 1)* en orden canónico. En la primera fila índices de.t. (i, j) = 1 si la palabra i es aceptada por la máquina que se codifica en binario como j. (i, j) = 0 si la palabra i no es aceptada por la máq. que se codifica en binario como j. números que en binario son códigos de.t. (no todos) palabras de (0 + 1)* en orden canónico 1 2 3 4 1 2 3 4 5 6...
Consideramos la diagonal de la tabla anterior y construimos L d = {w i : w i L( i )} - Si (i, i) = 0 w i L d - Si (i, i) = 1 w i L d L d no es recursivamente enumerable: -Supongamos que sí lo es : L() = L d. -En las columnas están todas las.t. j : j =. Entonces Si j L d = L( j ) (j, j) = 0 j L( j ) (contradicción) Si j L d = L( j ) (j, j) = 1 j L( j ) Luego no eiste.t. capaz de reconocer L d. Consecuencia L d es no recursivamente enumerable recursivamente enumerable no recursivo
Reducción de un problema a otro. Dados los problemas A y B, decimos que A se reduce a B (A α B) si, conocido un algoritmo que resuelve B, se puede resolver A. Si A α B entonces A es por lo menos tan duro como B Ejemplo AB. Instancia: G = (N, Σ, P, S) Cuestión: Es G ambigua? Respuesta: Si/No FIND. Instancia: G = (N, Σ, P, S) Cuestión: Encontrar w L(G): w posee más de un árbol de derivación. Respuesta: w /No AB α FIND
5.5 Un lenguaje reursivamente enumerable no recursivo: Lenguaje Universal. Veamos que L U = {<, w> : w L()} es: 1. Recursivamente enumerable. 2. No Recursivo. 1. Sea 1 la máquina con tres pistas: La 1ª es la cinta de entrada (contiene <, w> ). La 2ª simula la cinta de. inicialmente están en blanco La 3ª guarde el estado de. Operaciones que tiene que realizar: - Comprobar que la entrada es correcta. - Inicializar la 2ª cinta con w. - Inicializar la 3ª cinta con 0. (código de q 1 = estado inicial) Comportamiento de 1 - Si en la 3ª cinta aparece 00 (cód. de q 2 = estado final) 1 para y acepta <, w>. - Si en la 3ª cinta hay 0 i y en la segunda 0 j, se busca en la 1ª un fragmento 0 i 10 j 1... - Si no se encuentra ese fragmento, 1 para y rechaza <, w>. - Si se encuentra... w es aceptada por <, w> es aceptada por 1
2. Veamos que L U es no Recursivo. Sea L d = {w i : w i L( i )} Sabemos que L d es no recursivamente enumerable recursivamente enumerable no recursivo Veamos que L d se puede reducir a L U. (si reconocemos L U, tambien L d ) Supongamos que 1 : L( 1 ) = L U y 1 para ante todas las entradas < i, w i > L U w < i, w i > 1 S w i L( i ) w i L d conversión N w i L( i ) w i L d < i, w i > L U Luego si L U fuese recursivo también lo sería L d (contradicción)
L es un lenguaje de tipo 0 L es recursivamente enumerable Autómata de memoria acotada linealmente (ALL): -.T. no determinista con la entrada enmarcada entre dos símbolos ($ y # por ejemplo). - Los movimientos que hace la cabeza no pueden salirse de los límites. - Las marcas no pueden ser sustituidas. L es un lenguaje de tipo 1 L es aceptado por un ALL L. R. E. = Tipo 0 Tipo 1 L. R.