8 Indecibilidad. 8.1 Problemas

Tamaño: px
Comenzar la demostración a partir de la página:

Download "8 Indecibilidad. 8.1 Problemas"

Transcripción

1 Curso Básico de Computación 8 Indecibilidad Ahora se considera la clase de lenguajes recursivos y recursivamente enumerables. El aspecto más interesante de este estudio trata de lenguajes cuyas cadenas son interpretadas como códigos de instancias de problemas. Considere el problema de determinar si una T arbitraria acepta la cadena vacía. Este problema se puede formular como un problema de lenguaje codificado por una T con cadenas de s y s. El conjunto de todas las cadenas que codifican T s que aceptan la cadena vacía es un lenguaje que es recursivamente enumerable pero no recursivo. De esto se concluye que no existen algoritmos que decidan cuáles T aceptan cadenas vacías y cuales no. 8. Problemas Informalmente se usa la palabra problema para referirse a una pregunta tal como: Es una GLC ambigua? En el caso del problema de ambigüedad, una instancia del problema es una GLC particular. En general, una instancia de un problema es una lista de argumentos, un argumento por cada parámetro del problema. Restringimos nuestra atención a problemas con respuesta - No e instancias codificadas por cadenas sobre algún alfabeto finito, podemos transformar la pregunta de si existe un algoritmo para resolver un problema a si un lenguaje particular es o no recursivo. Considere el problema de ambiguedad para GLC. Llamemos a la versión - No del problema AB. Una versión más general del problema, llamada FIND, requiere producir una palabra con dos o más árboles de derivación y responde no en otro caso. Un algoritmo para FIND se puede usar para resolver AB. FIND produce una palabra, entonces la respuesta es sí ; si FIND contesta no, entonces AB también. Recíprocamente, dado un algoritmo para AB se produce un algoritmo para FIND. El algoritmo primero aplica AB a la gramática G. AB responde no nuestro algoritmo responde no. AB responde sí, el algoritmo sistematicamente comienza a generar todas las palabras sobre el alfabeto terminal de G. Tan pronto como se genere una palabra, se examina para ver si tiene dos o más árboles de derivación. Note que el algoritmo no comienza a generar palabras a menos que G sea ambigua, de esta manera se encuentra alguna y se imprime. Así en efecto se tiene un algoritmo. El proceso por el cual se construye un algoritmo para un problema (como FIND), y usa un supuesto algoritmo para otro (AB), se llama una reducción (de FIND a AB). En general, cuando se reduce el problema A al problema B se demuestra que B es por lo menos tan difícil como A. Así, en este caso, como en muchos otros, el problema -No AB no es más fácil que la versión más general del problema. ás tarde se probará que no existe un algoritmo para

2 Feliú Sagols Troncoso atemáticas-cinvestav 2 AB. Por la reducción de AB a FIND se concluye que no existe un algoritmo para FIND, ya que la existencia de un algoritmo para FIND implicaría la existencia de un algoritmo para AB, y sería una contradicción. Trabajemos con la codificación de la gramática G. Dado que cada máquina de Turing tienen un alfabeto fijo, no podemos trabajar directamente con la notación G = (V, T, P, S). Podemos codificar este tipo de 4-tupla utilizando cadenas binarias como sigue. A los metasímbolos de la 4-tupla, esto es, los paréntesis izquierdo y derecho, los corchetes, la coma y el, son codificados por,,,..., 5, respectivamente. Al i-ésimo símbolo de la gramática se le codifica como i+5. En esta codificación, no se puede saber con exactitud cuáles son los símbolos usados por terminales o noterminales. Problemas decidibles e indecidibles Un problema cuyo lenguaje es recursivo se dice decidible. En otro caso, el problema es indecidible. Es decir, un problema es indecidible si no existe un algoritmo que tome como entrada una instancia de un problema y determine si la respuesta a esa instancia es sí o no. Una consecuencia no intuitiva de la definición de indecidible es que problemas con sólo una instancia son trivialmente decidibles. La teoría de la indecibilidad trata de la existencia o no existencia de algoritmos para resolver problemas con un número infinito de instancias. Propiedades de lenguajes recursivos y recursivamente enumerables Una gran cantidad de teoremas sobre indecibilidad se han probado reduciendo un problema a otro. Esta reducción involucra combinar varias máquinas de Turing para formar una máquina compuesta. Ahora describimos informalmente cómo se hacen estas construcciones. Dado un algoritmo (programa para T que siempre para), se puede permitir que la T compuesta ejecute una acción si el algoritmo acepta y otra si rechaza su entrada. No se puede hacer esto si damos una T arbitraria en vez de un algoritmo, ya que si la T rechaza su entrada, puede ser que corra por siempre, y la máquina compuesta nunca inicie la siguiente tarea. En los diagramas que usemos para representar máquinas compuestas, una flecha hacia dentro de una caja etiquetada con inicio indica la señal de inicio. Cajas sin señal de inicio se asumen que comienzan a funcionar cuando la maquina compuesta lo hace. Los algoritmos tienen dos salidas, sí y no, que se pueden usar como señal de inicio o como una respuesta para la máquina compuesta. Las T arbitrarias tienen sólo la salida sí, que se usa para los mismos propósitos.

3 3 Curso Básico de Computación Ahora se presentan propiedades básicas de cerradura de la clase de conjuntos recursivos y r.e. Teorema 8. El complemento de un lenguaje recursivo es recursivo. Demostración: Sea L un lenguaje recursivo y una áquina de Turing que se para con todas las entradas y acepta a L. Construya usando de tal manera que si entra en un estado final con la entrada, entonces se para sin aceptar la entrada. se para sin aceptar la entrada, entra a un estado final. La máquina es un algoritmo porque siempre ocurre uno de estos eventos, es un algoritmo. Claramente L( ) es el complemento de L y así el complemento de L es un lenguaje recursivo. La construcción de a partir de se muestra en la siguiente figura: No No Teorema 8.2: La unión de dos lenguajes recursivos es recursivo. La unión de dos lenguajes recursivamente enumerables es recursivamente enumerable. Demostración: Sea L y L 2 lenguajes recursivos aceptados por los algoritmos y 2. Se construye de modo que primero simula a. acepta, entonces acepta. rechaza, entonces simula a 2 y acepta si y sólo si 2 acepta. Ya que tanto como 2 son algoritmos se tiene la garantía que siempre para. Claramente acepta a L L 2. Para lenguajes recursivamente enumerables la construcción anterior no funciona, ya que puede no parar. En cambio puede simular simultáneamente y 2 sobre cintas separadas. cualquiera de las dos acepta, entonces acepta. Las siguientes figuras muestran las dos construcciones. Inicio No 2 No (a)

4 Feliú Sagols Troncoso atemáticas-cinvestav 4 2 (b) Teorema 8.3: un lenguaje L y su complemento L son ambos recursivamente enumerables, entonces L (y por lo tanto L) son recursivos. Demostración: Sean y 2 que aceptan a L y L, respectivamente. Se construye como en la siguiente figura para simular simultáneamente y 2. No 2 acepta a si acepta a y rechaza a si 2 acepta a. Ya que está en L o L, sabemos que exactamente una de las máquinas o 2 la acepta. Así, siempre dice sí o no, pero nunca devuelve ambos resultados. Note que no existe un limite a priori del tiempo que pueden tardar o 2 antes de aceptar, lo cierto que al menos uno de los dos lo hace. Dado que es un algoritmo que acepta a L, se sigue que L es recursivo. Los Teoremas 8. y 8.3 tienen consecuencias importantes. Sea L y L un par de lenguajes complementarios. Entonces ) Tanto L como L son recursivos 2) Ninguno de L y L son r.e. o 3) Uno de L y L es r.e. pero no recursivo; el otro no es r.e. Una técnica importante para demostrar que un problema es indecidible es demostrar por diagonalización que el complemento del lenguaje para el problema no es r.e. Así, se aplica el caso (2) o (3). 8.3 La áquina Universal de Turing y un problema indecidible

5 5 Curso Básico de Computación Ahora usaremos diagonalización para demostrar que un problema particular es indecidible. El problema es: La máquina de Turing acepta la entrada? Aqui, tanto como son parámetros del problema. Formalizando el problema como un lenguaje se restringe sobre el alfabeto {, } y tiene como alfabeto de la cinta a {,, B}. Como el problema restringido es indecidible, el problema más general seguramente también es indecidible. Escogemos para trabajar la versión más restringida para simplificar la codificación de la instancia del problema como cadenas. Forma de codificar una máquina de Turing Para comenzar, codificamos las máquinas Turing con Σ = {, }. Sea = (Q, {, }, {,, B}, δ, q, B, {q 2 }) una máquina de Turing con el alfabeto entrada {, } y el blanco como el único símbolo adicional de la cinta. Además, asumimos que Q = {q, q 2,..., q n } es el conjunto de estados, y que q 2 es el único estado final. El Teorema 7. nos asegura que si L ( + ) es aceptado por alguna T, entonces es aceptado por una con alfabeto {,, B}. Es conveniente denotar a los símbolos,, B con los sinónimos X, X 2, X 3, respectivamente. También a las direcciones L y R por los sinónimos D y D 2, respectivamente. Entonces un movimiento genérico δ(q i, X j ) = (q k, X l, D m ) se codifica por la cadena binaria i j k l m (8.) Un código binario para la máquina de Turing es código código 2 código r (8.2) donde cada código i es una cadena de la forma (8.), y cada movimiento de se codifica por uno de los código i s. Los movimientos no necesitan estar en un order en particular. Cualquier código para se denota por. Cada cadena binaria se puede interpretar como el código de a lo más una T; muchas cadenas binarias no son código de ninguna T. Para ver que la decodificación es única, note que no hay cadenas de la forma (8.) que tengan dos s seguidos, de tal forma que los código i s se pueden encontrar directamente. una cadena no comienza ni termina con tres unos, tiene tres unos en una posición diferente del inicio o el final o tiene dos pares de unos que delimitan una subcadena que no es de la forma i j k l m entonces la

6 Feliú Sagols Troncoso atemáticas-cinvestav 6 cadena no representa a una T. El par y se representa por una cadena de la forma (8.2) seguida de. Tal cadena se denota por,. Ejemplo: Sea = ({q, q 2, q 3 }, {, }, {,, B}, δ, q, B, {q 2 }) con los movimientos: δ(q, ) = (q 3,, R) δ(q 3, ) = (q,, R) δ(q 3, ) = (q 2,, R) δ(q 3, B) = (q 3,, L) Así, una cadena denotada por, es Un lenguaje no r.e Suponga que se tiene una lista de ( + ) en orden canónico, donde i es la i-ésima palabra y j es la T cuyo código, como en (8.2) es el entero j escrito en binario. Imagine una tabla infinita que dice para toda i y para toda j si i L( j ).La figura ilustra tal tabla, significa que i / L( j ) y significa i L( j ). i j Diagonal Construimos un lenguaje L d usando las entradas de la diagonal de la tabla para determinar la pertenencia en L d. Para garantizar que no hay T que acepte a L d, insistimos en que i L d si y sólo si la entrada (i, i) es, es decir, si i no acepta a i. Suponga que alguna T j acepta a L d. Entonces nos enfrentamos a la siguiente contradicción. si j L d, entonces la entrada (j, j) es, implica que j / L( j ) y contradecimos L d = L( j ). Por otra parte, si j / L d, entonces la entrada (j, j) es, implica que j L( j ), lo cual

7 7 Curso Básico de Computación también contradice L d = L( j ). Como j pertenece o no pertenece a L d, se concluye que la suposición L d = L( j ) es falsa. Así, no hay T en la lista que acepte a L d, y por el Teorema 7., no hay T que acepte a L d. Así, se probó Lema 8. L d no es r.e. El lenguaje universal Definimos L u, el lenguaje universal como {, acepta a }. Llamamos a L u universal ya que la pregunta de si cualquier cadena particular ( + ) es aceptada por cualquier T particular es equivalente a la pregunta de si, L u, donde es la T cuyo alfabeto de la cinta es {,, B} equivalente a construido como en el Teorema 7.. Teorema 8.4 L u es recursivamente enumerable. Demostración: Vamos a exhibir una máquina de Turing con tres cintas que acepta a L u. La primera cinta de es la cinta de entrada, y la cabeza de lectura de esa cinta se usa para buscar los movimientos de la T cuando recibe el código, como entrada. Note que los movimientos de se localizan entre los dos primeros bloques de tres s. La segunda cinta de será usada para simular la cinta de. El alfabeto de es {,, B}, de modo que cada símbolo de la cinta de puede ser almacenado en una celda de la segunda cinta de. Observe que si no restringieramos el alfabeto de, tendríamos que usar muchas celdas de la cinta de para simular una de las una de las celdas de, pero la simulación podría ser llevada a cabo con un poco más de trabajo. La Tercer cinta contiene el estado de, con q i representado por o i. El comportamiento de puede inferirse fácilmente a partir de la codificación de la T. La existencia de es suficiente para probar el Teorema 8.4. n embargo, por los Teoremas 7.2 y 7., se puede encontrar una T con una cinta semiinfinita y alfabeto {,, B} que acepte a L u. Llamamos a esta T u, la máquina universal de Turing. Por el Lema 8., el lenguaje diagonal L d no es r.e. y por lo tanto no es recursivo. Así, por el Teorema 8., Ld no es recursivo. Note que L d = { i i acepta a i }. Podemos probar que el lenguaje universal L u = {, acepta a } no es recursivo reduciendo L d a L u. Así L u es un ejemplo de un lenguaje que es r.e. pero no es recursivo. De hecho, L d es otro ejemplo de tal lenguaje. Teorema 8.5 L u no es recursivo. Demostración: Suponga que A es un algoritmo que reconoce a L u. Entonces puede reconocer a L d de la siguiente manera. Dada una cadena ( + ),

8 Feliú Sagols Troncoso atemáticas-cinvestav 8 determine por un sencillo cálculo el valor de i tal que = i. El entero i en binario es el código para alguna T i. Se da como entrada i, i al algoritmo A y se acepta a si y sólo si i acepta a i. La construcción se muestra en la siguiente figura: Convertir < i, i > Hipotetico A para L u No No Construir algoritmo para L d Es fácil verificar que el algoritmo construido acepta a si y sólo si = i y i L( i ). Así, se tiene un algoritmo para L d. Ya que no existe tal algoritmo, nuestra suposición, de que el algoritmo A para L u existe, es falsa. Por lo tanto, L u es r.e. pero no recursivo. 8.4 Teorema de Rice y algunos problemas indecidibles Ahora tenemos un ejemplo de un lenguaje r.e que no es recursivo. El problema asociado acepta a es indecidible, y podemos usar este hecho para demostrar que otros problemas son indecidibles. Ejemplo: Considérese el siguiente problema: Es L()? Sea una codificación de como en (8.2). Defínanse L ne = { L() } y L e = { L() = }. Nótese que L e y L ne son complementos uno del otro, como cada cadena binaria denota alguna T; aquellas con un mal formato denotarán las T s sin movimientos. Todas estas cadenas están en L e. Se afirma que L ne es r.e. pero no recursivo y que L e no es r.e. Primero se probará que L ne es r.e. construyendo una T que reconozca codificaciones de T s que aceptan conjuntos no vacíos. Dada una entrada i, adivina de manera no determinística una cadena x aceptada por i y verifica que, en efecto, i acepta a x simulando i sobre la entrada x. Este paso también puede llevarse a cabo determinísticamente si se usa la pareja generadora descrita en la sección 7.7. Para cada par (j, k) se simula i sobre la j-ésima cadena binaria (en orden canónico) para k pasos. i acepta, entonces acepta i. Ahora se mostrará que L e no es recursivo. Supóngase que lo fuera. Entonces se podría construir un algoritmo para L u, lo que violaría el Teorema 8.5. Sea

9 9 Curso Básico de Computación A un algoritmo que acepta L e. Existe un algoritmo B que, dada,, construye una T que acepta si no acepta y que acepta ( + ) si acepta a. El diagrama de se muestra en la siguiente figura. La máquina ignora su entrada x, y en su lugar, simula sobre la entrada, aceptando si acepta a. x Nótese que no es B. En vez de esto, B es como un compilador que toma, como un programa fuente y produce como un programa objeto. Hasta aquí se ha descrito lo que B debe hacer, pero no cómo lo hace. La construcción de B es sencilla, toma, y aisla. La cadena tiene longitud n, por decir, = a a 2 a n. El algoritmo B crea n + 3 estados q, q 2,, q n+3 con movimientos δ (q, X) = (q 2, $, R) para cualquier X (imprime el marcador), δ (q i, X) = (q i+, a i, R) para cualquier X y 2 i n + (imprime ), δ (q n+2, X) = (q n+2, B, R) para X B (borra sobre la cinta), δ (q n+2, B) = (q n+3, B, L), δ (q n+3, X) = (q n+3, X, L) para X B (encuentra el marcador). Después de producir las codificaciones para estos movimientos, B suma n + 3 a los índices de los estados de e incluye el movimiento δ(q n+3, $) = (q n+4, $, R)/*comienza */ y todos los movimientos de en su T generada. La T resultante tiene un símbolo extra en la cinta $, pero por el Teorema 7. se puede construir con el alfabeto de cinta {,, B}, y son seguridad, se puede hacer que q 2 sea el estado de aceptación. Este paso completa el algoritmo B, y su salida es la T de la figura anterior. Ahora supóngase que el algoritmo A que acepta L e existe. Entonces se construye un algoritmo C para L u como en la figura siguiente:

10 Feliú Sagols Troncoso atemáticas-cinvestav <, > B A No No C acepta a, entonces L( ) ; así A dice no y C dice si. no acepta a, entonces L( ) =, A dice si y C dice no. Por el Teorema 8.5, C no existe, luego, A tampoco existe. Así, L e no es recursivo. L ne fuera recursivo, por el Teorema 8., L e lo sería también. De esta manera, L ne es r.e. pero no recursivo. L e fuese r.e., entonces por el Teorema 8.3, L e y L ne serían recursivos. Luego, L e no es r.e. Ejemplo: Considere el lenguaje y L r = { L() es recursivo} L nr = { L() no es recursivo} Note que L r no es { se para con todas las entradas}, aunque éste incluye el último lenguaje. Una T puede aceptar un lenguaje recursivo aún cuando pueda ciclarse con algunas palabras que no están en L(); algunas otras T equivalentes a deben parar siempre. Afirmamos que ni L r ni L nr son r.e. Suponga que L r fue r.e. Entonces podemos construir una T para L u la cual sabemos que no existe. Sea r la T que accepta a L r. Podemos construir un algoritmo A que tome como entrada a, y produzca como salida una T tal que { si no acepta a L( ) = si acepta a L u Note que L u no es recursivo, de esta manera acepta un lenguaje recursivo si y sólo si no acepta a. El plano de se muestra en la siguiente figura: Inicio u x Dado A y r se puede construir una T que acepte a L u, en la siguiente figura se muestra el comportamiento. <, > A r

11 Curso Básico de Computación Con la entrada, la T usa A para producir, usa r para determinar si el conjunto aceptado por es recursivo, y acepta si y sólo si L( ) es recursivo. Pero L( ) es recursivo si y sólo si L( ) =, lo que significa que no acepta a. Así la T de la figura anterior acepta a, si y sólo si, está en L u. Para L nr, suponga que tiene una T nr que acepta a L nr. Entonces se puede usar nr y un algoritmo B, para aceptar L u. B toma como entrada a, y produce como salida una T tal que { Σ L( si acepta a ) = si no acepta a L u Así acepta un lenguaje recursivo si y sólo si acepta a., la cual debe producir B, se muestra en la siguiente figura x u (a) Y una T que acepte a L u dados B y nr se muestra en <, > B nr (b) La T anterior acepta, si y sólo si L( ) no es recursivo, o equivalentemente, si y sólo si no acepta a. Es decir, la T acepta a, si y sólo si, está en L u. Como ya tenemos demostrado que no existe tal T, la suposición de que nr existe es falsa. Y se concluye que L nr no es r.e. Teorema de Rice para conjuntos de índice recursivo En el ejemplo anterior se demostró que no se puede decidir si el conjunto aceptado por una T es vacío o recursivo. La técnica de la demostración también se puede usar para demostrar que no se puede decidir si el conjunto aceptado es finito, infinito, regular, libre de contexto, si tiene un número par de cadenas, etc. Entonces qué podemos decidir acerca del conjunto aceptado por una T? Sea L un conjunto de lenguajes r.e., cada uno de los cuales es un subconjunto de ( + ). Se dice que L es una propiedad de los lenguajes r.e. Un conjunto L tiene la propiedad L si L es un elemento de L. L es una propiedad trivial si L es vacío o si L consiste de todos los lenguajes r.e. Sea L L el conjunto { L() L}

12 Feliú Sagols Troncoso atemáticas-cinvestav 2 Teorema 8.6 (Teorema de Rice) Cualquier propiedad no trivial L de los lenguajes r.e. es indecidible. Demostración: n pérdida de generalidad asumimos que no está en L (en otro caso considere L). Como L es no trivial, existe L con la propiedad L. Sea L una T que acepta a L. Suponga que L es decidible. Entonces existe un algoritmo L que acepta a L L. Usamos L y L para construir un algoritmo para L u. Primero construya un algoritmo A que tome, como entrada y produzca como salida a, donde L( ) está en L si y sólo si acepta a. El diseño de se muestra en la siguiente figura: Inicio L x Primero ignora todas las entradas y simula en. no acepta a, entonces no acepta a x. acepta a, entonces simula a L en x, aceptando a x si y sólo si L acepta a x. Así, acepta a o L dependiendo de si acepta o no. Podemos usar la máquina L hipotética para determinar si L( ) está en L. Como L( ) está en L si y sólo si, está en L u, se tiene un algoritmo que reconoce a L u, lo cual es una contradicción. Así, L debe ser indecidible. El Teorema 8.6 tiene una gran variedad de consecuencias, algunas se resumen en el siguiente corolario. Corolario: Las siguientes propiedades de los conjuntos r.e. no son decidibles : a) vacuidad b) finitud c) regularidad d) libertad de contexto Teorema de Rice para conjuntos de índice recursivamente enumerable La condición bajo la cual un conjunto L L es r.e. es mucho más complicada. Se debe demostrar que L L es r.e. si y sólo si L satisface las siguientes condiciones:

13 3 Curso Básico de Computación ) L está en L y L L, para algún L r.e., entonces L está en L (la propiedad de contención). 2) L es un lenguaje infinito en L, entonces existe un subconjunto finito de L en L. 3) El conjunto de lenguajes finitos en L es enumerable, en el sentido que existe una T que genera la (posible) cadena infinita código #código 2 #..., donde código i es un código para el i-ésimo lenguaje infinito en L (en cualquier orden). El código para el lenguaje finito {, 2,..., n } es justo, 2,..., n. Probemos estás caracterizaciones con una serie de lemas. Lema 8.2 L no tiene la propiedad de contención, entonces L L no es r.e. Demostración: Generalizamos la demostración que L nr no es r.e. Sea L en L, L L 2, de modo que L 2 no está en L. Se construye el algoritmo A que toma como entrada, y produce como salida la T con el comportamiento que se muestra en la siguiente figura: x Inicio 2 donde y 2 aceptan a L y L 2 respectivamente. acepta a, entonces se inicia 2, y acepta a x si x está en L o L 2. no acepta a, entonces 2 nunca empieza, de esta manera acepta a x si y sólo si x está en L. Como L L 2, { L( L2 si acepta a ) = si no acepta a L Así, L( ) está en L si y sólo si no acepta a. Se deja al lector el diseño del compilador A que toma a, como entrada y las conecta con la máquina de Turing fija y 2 para construir. Ya construido A, se puede usar a T L de L L para aceptar a L u, como se muestra en la siguiente figura: <, > A L Esta T acepta a, si y sólo si acepta un lenguaje en L, o equivalentemente, si y sólo si no acepta a. Así L u sería r.e. Como esto último no es cierto concluimos que L L no es r.e.

14 Feliú Sagols Troncoso atemáticas-cinvestav 4 Lema 8.3 L tiene un lenguaje infinito L tal que no hay subconjuntos finitos de L que estén en L, entonces L L no es r.e. Demostración: Bajo el supuesto que L L es r.e vamos a probar que L u es r.e. Sea una T que acepta a L. Construya el algoritmo A que toma el par, como entrada y produce como salida una T que acepta a L si no está en L() y acepta algún subconjunto finito de L en otro caso. El diseño de L se muestra en la siguiente figura: x Inicio, simular para x movimientos No "" después de x movimientos simula a con la entrada x. acepta a x, entonces simula a con durante x movimientos. no acepta a después de x movimientos, entonces acepta a x. está en L(), entonces acepta a después de algún número de movimientos, digamos j. Entonces L( ) = {x x L y x < j}, el cual es un subconjunto finito de L. no está en L(), entonces L( ) = L. Por lo tanto, si no acepta a, L( ) está en L, y si acepta a, L( ), es un subconjunto finito de L, que no está en L por hipótesis del lema. Con el argumento estandar que hemos venido manejando se puede probar que si L L es r.e., también lo es L u. Como el último no es r.e., se concluye que el primero tampoco lo es. Lema 8.4 L L es r.e., entonces la lista de códigos binarios para el conjunto finito en L es enumerable. Demostración: Usamos el par generador descrito en la Sección 7.7. Cuando (i, j) se genera, tomamos a i como el código binario de un conjunto finito, asumimos que es el código para la coma, es el código para el cero, y es el código para. Podemos construir de manera directa a la T (i) que acepta exactamente las palabras en el lenguaje finito representado por i. Entonces simula el enumerador para L L con j pasos. se tiene impreso a (i), se imprime el código para el conjunto finito representado por i, es decir, la representación binaria de i mismo, seguido de un símbolo delimitador #. En cualquier caso, después la simulación regresa el control al par generador, el cual genera el siguiente par (i, j). Teorema 8.7 L L es r.e. si y sólo si ) L está en L y L L, para algún L r.e., entonces L está en L. 2) L es un lenguaje infinito en L, entonces existe un subconjunto finito L en L que está en L.

15 5 Curso Básico de Computación 3) El conjunto de lenguajes finitos en L es enumerable. Demostración: La parte del sólo sí son los Lemas 8.2, 8.3 y 8.4. Para la parte del sí, suponga que se tiene (), (2) y (3). Se construye la T que reconoce a si y sólo si L() está en L. genera pares (i, j) usando el generador de pares. En respuesta a (i, j), simula a 2, que es un enumerador de un conjunto finito en L, para i pasos. Sabemos que 2 existe por la condición (3). Sea L el último conjunto completamente impreso en la salida de 2. Entonces se simula a durante j pasos en cada palabra de L. acepta todas las palabras en L, entonces acepta a. no, genera el siguiente par (i, j). Usamos la condición () y (2) para demostrar que L( ) = L L. Suponga que L está en L L, y sea cualquier T con L() = L. Por la condición (2), existe un conjunto finito L L en L. Sea L el lenguaje generado después i pasos por 2, y sea j el número máximo de pasos que requiere para aceptar una palabra en L. Entonces cuando genera (i, j) acepta. Recíprocamente, suponga que acepta. Entonces existe algún (i, j) tal que dentro de j pasos acepta cada palabra en algún lenguaje finito L tal que 2 genera a L dentro de los primeros i pasos. Entonces L está en L, y L L(). Por la condición (), L() está en L. De tal manera está en L L. Concluimos que L( ) = L L. El Teorema 8.7 tiene una gran variedad de consecuencias. Se resumen algunas de ellas como corolarios. Corolario Las siguientes propiedades de los conjuntos r.e. no son r.e. a) L =. b) L = Σ. c) L es recursivo. d) L no es recursivo. e) L es un singleton (tiene exactamente un miembro). f) L es un conjunto regular. g) L L u. Demostración: En cada caso la condición se viola, excepto para (b), donde (2) se viola, y (g), donde (3) se viola. Corolario 2 Las siguientes propiedades de las conjuntos r.e. son r.e a) L.

16 Feliú Sagols Troncoso atemáticas-cinvestav 6 b) L contiene al menos miembros. c) L para alguna palabra fija. d) L L u. Problemas acerca de las máquinas de Turing El Teorema 8.6 dice todo sobre si la T es indecidible? La respuesta es no. Este teorema tiene que ver con propiedades del lenguaje aceptado, no propiedades de la máquina de Turing misma. Por ejemplo, la pregunta Dada una T tiene un número par de estados? es claramente decidible. Ejemplo: No se puede decidir si una máquina de Turing con alfabeto {,, B} imprime alguna vez tres s consecutivos sobre su cinta. Para cada máquina de Turing i se construye una máquina i, la cual simula sobre cinta en blanco i sobre cinta en blanco. n embargo, i usa para codificar un y para codificar un. la cinta de i tiene un en la celda j, entonces i tiene en las celdas 2j y 2j. i cambia un símbolo, entonces i cambia el correspondiente a, luego el respectivo a. Se puede diseñar i para que nunca tenga tres s consecutivos sobre su cinta. ás aún, i puede modificarse para que si i acepta, i imprima tres s consecutivos y pare. Así, i imprime tres s consecutivos si y sólo si i acepta ɛ. Por el Teorema 8.6, no se puede decidir si una T acepta ɛ, ya que el enunciado ɛ está en L no es trivial. Así, la pregunta de saber si una T arbitraria imprime alguna vez tres s consecutivos no es decidible. Ejemplo: Es decidible si una T que inicia sobre una cinta en blanco, visita cualquier celda cuatro o más veces?. la máquina de Turing nunca visita una celda cuatro o más veces, entonces cada secuencia de cruce (secuencia de estados en los cuales la frontera entre celdas es atravezada, asumiendo cambio de estados antes de que la cabeza se mueva) es de longitud a lo más tres. Pero hay un número finito de secuencias de cruce de longitud tres o menos. Así puede suceder que la máquina de Turing permanezca dentro de una cantidad fija de celdas de cinta, en cuyo caso las técnicas de autómatas finitos responden la pregunta, o se repite alguna secuencia de cruce. Pero si alguna secuencia de cruce se repite, entonces la T se mueve a la derecha con algún patrón facilmente detectable, y la pregunta de nuevo es decidible. 8.5 Indecidibilidad del problema de correspondencia de Post

Curso Básico de Computación

Curso Básico de Computación Curso Básico de Computación 8 Indecibilidad Feliú Sagols Troncoso Matemáticas CINVESTAV-IPN 2010 Curso Básico de Computación (Matemáticas) 8 Indecibilidad 2010 1 / 58 8 Indecibilidad

Más detalles

5 Autómatas de pila 5.1 Descripción informal. 5.2 Definiciones

5 Autómatas de pila 5.1 Descripción informal. 5.2 Definiciones 1 Curso Básico de Computación 5 Autómatas de pila 5.1 Descripción informal Un autómata de pila es esencialmente un autómata finito que controla una cinta de entrada provista de una cabeza de lectura y

Más detalles

Departamento de Tecnologías de la Información. Tema 5. Decidibilidad. Ciencias de la Computación e Inteligencia Artificial

Departamento de Tecnologías de la Información. Tema 5. Decidibilidad. Ciencias de la Computación e Inteligencia Artificial Departamento de Tecnologías de la Información Tema 5 Decidibilidad Ciencias de la Computación e Inteligencia Artificial Índice 5.1 Lenguajes reconocibles y decidibles 5.2 Problemas decidibles sobre lenguajes

Más detalles

5. Propiedades de los Lenguajes Recursivamente Enumerables y de los Lenguajes Recursivos.

5. Propiedades de los Lenguajes Recursivamente Enumerables y de los Lenguajes Recursivos. 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

Más detalles

Computabilidad y Lenguajes Formales: Teoría de la Computabilidad: Decidibilidad

Computabilidad y Lenguajes Formales: Teoría de la Computabilidad: Decidibilidad 300CIG007 Computabilidad y Lenguajes Formales: Teoría de la Computabilidad: Decidibilidad Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Lo indecidible

Más detalles

Examen. Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. Segundo Semestre, 2003.

Examen. Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. Segundo Semestre, 2003. Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación Examen IIC 2222 Teoría de Autómatas y Lenguajes Formales Segundo Semestre, 2003 Este examen tiene

Más detalles

7.1 Máquina de Turing 7.5 Modificaciones de la máquina de Turing. Cinta infinita de doble vía

7.1 Máquina de Turing 7.5 Modificaciones de la máquina de Turing. Cinta infinita de doble vía 1 Curso Básico de Computación 7.1 Máquina de Turing 7.5 Modificaciones de la máquina de Turing Una razón para aceptar a la máquina de Turing como un modelo general de cómputo es que el modelo con el que

Más detalles

Introducción a la indecidibilidad

Introducción a la indecidibilidad Introducción a la indecidibilidad José M. empere Departamento de istemas Informáticos y Computación Universidad Politécnica de Valencia Lenguajes y problemas Un problema será considerado cualquier cuestión

Más detalles

Entscheidungsproblem I TEORÍA DE LA COMPUTACIÓN MÁQUINAS DE TURING Y DECIDIBILIDAD. Máquinas de Turing (TM) Procedimiento efectivo

Entscheidungsproblem I TEORÍA DE LA COMPUTACIÓN MÁQUINAS DE TURING Y DECIDIBILIDAD. Máquinas de Turing (TM) Procedimiento efectivo Entscheidungsproblem I TEORÍA DE LA COMPUTACIÓN MÁQUINAS DE TURING Y DECIDIBILIDAD Francisco Hernández Quiroz Departamento de Matemáticas Facultad de Ciencias, UNAM E-mail: fhq@ciencias.unam.mx Página

Más detalles

Computabilidad y Lenguajes Formales: Teoría de la Computabilidad: Reducibilidad

Computabilidad y Lenguajes Formales: Teoría de la Computabilidad: Reducibilidad 300CIG007 Computabilidad y Lenguajes Formales: Teoría de la Computabilidad: Reducibilidad Pontificia niversidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Reducibilidad

Más detalles

Computabilidad y Lenguajes Formales: Teoría de la Computabilidad: Máquinas de Turing

Computabilidad y Lenguajes Formales: Teoría de la Computabilidad: Máquinas de Turing 300CIG007 Computabilidad y Lenguajes Formales: Teoría de la Computabilidad: Máquinas de Turing Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Máquina

Más detalles

Entscheidungsproblem I LENGUAJES RECURSIVAMENTE ENUMERABLES MÁQUINAS DE TURING. DECIDIBILIDAD. Máquinas de Turing (TM) Procedimiento efectivo

Entscheidungsproblem I LENGUAJES RECURSIVAMENTE ENUMERABLES MÁQUINAS DE TURING. DECIDIBILIDAD. Máquinas de Turing (TM) Procedimiento efectivo Entscheidungsproblem I LENGUAJES RECURSIVAMENTE ENUMERABLES MÁQUINAS DE TURING. DECIDIBILIDAD Francisco Hernández Quiroz Departamento de Matemáticas Facultad de Ciencias, UNAM E-mail: fhq@ciencias.unam.mx

Más detalles

3 Propiedades de los conjuntos regulares 3.1 Lema de Bombeo para conjuntos regulares

3 Propiedades de los conjuntos regulares 3.1 Lema de Bombeo para conjuntos regulares Curso Básico de Computación 3 Propiedades de los conjuntos regulares 3. Lema de Bombeo para conjuntos regulares El lema de bombeo es una herramienta poderosa para probar que ciertos lenguajes son no regulares.

Más detalles

8.1 Indecibilidad 8.5 Indecibilidad en el problema de la correspondencia de Post

8.1 Indecibilidad 8.5 Indecibilidad en el problema de la correspondencia de Post 1 Curso Básico de Computación 8.1 Indecibilidad 8.5 Indecibilidad en el problema de la correspondencia de Post Los problemas indecidibles aparecen en varias áreas. En las próximas tres secciones se analizarán

Más detalles

Problemas de Decisión

Problemas de Decisión Problemas de Decisión La motivación de este capítulo puede estar dado por lo siguiente: Dado un conjunto Σ de fórmulas proposicionales en L(P ), existe un algoritmo general para determinar si Σ = ϕ Qué

Más detalles

Curso Básico de Computación

Curso Básico de Computación Curso Básico de Computación 4 Gramáticas libres de contexto Feliú Sagols Troncoso Matemáticas CINVESTAV-IPN 2010 Curso Básico de Computación (Matemáticas) 4 Gramáticas libres

Más detalles

MÁQUINAS DE TURING Y LENGUAJES ESTRUCTURADOS POR FRASES

MÁQUINAS DE TURING Y LENGUAJES ESTRUCTURADOS POR FRASES Máquinas de Turing y lenguajes estructurados por frases -1- MÁQUINAS DE TURING Y LENGUAJES ESTRUCTURADOS POR FRASES MÁQUINAS DE TURING - Son máquinas teóricas capaces de aceptar lenguajes generados por

Más detalles

Curso Básico de Computación

Curso Básico de Computación Curso Básico de Computación Autómatas finitos y expresiones regulares Feliú Sagols Troncoso Matemáticas CINVESTAV-IPN 2010 Curso Básico de Computación (Matemáticas) Autómatas

Más detalles

Propiedades de Lenguajes Regulares

Propiedades de Lenguajes Regulares de INAOE (INAOE) 1 / 44 Contenido 1 2 3 4 (INAOE) 2 / 44 Existen diferentes herramientas que se pueden utilizar sobre los lenguajes regulares: El lema de : cualquier lenguaje regular satisface el pumping

Más detalles

Máquinas de Turing. 18 de junio de 2015

Máquinas de Turing. 18 de junio de 2015 Máquinas de Turing 18 de junio de 2015 1. Introducción Hasta ahora hemos visto clases de lenguajes relativamente simples. Lo que vamos a ver ahora es preguntarnos qué lenguajes pueden definirse por cualquier

Más detalles

1 De niciones básicas

1 De niciones básicas Universidad Simón Bolívar Dpto. de Computación y Tecnología de la Información CI3721 - Traductores e Interpretadores Abril-Julio 2008 Profesor Luis astorga Apuntes sobre problemas de decisión y reducción

Más detalles

Máquinas de Turing. Definición 2

Máquinas de Turing. Definición 2 Definición 1 La Máquina de Turing (MT) es el modelo de autómata com máxima capacidad computacional: la unidad de control puede desplazarse a izquierda o derecha y sobreescribir símbolos en la cinta de

Más detalles

Autómatas de Estados Finitos

Autómatas de Estados Finitos Asignatura: Teoría de la Computación Unidad 1: Lenguajes Regulares Tema 1: Autómatas de Estados Finitos Autómatas de Estados Finitos Definición de Autómatas de estados finitos: Tipo Lenguaje Máquina Gramática

Más detalles

7 Máquina de Turing. 7.1 Introducción. 7.2 El modelo de la Máquina de Turing

7 Máquina de Turing. 7.1 Introducción. 7.2 El modelo de la Máquina de Turing 1 Curso Básico de Computación 7 Máquina de Turing Es este capítulo introducimos la Máquina de Turing que es, un modelo matemático simple de una computadora. 7.1 Introducción Hasta ahora no se ha podido

Más detalles

Ciencias de la Computación I

Ciencias de la Computación I Ciencias de la Computación I Nociones básicas de Computabilidad Problemas y Lenguajes Un problema se describe con un lenguaje Cuanto más formal el lenguaje, más precisa la formulación del problema Los

Más detalles

13.3. MT para reconocer lenguajes

13.3. MT para reconocer lenguajes 13.3. MT para reconocer lenguajes Gramática equivalente a una MT Sea M=(Γ,Σ,,Q,q 0,f,F) una Máquina de Turing. L(M) es el lenguaje aceptado por la máquina M. A partir de M se puede crear una gramática

Más detalles

Curso Básico de Computación

Curso Básico de Computación Curso Básico de Computación 8.1 Indecibilidad Feliú Sagols Troncoso Matemáticas CINVESTAV-IPN 2010 Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 1 / 96 8.5

Más detalles

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 42

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 42 Máquinas de Turing IIC3242 IIC3242 Máquinas de Turing 1 / 42 Complejidad Computacional Objetivo: Medir la complejidad computacional de un problema. Vale decir: Medir la cantidad de recursos computacionales

Más detalles

Teoría de la Computación Lenguajes Regulares (LR) - Propiedades

Teoría de la Computación Lenguajes Regulares (LR) - Propiedades Teoría de la Computación Lenguajes Regulares (LR) - Propiedades Prof. Hilda Y. Contreras Departamento de Computación hyelitza@ula.ve http://webdelprofesor.ula.ve/ingenieria/hyelitza Objetivo Lenguajes

Más detalles

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 45

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 45 Máquinas de Turing IIC3242 IIC3242 Máquinas de Turing 1 / 45 Complejidad Computacional Objetivo: Medir la complejidad computacional de un problema. Vale decir: Medir la cantidad de recursos computacionales

Más detalles

Otras propiedades de los lenguajes regulares

Otras propiedades de los lenguajes regulares Capítulo 3 Otras propiedades de los lenguajes regulares En los dos capítulos anteriores hemos presentado las propiedades básicas de los lenguajes regulares pero no hemos visto cómo se puede demostrar que

Más detalles

Unidad 4. Autómatas de Pila

Unidad 4. Autómatas de Pila Unidad 4. Autómatas de Pila Una de las limitaciones de los AF es que no pueden reconocer el lenguaje {0 n 1 n } debido a que no se puede registrar para todo n con un número finito de estados. Otro lenguaje

Más detalles

Autómatas de Pila. Descripciones instantáneas o IDs. El Lenguaje de PDA. Equivalencia entre PDAs y CFGs INAOE (INAOE) 1 / 50

Autómatas de Pila. Descripciones instantáneas o IDs. El Lenguaje de PDA. Equivalencia entre PDAs y CFGs INAOE (INAOE) 1 / 50 INAOE (INAOE) 1 / 50 Contenido 1 2 3 4 (INAOE) 2 / 50 Pushdown Automata Las gramáticas libres de contexto tienen un tipo de autómata que las define llamado pushdown automata. Un pushdown automata (PDA)

Más detalles

Departamento de Tecnologías de la Información. Tema 4. Máquinas de Turing. Ciencias de la Computación e Inteligencia Artificial

Departamento de Tecnologías de la Información. Tema 4. Máquinas de Turing. Ciencias de la Computación e Inteligencia Artificial Departamento de Tecnologías de la Información Tema 4 Máquinas de Turing Ciencias de la Computación e Inteligencia Artificial Índice 4.1 Límites de los autómatas 4.2 Definición de Máquina de Turing 4.3

Más detalles

Curso Básico de Computación

Curso Básico de Computación Curso Básico de Computación 3 Propiedades de los conjuntos regulares Feliú Sagols Troncoso Matemáticas CINVESTAV-IPN 2010 Curso Básico de Computación (Matemáticas) 3 Propiedades

Más detalles

Máquinas de estado finito y expresiones regulares

Máquinas de estado finito y expresiones regulares Capítulo 3 Máquinas de estado finito y expresiones regulares En este tema definiremos y estudiaremos máquinas de estado finito, llamadas también máquinas de estado finito secuenciales o autómatas finitos.

Más detalles

Problemas recursivamente enumerables

Problemas recursivamente enumerables Problemas recursivamente enumerables Definición Un problema L es recursivamente enumerable si existe una máquina de Turing M tal que L = L(M). Nótese que M en la definición no necesariamente se detiene

Más detalles

Análisis y Diseño de Algoritmos

Análisis y Diseño de Algoritmos Análisis y Diseño de Algoritmos Teoría NP-Completeness DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Problemas de Decisión Teoría de NP-Completeness Diseñada para aplicarse solo a problemas

Más detalles

Expresiones regulares, gramáticas regulares

Expresiones regulares, gramáticas regulares Expresiones regulares, gramáticas regulares Los LR en la jerarquía de Chomsky La clasificación de lenguajes en clases de lenguajes se debe a N. Chomsky, quien propuso una jerarquía de lenguajes, donde

Más detalles

Alfabetos y cadenas (1) Alfabetos y cadenas (2) Lenguajes. Propiedades de la concatenación:

Alfabetos y cadenas (1) Alfabetos y cadenas (2) Lenguajes. Propiedades de la concatenación: Alfabetos y cadenas (1) 0 b b 0 1 Alfabeto: Un alfabeto Σ es un conjunto finito y no vacío de símbolos. Cadena sobre un alfabeto Σ: Es una sucesión de caracteres tomados de Σ. Cadena vacía: Cadena sin

Más detalles

Teoría Matemática de la Computación Segundo Problemario Prof. Miguel A. Pizaña 13 de julio de 2016

Teoría Matemática de la Computación Segundo Problemario Prof. Miguel A. Pizaña 13 de julio de 2016 Teoría Matemática de la Computación Segundo Problemario Prof. Miguel A. Pizaña 13 de julio de 2016 I Máquinas de Turing. 1. Qué es un a Máquina de Turing? Cómo se define? Cómo se llaman las teorías que

Más detalles

1. Define que es un Autómatas finitos determinanticos y cuáles son sus elementos constitutivos (explique cada uno de ellos).

1. Define que es un Autómatas finitos determinanticos y cuáles son sus elementos constitutivos (explique cada uno de ellos). Unidad 2.- Lenguajes Regulares Los lenguajes regulares sobre un alfabeto dado _ son todos los lenguajes que Se pueden formar a partir de los lenguajes básicos?, {_}, {a}, a 2 _, por medio De las operaciones

Más detalles

Problemas recursivamente enumerables

Problemas recursivamente enumerables Problemas recursivamente enumerables Definición Un problema L es recursivamente enumerable si existe una máquina de Turing M tal que L = L(M). Nótese que M en la definición no necesariamente se detiene

Más detalles

Unidad 4. Autómatas de Pila

Unidad 4. Autómatas de Pila Unidad 4. Autómatas de Pila Una de las limitaciones de los AF es que no pueden reconocer el lenguaje {0n1n} debido a que no se puede registrar para todo n con un número finito de estados. Otro lenguaje

Más detalles

Máquinas de Turing, recordatorio y problemas

Máquinas de Turing, recordatorio y problemas Máquinas de Turing, recordatorio y problemas Elvira Mayordomo, Universidad de Zaragoza 5 de diciembre de 2014 1. Recordatorio de la definición de máquina de Turing Una máquina de Turing, abreviadamente

Más detalles

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular.

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular. MODELOS DE COMPUTACION I Preguntas Tipo Test Indicar si son verdaderas o falsas las siguientes afirmaciones: 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular. 2.

Más detalles

Procesadores de Lenguaje

Procesadores de Lenguaje Procesadores de Lenguaje Repaso TALF Cristina Tîrnăucă Dept. Matesco, Universidad de Cantabria Fac. Ciencias Ing. Informática Primavera de 2013 La Jerarquía de Chomsky Cuatro niveles de lenguajes formales

Más detalles

Introducción. Máquinas de Turing. Turing restringidas. Turing y Computadoras INAOE (INAOE) 1 / 49

Introducción. Máquinas de Turing. Turing restringidas. Turing y Computadoras INAOE (INAOE) 1 / 49 y Computadoras INAOE (INAOE) 1 / 49 Contenido y Computadoras 1 2 3 4 y Computadoras (INAOE) 2 / 49 y Computadoras Hasta ahora hemos visto clases de lenguajes relativamente simples Lo que vamos a ver ahora

Más detalles

Máquinas de Turing Definición y descripción

Máquinas de Turing Definición y descripción Capítulo 12 Máquinas de Turing 12.1. Definición y descripción Definición 1 Se llama máquina de Turing a toda séptupla M = (Γ,Σ,,Q,q 0,f,F), donde: Γ es el alfabeto de símbolos de la cinta. Σ Γ es el alfabeto

Más detalles

Fundamentos de Ciencias de la Computación

Fundamentos de Ciencias de la Computación Fundamentos de Ciencias de la Computación Clase 16: Problema de Primer Cuatrimestre de 2005 Departamento de Cs. e Ing. de la Computación Universidad Nacional del Sur Bahía Blanca, Argentina Un problema

Más detalles

Capítulo 9. Introducción a los lenguajes formales. Continuar

Capítulo 9. Introducción a los lenguajes formales. Continuar Capítulo 9. Introducción a los lenguajes formales Continuar Introducción Un lenguaje es un conjunto de símbolos y métodos para estructurar y combinar dichos símbolos. Un lenguaje también recibe el nombre

Más detalles

TIPOS DE GRAMATICAS JERARQUIAS DE CHOMSKY

TIPOS DE GRAMATICAS JERARQUIAS DE CHOMSKY TIPOS DE GRAMATICAS JERARQUIAS DE CHOMSKY Para el estudio de este tema es necesario analizar dos tipos de gramáticas de la clasificación de Chomsky, las regulares y las independientes de contexto, las

Más detalles

Expresiones regulares, gramáticas regulares Unidad 3

Expresiones regulares, gramáticas regulares Unidad 3 Expresiones regulares, gramáticas regulares Unidad 3 Los LR en la jerarquía de Chomsky La clasificación de lenguajes en clases de lenguajes se debe a N. Chomsky, quien propuso una jerarquía de lenguajes,

Más detalles

Clases de complejidad computacional: P y NP

Clases de complejidad computacional: P y NP 1er cuatrimestre 2006 La teoría de Se aplica a problemas de decisión, o sea problemas que tienen como respuesta SI o NO (aunque es sencillo ver que sus implicancias pueden extenderse a problemas de optimización).

Más detalles

Tema 6: Máquina de Turing

Tema 6: Máquina de Turing Tema 6: Máquina de Turing Departamento de Sistemas Informáticos y Computación http://www.dc.upv.es p.1/28 Tema 6: Máquina de Turing La Máquina de Turing. Máquinas de Turing como aceptores Otros modelos

Más detalles

6 Propiedades de los lenguajes libres de contexto 6.1 El Lema de Bombeo para LLC

6 Propiedades de los lenguajes libres de contexto 6.1 El Lema de Bombeo para LLC 1 Curso ásico de Computación 6 Propiedades de los lenguajes libres de contexto 6.1 El Lema de ombeo para LLC El lema de ombeo para LLC nos dice que siempre existe dos subcadenas cortas muy juntas que se

Más detalles

Coordinación de Ciencias Computacionales INAOE. Teoría de Autómatas y Lenguajes Formales. Temario detallado para examen de ingreso 2012

Coordinación de Ciencias Computacionales INAOE. Teoría de Autómatas y Lenguajes Formales. Temario detallado para examen de ingreso 2012 Coordinación de Ciencias Computacionales INAOE Teoría de Autómatas y Lenguajes Formales Temario detallado para examen de ingreso 2012 1. Autómatas 1.1. Por qué estudiar la teoría de autómatas? 1.1.1. Introducción

Más detalles

Modelos Avanzados de Computación

Modelos Avanzados de Computación UNIVERSIDAD DE GRANADA Departamento de Ciencias de la Computación e Inteligencia Artificial Modelos Avanzados de Computación Práctica 2 Máquinas de Turing Curso 2014-2015 Doble Grado en Ingeniería Informática

Más detalles

Lenguaje Regular. Sumario. Lenguaje Regular. Autómatas y Lenguajes Formales. Capítulo 8: Propiedades de los Lenguajes Regulares

Lenguaje Regular. Sumario. Lenguaje Regular. Autómatas y Lenguajes Formales. Capítulo 8: Propiedades de los Lenguajes Regulares Lenguaje Regular Capítulo 8: Propiedades de los Lenguajes Regulares José Miguel Buenaposada Josemiguel.buenaposada@urjc.es Definición 1 (Lenguaje Regular) Un lenguaje L se denomina regular si y sólo si

Más detalles

Curso Básico de Computación

Curso Básico de Computación Curso Básico de Computación 7 Máquina de Turing Feliú Sagols Troncoso Matemáticas CINVESTAV-IPN 2010 Curso Básico de Computación (Matemáticas) 7 Máquina de Turing 2010 1 / 43

Más detalles

Máquinas Secuenciales, Autómatas y Lenguajes Tema 5: Propiedades de los Lenguajes Regulares. Luis Peña

Máquinas Secuenciales, Autómatas y Lenguajes Tema 5: Propiedades de los Lenguajes Regulares. Luis Peña Máquinas Secuenciales, Autómatas y Lenguajes Tema 5: Propiedades de los Lenguajes Regulares Luis Peña Lenguaje Regular Definición 1 (Lenguaje Regular) Un lenguaje L se denomina regular si y sólo si existe

Más detalles

Máquina de estado finito con salida sin salida

Máquina de estado finito con salida sin salida Máquina de estado finito con salida sin salida Máquina de estado finito Máquinas de estados finitos se utilizan ampliamente en aplicaciones en ciencias de la computación y redes de datos. Por ejemplo,

Más detalles

Autómatas Finitos INAOE. Introducción a. Autómatas. Definición formal de un. Finito Determinístico. Finito No- Finitos y Lenguajes Formales

Autómatas Finitos INAOE. Introducción a. Autómatas. Definición formal de un. Finito Determinístico. Finito No- Finitos y Lenguajes Formales los s s s s INAOE (INAOE) 1 / 58 Contenido los s s 1 los s 2 3 4 s 5 (INAOE) 2 / 58 los s los s los s s : Conjunto de estados + Control Cambio de estados en respuesta a una entrada. Tipo de Control: :

Más detalles

Examen de Teoría de Autómatas y Lenguajes Formales

Examen de Teoría de Autómatas y Lenguajes Formales Examen de Teoría de Autómatas y Lenguajes Formales TAL 16 de Septiembre de 2008 (I) CUESTIONES: (Justifique formalmente las respuestas) 1. Pronúnciese acerca de la veracidad o falsedad de los siguientes

Más detalles

si w=ay por tanto a Σ e y Σ*

si w=ay por tanto a Σ e y Σ* EJERCICIOS: LENGUAJES Y GRAMÁTICAS FORMALES Y MÁQUINAS DE TURING 1.- Prefijos de una cadena x son las cadenas que se pueden obtener de x suprimiendo 0 o más caracteres del final de x. Prefijos propios

Más detalles

MODELOS DE COMPUTACIÓN CRISTIAN ALFREDO MUÑOZ ALVAREZ JUAN DAVID LONDOÑO CASTRO JUAN PABLO CHACON PEÑA EDUARDO GONZALES PULGARIN

MODELOS DE COMPUTACIÓN CRISTIAN ALFREDO MUÑOZ ALVAREZ JUAN DAVID LONDOÑO CASTRO JUAN PABLO CHACON PEÑA EDUARDO GONZALES PULGARIN MODELOS DE COMPUTACIÓN CRISTIAN ALFREDO MUÑOZ ALVAREZ JUAN DAVID LONDOÑO CASTRO JUAN PABLO CHACON PEÑA EDUARDO GONZALES PULGARIN LENGUAJES Y GRAMÁTICAS La sintaxis de un lenguaje natural en lenguajes como

Más detalles

Teoría de la Computación y Leguajes Formales

Teoría de la Computación y Leguajes Formales y Leguajes Formales Prof. Hilda Y. Contreras Departamento de Computación hyelitza@ula.ve hildac.teoriadelacomputacion@gmail.com Contenido Tema 0: Introducción y preliminares: Conocimientos matemáticos

Más detalles

Tipos de datos en S. Lógica y Computabilidad. Codificación de variables y etiquetas de S. Codificación de programas en S

Tipos de datos en S. Lógica y Computabilidad. Codificación de variables y etiquetas de S. Codificación de programas en S Tipos de datos en S Lógica y Computabilidad Verano 2011 Departamento de Computación - FCEyN - UBA Computabilidad - clase 5 Codificación de programas, Halting problem, diagonalización, tesis de Church,

Más detalles

AUTÓMATAS DE ESTADO FINITO

AUTÓMATAS DE ESTADO FINITO AUTÓMATAS DE ESTADO FINITO Orlando Arboleda Molina Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle 12 de octubre de 2008 Contenido Autómatas de estado finito Concatenación de

Más detalles

Complejidad - Problemas NP-Completos. Algoritmos y Estructuras de Datos III

Complejidad - Problemas NP-Completos. Algoritmos y Estructuras de Datos III Complejidad - Problemas NP-Completos Algoritmos y Estructuras de Datos III Teoría de Complejidad Un algoritmo eficiente es un algoritmo de complejidad polinomial. Un problema está bien resuelto si se conocen

Más detalles

Lenguajes decidibles y semidecidibles. Elvira Mayordomo, Universidad de Zaragoza

Lenguajes decidibles y semidecidibles. Elvira Mayordomo, Universidad de Zaragoza Lenguajes decidibles y semidecidibles Elvira Mayordomo, Universidad de Zaragoza 1 Hoy 1. Lenguaje semidecidible y lenguaje decidible (repaso) 2. Todo decidible es semidecidible 3. Ejemplos de decidibles

Más detalles

9 La Jerarquía de Chomsky

9 La Jerarquía de Chomsky 1 Curso Básico de Computación 9 La Jerarquía de Chomsky De las tres principales clases de lenguajes que se han estudiado -los conjuntos regulares, los lenguajes libres de contexto, y los lenguajes recursivamente

Más detalles

Ciencias de la Computación I

Ciencias de la Computación I Ciencias de la Computación I Autómatas Linealmente Acotados Máquinas de Turing Motivación - Es posible diseñar un AP que reconozca el lenguaje L 1? L 1 = { a n b n c n / n > 0 } Ejemplo una estrategia

Más detalles

Reducibilidad. Se dice que f es computable si existe una MT que la computa y que siempre se detiene. f(w)

Reducibilidad. Se dice que f es computable si existe una MT que la computa y que siempre se detiene. f(w) Reducibilidad Def: Sean L 1, L 2 Σ se dirá que L 1 se reduce a L 2 (L 1 α L 2 ) si existe una función total computable (o recursiva) f: Σ Σ tal que Σ, L 1 f() L 2 Σ Σ L 1 L 1 f() f( ) Se dice que f es

Más detalles

Autómata de Pila (AP, PDA) Sesión 18

Autómata de Pila (AP, PDA) Sesión 18 Sesión 8 Autómata de Pila (Pushdown Automata) Autómata de Pila (AP, PDA) Un AP es una máquina que acepta el lenguage generado por una GLC Consiste en un NFA- aumentado con una pila (stack). L = {xx r x

Más detalles

Teoría de Autómatas y Compiladores [ICI-445] Capítulo 2: Autómatas Finitos

Teoría de Autómatas y Compiladores [ICI-445] Capítulo 2: Autómatas Finitos Teoría de Autómatas y Compiladores [ICI-445] Capítulo 2: Autómatas Finitos Dr. Ricardo Soto [ricardo.soto@ucv.cl] [http://www.inf.ucv.cl/ rsoto] Escuela de Ingeniería Informática Pontificia Universidad

Más detalles

La máquina de Turing

La máquina de Turing La máquina de Turing José M. Sempere Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia David Hilbert (1862, Rusia 1943, Alemania) Matemático que aportó diversos resultados

Más detalles

Teoría de Autómatas y Lenguajes Formales.

Teoría de Autómatas y Lenguajes Formales. Teoría de Autómatas y Lenguajes Formales Prueba de Evaluación de Lenguajes Regulares, Autómatas a Pila y Máquinas de Turing. Autores: Araceli Sanchis de Miguel Agapito Ledezma Espino Jose A. Iglesias Martínez

Más detalles

Problemas indecidibles

Problemas indecidibles Capítulo 7 Problemas indecidibles 71 Codificación de máquinas de Turing Toda MT se puede codificar como una secuencia finita de ceros y unos En esta sección presentaremos una codificación válida para todas

Más detalles

Equivalencia Entre PDA y CFL

Equivalencia Entre PDA y CFL Equivalencia Entre PDA y CFL El Lenguaje aceptado por un Autómata con Pila Universidad de Cantabria Esquema 1 Introducción 2 3 Lenguaje Aceptado por un Autómata Como en los autómatas finitos, se puede

Más detalles

Grupos libres. Presentaciones.

Grupos libres. Presentaciones. S _ Tema 12.- Grupos libres. Presentaciones. 12.1 Grupos libres. En el grupo Z de los enteros vimos una propiedad (cf. ejemplos.5), que lo caracteriza como grupo libre. Lo enunciamos al modo de una Propiedad

Más detalles

Cardinalidad IIC1253. IIC1253 Cardinalidad 1 / 23

Cardinalidad IIC1253. IIC1253 Cardinalidad 1 / 23 Cardinalidad IIC1253 IIC1253 Cardinalidad 1 / 23 Conjuntos con la misma cardinalidad Definición Decimos que dos conjuntos A y B son equinumerosos, denotado como A B, si existe una biyección f : A B. Ejemplo

Más detalles

Definiciones previas

Definiciones previas Máquina de Turing Definiciones previas Definición. Alfabeto: Diremos que un conjunto finito Σ es un alfabeto si Σ y ( x)(x Σ x es un símbolo indivisible) Ejemplos Σ ={a,b}, Σ ={0,1}, Σ ={a,b, z} son alfabetos

Más detalles

Cardinalidad IIC1253. IIC1253 Cardinalidad 1 / 23

Cardinalidad IIC1253. IIC1253 Cardinalidad 1 / 23 Cardinalidad IIC1253 IIC1253 Cardinalidad 1 / 23 Conjuntos con la misma cardinalidad Definición Decimos que dos conjuntos A y B son equinumerosos, denotado como A B, si existe una biyección f : A B. IIC1253

Más detalles

2 Autómatas finitos y gramáticas regulares.

2 Autómatas finitos y gramáticas regulares. 2 Autómatas finitos y gramáticas regulares. Autómata RAE Instrumento o aparato que encierra dentro de sí el mecanismo que le imprime determinados movimientos. Algo autónomo que se comporta de determinada

Más detalles

2 Autómatas finitos y gramáticas regulares.

2 Autómatas finitos y gramáticas regulares. 2 Autómatas finitos y gramáticas regulares. Autómata RAE Instrumento o aparato que encierra dentro de sí el mecanismo que le imprime determinados movimientos. Algo autónomo que se comporta de determinada

Más detalles

Propiedades de lenguajes independientes del contexto

Propiedades de lenguajes independientes del contexto Capítulo 12. Propiedades de lenguajes independientes del contexto 12.1. Identificación de lenguajes independientes del contexto Lema de bombeo. 12.2. Propiedades Cierre, Complemento de lenguajes, Sustitución,

Más detalles

Demostración del problema del paro (Halting problem)

Demostración del problema del paro (Halting problem) Demostración del problema del paro (Halting problem) Introducción a las ciencias de la computación Antonio López Jaimes UNIVERSIDAD AUTÓNOMA METROPOLITANA UNIDAD IZTAPALAPA Definición del problema El problema

Más detalles

Computabilidad y lenguajes formales: Sesión 17. Equivalencia entre Expresiones Regulares y Autómatas Finitos

Computabilidad y lenguajes formales: Sesión 17. Equivalencia entre Expresiones Regulares y Autómatas Finitos Computabilidad y lenguajes formales: Sesión 17. Equivalencia entre Expresiones Regulares y Autómatas Finitos Prof. Gloria Inés Alvarez V. Departamento de Ciencias e Ingeniería de la Computación Pontificia

Más detalles

PRACTICA 10: Máquinas de Turing

PRACTICA 10: Máquinas de Turing ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA Departamento de Estadística, I.O. y Computación Teoría de Autómatas y Lenguajes Formales PRACTICA 10: Máquinas de Turing 10.1. Introducción La clase de

Más detalles

Tema 4: Gramáticas independientes del contexto. Teoría de autómatas y lenguajes formales I

Tema 4: Gramáticas independientes del contexto. Teoría de autómatas y lenguajes formales I Tema 4: Gramáticas independientes del contexto Teoría de autómatas y lenguajes formales I Bibliografía Hopcroft, J. E., Motwani, R., y Ullman, J. D. Introducción a la Teoría de Autómatas, Lenguajes y Computación.

Más detalles

Espacios Vectoriales

Espacios Vectoriales Espacios Vectoriales Pedro Díaz Navarro * Abril de 26. Vectores en R 2 y R 3 2. Espacios Vectoriales Definición (Espacio vectorial) Decimos que un conjunto no vacío V es un espacio vectorial sobre un cuerpo

Más detalles

Teorema de incompletitud de Gödel

Teorema de incompletitud de Gödel Teorema de incompletitud de Gödel Theorem (Gödel) Th(N) es una teoría indecidible. IIC2213 Teorías 79 / 109 Teorema de incompletitud de Gödel Theorem (Gödel) Th(N) es una teoría indecidible. Corolario

Más detalles

1) Comprender la importancia que tiene la Máquina de Turing para la Ciencia de la Computación.

1) Comprender la importancia que tiene la Máquina de Turing para la Ciencia de la Computación. 0 1 Temas 2 Objetivos 1) Comprender la importancia que tiene la Máquina de Turing para la Ciencia de la Computación. 2) Definir máquinas de Turing unicinta y multicinta, para reconocer lenguajes y para

Más detalles

Autómata de Pila (AP, PDA) Tema 18

Autómata de Pila (AP, PDA) Tema 18 Tema Autómata de Pila (Pushdown Automata Autómata de Pila (AP, PDA Un AP es una máquina que acepta el lenguage generado por una GLC Consiste en un NFA- aumentado con una pila (stack. Dr. Luis A. Pineda

Más detalles

Teoría de Autómatas y Lenguajes Formales Equivalencia de Conjuntos Pruebas por Inducción

Teoría de Autómatas y Lenguajes Formales Equivalencia de Conjuntos Pruebas por Inducción y Lenguajes INAOE y (INAOE) 1 / 40 Contenido y 1 2 3 4 5 6 y (INAOE) 2 / 40 Objetivo General Proporcionar al estudiante los fundamentos de la teoría de autómatas así como los de lenguajes formales. También

Más detalles