teora de la computacin_isc

Upload: luis-bahena

Post on 09-Jul-2015

134 views

Category:

Documents


0 download

TRANSCRIPT

Teora de la computacin.Unidad Temas 1 Introduccin. Subtemas 1.1 Autmatas, computabilidad y complejidad. 1.2 Nociones matemticas. 1.2.1 Conjuntos 1.2.2 Funciones y Relaciones 1.2.3 Cadenas y Lenguajes 1.3 Induccin matemtica. 2.1 Autmatas finitos 2.1.1 Autmatas finitos determinsticos. 2.1.2 Autmatas finitos No determnisticos 2.2 Expresiones regulares. 2.3 Lenguajes no regulares. 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 4 Mquina de Turing. Gramticas libres de contexto. rboles de derivacin. Formas normales de Chomsky. Formas normales de Greibach. Eliminacin de Factores Comunes izquierdos. Eliminacin de recursividad izquierda. Eliminacin de la ambigedad. Autmatas Push-Down. Lenguajes no regulares.

2

Lenguajes regulares.

3

Lenguajes libres de contexto.

4.1 Definicin formal de una mquina de Turing. 4.2 Construccin modular de una mquina de Turing. 4.3 Lenguajes aceptados por la MT. 4.4 Variantes de una mquina de Turing. 4.5 Problemas de Hilbert. 5.1 Lenguajes Decidibles. 5.2 El problemas de Halting. 5.3 Decidibilidad de Teoras Lgicas. 6.1 Problemas insolubles para la teora de lenguajes. 6.2 Un problema simple insoluble. 6.3 Funciones computables.

5

Decibilidad.

6

Reducibilidad.

6.4 Reducibilidad de Turing.

Unidad 1 Introduccin.1.1 Autmatas, computabilidad y complejidad. Los autmatas vienen a ser mecanismos formales que ``realizan'' derivaciones en gramticas formales. La manera en que las realizan es mediante la nocin de reconocimiento. Una palabra ser generada en una gramtica si y slo si la palabra hace transitar al autmata correspondiente a sus condiciones terminales. Por esto es que los autmatas son analizadores lxicos (llamados en ingls ``parsers'') de las gramticas a que corresponden. En matemticas, la veracidad de una proposicin queda asentada slo cuando se la demuestra. Para aceptar una proposicin cuantificada universalmente, es decir, de la forma ``Todo x cumple '', es insuficiente demostrar que para algunos posibles ``testigos'' se ha probado

que efectivamente se cumple , con , por muy grande que sea N, pues aunque haya evidencia de que muchos puntos satisfacen al predicado , sta no basta para concluir que ``todos'' los puntos lo satisfacen. Dos maneras tpicas de demostrar proposiciones cuantificadas universalmente son los razonamientos por contradiccin y, cuando el conjunto de puntos es numerable, por induccin. Las primeras dos secciones de este captulo se abocan a la presentacin de esos mtodos de demostracin. Posteriormente presentamos los mtodos de Cantor para mostrar como numerables a los productos finitos de conjuntos numerables. Esto es de particular importancia en la Teora de la Complejidad pues permite construir una enumeracin efectiva de los ``programas'' en un esquema de programacin que sea efectivamente ``computable''. Como una primera aproximacin a la nocin de ``computabilidad'' presentamos a los programas-while como un lenguaje formal de programacin, con sintaxis y semntica bien definidos, y, finalmente, a travs de ellos introducimos la nocin de funciones computables. Introducimos, luego, a las mquinas de Turing . Tales mquinas aportan un enfoque alternativo al concepto de ``computabilidad'', sin embargo es equivalente al anterior. Probada esa equivalencia, terminaremos de presentar, de manera introductoria, a las funciones computables. Posteriormente, enunciamos la tesis de Church . A las funciones computables es posible presentarlas tambin como elementos de clases mnimas de funciones que contienen a un cierto conjunto de funciones y que son cerradas bajo algunos esquemas de composicin. De tales enfoques nos ocuparemos en este primer captulo. Finalmente, veremos que la clase de programas formales, la de las mquinas de Turing y la de las funciones computables son todas numerables. Dado que la clase de todas las funciones posee la misma cardinalidad de los nmeros reales tenemos inmediatamente que hay muchas ms funciones no-computables que computables. http://delta.cs.cinvestav.mx/~gmorales/complex/node2.html

La Teora de la computabilidad es la parte de la computacin que estudia los problemas de decisin que pueden ser resueltos con un algoritmo o equivalentemente con una mquina de Turing. La teora de la computabilidad se interesa a cuatro preguntas:

Que problemas puede resolver una mquina de Turing? Que otros formalismos equivalen a las mquinas de Turing? Que problemas requieren mquinas ms poderosas? Que problemas requieren mquinas menos poderosas?

La teora de la complejidad computacional clasifica las funciones computables segn el uso que hacen de diversos recursos en diversos tipos de mquina. Que problemas puede resolver una mquina de Turing? No todos los problemas pueden ser resueltos. Un problema indecidible es uno que no puede ser resuelto con un algoritmo an si se dispone de espacio y tiempo ilimitado. Actualmente se conocen muchos problemas indecidibles, como por ejemplo:

El Entscheidungsproblem (problema de decisin en alemn) que se define como: Dada una frase del clculo de predicados de primer orden, decidir si ella es un teorema. Church y Turing demostraron independientemente que este problema es indecidible.

El Problema de la parada, que se define asi: Dado un programa y su entrada, decidir si ese programa terminar para esa entrada o si correr indefinidamente. Turing demostr que se trata de un problema indecidible.

Un nmero computable es un nmero real que puede ser aproximado por un algoritmo con un nivel de exactitud arbitrario. Turing demostr que casi todos los nmeros no son computables. Por ejemplo, el nmero de Chaitin no es computable aunque s que est bien definido.

Que otros formalismos equivalen a las mquinas de Turing? Los lenguajes formales que son aceptados por una mquina de Turing son exactamente aquellos que pueden ser generados por una gramtica formal. El clculo Lambda es una forma de definir funciones. Las funciones que pueden se computadas con el clculo Lambda son exactamente aquellas que pueden ser computadas con una mquina de Turing. Estos tres formalismos, las mquinas de Turing, los lenguajes formales y el clculo Lambda son formalismos muy dismiles y fueron desarrollados por diferentes personas. Sin embargo, ellos son todos equivalentes y tienen el mismo poder de expresin. Generalmente se toma esta notable coincidencia

como evidencia de que la tesis de Church-Turing es cierta, que la afirmacin de que la nocin intuitiva de algoritmo o procedimiento efectivo de cmputo corresponde a la nocin de cmputo en una mquina de Turing. Los computadores electrnicos, basados en la arquitectura Von Neumann as como las mquinas cunticas tendran exactamente el mismo poder de expresin que el de una mquina de Turing si dispusieran de recursos ilimitados de tiempo y espacio. Como consecuencia, los lenguajes de programacin tienen a lo sumo el mismo poder de expresin que el de los programas para una mquina de Turing y en la prctica no todos lo alcanzan. Los lenguajes con poder de expresin equivalente al de una mquina de Turing se denominan Turing completos. Entre los formalismos equivalentes a una mquina de Turing estn:

Mquinas de Turing con varias cintas Mquinas de Turing con cintas bidimensionales (o una infinidad de cintas lineales) Mquinas de Turing con numero limitado de estados y smbolos para la cinta Mquinas de Turing con solo dos estados Autmatas finitos con dos pilas Autmatas finitos con dos contadores Gramticas formales Sistemas de correspondencia de Post Clculo Lambda Funciones recursivas parciales Casi todos los lenguajes de programacin modernos si dispusieran de memoria ilimitada Autmatas celulares El Juego de la vida de John Conway Mquinas de Turing no determinsticas Mquinas de Turing probabilsticas Computador cuntico

Los ltimos tres ejemplos utilizan una definicin ligeramente diferente de aceptacin de un lenguaje. Ellas aceptan una palabra si cualquiera, cmputo acepta (en el caso de no determinismo), o la mayora de los cmputos aceptan (para las versiones probabilstica y cuntica). Con estas definiciones, estas mquinas tienen el mismo poder de expresin que una mquina de Turing.

Que problemas requieren mquinas ms poderosas? Se considera que algunas mquinas tienen mayor poder que las mquinas de Turing. Por ejemplo, una mquina orculo que utiliza una caja negra que puede calcular una funcin particular que no es calculable con una mquina de Turing. La fuerza de cmputo de una mquine orculo viene descrita por su grado de Turing. La teora de cmputos reales estudia mquinas con precisin absoluta en los nmeros reales. Dentro de esta teora, es posible demostrar afirmaciones interesentes, tales como el complemento de un conjunto de Mandelbrot es solo parcialmente decidible.

http://encyclopedie-es.snyke.com/articles/teoria_de_la_computabilidad.html 1.2 Nociones matemticas. 1.2.1 ConjuntosIntroduccin El concepto de conjunto es de fundamental importancia en las matemticas modernas. Muchos matemticos creen que es posible expresar todas las matemticas con un lenguaje de teora de conjuntos. Otra aplicacin de la teora de conjuntos la encontramos con el modelado e investigacin de operaciones en las ciencias computacionales. Los conjuntos fueron por primera vez formalmente estudiados por G. Cantor. Despus de esto la teora de conjuntos se ha convertido en un rea muy bien establecida de matemticas, contradicciones o paradojas que encontramos en dicha teora. Eventualmente, los ms sofisticados acercamientos al trabajo original de Cantor hicieron que dichas paradojas desaparecieran. Tratos introductorios de la teora de conjuntos usualmente mostraban una cndida teora de conjuntos, la cul era bastante similar al trabajo original de Cantor, mejor dicho, se desarrollaban en el mismo marco terico necesario para no caer en paradojas. El trabajo a desarrollar mostrar la teora de conjuntos desde un punto de vista muy amplio, sin adentrarnos al anlisis profundo de las paradojas que se podran presentar en el camino.

Notacin: Ordinariamente usaremos letras maysculas para representar los conjuntos que incluiremos sus elementos dentro de llaves separados por comas, {}. El smbolo elementosignifica (es elemento de). Anlogamente,significa (no es elemento de). Ejemplo: Sea S la letra que designa el conjunto descrito precisamente como [a,b,c,d]. Por tanto, S es el conjunto cuyos elementos son las primeras cuatro letras minusculas del alfabeto. Podemos entonces escribir a S, b S, c S y d S. Similarmente f S, 3 S, etc. Conjuntos Iguales: Usamos el signo de igualdad para indicar que dos smbolos representan al mismo conjunto. Definicin: se dice que dos conjuntos S y T son iguales si cada elemento de S es elemento de T y viceversa. Se escribe S=T. Ejemplo: en el ejemplo anterior pusimos S = [a,b,c,d]; puesto que [a.b.c.d] es un smbolo para representar al mismo conjunto que representa S. Debe notarse que, segn esta definicin, no importa el orden en que se expresan los elementos. Por lo tanto [a,b,c,d] =[b.d,c.a].

Notacin de conjuntos

Conjuntos Vacios : Es til tener el concepto de un conjunto sin elemento. Definicin: un conjunto sin elementos recibe el nombre de conjuntos vacios o conjunto nulo y se representa por [ ] o por . Ejemplo: considrese el conjunto S de todos los elementos que los son tanto [a,b,c] como de [d,e,f]. El conjunto S no tiene elementos,; luego, S = [ ]. Subconjuntos: Definicin: se dice que un conjunto S es subconjunto T, si todos los elementos de S los son T. El smbolo se lee (es subconjunto de). As, (S T ) se lee (S es subconjunto de T). Decir que S no es subconjunto de T significa que algun elemento de S no lo es de T. En tal caso escribimos S T. Ejemplo: sea S = (a.b.c.d) y T=(a.b.c.d.e). Vemos que S T. Sin embargo si H={a.b.c.f}, notamos que f T, de modo que H T. Entenderemos que el conjunto vaco, , siempre es subconjunto de cualquier conjunto T. Si no fuese as ellos significara que algn elemento de , no sera miembro de T, pero como , no tiene elementos esto resultara imposible. Definicin: se dice que S es un subconjunto propio de T, si S T, y adems existe algn elemento de T que no esta en S. Esto lo escribimos S T. Conjuntos Equivalentes: Cuando los elementos de un conjunto se corresponden con los de un segundo conjunto de modo que cada elemento de cada conjunto tenga uno, y solo uno, asociado en el otro conjunto, decimos que hay una correspondencia uno a uno entre ambos conjuntos. Definicin: dos conjuntos que se pueden poner en correspondencia uno a uno entre s, se dice que son equivalentes. Si A es equivalente a B, se escribe A B. Ejemplo: sean S = {a.b.c.d} y T = { ,0,+}. Estos dos conjuntos son equivalentes puesto que podemos hacer , corresponder en forma uno a uno los elementos de un conjunto con los del otro. Cardinalidad De Un Conjunto Todos estamos familiarizados con el conjunto ordenado de los nmeros naturales, N = {1,2,3,4..} y el conjunto ordenado de los nmero enteros no negativos W = {0,1,2,3,4...}. Contar es el proceso por el cual podemos en correspondencia los elementos de un conjunto con algn subconjunto propio de N, comenzando con 1 y usando los elementos de N en orden y sin saltar ninguno. Un subconjunto as se llama subconjunto estndar de N. Ejemplo: es decir, el subconjunto estndar de N, {1,2,3,4} es equivalente a {a,b,c,d}decimos entonces que S tiene cuatro elementos. Estos lleva a la definicin siguiente: Definicin: cuando un conjunto S se equipara con un subconjunto estndar de N, el ultimo elemento de N usado se llama cardinalidad del conjunto S y se denota por n (S). Ejemplo: en el ejemplo anterior, n(S)= 4. Definicin: la cardinalidad , el conjunto vaco es cero. Tenemos que construir esta definicin por separado, puesto que 0N y, por tanto, no tiene sentido hablar de equiparar elementos que no existen. La claridad del conjunto {3} es 1, ya que {3} se puede equiparar con {1}. Es decir que el conjunto {3} tiene un miembro. Similarmente, la claridad del conjunto {0} es 1. hay que estar seguro de que entendemos la diferencia entre {} y {0}. Dos nmeros enteros no negativos m y n, son iguales si ambos son la cardinalidad del mismo conjunto o de conjuntos equivalentes. En tal caso, escribimos m=n.. Definicin: si m y n son nmeros entero no negativos, decir que m es menor que n significa que n es la cardinalidad de un conjunto que se puede equipar con un subconjunto propio de un conjunto de cardinalidad n. Escribiremos entonces m < n. Si m < n podemos decir tambin que n > m. Ejemplo: S = {a.b.c} y T ={d,e,f,g,h}. Vemos que hay una correspondencia uno a uno entre S y el subconjunto propio de T, {d,e,f}. Por tanto, n (S) < n (T), o bien puesto que n (S) =3 y n (T)=5, ponemos 3 < 5. Conjuntos Finitos E Infinitos:

Si es posible encontrar un subconjunto estndar de N que se puede hacer corresponder uno a uno con un conjunto dado S, o si S es el conjunto vaco, decimos que S es finito. Si no, decimos que infinitos. Ejemplos: T = {a,b,c..., x,y,z} es conjunto finito, puesto que es equivalente {1,2,3,4,5...,25,26}. El conjunto N = {1,2,3...} es infinito, puesto que no es posible equiparar con ningn subconjunto estndar de N. Notese que, sin embargo si hay un equiparamiento de N con uno de sus subconjuntos que no es un subconjunto estndar: como el conjunto de los nmeros pares. Vemos que N se puede poner en correspondencia con un subconjunto propio de si mismo. Esto solo se puede hacer en un conjunto infinito.

Conceptos bsicos teora de conjuntosUn Conjunto es cualquier coleccin de objetos el cual pueden ser tratado como una entidad, y un objeto de la coleccin se dice que es un elemento o miembro del conjunto. Dado un objeto x y un conjunto S, si x es un elemento del conjunto S, lo podemos escribir como x S; si x no es un elemento del conjunto S, podemos escribirlo como (x S) o tambin x S. Los trminos conjunto, coleccin y clase son usados como sinnimos, as como tambin los trminos elemento o miembro. Hay que hacer notar que no hemos dado una definicin formal de conjuntos ni una base para decidir cuando un objeto es un miembro de un conjunto. Como en cualquier otra teora matemtica, no siempre se hace nfasis en los conceptos bsicos o en las nociones indefinidas (como por ejemplo, punto o lnea en geometra); la definicin de conjunto y la relacin es un elemento de son conceptos fundamentales de la teora de conjuntos. Como consecuencia de no tener definiciones para estos conceptos, no tenemos una prueba para determinar cuando algo es un conjunto o cuando, un objeto dado, es un elemento de un conjunto especificado. Por no tener una prueba, debemos de confiar en un sentido comn del significado de los trminos. Casi cualquier cosa puede ser puede ser tratada como conjunto, vindola desde un punto de vista muy matemtico, lo que trataremos de ilustrar con los siguientes ejemplos. El conjunto de enteros no negativos menores que 4. ste es un conjunto finito con cuatro miembros: 0, 1, 2 y 3. El conjunto de libros en la biblioteca del ITQ en este momento. ste tambin es un conjunto finito. Un conjunto que tal vez sea difcil de listar dado que en ste momento pueden estar prestando y devolviendo libros, es decir hay flujo constante. El conjunto de nombres de las personas que hablaron a Tombuct el 15 de febrero del ao 810 a. C. ste es un conjunto finito que seguramente tendr por lo menos un elemento. Aunque ste tiene una caracterstica que tal vez no concuerde con la realidad por la cual ser difcil determinar los miembros del conjunto, muchos matemticos dicen que no hay porque no considerarlo un conjunto. El conjunto de dinosaurios vivos en el Museo Britnico. Asumiendo que no se estn realizando experimentos siniestros en dicho museo, ste conjunto tiene la propiedad de no tener ningn elemento, a lo que llamamos conjunto nulo o vaco. El conjunto de enteros mayores que 3. Como es de suponerse, ste se trata de un conjunto infinito y no hay ninguna dificultad para definir cualquiera de los miembros de ste conjunto. Desde que un conjunto es caracterizado por sus miembros, un conjunto puede ser especificado por declaracin cuando un objeto est en el conjunto. Un conjunto finito puede ser especificado explcitamente por una lista de sus elementos. Los elementos de la lista deben ser separados por comas y la lista encerrada en llaves ( { } ), como lo muestran los siguientes ejemplos: El conjunto que contiene los elementos A, B y C est denotado por { A, B, C }. El conjunto que contiene todos los enteros pares no negativos menores que 10 es especificado por { 0, 2, 4, 6, 8 }.

Los elementos de un conjunto infinito no pueden ser listados explcitamente; en consecuencia, necesitamos una forma para describirlos implcitamente. La especificacin implcita frecuentemente es hecha por el significado de predicados con una variable libre. El conjunto es definido de manera que los elementos del universo establecido por el conjunto hagan el predicado verdadero. De aqu, si P (x) es un predicado con una variable libre, el conjunto { x | P(x) } denota el conjunto S tal que c S si y slo si P (c) es verdadero. Los siguientes ejemplos son de especificaciones implcitas de conjuntos. Las dos primeras son de conjuntos infinitos; la tercera es un conjunto finito. El conjunto de enteros mayores que 10 es especificado por { x | x I x >10 } El conjunto de enteros pares puede ser especificado como { x | y [ y I x = 2y ] } El conjunto { 1, 2, 3, 4, 5 } puede ser especificado como { x | x I 1 x 5 } Significados menos formales son usados frecuentemente para describir conjuntos. Una tcnica es colocar las especificaciones del conjunto a la izquierda de una barra vertical, como lo muestran los siguientes ejemplos: El conjunto de enteros mltiplos de 3 puede ser especificado por { 3x | x I } en lugar de { x | y [ y I x = 3y ] }. El conjunto de nmeros racionales puede ser especificado por { x / y | x, y I y 0 }. Si un conjunto es finito pero muy largo como para listarse fcilmente o si es un conjunto infinito, las elipses suelen ser usadas para especificar implcitamente un conjunto. Las siguientes especificaciones usan elipses para caracterizar una lista de los elementos de un conjunto. El conjunto de enteros del 1 al 50 es especificado por { 1, 2, 3, , 50 } El conjunto de enteros pares no negativos es especificado por { 0, 2, 4, 6, } Todas stas tcnicas informales de especificaciones de conjuntos son convenientes por lo cual podemos usarlas libremente. En un desarrollo ms formal de la teora de conjuntos, el siguiente axioma es usado para establecer que los conjuntos son completamente especificados por sus elementos. El axioma nos sirve como una definicin de igualdad de conjuntos. Axioma de Extensin: Dos conjuntos A y B son iguales si y slo si tienen los mismos elementos. El axioma de extensin puede ser expresado en notacin lgica de dos maneras: A = B x [ x A x B ] A = B { x [ x A x B ] x [ x B x A ]} El axioma de extensin declara que si dos conjuntos tienen los mismos elementos, an sin considerar como estn especificados, son iguales. Es decir, si un conjunto es especificado explcitamente con una lista, el orden en el que est listado es irrelevante. Por ejemplo: el conjunto denotado por { A, B, C } es el mismo que (igual a) el conjunto denotado por { C, B, A } y { B, C, A }. Adems, no importa el nmero de veces que aparezca un elemento en el conjunto, { A, B, A }, { A, B} y { A, A, A, B, B } Son diferentes especificaciones de un mismo conjunto. Un conjunto finito puede ser caracterizado implcita o explcitamente, como lo demuestran los conjuntos { 1, 2, 3, 4, 5 } y { x | x I 1 x 5 } que son el mismo conjunto. Tambin, el mismo conjunto puede ser especificado implcitamente con diferentes predicados, por ejemplo: el conjunto { x | x =0 } y { x | x I -1 < x < 1 } son iguales.

Operaciones con conjuntosExisten operaciones que nos permiten crear nuevos conjuntos a partir de otros conocidos. Definimos la unin A B y la interseccin A B de dos conjuntos A y B como sigue: A B = { x : x A o x B o ambas } AB={x:xAyxB} Aadimos o ambas para dar nfasis y claridad a la definicin de A B. En espaol la palabra o tiene dos significados. A veces es el o inclusivo que significa lo uno, lo otro o ambos. Esta es la interpretacin cuando un programa de estudios dice: se deben incluir dos aos de ciencias o dos aos de matemticas. Otras veces o es el o exclusivo y significa lo uno o lo otro pero no ambas. Es el o que se utiliza en un men que ofrece sopa o ensalada. En matemticas siempre utilizamos o como el o inclusivo mientras que no se especifique lo contrario. Dos conjuntos A y B son disjuntos si no tienen elementos comunes, es decir, si A B = . Para dos conjuntos A y B, el complemento relativo A \ B es el conjunto de elementos que estn en A y no estn en B. A\B={x:xAyxB}={xA:xB} Es el conjunto que se obtiene al quitar de A los elementos que estn en B Existen operaciones que nos permiten crear nuevos conjuntos a partir de otros conocidos. Definimos la unin A B y la interseccin A B de dos conjuntos A y B como sigue: A B = { x : x A o x B o ambas } AB={x:xAyxB} Aadimos o ambas para dar nfasis y claridad a la definicin de A B. En espaol la palabra o tiene dos significados. A veces es el o inclusivo que significa lo uno, lo otro o ambos. Esta es la interpretacin cuando un programa de estudios dice: se deben incluir dos aos de ciencias o dos aos de matemticas. Otras veces o es el o exclusivo y significa lo uno o lo otro pero no ambas. Es el o que se utiliza en un men que ofrece sopa o ensalada. En matemticas siempre utilizamos o como el o inclusivo mientras que no se especifique lo contrario. Dos conjuntos A y B son disjuntos si no tienen elementos comunes, es decir, si A B = . Para dos conjuntos A y B, el complemento relativo A \ B es el conjunto de elementos que estn en A y no estn en B. A\B={x:xAyxB}={xA:xB} Es el conjunto que se obtiene al quitar de A los elementos que estn en B. La diferencia simtrica A B de los conjuntos A y B es el conjunto A B = (A B) \ (A B) = (A \ B) (B \ A) A veces es conveniente ilustrar las relaciones entre conjuntos con dibujos llamados diagramas de Venn, en donde los conjuntos corresponden a subconjuntos del plano. Ejemplo: Sea A = {n N : n 7}, B = {n N : n es par y n 16} y E = {n N : n es par}. Entonces tenemos

A A B

B

A A B

B

A

B

A A B

B

A \B

A A A B A

B = {0,1,2,3,4,5,6,7,8,10,12,14,16}, B = {0,2,4,6}, \ B = {1,3,5,7}, \ A = {8,10,12,14,16}, B = {1,3,5,7,8,10,12,14,16}.

En general es conveniente trabajar en un conjunto finito como N, R o*. Esto es, conviene fijar un conjunto U que llamamos conjunto universal o universo, y considerar solamente elementos de U y subconjuntos de U. Para A U el complemento relativo U \ A recibe el nombre de complemento absoluto o sencillamente complemento y se denota por Ac. Ntese que el complemento relativo A \ B puede escribirse en trminos del complemento absoluto: A \ B = A Bc Ejemplo:

U

U B Ac

U B Bc

U B AC BCA

A

A

A

B (A B)c

la regin

Ntese que los dos ltimos diagramas de Venn muestran que AC BC = (A B)c. Esta identidad de conjuntos y muchas ms son verdaderas en general. A continuacin se muestran algunas identidades para conjuntos y operaciones entre conjuntos, muchas de ellas son anlogas a las leyes de lgebra. Las leyes de idempotencia son nuevas, se supone que todos los conjuntos de la siguiente tabla son subconjuntos de algn conjunto universal U. Leyes de lgebra de conjuntos AB=BA AB=BA (A B) C = A (B C) (A B) C = A (B C) A (B C) = (A B) (A C) A (B C) = (A B) (A C) AA=A AA=A A=A AU=U A= AU=A (Ac )c = A A Ac = U A Ac = Uc = c = U Leyes conmutativas Leyes asociativas Leyes distributivas Leyes de la idempotencia

Leyes de Identidad

Complementacin

(A B)c = Ac Bc (A B)c = Ac Bc

Leyes de DeMorgan

Gracias a las leyes asociativas podemos escribir los conjuntos A B C y A B C sin parntesis y no causar confusin. Las pruebas que utilizan diagramas de Venn parecen mucho ms fciles que las pruebas en las que analizamos las inclusiones mediante elementos. Los diagramas de Venn para A, B, C tiene 8 regiones y comprenden todas las posibilidades lgicas por lo que las demostraciones que utilizan diagramas de Venn son de hecho vlidas.

A 2 6 1 3 5 8 4 7

B

CUna objecin mucho ms seria para las demostraciones con diagramas de Venn es que ocultan los procesos de pensamiento que se requieren para llevarlas a cabo; es decir, no se especifica la lgica que debe utilizarse para sombrear los diagramas. Otra razn para no utilizar diagramas de Venn es que son muy difciles de dibujar cuando hay ms de tres conjuntos.

Definicin inductiva de conjuntos1. 2.Una definicin inductiva de conjuntos consiste en tres componentes distintivos: La base, o clusula base, de la definicin establece los objetos determinados que estn en el conjunto. sta parte de la definicin tiene una doble funcin La induccin, o clusula inductiva, de una definicin inductiva establece el camino por el cul los elementos de un conjunto pueden ser combinados para obtener nuevos elementos. La clusula inductiva siempre asegurar que si los objetos x, y, , z son elementos de un conjunto, entonces pueden ser combinados de varias formas de tal manera que podemos obtener un nuevo elemento que tambin formar parte de conjunto. As, mientras la clusula base describe la construccin de bloques de un conjunto, la clusula inductiva describe las operaciones que se puede llevar a cabo sobre los objetos para la construccin de nuevos elementos del conjunto. La clusula extrema enfatiza que a menos que un objeto pueda ser obtenido por medio de una aplicacin finita de las clausulas base e inductiva, puede ser miembro del conjunto. La clusula extrema de la definicin inductiva de un conjunto S tiene una variedad de formas, como lo son: (i) Ningn objeto es miembro del conjunto S a menos que se obtenga de un nmero finito de aplicaciones de las clusulas base e inductiva. (ii) El conjunto S es el conjunto ms pequeo que satisface las clusulas base e inductiva. (iii) El conjunto S es el conjunto tal que S satisface las clusulas base e inductiva y no un propio subconjunto de S que las satisface.

3.

De hecho, todas stas formas de la clusula extrema son equivalentes. A menudo la clusula extrema no est explcitamente definida en una definicin inductiva. Si nuestro Universo es el conjunto de enteros I, entonces una predicado definicin del conjunto E de enteros pares no negativos puede ser dado como sigue: E = { x | x 0 y [ x = 2y ] } El mismo conjunto puede ser definido inductivamente como sigue: 1. (Base) 0E 2. (Induccin) Si n E, entonces (n+2) E (Extrema) Ningn entero es elemento de E a menos que pueda ser mostrado como un nmero finito de aplicaciones de las clausulas 1 y 2.

Operaciones de conjuntos de *Las cadenas de smbolos juegan un papel importante en las ciencias computacionales. Programas computacionales, documentos escritos en texto, frmulas matemticas y teoremas en un sistema formal son objetos que representamos convencionalmente como secuencias finitas de smbolos. As, para poder escribir programas que manipulen otros programas, programas editores de texto, programas para manipular frmulas algebraicas o programas que prueben teoremas debemos de tener las herramientas necesarias para la manipulacin de cadenas individuales y conjuntos de cadenas. El smbolo denotar un alfabeto finito y ser el conjunto de todas las cadenas de longitud finita formados por los smbolos provenientes de . La principal operacin sobre los elementos de es la concatenacin. Sea un alfabeto y x y y elementos de . Si x =a1 a2 am y y = b1 b2... bn donde ai, bj y m, n N entonces la concatenacin de x con y, denotada xy, o simplemente xy, es la cadena xy = a1 a2 am b1 b2... bn. Si x = , entonces xy = y para toda x; similarmente si y = , entonces xy= x Lo siguiente es una notacin conveniente para representar la concatenacin de una cadena con s misma n veces. Esta definicin inductiva es basada en la definicin de N y adems no requiere clusula extrema. Sea x un elemento de . Para cada n N, la cadena xn es definido como sigue: 1. x0 = 2. xn+1 = x0 x Como por ejemplo, si = {a, b} y x = ab, entonces x0 = , x1 = ab, x2 = abab, x3 = ababab. Con frecuencia trataremos colecciones de cadenas en vez de cadenas individuales. Por ejemplo, en una especificacin de lenguaje de programacin, deberemos de caracterizar conjuntos enteros de programas los cuales pueden ser escritos en el lenguaje. Dada la importancia de estos elementos, una considerable estructura de terminologas y notaciones han sido desarrolladas para concordar con esto. Sea un alfabeto finito. Un lenguaje sobre es un subconjunto de . Por ejemplo, el conjunto {a, ab, abb} es un lenguaje sobre = {a, b}. Desde que cada lenguaje es un conjunto la coleccin usual de operaciones de conjuntos vistas en este documento pueden ser aplicadas a los lenguajes. De cualquier modo, dado que son colecciones de cadena, hay otras operaciones de lenguaje importantes que pueden ser definidas tambin, muchas de las cuales son basadas en las operaciones de concatenacin. Estas operaciones son importantes en una variedad de reas de aplicacin as como tambin para el estudio de modelos de computacin. Sea A y B lenguajes sobre . El conjunto producto de A con B, denotado como A B, o simplemente AB, es el lenguaje AB = { xy 1 x A y B }.

El lenguaje AB consiste en todas las cadenas formadas por la concatenacin de un elemento de A con un elemento de B. Se debe hacer notar que en general AB BA ya que la operacin de producto de conjunto no es conmutativa. Sea A, B, C y D lenguajes arbitrarios sobre , de lo cual se obtienen las siguientes relaciones: a) A = A = b) A{ } = { } A = A c) ( AB) C = A( BC ) d) Si A B y C D, entonces AC BD e) A(B C) = AB AC f) ( B C ) A = BA CA g) A ( B C) AB AC h) ( B C) A BA CA Sea A un lenguaje sobre . El lenguaje An es definido inductivamente como sigue: A0 = { } An+1 = An A El lenguaje An es un conjunto de productos de A con si mismo n veces. Adems si z An con n 1, entonces z = w1w2... wn, donde wi A para cada i desde 1 hasta n.

1.2.2 Funciones y Relaciones Checar documento relacionesyfunciones.pdf 1.2.3 Cadenas y Lenguajes Cadenas y lenguajes El producto cartesiano de dos conjuntos A y B consta de las parejas ordenadas cuyo primer elemento est en A y cuyo segundo elemento est en B. Usaremos la notacin de yuxtaposicin para denotar al producto cartesiano:

Cualquier conjunto finito

es un alfabeto. Entre los alfabetos ms comunes estn:

Sea sobre

y, para , sea de longitud n. La palabra

. Cada elemento se dice ser una palabra que no tiene smbolo alguno es la palabra vaca. Definimos y, por ende, consta de todas las palabras . El conjunto de palabras no-vacas, se denota

. El diccionario sobre es de longitud finita con smbolos en el alfabeto

como longitud a lo sumo n. Ejemplos: 1.

. Para cada

,

es el conjunto de palabras de

para cualquier alfabeto 2. . 3.

.

. 4. . 5. . 6. Cualquier programa en C es una palabra en Un lenguaje es un subconjunto de cualquier diccionario. respectivamente. 1.3 Induccin matemtica. Este procedimiento de demostracin de frmulas cuantificadas universalmente, es decir, del tipo , verifica primero que se cumple para los casos llamados bsicos, y despus, suponiendo que se cumple para los casos anteriores, se verifica para un elemento tpico x arbitrario. Este ltimo paso es llamado ``inductivo''. Se concluye entonces que la frmula vale para cualquier x. En la prxima seccin veremos dos esquemas de induccin cuando el dominio de la variable x son los nmeros naturales. En la seccin subsiguiente veremos un esquema de induccin sobre conjuntos numerables definidos de manera recurrente. http://delta.cs.cinvestav.mx/~gmorales/complex/node4.html y . son los lenguajes vaco y total,

Induccin numricaSea una frmula con una variable libre x, definida en el lenguaje de la aritmtica. Para , un primer esquema de induccin verifica primero que se demuestra que se cumple ; un

demostrar la sentencia cumple

y luego, suponiendo que se cumple

segundo esquema de induccin verifica primero que se cumple cumple , para cualquier m0 la condicin subsume a la frmula

, pues, para cada , la cual, de acuerdo . Por el Esquema II, resulta

con la segunda frmula en (*) de este apartado implica como una consecuencia

. Tenemos pues que se cumple tambin el Esquema I.

http://delta.cs.cinvestav.mx/~gmorales/complex/node5.html

Induccin recurrenteEste esquema se utiliza para demostrar predicados cuantificados universalmente definidos sobre conjuntos determinados constructivamente de manera recurrente. Sea T un conjunto numerable. Sea un conjunto inicial. Supongamos siguientes: definido recurrentemente con las reglas

para , donde cada funcin es, en la prctica, una regla de composicin. Para todo predicado se tiene el esquema de demostracin siguiente:

Como un ejemplo de construccin mediante este tipo de reglas, consideremos al siguiente: Ejemplo. Sea T el conjunto formado por las palabras (de longitud finita) sobre el alfabeto (0+1), i.e. T=(0+1)*. Definimos el conjunto de palabras 0-preponderadas de manera recurrente como sigue:

El conjunto

de palabras 0-preponderadas se ajusta a la construccin anterior, donde

consta nicamente de la palabra vaca y hay dos reglas de composicin , dadas por sendas reglas. Ms adelante veremos que una palabra es 0-preponderada si cualquier prefijo de ella posee ms ceros que unos. Proposicin 2.1 El esquema III se prueba mediante el esquema II por induccin en el nmero de reglas para generar un elemento en A. En efecto, con la notacin utilizada en la formulacin del Esquema III, sea

Como A se define nicamente por las reglas enlistadas, la frmula equivalente a la frmula hiptesis

es lgicamente

. Mostremos pues que esta ltima es vlida a partir de las

La primera de estas ecuaciones equivale a

. La segunda es claramente equivalente a , y con esto

. Por el Esquema II tenemos que se cumple queda demostrado el Esquema III.

Ejemplo. Retomando nuestro ejemplo anterior, sea A el conjunto de palabras 0-preponderadas. Sea la proposicin

Procedamos de acuerdo con el Esquema III para ver que trivialmente, que para la palabra vaca se cumple inductiva: , es decir, vale

. Inicialmente tenemos, . Ahora, de manera

http://delta.cs.cinvestav.mx/~gmorales/complex/node6.html

Unidad 2 Lenguajes regulares.2.1 Autmatas finitos 2.1.1 Autmatas finitos determinsticos.

AUTMATAS FINITOS DETERMINSTICOS (AFD) Es un modelo matemtico de un sistema con un conjunto discreto de entradas y salidas. El sistema puede estar en cualquier configuracin interna o estado, los cuales aparecen en un nmero finito. Ejemplos (sistemas de estados finitos) 1.- el mecanismo de control de un elevador 2.- Editores de texto y analizadores de lxico en los compiladores. 3.- Una computadora pudiera ser vista como un sistema de estado finito. 4.- El cerebro humano se puede considerar un sistema de estado finito. el nmero de neuronas o clulas cerebrales es limitado a lo sumo 2 35. Si el estado de cada neurona pudiera describirse mediante un nmero pequeo de bits, entonces s, pero en general esto no es as y en realidad lo que se tiene es que tal nmero de estados es excesivamente grande y es poco probable este modelo.CONCEPTO:

Un AFD es una 5 tupla o quinteta ( |, L, F, A, s*) donde: 1. Un conjunto finito | de simbolos de entrada. 2. Un conjunto finito L de estados 3. Una funcin estado siguiente o transicin f de | x L en L 4. Un subconjunto A de L de estados aceptados

5. Un estado inicial s* L Definicin: Dispositivo que tiene un nmero finito de estados, uno de los cuales es el estado inicial y, por lo menos uno, es un estado de aceptacin.

Definicin formal Un AFD es una quntupla (I, L, f, A, s*) Donde: I conjunto finito de smbolos de entrada L conjunto finito de estados de transicin f funcin de transicin de I x L en L A conjunto de estados de aceptacin L s* estado inicial L Ejemplo

Autmatas Finitos Deterministas Se llama Autmata Finito Determinista (AFD) a la quntupla: ( , Q, f, q0, F) es un alfabeto, llamado "alfabeto de entrada". Q es un conjunto finito, no vaco llamado "conjunto de estados". f es una funcin f: Qx Q que se llama "funcin de transicin". q0 Q es el "estado inicial". F Q es el conjunto de "estados finales", o "estados de aceptacin", no vaco.

Un AFD puede considerarse como una mquina secuencial de Moore, cuyo alfabeto de entrada sea , su alfabeto de salida S={ 0,1} , y donde F ser el conjunto de los estados tales que g(q)=1. Tabla de Transicin Ser una tabla cuyas filas estn encabezadas por los estados (elemen-tos de Q). Los encabezamientos de las columnas son los smbolos del alfabeto de entrada (los elementos de ). Cumplindose que el elemento i, j de la tabla de transicin corresponde al valor de

f(qi, ej), donde qi es el elemento i-simo de Q, y ej es el elemento j-simo de . Tanto el estado inicial como el final estarn marcados por y por * respectivamente. Nota: el estado final puede ser indicado tambin rodeando el estado por un crculo. ( ): a1...an q0 ..... qi ...... *qf Ejemplo: AF=({ 0,1} ,{ q0,q1,q2} , f, q0, { q1} ) f q0 *q1 q2 0 q1 q0 q1 1 q0 q2 -

Diagrama de Transicin Es un grafo dirigido que se forma de la siguiente manera: 1. El grafo tendr tantos nodos como | Q| , cada nodo estar etiquetado por un elemento de Q. Si f(qi, ej) = qk, dibujaremos una rama dirigida desde el nodo de etiqueta qi hasta el nodo de etiqueta qk. La etqueta de la rma ser ej. 2. El estado inicial estar sealado mediante el smbolo . 3. Los estados finales estarn sealados mediante el simbolo *, o doble crculo alrededor de la etiqueta del estado final. Representamos los estados como:

1.

Ejemplo: (partiendo del autmata anterior)

Lenguaje asociado a un autmata finito determinista L(AFD)

Sea un AFD ( , Q, f, q0, F). Decimos qie una palabra x * es "aceptada" o "reconocida" por el autmata si f(q0,x) F. Se llama lenguaje asociado al autmata finito, o conducta del autmata finito al conjunto de todas las palabras aceptadas por ste. Es decir: L = { x | x * & f(q0,x) F} Ejemplo:

0 L(AF), ya que f(q0, 0) = q1 F 10 L(AF) 1*0 L(AF) 1*010 L(AF) Luego L(AF) = 1*0(10)* Ejemplo 2 :

Calculo posibles caminos desde q0 a q0 (por ser el estado inicial): (1*+(10)*0)* Caminos desde el estado inicial hasta el estado final (el mas corto): 0 Caminos desde el estado final al estado final sin pasar por el inicial: (10)* Luego L(AF)= (1*+(10)*0)* 0 (10)* Estado Accesible Un estado de un AF es accesible si existe una palabra x que permite que el autmata se pare en ese estado partiendo del estado inicial. Es decir, un estado q es accesible desde otro estado p del autmata si existe una cadena x que permite que el autmata transitando desde p con x se pare en el estado q: q Q es accesible si $ x | x * | q = f(q0, x) Por definicin de funcin de transicin, todo estado es accesible desde s mismo, y es accesible mediante la palabra vaca. LEMA del estado accesible Dado un AF que tiene n estados, |Q|= n, un estado q Q es accesible desde otro estado p si y slo si $ x * | |x|=n | f(p,x=q siempre es posible escontrar otra cadena x * | |x|=n para la transicin se repetir al menos un estado. Ejemplo :

q2 es accesible desde q0, por ejemplo con la palabra: x=110001, |x|=6, como |Q|=3, decimos que siempre podremos encontrar una palabra x tal que |x|| Q|) y adem cumple que |x|0 que satisficiera 4.37 (con n0 en lugar de n). Sea . Entonces habran de existir tales que y, para

cualquier

,

. Un minuto de reflexin basta para ver que esto no es posible.

http://delta.cs.cinvestav.mx/~gmorales/ta/node89.html Ejemplo: Sea L el lenguaje consistente de las representaciones en binario, sin ceros a la izquierda, de los nmeros primos. L no puede ser regular. En efecto, supongamos que para todo

y, por un momento, supongamos que L es regular. El teorema de Euclides sobre la infinidad de los nmeros primos muestra que en L hay cadenas arbitrariamente largas. Elijamos n>0 que satisfaga 4.37, y consideremos un primo p>2n, es decir, un primo cuya representacin en binario tenga longitud superior a n. Entonces podemos encontrar , es un nmero primo. Sea tales que para todo

, i=1,2,3, el nmero representado en binario

por la partcula y sea ki la longitud de . Para j=p, el nmero ha de ser primo. Se tiene, al agrupar a la representacin en binario de q en un primer bloque a la derecha de k1 bits, p bloques contiguos de k2 bits hacia la izquierda y uno ltimo de k3 bits, que q = = = (49)

Ahora, por el Teorema Pequeo de Fermat, y 1)s=2pk2- 1. Por tanto, , pues 2pk2=2k22(p-1)k2. Sea

. Por tanto,

, . Entonces (2k2-

. As, mdulo p, se tiene las igualdades

Por consiguiente p debe dividir a (2k2- 1) o a (s-1). No puede dividir a (2k2- 1) pues

ya que . Por tanto p debe dividir a s-1. Se sigue que mdulo p en 4.38 se tiene

. Al tomar congruencias

es decir, el primo q debe ser divisible por el primo p. Esto es una contradiccin y por tanto L no puede ser regular.

Unidad 3 Lenguajes libres de contexto.3.1 Gramticas libres de contexto. http://acme.math.cinvestav.mx/~basico/cuatro.html 3.2 rboles de derivacin.

Grficas y rboles Recordamos que una grfica G=(V,A) consta de un conjunto de vrtices y de un conjunto

de aristas A donde cada arista es una pareja de vrtices. Para una arista que la arista incide en sus extremos vi,vj y que stos son adyacentes. Para cada vrtice grado o la valencia de v es el nmero de vrtices que le son adyacentes:

se dice , el

Un camino entre dos vrtices u,v es una sucesin de aristas tal que u es un extremo de a1, v lo es de ak y cualesquiera dos aristas contiguas tienen un extremo comn. Una grfica dirigida es una grfica tal que cada arista es un elemento del producto cartesiano , es decir, cada arista posee un inicio y un fin. En tal caso, las valencias externa e interna cuentan, respectivamente, las aristas que salen de y las que entran a ese vrtice, es decir, para cualquier :

Un rbol es una grfica dirigida

tal que de grado interior cero. Ese vrtice se dice ser la raiz de

Existe un nico vrtice

. Cualquier vrtice que no es raiza posee un grado interior igual a 1. es interior si su grado exterior es mayor que 0. Los vrtices que no son

Un vrtice

interiores son hojas. Si entonces v se dice ser un hijo de u y u el padre de v. Dos vrtices con un mismo padre se dicen ser hermanos.

Observacin 1.1 1. Cada vrtice tiene un camino nico que lo conecta con la raiz. El nmero de aristas en ese camino es la altura del vrtice. Los vrtices visitados por ese camino son los ancestros de v. 2. Para cada vrtice el conjunto dice ser el subrbol enraizado en u. 3. adquiere naturalmente una estructura de rbol. Se

En cada vrtice el subrbol es la unin de junto con los subrboles enraizados en los hijos de u. Todo rbol tiene una estructura de conjunto ordenado mediante el orden

Sin embargo, el rbol se dice ordenado slo si en cada vrtice interior el conjunto de sus hijos posee un orden lineal, es decir, a los hijos de todo vrtice u se los puede ordenar de

menor a mayor. Denotemos por al orden de los hijos de u. Para cada familia de rdenes en hijos de vrtices interiores se puede definir, por ejemplo, los rdenes siguientes en el rbol Ar: Preorden: Cada padre precede a sus hermanos mayores y a los vrtices del que es ancestro. Entreorden: En cada vrtice interior se divide al conjunto de sus hijos en dos conjuntos de manera que para cualquier pareja se cumpla . En el entreorden se tiene que cada padre precede a sus hermanos mayores y a sus ltimos hijos, pero sucede a sus hijos primeros. Postorden: Cada padre sucede a sus hermanos menores y a los vrtices del que es ancestro. y

Cualquiera de estos rdenes es un orden de izquierda a derecha: es un orden de izquierda a derecha si cualesquiera dos vrtices con subrboles ajenos son tales que todos los vrtices en el subrbol de uno anteceden a cualquier vrtice en el subrbol del otro, i. e. :

Todo orden de izquierda a derecha es total: cualesquiera dos vrtices en el rbol son comparables. En un tal orden, la hoja mnima se dice ser la hoja siniestra (leftmost) y la mxima es la hoja diestra (rightmost).

Arboles y gramticasSea G=(V,T,P,s0) una gramtica libre de contexto. Un rbol gramatical en G es un rbol ordenado

tal que estn etiquetados con etiquetas en el alfabeto de la gramtica

los vrtices de

o con la etiqueta vaca, ,y cada vrtice interior corresponde a una produccin en G, es decir, si A es la etiqueta del vrtice interior v0 y entonces es la palabra formada por las etiquetas de los hijos de v0 es una produccin en P.

Un rbol gramatical es de derivacin si su raiz est etiquetada con el smbolo inicial s0 y todas sus hojas tienen etiquetas terminales o vaca. La leyenda de un rbol de derivacin es la palabra obtenida al concatenar ordenadamente, con cualquier orden de izquierda a derecha, las etiquetas de sus hojas. As pues, todo rbol de derivacin tiene como leyenda una palabra en L(G). Recprocamente, para cada palabra en L(G) existe un rbol de derivacin cuya leyenda

coincide con . Si y , donde es una produccin en P y consiste nicamente de smbolos terminales, decimos que se sigue de por la aplicacin diestra de una produccin. Una derivacin es diestra si todas las aplicaciones de producciones hechas son diestras. Las derivaciones siniestras se definen simtricamente. Ejemplo. Consideremos las siguientes producciones:

Sendas derivaciones siniestra y diestra de la palabra a(ba2)2=abaabaa son las siguientes:

En el lenguaje L(G) generado por esta gramtica se encuentran incluidos los siguientes lenguajes:

. De hecho, . De hecho, , con

. y x como antes.

, donde

y

Para concluir esta seccin presentaremos las nociones de ambigedad en gramticas. Una gramtica libre de contexto G=(V,T,P,s0) se dice ser ambigua si alguna palabra de su lenguaje, posee dos derivaciones diestras. Ejemplos. 1. La gramtica G cuyas producciones son es ambigua pues la palabra (ab)2a posee dos derivaciones diestras:

2. Si para la gramtica G=(V,T,P,s0) incluimos una copia V' del conjunto de variables noiniciales ms copias de las producciones de P con smbolos en S' entonces la nueva gramtica es ambigua pues cada derivacin diestra puede derivarse considerando smbolos en V o en su contraparte V'. 3.3 Formas normales de Chomsky.

Forma normal de ChomskyUna gramtica libre de contexto G=(V,T,P,S) se dice estar en forma normal de Chomsky si sus producciones son de cualquiera de las dos formas

con

, o bien

con

y

.

Proposicin 3.1 Toda gramtica libre de contexto G=(V,T,P,S) que no genere a la palabra vaca se puede transformar en una gramtica libre de contexto G'=(V',T,P',S') en forma normal de Chomsky.

En efecto, dada una gramtica G, apliquemos el ltimo procedimiento de la seccin anterior para transformar a G en una gramtica G'' sin variables intiles ni producciones vacas ni producciones

unitarias equivalente a G. A las producciones que quedasen de la forma y y las dejamos sin cambio alguno. A cada produccin de la forma

con , con

, la transformamos en una sucesin de producciones de la forma siguiente: A cada que aparezca en la palabra le asociamos una variable

smbolo terminal

nueva Xa e incorporamos la produccin forma

. As pues las producciones que no sean de la , con

con X variable y a terminal, han de ser de la forma

todos variables. Para cada una de estas ltimas producciones introducimos k-

2 nuevas variables

e incorporamos la sucesin de producciones

Obtenemos as la forma normal equivalente a la gramtica dada. NOAM CHOMSKY BIOGRAFA (1928 - ) Lingista, profesor del Instituto de Tecnologa de Massachussets (MIT), crtico y activista poltico estadounidense, es el fundador de la gramtica generativa transformacional, un sistema de anlisis del lenguaje que ha revolucionado la lingstica moderna. Avram Noam Chomsky naci en Filadelfia, Pensilvania. Desde nio comenz a desarrollar su aficin por la poltica: el primer artculo que public a los 11 aos en el peridico del colegio trataba de la Guerra Civil Espaola. Desde muy joven estuvo vinculado a movimientos polticos de izquierdas cercanos al marxismo, a pesar de que l proceda de una familia juda de la clase media - alta.

Estudi en la Universidad de Pensilvania, donde se doctor en Lingstica en 1955. Ese mismo ao se incorpor como profesor de francs y alemn al Instituto de Tecnologa de Massachussets (MIT) y en 1976 pas a ser catedrtico de Lingstica de la mencionada institucin. Chomsky ha publicado ms de 70 libros y ms de 1000 artculos sobre diversos temas como lingstica, filosofa y poltica. Muchos no dudan en calificarle como uno de los personajes ms destacados del siglo XX. Su auge comenz en los aos 60, jugando un importante papel en las protestas contra la guerra de Vietnam. Rest dedicacin a su trabajo sobre lingstica para escribir acerca de la comunidad acadmica y de los medios de comunicacin en la obtencin del apoyo de la opinin pblica a la poltica de Estados Unidos. Asimismo ha denunciado y criticado los crmenes cometidos en Centroamrica por regmenes dictatoriales apoyados por EEUU, la actitud norteamericana en Oriente Medio apoyando la lnea dura de los israeles, la intervencin militar en la Guerra del Golfo y en general la poltica exterior del mundo occidental, y se manifest a favor de que los intelectuales recurran a mtodos cientficos para cuestionar las polticas gubernamentales que encuentren inmorales, y desarrollar estrategias prcticas que las combatan. Su actitud poltica ha hecho de l una figura de inspiracin para algunos movimientos de izquierdas, y un enemigo para muchos otros. Especialmente negativa es su relacin con la prensa estadounidense, a la que siempre ha acusado de enmascarar las acciones del gobierno de forma subjetiva y de justificar masacres en otros lugares del mundo en nombre de la justicia y de los valores democrticos. Actualmente se define a s mismo como socialista liberal. Pero tambin su aportacin a la ciencia de la Computacin ha sido muy significativa. Chomsky fue el creador de un nuevo modelo lingstico, la gramtica generativa transformacional, que expuso por primera ves en su libro Estructuras Sintcticas. Estableci una diferencia entre el conocimiento innato y con frecuencia inconsciente que los individuos tienen de la estructura de su lengua y el modo en que utilizan sta diariamente. El primero, al que llam competencia, permite al hablante distinguir las oraciones gramaticales de las que no lo son, as como generar y comprender un nmero ilimitado de oraciones nuevas. El segundo, que llam actuacin, es la manifestacin de la competencia, las oraciones realmente emitidas por el hablante en los actos de habla concretos. Antes de Chomsky, la mayora de las teoras sobre la estructura del lenguaje describan la actuacin, analizaban los enunciados concretos, la estructura formal; por tanto, eran gramticas transformacionales. Para Chomsky, la lingstica tambin debe ocuparse de las estructuras profundas, del proceso mental que subyace bajo el uso del lenguaje, es decir, de la naturaleza del lenguaje en s mismo, o gramtica generativa. Entre las publicaciones ms importantes de Chomsky, aparte de la ya mencionada Estructuras sintcticas (1974), se encuentran: La responsabilidad de los intelectuales y otros ensayos histricos y polticos (1969), Lingstica cartesiana: Un captulo de la historia del pensamiento racionalista (1969), Aspectos de la teora de la

sintaxis (1970), El lenguaje y el entendimiento (1971), Guerra o paz en el Oriente Medio (1975), El miedo a la democracia (1992) y El muevo orden mundial (y el viejo) (1996). Jerarqua de Gramticas Las gramticas se clasifican de acuerdo con su complejidad, Esta clasificacin, conocida como jerarqua de Chomsky, se establece aumentando las restricciones sobre la forma de las producciones.

Las gramticas de tipo 0 son gramticas sin restricciones, es decir, no hay restricciones para el lado izquierdo ni para el lado derecho de las producciones. Estas gramticas generales, no tienen relevancia en los lenguajes de programacin de la actualidad. Escribir un analizador sintctico para una gramtica de tipo 0 sera una tarea muy ardua. La forma de las producciones de las gramticas de tipo 1 implica que las sustituciones slo pueden efectuarse en cierto contexto, esto es, son gramticas dependientes del contexto. En cambio, las gramticas lineales izquierda y derecha de tipo 3 son gramticas regulares. Desde el punto de vista de algunos autores, las gramticas de tipo 2 y 3 son las ms importantes. Mientras las gramticas independientes del contexto definen la sintaxis de las declaraciones, las proposiciones, las expresiones, etc. (es decir, la estructura de un programa), las gramticas regulares definen la sintaxis de los identificadores, nmero, cadenas y otros smbolos bsicos del lenguaje. Por ello, es comn encontrar gramticas independientes del contexto en el anlisis sintctico, a la vez que las gramticas regulares se emplean como la base del anlisis lxico. 3.4 Formas normales de Greibach.

Forma normal de GreibachUna gramtica libre de contexto G=(V,T,P,S) se dice estar en forma normal de Greibach si sus producciones son de la forma

Veremos que la construccin de formas normales de Greibach equivalentes a gramticas dadas es procedimental. Para cualquier gramtica libre de contexto G, definamos, para cada variable

, a los conjuntos siguientes:

Primeramente observemos que podemos ``componer producciones'' de manera que tengamos siempre una gramtica equivalente a la gramtica dada. Lema 3.1 (Composicin de producciones) Si es una produccin en G y las

producciones en P(Y) pueden escribirse como

entonces al sustituir

por las producciones , obtenemos una gramtica equivalente a G. En efecto, en toda derivacin terminal que aplique en un momento la produccin , necesariamente se ha de aplicar una produccin en P(Y) para suprimir el smbolo Y.

Lema 3.2 (Transformacin de producciones ``reflexivas'') Para cada variable enumeremos Q(X) y R(X) como

Sea Z una variable que no ocurra en V. Sea la gramtica que se obtiene al sustituir el conjunto de producciones P(X) por las producciones

En efecto, toda derivacin siniestra, en la gramtica original, de una palabra en L(G) ha de determinar una derivacin diestra de la misma palabra en la gramtica transformada. La demostracin de la afirmacin anterior es directa. Como mera ilustracin, consideremos tan solo un ejemplo: La gramtica con producciones genera al lenguaje consistente de

las palabras de la forma b(ab)*. De acuerdo con la construccin anterior, como

y

, obtenemos la gramtica

Presentemos sendas derivaciones, siniestra en la gramtica original y diestra en la transformada, para la palabra bababab:

Veamos ahora el resultado principal de esta seccin: Proposicin 3.2 Toda gramtica libre de contexto G=(V,T,P,S) que no genere a la palabra vaca se puede transformar en una gramtica libre de contexto G*=(V*,T,P*,S*) en forma normal de Greibach. Sea pues G=(V,T,P,S) una gramtica libre de contexto que no genere a . La transformacin a una forma normal de Greibach la hacemos gradualmente mediante los pasos siguientes: 1. Sea G'=(V',T,P',S') la forma normal de Chomsky de G. 2. Modificaremos a las producciones en P' para tenerlas tales que toda produccin, cuyo consecuente se inicie con una variable, ha de ser de la forma con j>i, para

un cierto orden en el conjunto de variables actuales, digamos . Para esto apliquemos el procedimiento cuyo seudocdigo se presenta en la figura 6.3. Figure 6.3: Modificacinde producciones de acuerdo con el orden de V'.

Por lo visto en el lema 6.3.2, la gramtica G'' as obtenida es equivalente a G. 3. Ahora, hecha la transformacin anterior, se tiene que la ltima variable Xm slo puede ser antecedente de producciones cuyos consecuentes se inician con smbolos terminales, las producciones en P(Xm-1) cuyos consecuentes se inician con Xm pueden transformarse, siguiendo el lema 6.3.1 de ``Composicin de producciones'', en producciones equivalentes cuyos consecuentes se inician con smbolos terminales,

de manera sucesiva para i=m-2 hasta i=1 las producciones en P(Xi) cuyos consecuentes se inician con algn Xj, con j>i, pueden transformarse, siguiendo el lema 6.3.1 de ``Composicin de producciones'', en producciones equivalentes cuyos consecuentes se inician con smbolos terminales.

Con todas estas transformaciones la gramtica resultante G*=(V*,T,P*,S*) es, en efecto, equivalente a G y est en forma normal de Greibach. Ejemplo: Consideremos la gramtica con smbolos variables y producciones

la cual ya est en forma normal de Chomsky. Transformmosla de acuerdo con el procedimiento anterior. Observemos que las dos primeras producciones ya tienen el tipo de las buscadas en el paso 2. del procedimiento anterior. La tercera tiene un consecuente que se inicia con un smbolo variable anterior al de su propio antecedente. Compongamos pues la produccin 3. con la 1. Obtenemos

la cual tambin tiene un consecuente que se inicia con un smbolo variable anterior al de su propio antecedente. Compongamos pues la produccin 4. con la 2. Obtenemos la cual es del tipo ``reflexivo''. Para transformarla, introduzcamos una nueva variable Y3. Obtenemos Con esto terminamos el paso 2. del procedimiento anterior. El conjunto actual de producciones consta de las producciones 1., 2., 6. y 7. Pasemos pues al paso 3. del procedimiento. Sustituyendo 6. en 2. obtenemos Sustituyendo 8. en 1. obtenemos Sustituyendo 9. en 7. obtenemos 10 nuevas producciones

En resumen, la gramtica equivalente, en forma normal de Greibach, tiene como conjunto de variables a y sus producciones son la 6., 8., 9. y 10.:

Ejemplo ``Cadenas equilibradas de parntesis'': Consideremos la gramtica que genera a las cadenas equilibradas de parntesis (CEP). La forma normal de Chomsky de la gramtica dada es Consideremos el siguiente orden de las variables: . La produccin 1. es ``reflexiva''. Introduzcamos una nueva variable, X1. Al hacer la transformacin pertinente, obtenemos:

La produccin 4. tiene un consecuente que se inicia con una variable anterior a su antecedente. Al componer 4. con 5. obtenemos La produccin 6. tiene un consecuente que se inicia con una variable anterior a su antecedente. Al componer 6. con 5. obtenemos Al componer 8. con 2. obtenemos

En este momento, en nuestro conjunto actual de producciones 2., 3., 5., 7. y 9., ningn consecuente se inicia con alguna variable que anteceda a la variable en el antecedente de la produccin correspondiente. En el paso 3. del procedimiento para obtener formas normales de Greibach, hemos de sustituir la variable por el smbolo (, segn la produccin 2., toda vez que aparezca al inicio del consecuente de alguna produccin. Obtenemos as la gramtica:

Y esta gramtica ya queda en forma normal de Greibach. Observemos que la variable

es

irrelevante. De hecho si hacemos la sustitucin del otro smbolo equivalente

obtenemos la gramtica

que tambin est en forma normal de Greibach. 3.5 3.6 3.7 3.8DEFINICION Un autmata de pila (APN) es una mquina de estados finito al que se le aade una memoria externa en forma de pila (stack), es decir que slo acepta operaciones meter (push) y sacar (pop). Definicin: Un autmata de pila es un autmata finito ms una pila. Se de definen por la a Dupla M = (Q; P ; ; ; q0; Z0; F) < /FONT > donde Q; P,S , q0 y F se definen igual que en un AFN. G es un alfabeto de los caracteres que pueden introducirse a la pila, y Z0 es el smbolo inicial en la misma, generalmente l (significa pila vaca), pero en ocasiones es til usar otro smbolo. La funcin de transicin es definida como:

Eliminacin de Factores Comunes izquierdos. Eliminacin de recursividad izquierda. Eliminacin de la ambigedad. Autmatas Push-Down.

: Q x (S {l } ) x (G {l } ) [Q x (G {l })]*

es decir que el cambio de estado ya no slo depende del estado y del smbolo en la entrada, sino adems del contenido de la pila, especficamente del smbolo en el tope de la pila. El contenido de la pila puede cambiar despus de cada transicin. Para clarificar a la funcin de transicin, analicemos la parte por parte: Q x (S {l } ) x (G {l } ): Esta nos dice que los elementos del dominio son tercias (estado, alfabeto, pila)

[Q x (G {l })]*:Indica que el codominio son varios pares del tipo (estado, pila) Ejemplo 63 d (qi, a, A) = {[ qJ, B ] } Para realizar esta transicin es necesario estar en el estado qi, estar analizando una a en la cadena de entrada y tener en el tope de la pila una A. Al realizarse la transicin pasamos del estado qi al qJ , se procesa el smbolo a, sacamos A de la pila y metemos B . Transicin (qi, a, A) = {( qj, B)} En el diagrama de transicin, A/B significa que se reemplaza una A en el tope de la pila por una B. El significado de l es de cuidado especial, ya que en ocasiones puede significar "pila vaca", pero ms generalmente significa "no importa lo que hay en la pila". Existen tres transiciones especiales que generan una accin en particular, estas son:

1. d (qi, l , A ) =[ qi, l ] En esta transicin la nica accin que ocurre es desapilar A. 2. d (qi, l , l ) =[ qi, A] La nica accin que ocurre es apilar A. 3. d (qi, a, l ,) =[ qi, l ] Equivale a una transicin de AF normal. (como si no tuviera pila)

Teoremas para los autmatas de pila (Push Down). Definicin: Un AP determinista se define como el AP (K,S ,G ,D ,s,F) tal que para cada tripleta (p,x,y) en KxS xG , existe una y solo una transicin en D de la forma (p,u,v;q,z), donde (u,v) { (x,y),(x, e ),(e ,y),(e ,e ) }, q K, z G Teorema. Si L1 es un LLC y L2 es un LR, entonces L1 L2 es un LLC. Teorema. Todo lenguaje aceptado por un AF es tambin aceptado por un AP. Teorema. Si L es un LLC entonces hay un AP M tal que L(M)=L< /FONT> De la construccin del AP descrito anteriormente, concluimos la siguiente proposicin: S *w ssi [p,w,e ] a * [q,e ,e ] Si L1 y L2 son LLC entonces existe un AP que acepta L1 L2 Autmatas de Pila y lenguajes libres de contexto. Los autmatas de pila son mquinas que nos permiten aceptar lenguajes libres de contexto. Los autmatas de pila son mquinas finitas que tienen una memoria que les da la capacidad de "recordar". De esta manera es posible reconocer lenguajes del tipo aibi | i >= 0, en el que se necesita saber cuantas as tiene la palabra para determinar si el nmero de bs es igual. Clasificacin de Autmatas Push Down 1. Autmatas a pila embebidos 2. Autmatas a pila embebidos ascendentes 3. Autmatas lgicos a pila restringidos

4. Autmatas lineales de ndices 5. Autmatas con dos pilas Autmatas a pila embebidos En los cuales la estructura principal de almacenamiento la constituye una pila de pilas. Junto a la definicin clsica se presenta una nueva formulacin en la cual se elimina el control de estado finito y se simplifica la forma de las transiciones al tiempo que se mantiene la potencia expresiva. Esta nueva formulacin permite disear una tcnica de tabulacin para la ejecucin eficiente de los diversos esquemas de compilacin para gramticas de adjuncin de rboles y gramticas lineales de ndices. Autmatas a pila embebidos ascendentes Constituyen los autmatas a pila embebidos ascendentes. En este captulo se realiza una definicin formal de los mismos, algo que no se haba logrado hasta el momento. La eliminacin del control de estado finito permite simplificar la forma de las transiciones, lo cual facilita la definicin de una tcnica de tabulacin para este modelo de autmata. Autmatas lgicos a pila restringidos Las gramticas lineales de ndices constituyen un tipo especfico de gramticas de clusulas definidas en el cual los predicados tienen un nico argumento en forma de pila de ndices. Aprovechamos esta caracterstica para definir una versin restringida de los autmatas lgicos a pila adecuada al tratamiento de este tipo de gramticas y de las gramticas de adjuncin de rboles. Dependiendo de la forma de las transiciones permitidas, podemos distinguir tres tipos diferentes de autmata, uno que permite el anlisis ascendente de los ndices o adjunciones, otro que permite el anlisis descendente y otro que permite estrategias mixtas. En los dos ltimos casos es preciso establecer restricciones en la combinacin de las transiciones para garantizar que dichos autmatas aceptan exactamente la clase de los lenguajes de adjuncin de rboles. Se presentan esquemas de compilacin y tcnicas de tabulacin para los tres tipos de autmata. Autmatas lineales de ndices Los autmatas lineales de ndices, que utilizan la misma estructura de almacenamiento que los autmatas lgicos a pila restringidos pero con un juego diferente de transiciones. Distinguimos tres tipos diferentes de autmata: los autmatas lineales de ndices orientados a la derecha para estrategias en las cuales las pilas de ndices se evalan de modo ascendente, los autmatas lineales de ndices orientados a la izquierda en los cuales las pilas de se evalan de modo descendente y los autmatas lineales de ndices fuertemente dirigidos que permiten definir estrategias mixtas de anlisis para el tratamiento de las pilas de ndices. Autmatas con dos pilas Se opta por un modelo de autmata con una nueva estructura de almacenamiento. Se preserva la pila de los autmatas a pila tradicionales, a la que acompaa una pila auxiliar cuyo contenido restringe el conjunto de transiciones aplicables es un momento dado. Los autmatas con dos pilas fuertemente dirigidos permiten definir esquemas de compilacin arbitrarios para gramticas de adjuncin de rboles y gramticas lineales de ndices. Por su parte, los autmatas con dos pilas ascendentes slo permiten describir esquemas de compilacin que incorporan estrategias ascendentes en lo referente al tratamiento

de las adjunciones y de las pilas de ndices. Se presentan las tcnicas de tabulacin que permiten una ejecucin eficiente de ambos modelos de autmata.

El funcionamiento tpico de un autmata pushdown. Por ejemplo, el siguiente autmata de pila reconoce L(G) = {wcwR|w E (0+1)*} , es decir los palndromes en (0 + 1)* cuyo punto intermedio est marcado con un carcter especial c: M = ({q1,q2}, {0,1}, {RBG}, d , q1, R, q ) Donde d vale:

1. Descripcin [q, w, a ] ^ [qj,v,b ] ^ * ^ + Se pueden usar descripciones instantneas para ver el funcionamiento del autmata: (q, aw, za ) ^ (p,w,b a ) si d (q,a,z) = (p,b ). La cadena de un lenguaje es aceptado por el autmata si ste para en el estado final: L(M) = {w|(q0,w,Z0) ^ (p,e ,g ) para algn p F, g G *}

3.9

Lenguajes no regulares.

Unidad 4 Mquina de Turing.4.1 Definicin formal de una mquina de Turing. Es un dispositivo de reconocimiento de lenguajes, es mas general que cualquier autmata finito y cualquier autmata de pila, debido a que ellas pueden reconocer tanto los lenguajes regulares como los lenguajes independientes de contexto, y adems, muchos otros tipos de lenguaje. LA MQUINA DE TURING

Esta mquina fue ideada por Alan Turing (1912-1954) en 1937, y en realidad, no es ms que un experimento mental. Pese a ello, los ordenadores modernos estn, en esencia, fundamentados en la idea de Turing. El ingenio consta de dos partes: una cinta mvil finita y una cabeza capaz de actuar sobre ella de tres maneras distintas: leyendo, borrando o grabando. Supongamos que queremos obtener el resultado a un problema matemtico empleando la mquina; para lograrlo, ha de ser capaz de realizar el correspondiente algoritmo, esto es, de llevar a cabo el conjunto de operaciones necesarias para hallar la respuesta. Con estas premisas, efectuamos la pregunta oportuna; la mquina, entonces, hace pasar la cinta a un lado y a otro, leyendo, borrando y grabando, hasta que da con la respuesta en virtud del algoritmo citado. Esto puede ocurrir con toda una larga serie de operaciones; operaciones que, decimos, son computables. Sin embargo, cabe la posibilidad de que, ante determinadas preguntas, la mquina no tenga capacidad para hallar una determinada respuesta: qu ocurre entonces? En esta pregunta hay una clave importante, pues el dispositivo imaginario de Turing no es capaz por s mismo de decidir que la pregunta no tiene respuesta y que, por lo tanto, es preferible dejar de buscar y pararse. Como es evidente, el cerebro humano no tiene este problema, pero... por qu no lo tiene? CONCEPTOS GENERALES DE LA MQUINA DE TURING: Mquina de Turing: cualquier problema que no pueda resolver la mquina de

Turing no tiene solucin. Lenguajes de Tipo 0: es capaz de reconocer los lenguajes de tipo 0. Es una de las

mquinas ms potentes capaces de reconocer cualquier lenguaje y gramtica. Tesis de Turing: si algn problema se puede resolver algortmicamente, entonces

existe una mquina de Turing capaz de resolverlo. Definicin: es una mquina de estados, con una cabeza de lectura y escritura que

se mueve a derecha o izquierda en una cinta. Dicha cinta se encuentra dividida en celdas. Operacin: - Estando en un estado, lee una celda de la cinta sobre la que se encuentra la cabeza de lectura/escritura.

- Pasa a un nuevo estado. - Escribe un nuevo smbolo en la cinta, reemplazando al anterior ledo, salvo que se lea el mismo. - Mueve la cabeza de lectura/escritura a la izquierda, a la derecha o se para. PROPIEDADES: ** Contiene un nmero finito de estados ** Mnimo dos estados, inicial y de parada ** Cuenta con cabezas de lectura y/o escritura que pueden ir atrs

hacia delante o hacia

Una maquina de Turing es una 7- tupla M = (Q, , ,s, ,F, ), donde : Q Es un conjunto finito de estados Es el alfabeto de entrada Es el alfabeto de la cinta s Es el estado inicial Es un smbolo en blanco y no esta en F Es es el conjunto de estados finales o de aceptacin Es el conjunto de transiciones EJEMPLO DE FUNCIONAMIENTO Q = {q1,q2} = {a,b} = {a,b, } F = {q2} s = q1 y dado por (q1,a) = (q1, a, R) (q1,b) = (q1, a, R) (q1, ) = (q2, b, L)

a b b a a b

a a

a b b

a

a a a b a

a b

a

Mquinas de TuringEstas son autmatas finitas con dos pilas que tienen un tope comn. O equivalentemente, son autmatas que poseen una memoria dada por una cinta la cual es un almacenamiento lineal, infinito a ambos lados, con acceso a cualquier localidad en ella. El tope comn es la casilla leda (``scanned cell''), una pila es la parte de la cinta a la derecha de la casilla leda y otra pila es su parte izquierda. Las transiciones de la mquina quedan determinadas por una funcin , donde . Esta vez, la relacin se interpreta como sigue: ``Si se est en el estado q y se lee el smbolo a entonces se escribe b, se pasa a p y se va a examinar la casilla al lado de la leda''. De hecho, la relacin

puede escribirse como , y por esto, decimos que una mquina de Turing queda especificada por su lista de quntuplas. O, abusando an ms del lenguaje, que una lista de quntuplas es el programa correspondiente a una mquina de Turing. Ejemplo: Cadenas equilibradas de parntesis Para tener una cadena equilibrada, cada ``)'' en ella ha de ``empatar'' con un correspondiente ``('' que lo anteceda. Para reconocer cadenas equilibradas procederemos como sigue:

Cada ``('' ya empatado se marcar como ya revisado por una A y cada ``)'' se marcar por una B. Inicialmente, se busca el primer ``)'', yendo de izquierda a derecha. Por cada ``)'', o se marca con B, o se busca hacia la izquierda el primer ``('' que lo empate, o si no se encontrare tal ``('' la cadena est desequilibrada. En otro caso, el ``('' se marca con A y se repite este ciclo.

Si quedaren ``('' no empatados, la cadena est desequilibrada. En otro caso se tiene equilibrio y se termina el proceso.

El procedimiento queda descrito por la lista de quntuplas mostrada en la tabla (5). Table 5: Mquina de Turing para reconocer cadenas equilibradas de parntesis. con cualquier cosa, salvo ``)'', avncese a la : derecha, , : con el primer ``)'', mrquese y retrocdase, : : si la lista se acaba, revsese que todo haya sido marcado, con cualquier cosa, salvo ``('', continese el retroceso, ,

: mrquese el ``('' que empata y reptase el ciclo, : : : : se termina la cadena y no existe el correspondiente ``(''. No hay equilibrio. retrocdase ignorando las marcas, si quedare un ``('', ste ya no podra empatarse. No hay equilibrio. se agot la cadena y todo se marc. S hay equilibrio. ,

Los cuatro estados de la mquina tienen una interpretacin evidente:

Como mero ejemplo, en la tabla (6) mostramos la computacin correspondiente a una cadena dada. En cada instante, la casilla leda es la adyacente a la derecha del estado actual, el cual se escribe en negritas. Table 6: Un ejemplo del funcionamiento de la mquina de Turing que reconoce cadenas equilibradas de parntesis.

4.2 Construccin modular de una mquina de Turing. Ver archivo: maq_turing.pdf 4.3 Lenguajes aceptados por la MT. Lenguaje aceptado por la Mquina de Turing Una cadena A* , es aceptada por una MT, si comienza en el estado e , con la cabeza lectora en el smbolo ms a la izquierda, luego de leer toda la cadena , llega a un estado ef F. El lenguaje aceptado por MT, es el conjunto de todas las cadenas que son aceptadas por MT: L(MT)= { / e0 | * 1 ef 2 y ef F y 1, 2 C* y A*} Los lenguajes aceptados por las Mquinas de Turing se denominan lenguajes recursivos enumerables o estructurados por frases.0

Mas informacin en el archivo: maq_turing2.pdf Lenguajes aceptados por la mquina de Turing Una mquina de Turing puede ser usada para calcular funciones y para aceptar lenguajes. En el primer caso el resultado de una computacin se define in trminos del estado en donde termina la computacin o la configuracin de la cinta. En el segundo caso, una computacin acepta o rechaza la cadena de entrada. A diferencia de un autmata finto o de Push Down, la mquina de Turing no necesita leer toda la cadena de entrada para aceptar la cadena. Una mquina de Turing aumentada con estados finales es un sextuple (Q, S, G, d, q0, F) donde F es un subconjunto de Q y contiene los estados finales. Un lenguaje aceptado por una mquina de Turing es llamado lenguaje recursivamente enumerable. La hablidad de una mquina de Turing para moverse en ambas direcciones y procesar blancos introduce la posibilidad de no parar (halt) ante ciertas entradas. Un lenguaje que es aceptado por una mquina de Turing y que termina (halt) ante todas las cadenas de entrada es llamado lenguaje recursivo. Existen muchas mquinas de Turing que aceptan un lenguaje en particular; algunas pueden parar (halt) para todas las entradas mientras otras no. La existencia de una mquina de Turing que para (halt) con todas las entradas es suficiente para demostrar que el lenguaje es recursivo. Ver archivo: mak_turing.ppt

4.4 Variantes de una mquina de Turing. Ver archivo: mak_turing.ppt Ver archivo: maq_turing2.pdf 4.5 Problemas de Hilbert. LOS PROBLEMAS DE HILBERT Hilbert quera conseguir resolver problemas cruciales de fundamentacin de las matemticas, quera desarrollar la matemtica slo a partir de la coherencia de su discurso, sin buscar parentesco de sus objetos bsicos con la realidad. Es comprensible entonces que en el enunciado de sus 23 problemas l haya querido elevar una suerte de panegrico, una exaltacin omnipresente del mtodo axiomtico, de la aspiracin ltima de insertar la Matemtica en la Lgica, transformada en madre universal de las ciencias. Algunos de los enunciados de los problemas planteados por Hilbert y resueltos por otras personas son: * P contra NP El matemtico Stephen Cook, que formul este problema en 1971 lo explic con un ejemplo semejante a ste. Es sbado por la tarde y usted llega a una reunin llena de gente. Se siente algo tmido y se pregunta si conoce a alguna persona de la fiesta. El anfitrin le comunica que usted conoce a Rosa, la chica de la esquina que est al lado de la puerta. Slo una fraccin de segundo ms tarde usted habr comprobado si el anfitrin est en lo cierto. Sin embargo, si no hubiese tenido lugar la sugerencia y le hubieran dicho que buscara entre toda la gente a ver si conoca a alguien, podra haber tardado hasta tres horas en hallar la respuesta. ste es un ejemplo de que la generacin de una respuesta llevar ms tiempo de verificacin que la concrecin de la respuesta. Es una cuestin que supone un problema enorme para los socilogos y para los cientficos de la computacin. La explicacin de las siglas P y PN se refieren a los tiempos polinmico y polinmico no determinista. *La Hiptesis de Riemann Algunos nmeros tienen la caracterstica especial de que no pueden ser expresados como el producto de dos nmeros ms pequeos 2,3,5,7, etc-, son los llamados nmeros primos y desempean un papel importante en las matemticas puras y en sus aplicaciones. Pero su distribucin no parece seguir ningn patrn regular. El matemtico alemn Georg Riemann propuso en el siglo XIX, que su frecuencia est ntimamente relacionada con el comportamiento en muchos casos, pero todava no existe una demostracin general. *La teora de Yang-Mills Hace casi una centuria, los fsicos Yang y Mills descubrieron ciertas relacione entre la geometra y las ecuaciones de la fsica de partculas que, ms tarde, resultaron de gran utilidad para unificar tres interacciones fundamentales de la materia en una sola teora. A pesar de ello, no se conocen soluciones compatibles con la mecnica cuntica de las soluciones de Yang y Mills. El progreso de este problema requerir la introduccin de nuevas ideas fundamentales en la fsica y en matemticas. *La conjetura de Birch y Swinnerton-Dyer

En uno de los problemas se planteaba si exista algn mtodo para saber si las ecuaciones xn+yn=zn tienen soluciones que sean nmeros enteros. El matemtico Yu Matiyasevich demostr, hace treinta aos, que no haba ningn mtodo general, pero Birch y SwinnertonDyer propusieron algunos mtodos parciales que, todava hoy, no se han demostrado. *La conjetura de Hodge Durante el siglo XX, los matemticos descubrieron formas de investigar la dimensin de una variable de objetos complicados. La idea bsica es preguntar en qu medida podemos aproximar la dimensin de una variable de un objeto dados uniendo bloques geomtricos simples. Esta tcnica result ser muy til, pero, no queda claro cmo aadir algunos bloques que no tienen ninguna interpretacin geomtrica. *La conjetura de Poincar Henri Poincar era el rival francs de Hilbert. Lleg a unas conclusiones sobre las esferas en el espacio de tres dimensiones que, posteriormente, ha resultado imposible trasladar al espacio de cuatro dimensiones. Esta incgnita result ser extraordinariamente difcil en el momento de su planteamiento y los matemticos siguen hoy luchando por darle una solucin. En resumen, la mayora de las 23 tareas que Hilbert plante al siglo XX han sido resueltas, pero algunas de ellas quedaron para el siglo XXI. Transcurrido el primer cuarto de siglo, otro matemtico alemn, especialista en Lgica, habra de cortar con las esperanzas de Hilbert: probaba la incompletitud de las Matemticas como sistema lgico. Un sistema lgico est constituido por proposiciones a las cuales se les asigna dos valores posibles, verdadero o falso, segn una determinada interpretacin. Un sistema es completo si cada proposicin en su seno es decible, es decir, si se puede encontrar para ella una interpretacin que le asigne alguno de los valores posibles antes mencionados. Gdel prob, por medio de su teorema de incompletitud, que en todo sistema lgico, suficientemente vasto para poder incluir la Aritmtica, existen proposiciones no decibles, vale decir, dicho sistema no es completo. Esto para la escuela formalista, era una catstrofe, pues deban de abandonar el sueo de considerar la Matemtica (que es incompleta) como parte de la Lgica (que es completa).

Unidad 5 Decibilidad.5.1 Lenguajes Decidibles. Ver archivo: maq_turing.pdf Ver archvio: mak_turinq.ppt 5.2 El problemas de Halting. Ver archivo: maq_turing2.pdf 5.3 Decidibilidad de Teoras Lgicas.

Decibilidad de las teoras lgicas. El desarrollo de la teora de la computabilidad ha ido ntimamente ligado al desarrollo de la lgica matemtica. Esto ha sido as porque la decibilidad de los distintos sistemas lgicos es una cuestin fundamental. Es bastante fcil ver que el clculo proposicional es decidible. Church y Turing demostraron en 1936 que el clculo de predicados no era decidible. Por otro lado, para cada una de las distintas teoras se ha ido estudiando su posible decibilidad. Como ejemplo ms ilustrativo, Tarski demostr que la teora de los nmeros reales era decidible. Por otro lado, son muchos los problemas interesantes que se han demostrado computables. Todas las funciones construidas por recursividad primitiva o minimalizacin a partir de funciones calculables resultan ser calculables como consecuencia de los trabajos de Church y Turing. Pero adems, otras funciones ms complejamente definidas tambin son computables, siendo el resultado ms significativo en relacin con esta cuestin el dado por el siguiente teorema: Primer teorema de Recursin. Todo operador entre funciones calculables que sea recursivo (esto es que se defina la imagen de f mediante una funcin calculable en trminos de una parte finita de f), tiene una funcin parcial computable que es el menor punto fijo, es decir, esta funcin es un punto fijo y cualquier otro punto fijo del operador es una extension de esa funcin. Este teorema recibe su nombre porque podemos definir una funcin mediante una ecuacin recursiva ms general que la permitida por la recursividad primitiva, a saber

donde es un operador recursivo. El primer teorema de recursin nos dice que esta definicin es posible; hay una funcin recursiva que satisface esta ecuacin. Como en matemticas se requiere que la definicin sea unvoca, se dice que dicha ecuacin define el menor punto fijo del operador . As, y de acuerdo al primer teorema de recursin, la clase de las funciones calculables es cerrada bajo una muy general forma de definicin por recursin. Como ejemplo ms interesante de aplicacin de este tipo de recursin tenemos la funcin de Ackermann :

A menudo se utiliza la tcnica de reducir un problema a otro para comprobar si tiene o no solucin efectiva. La estratgia en el caso de la respuesta negativa es la siguiente, si se reduce de forma efectiva un problema sin solucin efectiva a otro problema (mediante una funcin calculable), entonces este nuevo problema tampoco tendr solucin efectiva. La razn es muy simple, si tuviese solucin efectiva, componiendo el algoritmo solucin con el algoritmo de transformacin obtendramos una solucin para el problema efectivamente irresoluble. En sentido inverso, si se reduce un problema a otro para el que se conoce una solucin efectiva, entonces componiendo se obtiene una solucin para el primer problema. Esta tcnica es muy til y se

utiliza a menudo. Por otro lado, esta msma tcnica es muy empleada en el campo de la complejidad algortmica. Para asegurarse de que un problema est en una clase de complejidad, basta reducir el problema a otro de dicha clase sin ms que asegurarse que la reduccin se realiza en la correspondiente clase de complejidad.

Unidad 6 Reducibilidad.6.1 Problemas insolubles para la teora de lenguajes. 6.2 Un problema simple insoluble. 6.3 Funciones computables. 6.4 Reducibilidad de Turing. Ver archivo: redicibilidad.pdf http://delta.cs.cinvestav.mx/~gmorales/ta/node20.html