Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Modulo 2012 PDF
Modulo 2012 PDF
MODULO
AUTMATAS Y LENGUAJES FORMALES
@Copyright
Universidad Nacional Abierta y a Distancia
TABLA DE CONTENIDO.
Primera Unidad
Captulos
1. Conceptos Bsicos
I. LENGUAJES
REGULARES
2. Autmatas Finitos
3. Expresiones Regulares
Segunda Unidad
Captulos
4. Conceptos Generales
Lecciones
1. Introduccin e Historia.
2. Diferentes Modelos de Computacin.
3. Autmatas y Lenguajes.
4. Lenguajes Regulares
5. Autmata
6. Definicin Formal de Autmatas Finitos
7. Autmatas Finitos Determinsticos (AFD)
8. Autmatas Finitos no Determinsticos (AFND)
9. Autmatas Finitos con Transacciones
10. Lenguaje Aceptado por Autmata Finito
11.Expresiones Regulares
12. Significado de las Expresiones Regulares
13. Autmatas Finitos y Expresiones Regulares
14.Propiedades de los Lenguajes Regulares
15.Equivalencia de Autmatas Finitos
Determinsticos y Autmatas Finitos no
Determinsticos
Lecciones
16. Gramticas Regulares
17. Gramticas Regulares y Lenguajes Regulares
18. Gramticas Independientes del Contexto
19. Formas Cannicas para las Gramticas
Independientes del Contexto
20. Formas Norlmales
II. LENGUAJES
INDEPENDIENTES DEL
CONTEXTO
5. Autmatas a Pila
6. Propiedades de Lenguajes
Independientes de Contexto
Tercera Unidad
III. LENGUAJES
ESTRUCTURADOS POR
FRASES
Captulos
7. Mquinas de Turing.
9. Funciones Recursivas
INTRODUCCIN
Autmatas y lenguajes formales es un curso de carcter terico, que se inscribe
en el campo de formacin profesional bsico del Programa de Ingeniera de
Sistemas con un valor acadmico de tres crditos.
El estudiante en el desarrollo de este curso demuestra la asimilacin de los
conceptos y mecanismos fundamentales para la definicin de lenguajes
(expresiones regulares, gramticas independientes del contexto y gramticas
generales), los tres tipos de mquinas correspondientes para su reconocimiento
(autmatas finitos, autmatas a pila y maquinas de Turing) y las propiedades
fundamentales de las familias de lenguajes por ellos definidas, tambin realiza el
estudio de las condiciones necesarias para que un lenguaje sea de un tipo
determinado.
El curso es principalmente terico, jugando un papel secundario la implementacin
de algoritmos. Al final del curso el estudiante debe demostrar la asimilacin de los
conceptos fundamentales mediante la resolucin de problemas acerca de los
mismos, as como la realizacin de algunas prcticas en el computador.
Este curso toma como base el avance de los lenguajes de programacin de alto y
bajo nivel para propiciar la distincin entre lenguajes formales con reglas
sintcticas y semnticas rgidas, concretas y bien definidas, de los lenguajes
naturales como el ingls o el espaol, donde la sintaxis y la semntica no se
pueden controlar fcilmente. Los intentos de formalizar los lenguajes naturales,
lleva a la construccin de gramticas, como una forma de describir estos
lenguajes, utilizando para ello reglas de produccin para construir las frases del
lenguaje. Se puede entonces caracterizar un lenguaje mediante las reglas de una
gramtica adecuada.
Los temas sobre autmatas, computabilidad, e incluso la complejidad algortmica
fueron incorporndose al currculo de ciencias de la computacin de diferentes
universidades desde la dcada de los 60, esta incorporacin puso de manifiesto
que las ciencias de la computacin haban usado gran cantidad de ideas de muy
diferentes campos para su desarrollo, y que la investigacin sobre aspectos
bsicos poda cooperar y aumentar los avances de la computacin.
Como elemento determinante en el curso es importante que se tengan en cuenta
los conceptos matemticos bsicos de teora de conjuntos, funciones, relaciones y
principios fundamentales de la lgica, ya que stos temas no son tratados como
temticas en el mdulo, pero que tienen gran importancia en el curso.
INTENCIONALIDADES FORMATIVAS
PROPSITOS
Facilitar la apropiacin de conocimientos para que el estudiante pueda adquirir
los conceptos bsicos de la teora de los lenguajes formales y la relacin que
existe con la teora de autmatas.
Lograr que el estudiante entienda el alto nivel de abstraccin de las mquinas
secuenciales y los autmatas y que conozca los elementos y las tcnicas
necesarias para la construccin de las fases iniciales de un compilador.
OBJETIVOS
Estudiar los conceptos fundamentales de la teora de autmatas y lenguajes
formales, para la descripcin de ellos.
Conocer la correspondencia entre mquinas, gramticas y lenguajes, los
problemas en los que las teoras tienen aplicacin o que han motivado su
construccin.
COMPETENCIAS
El estudiante conoce la jerarqua de modelos de mquinas computacionales y
su funcionamiento, as como la jerarqua de las gramticas formales y de los
lenguajes correspondientes.
El estudiante conoce la correspondencia entre mquinas, gramticas y
lenguajes para poder construir compiladores.
El estudiante desarrolla la capacidad de abstraccin y anlisis terico en
relacin con la teora de lenguajes para adquirir herramientas para algunas
asignaturas de la carrera.
METAS
Al terminar el curso el estudiante:
Debe demostrar la asimilacin de los conceptos fundamentales mediante la
resolucin de problemas acerca de los mismos, y de la realizacin de algunas
practicas con el apoyo del computador.
Desarrollar la capacidad de entender los problemas computacionales, y
lograr una comprensin total de algunos tpicos de la ciencia de la
computacin; especficamente en modelos bsicos de conmutabilidad y
complejidad de problemas.
INTRODUCCIN
Los lenguajes pueden describirse como elementos que se generan, como cadenas
a partir de cadenas sencillas, con el uso de operaciones de cadenas o el
desarrollo del lenguaje mismo, que se puede generar con otros lenguajes ms
sencillos mediante operaciones de conjuntos.
Los Lenguajes ms sencillos son los considerados lenguajes regulares, es decir,
los que se pueden generar a partir de lenguajes de un elemento con la aplicacin
de ciertas operaciones estandar realizadas un nmero finito de veces.
Estos son pues los lenguajes que pueden reconocer los dispositivos llamados
Autmatas finitos (AF) que son mquinas de cmputo con memoria muy
restringida. En esta unidad se considera como segundo aspecto la idea de que un
lenguaje no sea regular, ademas de proporcionar un modelo sencillo de
computacin que se puede generalizar en las unidades siguientes.
Con las caracterizaciones anteriores y otras de los lenguajes regulares se
obtienen y estudian algoritmos para traducir una descripcin de un lenguaje a otra
descripcin de un tipo distinto; se acumula experiencia en el uso de mtodos
formales para describir lenguajes y se intenta responder a preguntas acerca de
ellos, son preguntas y ejercicios sencillos con sus respuestas y que permiten
determinar la utilidad de los lenguajes regulares en aplicaciones del mundo real.
OBJETIVO GENERAL
Reconocer los lenguajes regulares, autmatas finitos y su aplicacin.
OBJETIVOS ESPECIFICOS
Estudiar la aplicacin de los lenguajes regulares y los autmatas finitos.
Adquirir las habilidades necesarias para desarrollar autmatas y mquinas que
reconozcan lenguajes o computen funciones.
Distinguir los diferentes tipos de lenguajes formales existentes.
Hay que comentar que no hay un algoritmo para ensear a disear algoritmos, y
que muchas veces el proceso de construccin puede llegar a ser muy poco
disciplinado. No obstante, existen tcnicas de diseo de algoritmos, que vienen a
ser modelos abstractos de los mismos aplicables a gran variedad de problemas
reales.
Una vez construido un programa para un problema, surge la cuestin C) de si lo
resuelve realmente. Normalmente los programadores prueban sus programas
sobre una gran cantidad de datos de entrada para descubrir la mayora de los
errores lgicos presentes, aunque con este mtodo (al que suele denominarse de
prueba y depuracin) no se puede estar completamente seguro de que el
programa no contiene errores. Necesitaramos para realizar la verificacin formal,
reglas que describan de forma precisa el efecto que cada instruccin tiene en el
estado actual del programa, para, aplicando dichas reglas demostrar
rigurosamente que lo que hace el programa coincide con sus especificaciones. En
cualquier caso y cuando la prueba formal resulte muy complicada, podemos
aumentar la confianza en nuestro programa realizando en el mismo los "test
cuidadosos de que hablbamos al principio.
Alcanzado este punto, ya tenemos un programa que en principio es solucin de un
problema.
Se plantea entonces la duda de que hacer en caso de que para el mismo
problema seamos capaces de construir otro programa que tambin lo resuelva.
Cmo decidirnos por una u otra solucin? o ms an, qu ocurre si el programa
an siendo correcto consume demasiados recursos y es inaceptable?. La
respuesta viene dada a travs del punto D) en nuestro recorrido: el anlisis del
tiempo y espacio que necesita una solucin concreta; en definitiva, el estudio de la
eficiencia de los programas, midiendo la complejidad en espacio, por el nmero de
variables y el nmero y tamao de las estructuras de datos que se usan, y la
complejidad en tiempo por el nmero de acciones elementales llevadas a cabo en
la ejecucin del programa.
Los problemas computables fueron entonces clasificados en dos tipos: problemas
eficientemente computables, para los que exista un algoritmo eficiente; y
problemas intratables, para los que no existen algoritmos eficientes. La existencia
de problemas intratables no ha sido probada, si bien se han encontrado muchas
evidencias a su favor.
Otra clase de problemas a considerar es la clase NP3 de los problemas para los
que exista un algoritmo no determinstico en tiempo polinomial, y dentro de ella,
los problemas NP- completos.
Los intentos (desde los aos 40) de construir mquinas para modelizar algunas de
las funciones del cerebro biolgico, ha permitido desarrollar mquinas capaces de
aprender (y reproducir) funciones (o sistemas) cuya forma (o comportamiento)
se desconoce, pero s conocemos una serie de ejemplos que reflejan esta forma
(o comportamiento). Estas mquinas llamadas Redes Neuronales Artificiales
tambin aportan su granito de arena al desarrollo de la computacin.
A menudo se utiliza la tcnica de reducir un problema a otro para comprobar si
tiene o no solucin efectiva. La estrategia 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.
La Complejidad Algortmica trata de estudiar la relativa dificultad computacional de
las funciones computables. Rabin (1960) fu de los primeros en plantear la
cuestin Qu quiere decir que f sea ms difcil de computar que g?
J. Hartmanis and R.E. Stearns, en On the computational complexity of algorithms
(1965) introducen la nocin fundamental de medida de complejidad definida como
el tiempo de computacin sobre una mquina de Turing multicinta.
Despus surge la definicin de funciones computables en tiempo polinomial, y se
establece una jerarqua de complejidad, los problemas NP, NP-duros y NPcompletos
En 1956, la Princenton Univ. Press publica el libro Automata Studies, editado por
C. Shannon y J. McCarthy, donde se recogen una serie de trabajos sobre
autmatas y lenguajes formales.
D. A. Huffman (1954) ya utiliza conceptos como estado de un autmata y tabla de
transiciones.
N. Chomsky (1956) propone tres modelos para la descripcin de lenguajes, que
son la base de su futura jerarqua de los tipos de lenguajes, que ayud tambin en
el desarrollo de los lenguajes de programacin. Para ello intent utilizar autmatas
para extraer estructuras sintcticas (....el ingls no es un lenguaje de estados
finitos.) y dirige sus estudios a las gramticas, indicando que la diferencia esencial
entre autmatas y gramticas es que la lgica asociada a los autmatas (p.e.,
para ver la equivalencia entre dos de ellos) es Decidible, mientras que la asociada
a las gramticas no lo es. Desarrolla el concepto de gramtica libre del contexto,
en el transcurso de sus investigaciones sobre la sintaxis de los lenguajes
naturales.
Backus y Naur desarrollaron una notacin formal para describir la sintaxis de
algunos lenguajes de programacin, que bsicamente se sigue utilizando todava,
y que poda considerarse equivalente a las gramticas libres del contexto.
Consideramos entonces los lenguajes libres (independientes) del contexto, y las
gramticas libres del contexto y los autmatas con pila, como forma de
caracterizarlos y manejarlos. Los distintos lenguajes formales que se pueden
construir sobre un alfabeto concreto pueden clasificarse en clases cada vez ms
amplias que incluyen como subconjunto a las anteriores, de acuerdo con la
jerarqua establecida por Chomsky en los aos 50.
Se puede llegar as, de una forma casi natural a considerar las mquinas de
Turing, establecidas casi 20 aos antes, como mquinas reconocedoras de los
lenguajes formales dependientes del contexto o estructurados por frases, e incluso
a interpretar la Tesis de Turing como que un sistema computacional nunca podr
efectuar un anlisis sintctico de aquellos lenguajes que estn por encima de los
lenguajes estructurados por frases, segn la jerarqua de Chomsky".
En consecuencia, podemos utilizar la teora de autmatas y los conceptos
relativos a gramticas sobre distintos tipos de lenguajes, para decidir (si se puede)
si una funcin (o problema) es calculable, en base a que podamos construir un
algoritmo solucin mediante un lenguaje que puede ser analizado mediante alguna
mquina de las citadas anteriormente.
Los temas sobre autmatas, computabilidad, e incluso la complejidad algortmica
fueron incorporndose a los curriculum de ciencias de la computacin de
diferentes universidades, mediada la dcada de los 60. Esta incorporacin puso
de manifiesto que las ciencias de la computacin haban usado gran cantidad de
regla. Los lenguajes descritos por estas gramticas son exactamente todos
aquellos lenguajes reconocidos por una mquina de Turing no determinista
cuya cinta de memoria est acotada por un cierto nmero entero de veces
sobre la longitud de entrada.
Gramticas de tipo 2 (gramticas libres del contexto) generan los lenguajes
independientes del contexto. Las reglas son de la forma
con A un
no terminal y una cadena de terminales y no terminales. Estos lenguajes
son aquellos que pueden ser reconocidos por un autmata con pila.
Gramticas de tipo 3 (gramticas regulares) generan los lenguajes
regulares. Estas gramticas se restringen a aquellas reglas que tienen en la
parte izquierda un no terminal, y en la parte derecha un solo terminal,
posiblemente seguido de un no terminal. La regla
tambin est
permitida si S no aparece en la parte derecha de ninguna regla. Estos
lenguajes son aquellos que pueden ser aceptados por un autmata finito.
Tambin esta familia de lenguajes pueden ser obtenidas por medio de
expresiones regulares.
LECCION 4. LENGUAJES REGULARES 5
BRENA PIERO, Ramon F. Autmatas y lenguajes un enfoque de diseo (2003) ITESM, En:
http://lizt.mty.itesm.mx/~rbrena/AyL.html
LECCION 5. - AUTOMATA6
a palabra autmata evoca algo que pretende imitar las funciones propias de los
seres vivos, especialmente relacionadas con el movimiento, por ejemplo el
tpico robot antropomorfo. En el campo de los Traductores, Procesadores,
Compiladores e Intrpretes, lo fundamental no es la simulacin del movimiento,
sino la simulacin de procesos para tratar informacin.
La informacin se codifica en cadenas de smbolos, y un autmata es un
dispositivo que manipula cadenas de smbolos que se le presentan a su entrada,
produciendo otras tiras o cadenas de smbolos a su salida.
El autmata recibe los smbolos de entrada, uno detrs de otro, es decir
secuencialmente. El smbolo de salida que en un instante determinado produce un
autmata, no slo depende del ltimo smbolo recibido a la entrada, sino de toda
la secuencia o cadena, que ha recibido hasta ese instante.
Todo lo anterior conduce a definir un concepto fundamental: estado de un
autmata.
El estado de un autmata es toda la informacin necesaria en un momento dado,
para poder deducir, dado un smbolo de entrada en ese momento, cual ser el
smbolo de salida. Es decir, conocer el estado de un autmata, es lo mismo que
conocer toda la historia de smbolos de entrada, as como el estado inicial, estado
en que se encontraba el autmata al recibir el primero de los smbolos de entrada.
El autmata tendr un determinado nmero de estados (pudiendo ser infinitos), y
se encontrar en uno u otro segn sea la historia de smbolos que le han llegado.
Se define configuracin de un autmata a su situacin en un instante. Se define
movimiento de un autmata como el transito entre dos configuraciones. Si un
autmata se encuentra en un estado determinado, recibe un smbolo tambin
6 CUEVAS LOVALLE, Juan Manuel LENGUAJES, GRAMTICAS Y AUTMATAS. Segunda Edicin, (Espaa), 2001.
q1
Q1
q2
q1
q2
Q3
q2
q2
q3
Q3
q1
q3
q1/0
q2/1
q2
q3/0
q2/0
q3
q3/1
q1/0
Diagramas de Moore. Los diagramas de Moore son otra forma de representar las
funciones de transicin y salida de un autmata.
El diagrama de Moore es un grafo orientado en el que cada nodo corresponde a
un estado; y si f( , qi) = qj y g( , qi) = s existe un arco dirigido del nodo qi al
correspondiente qj, sobre el que se pone la etiqueta / s, tal y como se muestra en
la figura 1.
BRENA PIERO, Ramon F. Autmatas y lenguajes un enfoque de diseo (2003) ITESM, En:
http://lizt.mty.itesm.mx/~rbrena/AyL.html
Otra Definicin:
Un Autmata Finito se define por una quntupla:< Q, , q0, , A > , en donde:
Q es el conjunto de estados
es el alfabeto del lenguaje
q0 es el estado inicial
es la funcin de transicin
A es el conjunto de estados de aceptacin.
Ejemplo: Tomando el diagrama anterior:
Q = { , 0 , 1 , No } ;
= {0,1} q0 =
A ={ 1 }
Funcin de transicin: : Q x Q
ENTRADAS
0
1
E
S
T
A
D
O
S
NO
NO
NO
NO
MARIN MORALES, Roque y otros, Teora de autmatas y lenguajes formales En: Universidad de
Murcia http://perseo.dif.um.es/%7Eroque/talf/Material/apuntes.pdf
2. se calcula el estado siguiente a partir del estado actual y del smbolo actual
segn la funcin de transicin, esto es,(estado actual, smbolo actual) = estado
siguiente
3. el cabezal de lectura se mueve una celda a la derecha
4. el estado siguiente pasa a ser el estado actual y vuelve al paso 1
La funcin de transicin de un AFD se puede representar de dos formas:
mediante una tabla de transicin o mediante un diagrama de transicin.
Tabla de
transicin
Diagrama de
transicin
q0
# q1
q2
q0
q0
q2
q1
q2
q1
Diagrama de transicin
-TRANSICIONES.
n autmata finito sirve para reconocer cierto tipo de lenguajes. Antes de definir
formalmente el concepto de lenguaje aceptado por un AF necesitamos definir
los conceptos de configuracin y clculo en un autmata finito.
La configuracin de un autmata finito (sin importar el tipo) en cierto instante viene
dada por el estado del autmata en ese instante y por la porcin de cadena de
entrada que le queda por leer o procesar. La porcin de cadena leda hasta llegar
al estado actual no tiene influencia en el comportamiento futuro de la mquina. En
este sentido podemos decir que un AF es una mquina sin memoria externa; son
los estados los que resumen de alguna forma la informacin procesada.
F}
En un autmata finito determinista, el hecho de que una palabra w sea aceptada por
el autmata nos asegura que existe un nico camino en el diagrama de transicin
que nos lleva del nodo etiquetado con el estado inicial al nodo etiquetado con
el estado final y cada arco que se recorre en este camino sta etiquetado con un
smbolo de la palabra. Podramos simular la ejecucin de un autmata finito
determinista mediante un programa que codifique la funcin de transicin y simule
los cambios de estado. Si |w| = n entonces el programa puede determinar si la
palabra es aceptada o no en O(n).
En el caso de un AFND o un AFND- no podemos asegurar que exista un nico
camino en el diagrama que nos lleve del estado inicial a un estado final
consumiendo los smbolos de la palabra. Incluso puede que para una palabra w
L(M) podamos tener una camino que no acabe en estado final o que llegue a un
estado desde el que no se pueda seguir leyendo smbolos. Esto es debido al no
determinismo, que hace que los clculos en estos autmatas no estn
perfectamente determinados. Si quisiramos simular un autmata no determinista
para decidir si una palabra es aceptada o no, tendramos que usar alguna tcnica
de retroceso o backtracking para explorar distintas posibilidades hasta encontrar
un clculo correcto que reconozca la palabra o determinar que la palabra no es
aceptada si se han explorado todos los posibles clculos y ninguno de ellos
conduce a un estado final. Esto nos llevara a un algoritmo de tiempo exponencial
para reconocer una palabra. De ah que a efectos prcticos, como en la
construccin de analizadores lxicos o reconocimiento de patrones en un texto, lo
deseable es tener un autmata finito determinista.
Ejemplo Recordemos los AFs ya vistos y veamos ahora cual es el lenguaje
aceptado por ellos. El diagrama de la figura 8 correspondiente a un AFND permite
ver que L(M) es el lenguaje descrito por la expresin regular (a + b)*(aa + bb)(a +
b)* que consiste en aquellas cadenas sobre el alfabeto V = {a, b} que contienen al
menos una ocurrencia de la subcadena aa o bb. Por ejemplo, la cadena abb es
aceptada, ya que tenemos el clculo:
(q0, abb) (q0, bb) (q1, b) (q2, ), y q2 F
Sin embargo podemos tener otro clculo que no conduce a estado final:
(q0, abb) (q0, bb) (q0, b) (q1, ), q1 / F
e incluso un clculo que no llega a consumir la palabra:
(q0, abb) (q3, bb) (y no puede seguir)
A partir del diagrama del AFD de la figura 6 no es tan sencillo ver cual es el
lenguaje aceptado. Pero, segn se ver mas adelante con el teorema de kleene se
tiene un mtodo exacto para encontrar este lenguaje. En este caso el lenguaje
aceptado es el descrito por la expresin regular (0 + 1 (10*1)*)* 1 (10*1)*
ER.
BRENA PIERO, Ramon F. Autmatas y lenguajes un enfoque de diseo (2003) ITESM, En:
http://lizt.mty.itesm.mx/~rbrena/AyL.html
y por
Por ejemplo, una expresin dada por ({a}*{b}) {c} se reduce a a*b c.
Otro ejemplo: El lenguaje de todas las cadenas sobre {a,b,c} que no tienen
ninguna subcadena ac se denota por c*(a bc*)*.
Esta definicin nos permite construir expresiones en la notacin de conjuntos que
representan lenguajes regulares.
Ejemplo.- Sea el lenguaje L de palabras formadas por a y b, pero que empiezan
con a, como aab, ab, a, abaa, etc. Probar que este lenguaje es regular, y dar una
expresin de conjuntos que lo represente.
Solucin.- El alfabeto es = {a, b}. El lenguaje L puede ser visto como la
concatenacin de una a con cadenas cualesquiera de a y b; ahora bien, stas
ltimas son los elementos de {a, b}*, mientras que el lenguaje que slo contiene la
palabra a es {a}. Ambos lenguajes son regulares.
Entonces su concatenacin es {a}{a, b}*, que tambin es regular.
NOTA: La concatenacin de dos lenguajes L1 y L2 se define como el conjunto de
las palabras formadas concatenando una de L1 con una de L2.
{a} es finito, por lo tanto regular, mientras que {a, b}* es la cerradura de {a, b}, que
es regular por ser finito.
LECCION 13. - AUTMATAS FINITOS Y EXPRESIONES REGULARES 10
asta ahora, la relacin entre los autmatas finitos y las expresiones regulares
se ha tratado de una manera intuitiva. Ahora formalizaremos dicha relacin.
10
Para un alfabeto , se pueden construir los AFND (y los AFD) que acepten
palabras unitarias. Por ejemplo:
(a)
(b)
b
t
Ambos AFND se pueden unir de manera tal que el nuevo AFND acepte ab*
(ab)* :
s
b
So
b
v
u
a
Por otra parte si tenemos 2 autmatas M1 y M2, podemos unirlos para formar un
AFND que acepte L(M1) L(M2). Se requiere un autmata que reconozca una
cadena de L(M1) y a continuacin una de L(M2). Esto se realiza pasando del
estado final de M1 al estado inicial de M2 a travs de una transicin.
Por ejemplo:
Aceptan los lenguajes {a} y {b} respectivamente. As, el autmata que acepta el
lenguaje {ab} es:
b
a
M:
b
a
L(M) : (ab*)*
Teorema: El conjunto de lenguajes aceptados por un autmata finito sobre el
alfabeto contiene el lenguaje y los lenguajes unitarios {a} para todo a
.
Este conjunto es cerrado con respecto a la unin, concatenacin y cerradura de
estrella.
Este teorema implica que todo lenguaje regular es aceptado por un autmata
finito.
Sea el autmata finito M = (Q, ,So,F,) y supongamos que So = q0 es el estado
incial. Se define:
Ai = {w * e(qi,w) F }
Ai es el conjunto de las cadenas sobre * que hacen que M pase desde qi hasta
un estado de aceptacin. Se dice que Ai es el conjunto de las cadenas aceptadas
por el estado qi. Es importante notar que A0 = L(M). Adems, es posible que Ai = .
Si qi F,, entonces Ai. Como ejemplo, considrese el siguiente AFND:
q0
q1
q2
a,b
q5
a,b
b
a
q3
q4
A5 =
A2 =
A4 =
A1 = b
A3 = a
A0 = ab ba
Del autmata anterior se deduce:
(q0,a) = {q1}, es decir q1 (q0,a), por lo tanto A0 contiene a: aA1. En general, si:
qj (qi,w) implica que Ai contiene a wAj. De hecho se tiene que:
Ai =
{wAj qj (qi,w)}
Esto proporciona las tcnicas bsicas para obtener una expresin regular a partir
de un autmata finito. Consideremos el ejemplo anterior, tenemos:
A0 = a A1 b A3
A1 = b A2 a A5
A2 = a A5 b A5
A3 = a A4 b A5
A4 = a A5 b A5
A5 =
a
b
bq
q0
q1
A0 = a A0 b A1 ;
A1 =
Resolviendo y sustituyendo resulta que A0 = a A0 b,, y no es posible simplificarlo
ms. El siguiente lema muestra cmo resolver este problema:
Lema de Arden: Una ecuacin de la forma X = AX B, donde A tiene una
solucin nica X = A*B.
a
q0
q1
q2
q3
b
b
q4
b
b
A0 = aA1 ; A1 = aA2 bA4 ; A2 = aA3 bA4
A3 = aA3 bA4 ; A4 = bA4
Sustituyendo y aplicando el lema de Arden, tenemos:
A4 = bA4 = bA4 = b* = b* (por lema de Arden)
A3 = aA3 bb* = aA3 b+ = a*( b+) = a*b*
A2 = aa*b* bb* = a+b* b+
A1 = a(a+b* b+) bb* = aa+b* ab+ b+
A0 = aA1 = a(aa+b* ab+ b+)
A0 = a2a+b* a2b+ ab+
Lema: Sea M un autmata finito. Entonces existe una expresin r para la cual:
L(r) = L(M)
Teorema de anlisis de Kleene: Si L es un lenguaje aceptado por un autmata
finito M entonces existe una expresin regular tal que L = L(M) = L().
Podemos suponer que el autmata finito M no tiene -transiciones (si las tuviera
ya sabemos que podemos encontrar autmata equivalente sin -transiciones). Sea
M = (Q, V,, q0, F). A partir de este autmata podemos obtener un sistema de
11
BRENA PIERO, Ramon F. Autmatas y lenguajes un enfoque de diseo (2003) ITESM, En:
http://lizt.mty.itesm.mx/~rbrena/AyL.html
Ejemplo.- Disear un autmata no determinista que acepte las palabras sobre {a,
b} que tengan un nmero par de a o que terminen en bb.
Solucin.- En la figura 15(a) se presenta un AFN que acepta las palabras que
contienen un nmero par de as, y en 15(b) otro que acepta las palabras que
terminan en bb. Finalmente, en 15(c) est el AFN que acepta el lenguaje dado.
Entrada
b
a
a
a
a
a
b
Estados
{q0,q1}
{q0,q1}
{q2,q4}
{q0,q1,q3}
{q1,q2,q4}
{q0,q1,q3,q4}
{q1,q2,q3,q4}
q1
Se consideran el conjunto de estados del AFN en los que puede encontrarse ste
en cada momento. El conjunto inicial de estados estar formado por los estados
del AFN de la figura 18 en los que puede estar antes de consumir el primer
caracter, esto es, q0 y q1. Dicho conjunto aparece en la figura 19(a).
A partir de ah, tras recibir un caracter a, el AFN puede encontrarse ya sea en q2 o
en q4, los cuales se incluye un nuevo conjunto de estados, al que se llega con una
transicin con a, como se ilustra en la figura 19(b); similarmente, a partir del
conjunto inicial de estados {q0, q1} con la letra b se llega al mismo conjunto {q0, q1},
lo cual se representa con un lazo as mismo en la figura 19(b).
Con este mismo procedimiento se siguen formando los conjuntos de estados; por
ejemplo, a partir de {q2, q4}, con una a se pasa a {q3, q0, q1}. Continuando as, al
final se llega al diagrama de la figura 19(c).
Un detalle importante a observar en este procedimiento es que en ocasiones no
hay estados adonde ir; por ejemplo, a partir del conjunto de estados {q2, q4}, con b
no se llega a ningn estado. En casos como este, se considera que habr una
transicin con b a un nuevo conjunto de estados vacos, esto es {}, como se
aprecia en la figura 19(c). Por supuesto, este estado vaco tendr transiciones con
a y con b igualmente.
entrada, si sta se terminara. Por lo tanto, los estados finales del nuevo autmata
sern aquellos conjuntos de estados que contengan algn estado final. As, en el
AFD de la figura 19(d) se marcan los estados finales; adems se borran los
estados del antiguo AFN de cada uno de los crculos, y se bautizan cada conjunto
de estados como un estado.
3.15.2. Una transformacin inofensiva
Cuando se quiere aplicar el mtodo descrito en los prrafos precedentes, una
dificultad que puede presentarse es que algunas flechas del autmata tienen como
etiquetas palabras de varias letras, y desde luego no podemos tomar un pedazo
de una transicin. Esta situacin se aprecia en el AFN de la figura 20. En efecto, si
a partir del estado inicial se intenta consumir la entrada a, se observa que no hay
una transicin que permita hacerlo, an cuando hay una transicin (q0, aa, q1)
cuya etiqueta empieza con a.
Una solucin a esta dificultad es normalizar a 1 como mximo la longitud de las
palabras que aparecen en las flechas. Esto puede hacerse intercalando |w| 1
estados intermedios en cada flecha con etiqueta w. As, por ejemplo, de la
transicion (q1, aaa, q1) de la figura 20, se generan las transiciones siguientes: (q1,
a, q2), (q2, a, q3), (q3, a, q1), donde los estados q2 y q3 son estados nuevos
generados para hacer esta transformacin.
Con esta transformacin se puede pasar de un AFN cualquiera M a un AFN M0
equivalente cuyas transiciones tienen como mximo un carcter. Esta
transformacin es inofensiva en el sentido de que no altera el lenguaje aceptado
por el AFN.
Por ejemplo, para el AFN de la figura 20 se tiene el AFN transformado de la figura
18.
cerr - (q1) = {q1, q2, q4}, cerr-(q2) = {q2, q4}, y cerr-(q0) = {q0}.
Por ejemplo, tomando la figura 21, para calcular transicin- (q1, a), los pasos
son como sigue:
1. Q0 = {q1, q2, q4}
2. transicin (q1, a) = {q1}, transicin(q2, a) = {q2, q3}, y transicin(q4, a) = {}, por lo
que uniendo estos conjuntos, Q1 = {q1, q2, q3}.
3. transicin-(q1, a) = CERR-({q1, q2, q3}) = {q1, q2, q3, q4}.
Como ltima definicin, es directo extender la funcin transicin-(q, ), que se
aplica a un estado y un caracter, a una funcin que se aplique a un conjunto de
estados y un caracter; llamamos a esta funcin TRANSICION-(Q, ), para un
conjunto de estados Q y un caracter. Simplemente aplicamos transicin-(q,
)para cada uno de los estados q Q, y juntamos los resultados en un solo
conjunto.
Por ejemplo, en la figura 21
TRANSICION- ({q0, q2}, a) = {q0, q2, q3, q4}.
Finalmente resumimos el proceso global de transformacin de un AFN a un AFD
en el siguiente algoritmo.
Algoritmo de transformacin AFN AFD:
Dado un AFN (K,,, s, F), un AFD equivalente se obtiene por los siguientes
pasos:
1. El conjunto de estados inicial es cerr -(s).
2. El alfabeto del AFD es el mismo del AFN.
3. Para cada conjunto de estados Q ya presente, hacer:
a) Aadir el conjunto de estados TRANSICION-(Q, ) para cada caracter del
alfabeto, si no ha sido creado an.
b) Aadir transiciones ((Q, ),Q) para cada conjunto de estados Q creado en el
paso anterior.
4. Los conjuntos de estados que contengan un estado en F sern finales.
Ms diseo de AFN: Interseccin de lenguajes
Los problemas de diseo de AFN en que se combinan dos condiciones que se
deben cumplir simultneamente son particularmente difciles de resolver. Un
ejemplo de estos problemas es: obtener un AFN que acepte las palabras que
contengan la cadena abb un nmero impar de veces y ba un nmero par de
veces.
Es mejor contar con un mtodo modular que permita combinar de una manera
sistemtica las soluciones parciales para cada una de las condiciones. Esto es
posible, si se considera la siguiente propiedad de la interseccin de conjuntos:
L1 L2 = (L1C L2C) C
Esta frmula sugiere un procedimiento prctico para obtener un AFN que acepte la
interseccin de dos lenguajes dados. Esto se ilustra en el siguiente ejemplo.
Ejemplo.- Obtener un AF para el lenguaje en el alfabeto {a, b} en que las palabras
son de longitud par y adems contienen un nmero par de as. Este problema
parece bastante difcil, pero se vuelve fcil utilizando la frmula de interseccin de
lenguajes. En efecto, se inicia calculando los AFD para los lenguajes que cumplen
independientemente las dos condiciones.
El AFD M1 de la figura 22(a) acepta las palabras de longitud par, mientras que M2
de 2.32(b) acepta las palabras con un nmero par de as.
Ahora se obtienen los AFD que aceptan el complemento de los lenguajes de M1 y
M2 C
M2, cambiando los estados finales por no finales y viceversa; sean M1C
Es muy importante notar que slo es posible complementar AFDs y no cualquier
AFN.
En efecto, si en un AFN simplemente se cambian estados finales por no finales y
viceversa, en general se llega a un resultado errneo (esto es, el autmata
resultante no es equivalente al original) Combinamos estos autmatas utilizando el
procedimiento para la unin de lenguajes, dando un AFN M3 (figura 22(c)), el cual
es convertido a un AFD M4. Finalmente, este AFD es simplificado y
complementado, dando M4c (figura 22(d)), que es el autmata buscado.
ACTIVIDADES:
Ejercicios Propuestos:
1.- Obtener el lenguaje reconocido por el siguiente AFD:
A = ({a, b, c}, {q0, q1, q2, q3, q4}, f, q0, {q2})
f(q0, a) = q1 f(q0, b) = q4 f(q0, c) = q4
f(q1, a) = q4 f(q1, b) = q1 f(q1, c) = q2
f(q2, a) = q4 f(q2, b) = q4 f(q2, c) = q2
f(q3, a) = q4 f(q3, b) = q3 f(q3, c) = q2
f(q4, a) = q4 f(q4, b) = q4 f(q4, c) = q4
2.- Determinar el lenguaje que reconoce el siguiente AFD:
Definir la gramtica lineal izquierda que describe el mismo lenguaje reconocido por
el autmata.
4.-Decir cules de las siguientes palabras son reconocidas por el siguiente AFND:
110, 01, 100
AFND = ({0, 1}, {q0, q1, q2}, q0, {q1})
f(q0, 0) =
f(q1, 0) = {q0}
f(q2, 0) = {q2}
f(q0, ) =
f(q1, ) = {q0}
f(q2, ) = {q1}
f(q1,b) =
f(q2,b) = {q1,q3}
f(q3,b) = {q1,q4}
f(q4,b) = {q3}
Ejercicios Resueltos12:
Suponga que permitimos que los autmatas finitos cambien de un estado a otro
sin leer un smbolo de sus cintas de entrada. En un diagrama de transiciones, este
tipo de transiciones normalmente se representa como un arco con etiqueta en
vez de un smbolo del alfabeto; y se le conoce como transicin . Muestre que
cualquier diagrama de transiciones que tenga transiciones se puede modificar
para que ya no contenga este tipo de transiciones pero que a la vez acepte el
mismo lenguaje (el diagrama modificado puede ser no determinista).
12
Ingenieria Tcnica en Informatica de Sistemas y de Gestin de la UNED Espaa ASIGNATURA: TEORA DE UTMATAS
I Tutora del Centro Asociado de Plasencia en: URL http://dac.escet.urjc.es/lrincon/uned/ta1/ProblemasFinalCapitulo.pdf
anlisis de la cadena, da igual que leamos otra entrada ms (sea cual sea) o que
no la leamos.
2.2 El estado al que conduce la transicin es de aceptacin. El tratamiento es
igual que en 1.2
Esto significa que desde el estado 1, se puede aceptar la cadena sin leer ningn
smbolo ms. En otras palabras, que el estado 1 es de aceptacin. Por lo cual
podemos eliminar el estado 2 y hacer de aceptacin el 1.
Muestre que el lenguaje del alfabeto {x, y} que consiste en aquellas cadenas con
el mismo nmero de x e y es independiente del contexto determinista:
Solucin:
Comentarios: El estado inicial es de aceptacin,
para permitir cadenas con cero xs y cero ys.
Durante el estado X, el nmero de xs es mayor que
el de ys. Se introduce una x cada vez que se lee
una x; y se saca una x cada vez que se lee una y.
Si en algn momento se iguala este nmero
(smbolo # en la cima), se vuelve al estado F
Durante el estado Y, el nmero de ys es mayor que
el de xs. Se introduce una y cada vez que se lee una y; y se saca una y cada vez
que se lee una x. Si en algn momento se iguala este nmero (smbolo # en la
cima), se vuelve al estado F
Si durante el estado F se recibe FDC, la cadena queda aceptada.
Muestre que si L es un lenguaje independiente del contexto, entonces el lenguaje
que consiste en las cadenas de L escritas a la inversa tambin es independiente
del contexto.
Solucin:
Un lenguaje independiente del contexto se puede caracterizar mediante una
gramtica independiente del contexto que casi tiene la forma normal de
se puede construir
*A
*B
*C
B D
D C
B C
D
D D
: j > i + k} no es regular,
1,2
= a, R(0)
2,1
1,2
= b, R(0) 2,2 = + a
+ b)*a = b*a y R(1)2,2 = ( + a) + b( + b)*a =+ b*a.
BIBLIOGRAFA DE LA UNIDAD
eBook Automatas y
Lenguajes:http://lizt.mty.itesm.mx/%7Erbrena/Libro/form2AyL.php de
ramon.brena@itesm.mx
IOST F. Hans, Teora de autmatas y lenguajes formales, CAPTULO 2, LENGUAJES
REGULARES Y AUTOMATAS FINITOS (2001) en:
http://iie.ufro.cl/~hansiost/automatas/Capitulo2.doc
INTRODUCCIN
Los lenguajes independientes del contexto que tambien se conocen con el nombre
de gramaticas de contexto libre son un mtodo recursivo sencillo de especificacin
de reglas gramaticales con las que se pueden generar cadenas de un lenguaje.
Es factible producir de esta manera todos los lenguajes regulares, ademas de que
existen ejemplos sencillos de gramaticas de contexto libre que generan lenguajes
no regulares.
Las reglas gramaticales de este tipo permiten que la sintaxis tenga variedad y
refinamientos mayores que los realizados con lenguajes regulares, en gran
medida sirven para especificar la sintaxis de lenguajes de alto nivel y otros
lenguajes formales.
OBJETIVO GENERAL
Conocer los modelos de computacin que corresponden a los lenguajes
independientes del contexto y su aplicacin.
OBJETIVOS ESPECIFICOS
Generalizar los conceptos de autmatas finitos y gramaticas regulares.
Reconocer el potencial de procesamiento del lenguaje del automata con los
autmatas de pila.
Sea el autmata:
a
q3
b
q1
q2
q5
a(a*b*)b
q4
b
1. S a E
2. E A B
3. A aA b
4. B bB b
Estas expresiones pueden ser consideradas como reglas de sustitucin y permiten
generar cualquier cadena o palabra vlida dada por el autmata del cual se
obtuvieron. Por ejemplo, sea la cadena a3b:
a E a a A a a a A a a a b = a3b
2 ,3
3
3
b A a B
abaS
babS
a
b
S
a
b
Autmata:
b
Exp. Regular:
(baba
abab)*
P: S R a
R aR b
LECCION 17. - GRAMTICAS REGULARES Y LENGUAJES REGULARES
Q2
a, b
Q3
a, b
b Q2
b Q3
b Q3
Es posible probar que cualquier palabra que sea aceptada por el AFD M, puede
ser generada por la gramtica regular G. Esto significa que L(G) = L(M).
Tambin es posible deducir un AFND a partir de una gramtica regular G.
Sea G = (N, , S0, P) una G.R., se define M = (Q, , S, F, ) como sigue:
Q = {S, B, C, }
S0 = S
F = {}
i.
ii.
iii.
iv.
v.
S
S
S
B
C
aS :
bB :
b:
cC :
aS :
(S,a) = S
(S,b) = B
(S,b) =
(B,c) = C
(C,a) = S
(A, a b a) = S, se descompone en :
(A, a) = q1 ;
(q1, b) = q2;
(q2, a) = S
B
a
b
b
a
b
Existen muchas derivaciones posibles para la cadena aabbb, por ejemplo:
S => AB => aAB => aaB => aabB => aabbB => aabbb
S => AB => aAB => aAbB => aAbbB => aAbbb => aabbb
Pero el rbol de derivacin ser siempre el mismo.Sin embargo, esto no siempre
se cumple.
Considrese la gramtica: S
SbS ScS a
la cadena abaca se puede derivar:
1. S => SbS => SbScS => SbSca => Sbaca => abaca.
2. S ScS SbScS abScS abacS abaca
S
S
b
S
S
c
S
a
Derivacin 1
a
Derivacin 2
A B
a
a
... es ambigua porque tiene rboles de derivacin distintos para la cadena a. Una
gramtica equivalente que no es ambiga es:
Sa
Si todas las GIC para un lenguaje son ambigas, se dice que el lenguaje es un
lenguaje independiente del contexto (LIC) inherentemente ambigo.
Ejemplo: Considere la gramtica G1 dada por:
N = {S,A} ; = {a} ; S ; P: {S AA ; A aSa ; A a}
Se pueden obtener 2 rboles de derivacin para la cadena aaaaa:
S
A
a
S
A
A
a
a
S
A
A
a
A
I
a
A
I
E
I
b
a
E
E
E
E
I
E
I
a
c
a
b
c
Si se pretende obtener el valor del resultado de la expresin a la derecha del
operador de asignacin (=), se obtienen 2 resultados posibles, b+(c*a) o (b+c)*a
.En general, estos resultados no son iguales.
LECCION 19. - FORMAS CANNICAS PARA LAS GIC
gAe Ayb CY
bBY ooC
dd D
jVB gi
n
kW
(7) V baXXX oV
(8) W c
(9) X fV
(10) Y Yhm
Todo lenguaje independiente del contexto L (no vaco) puede ser generado por
una gramtica libre de contexto que contenga slo producciones tiles y no
terminales tiles.
Una produccin de la forma A
B, donde A, B N (no terminales), es llamada
una produccin unitaria o produccin no generativa.
Ejemplo:
AB
B w1 C
Se puede eliminar A B e incluir la produccin A w1 C.
Utilizando todo lo anterior al ejemplo de la pgina anterior, tendremos como
resultado la gramtica:
S gAe
A ooC
C gi
Una gramtica independiente del contexto est en la forma normal de Chomsky si
no contiene producciones (A ) y si todas las producciones son de la forma
A a, para a , o de la forma ABC, donde B, C son no terminales. Esto es,
en la forma normal de Chomsky, el lado derecho de cada produccin contiene
un nico smbolo terminal o un par de no terminales.
Cualquier lenguaje libre de contexto L puede ser generado por una gramtica libre
de contexto en la forma normal de Chomsky.
A partir de lo anterior se infiere que cualquier gramtica libre de contexto puede
ser transformada a la forma normal de Chomsky. La estrategia bsica ser
agregar nuevos smbolos no terminales a aquellas producciones no normalizadas
tales como por ejemplo A JKcb y reemplazarlas por un conjunto de
producciones equivalentes tales como:
A JY1 , Y1 KY2 , Y2 XcXb , Xc c , Xb b
Tomando A de J, tenemos
J = {C}, V = {S, A, C}, T = {g, e, o}
Sacando C de J, obtenemos
J = 0, V = {S, A, C}, T = {g, e, o, i}
Como J = 0 se acaba el ciclo. Solo nos queda eliminar las variables intiles: B, D,
U, W, los smbolos terminales intiles: n, k, c, d, y las producciones donde estos
aparecen. La gramtica queda
S gAe, A ooC, C gi
En esta gramtica solo se puede generar una palabra: googige.
Si el lenguaje generado por una gramtica es vaco, esto se detecta en que la
variable S resulta intil en el primer algoritmo. En ese caso se pueden eliminar
directamente todas las producciones, pero no el smbolo S.
Ejemplo eliminar smbolos y producciones intiles de la gramtica
S aSb,S ab,S bcD,
S cSE,E aDb,F abc,E abF
4.19.3. Producciones Nulas
Las producciones nulas son las de la forma A . Vamos a tratar de eliminarlas
sin que cambie el lenguaje generado por la gramtica ni la estructura de los
rboles de derivacin. Evidentemente si L(G) L(G)no vamos a poder
eliminarlas todas sin que la palabra nula deje de generarse. As vamos a dar un
algoritmo que dada una gramtica G, construye una gramtica G equivalente a la
anterior sin producciones nulas y tal que L(G)= L(G) { }. Es decir, si la palabra
nula era generada en la gramtica original entonces no puede generarse en la
nueva gramtica.
Primero se calcula el conjunto de las variables anulables:
H es el conjunto de las variables anulables
1. H = 0
2. Para cada produccion A , se hace H = H {A} {A}
3. Mientras H cambie
4. Para cada produccion B A1A2 ...An,
donde Ai H para todo i = 1,...,n, se hace H = H {B}
4. Se aade B bB, B b
3. Se elimina A aA
4. Se aade A aA, A a
3. Se elimina C AB
4. Se aade C AB, C A, C B
En definitiva, la gramtica resultante tiene las siguientes producciones:
S ABb, S Ab, S Bb, S ABC, S AB, S AC, S BC, S A, S B,
S C, C abC, C ab, B bB, B b, A aA,
A a, C AB, C A, C B
Ejemplo: Sea la gramtica
S aHb, H aHb, H
La nica variable anulable es H. Y la gramtica equivalente, que resulta de aplicar
el algoritmo 2 es:
S aHb, H aHb, S ab, H ab
4.19.4. Producciones Unitarias
Las producciones unitarias son las que tienen la forma A B
donde A, B V . Veamos cmo se puede transformar una gramtica G, en la que
L(G), en otra gramtica equivalente en la que no existen producciones
unitarias. Para ello, hay que partir de una gramtica sin producciones nulas.
Entonces, se calcula el conjunto H de parejas (A, B) tales que B se puede derivar
a partir de
A: A B. Eso se hace con el siguiente algoritmo
1. H = 0
2. Para toda produccin de la forma A B, la pareja (A, B) se introduce en H.
3. Mientras H cambie
4. Para cada dos parejas (A, B), (B, C)
5. Si la pareja (A, C) no estn H
(A, C) se introduce en H
6. Se eliminan las producciones unitarias
7. Para cada produccin A
8. Para cada pareja (B, A) H
9. Se aade una produccin B
Ejemplo: El lenguaje L = {a b : n
siguiente gramtica de tipo 2:
1}
{a ba : n
S A, S B, A ab, A aHb
H ab, H aHb, B aBa, B b
Las parejas resultantes en el conjunto H son {(S, A), (S, B)}. La gramtica sin
producciones unitarias equivalente es:
Aab, AaHb, Hab, HaHb, BaBa, Bb, Sab, SaHb, SaBa, Sb.
LECCION 20. - FORMAS NORMALES
4.20.1. Forma Normal de Chomsky
Una gramtica de tipo 2 se dice que est en forma normal de Chomsky si y solo si
todas las producciones tienen la forma
A BC, A a,
donde A,B,C V , a T .
Toda gramtica de tipo 2 que no acepte la palabra vaca se puede poner en forma
normal de Chomsky. Para ello lo primero que hay que hacer es suprimir las
producciones nulas y unitarias. A continuacin se puede ejecutar el siguiente
algoritmo:
1. Para cada produccin de la forma A 1 ... n, i (V T ),n 2
2. Para cada i, si i es terminal: i =a T
3. Se aade la produccin Ca a
4. Se cambia i por Ca en A 1 ... n 5.
5. Para cada produccin de la forma A B1,...Bm, m 3
La otra operacin bsica consiste en eliminar todas las producciones del tipo
A donde V* . Esto se hace siguiendo los siguiente pasos:
1. Aadir una nueva variable BA
2. Para cada produccin A A
3. Aadir BA y BA BA
4. Eliminar A A
5. Para cada produccin A no empieza por A
6. Aadir A BA
Llamemos ELIMINA1(A B) a la funcin que realiza el primer paso y
ELIMINA2(A) a la funcin que reliza el segundo paso. Si si llama a ELIMINA2(A j),
la variable que aadimos la notaremos como Bj.
En estas condiciones vamos a realizar un algoritmo, al final del cual todas las
producciones tengan una forma que corresponda a alguno de los patrones
siguientes:
A a, a T, V* .
Ai A j, j > i, V* .
B j Ai, V*
El algoritmo es como sigue:
1. Para cada k = 1,...,m
2. Para cada j = 1,...,k 1
3. Para cada produccin Ak Aj
4. ELIMINA1(Ak Aj )
5. Si existe alguna produccin de la forma Ak Ak
6. ELIMINA2(Ak)
A continuacin se puede eliminar definitivamente la recursividad por la izquierda
con el siguiente algoritmo pasando a forma normal de Greibach
1. Para cada i = m 1,...,1
2. Para cada produccion de la forma Ai Aj, j > i
3. ELIMINA1(Ai Aj)
4. Para cada i = 1,2,...,m
5. Para cada produccion de la forma Bj Ai.
6. ELIMINA1(Bj Ai)
El resultado del segundo algoritmo es ya una gramtica en forma normal de
Greibach.
Ejemplo: Pasar a forma normal de Greibach la gramtica dada por las producciones
A1 A2A3, A2 A3A1, A2 b, A3 A1A2, A3 a
Aplicamos ELIMINA1 a A3A1A2. Se elimina esta produccin y se aade:
A3A2A3A2
Queda:
A1 A2A3, A2 A3A1, A2 b, A3 a, A3 A2A3A2
Aplicamos ELIMINA1 a A3 A2A3A2
Se elimina esta produccin y se aaden: A3 A3A1A3A2, A3 bA3A2
Queda:
A1 A2A3, A2 A3A1, A2 b, A3 a, A3 A3A1A3A2, A3 bA3A2
Aplicamos ELIMINA2 a A3 Se aade B3 y las producciones B3 A1A3A2, B3
A1A3A2B3 Se elimina A3 A3A1A3A2. Se aaden las producciones: A3 aB3, A3
bA3A2B3
Queda:
A1 A2A3, A2 A3A1, A2 b, A3 a, A3 bA3A2 B3 A1A3A2, B3 A1A3A2B3
A3 aB3, A3 bA3A2B3
Se aplica ELIMINA1 a A2 A3A1.
Se elimina esta produccin y se aaden:
A2 aA1, A2 aB3A1, A2 bA3A2B3A1, A2 bA3A2A1
Queda:
A1 A2A3, A2 b, A2 aA1, A2 aB3A1, A2 bA3A2B3A1, A2 bA3A2A1, A3
a, A3 bA3A2, B3 A1A3A2, B3 A1A3A2B3 A3 aB3, A3 bA3A2B3
Se aplica ELIMINA1 a A1 A2A3.
Se elimina esta produccin y se aaden:
A1 bA3, A1 aA1A3, A1 aB3A1A3, A1 bA3A2B3A1A3, A1 bA3A2A1A3
Queda:
A2 b,
A2 bA3A2B3A1,
A3 bA3A2,
A3 aB3,
A1 aA1A3,
A1 bA3A2A1A3
A2 aA1,
A2 bA3A2A1,
B3 A1A3A2,
A3 bA3A2B3,
A1 aB3A1A3,
A2 aB3A1,
A3 a,
B3 A1A3A2B3,
A1 bA3,
A1 bA3A2B3A1A3,
A2 aA1
A2 bA3A2A1
B3 A1A3A2B3,
A1 bA3,
A1 bA3A2B3A1A3,
B3 aA1A3A3A2,
B3 bA3A2B3A1A3A3A2,
B3 aB3A1A3A3A2,
A2 aB3A1,
A3 a,
A3 aB3,
A1 aA1A3,
A1 bA3A2A1A3
B3 aB3A1A3A3A2,
Resultado:
A2 b,
A2 bA3A2B3A1,
A3 bA3A2,
A1 bA3,
A1 bA3A2B3A1A3,
B3 aA1A3A3A2,
B3 aB3A1A3A3A2,
B3 aB3A1A3A3A2B3,
A2 aA1,
A2 aB3A1,
A2 bA3A2A1
A3 a,
A3 aB3,
A3 bA3A2B3,
A1 aA1A3,
A1 aB3A1A3,
A1 bA3A2A1A3,
B3 bA3A3A2,
B3 aB3A1A3A3A2,
B3 bA3A2B3A1A3A3A2,
B3 bA3A3A2B3,
B3 aA1A3A3A2B3,
B3 bA3A2B3A1A3A3A2B3, B3 aB3A1A3A3A2B3
14
los asociados con los lenguajes libres de contexto. Los determinsticos aceptan
una familia mas restringida de lenguajes.
Un autmata con pila no determinstico(APND) es una septupla (Q,A,B,,q0,Z0 F)
en la que
Q es un conjunto finito de estados
A es un alfabeto de entrada
B es un alfabeto para la pila
es la funcin de transicin
: Q (A { } ) B Q B*)
q0 es el estado inicial
Z0 es el smbolo inicial de la pila
F es el conjunto de estados finales
La funcin de transicin aplica cada estado, cada smbolo de entrada (incluyendo
la cadena vaca) y cada smbolo tope de la pila en un conjunto de posibles
movimientos. Cada movimiento parte de un estado, un smbolo de la cinta de
entrada y un smbolo tope de la pila. El movimento en s consiste en un cambio de
estado, en la lectura del smbolo de entrada y en la substitucin del smbolo tope
de la pila por una cadena de smbolos.
Ejemplo Sea el autmata M =({ q1, q2} , { 0, 1, c} , { R, B, G} , , q1, R, 0)donde
(q1, 0, R)={ (q1, BR)}
(q1, 0, B)={ (q1, BB)}
(q1, 0, G)={ (q1, BG)}
(q1, c, R)={ (q2, R)}
(q1, c, G)={ (q2, G)}
(q2, 1, G)={ (q2, )}
Estado
q
q
q
q
q
Falta leer
abba
bba
ba
ba
a
Pila
Transicin
A
ba
ba
A
1
2
3
5
4
S [q0, Z0, q1
]
hora vamos a establecer el resultado por el que iniciamos el estudio de los AP,
es decir, verificar si son efectivamente capaces de aceptar los LLC.
Sea una gramtica G = (V,,R, S). Entonces un Autmata de Pila M que acepta
exactamente el lenguaje generado por G se define como sigue:
M = ({p, q},, V , , p, {q})
donde contiene las siguientes transiciones:
1. Una transicin ((p, , ), (q, S))
2. Una transicin ((q, ,A), (q, x)) para cada A x R
3. Una transicin ((q, , ), (q, )) para cada 2
Ejemplo.- Obtener un AP que acepte el LLC generado por la gramtica con reglas:
1. S aSa
2. S bSb
3. S c
Las transiciones del AP correspondiente estn dadas en la tabla siguiente:
1
2
3
4
5
6
7
(p, , )
(q, ,S)
(q, ,S)
(q, ,S)
(q,a, a)
(q,b, b)
(q,c, c)
(q,S)
(q,aSa)
(q,bSb)
(q,c)
(q, )
(q, )
(q, )
Falta leer
abcba
abcba
abcba
bcba
bcba
cba
cba
ba
a
Pila
S
aSa
Sa
bSba
Sba
cba
ba
a
omenzamos esta seccin con un lema que nos da una condicin necesaria
que deben de cumplir todos los lenguajes libres de contexto. Nos sirve para
demostrar que un lenguaje dado no es libre de contexto, comprobando que no
cumple esta condicin necesaria.
Lema 2 (Lema de Bombeo para lenguajes libres de contexto) Sea L un
lenguaje libre de contexto. Entonces, existe una constante n, que depende solo de
L, tal que si z L y |z| n, z se puede escribir de la forma z = uvwxy de manera
que
1. |vx| 1
2. |vwx| n, y
i
i
3. i 0, uv wx y L
Demostracin.- Supongamos que la gramtica no tiene producciones nulas ni
unitarias (si existiesen siempre se podran eliminar). Supongamos un rbol de
derivacin de una palabra u generada por la gramtica. Es fcil ver que si la
longitud de u es suficientemente grande, en su rbol de derivacin debe existir un
camino de longitud mayor que el nmero de variables. Sea N un nmero que
garantice que se verifica esta propiedad. En dicho camino, al menos debe de
haber una variable repetida. Supongamos que esta variable es A, y que la figura
6.1 representa el rbol de derivacin y dos apariciones consecutivas de A.
n n
j i
eorema Los lenguajes libres de contexto son cerrados para las operaciones:
Unin
Concatenacin
Clausura
Demostracin
Sean G1 =(V1, T1, P1, S1) y G2 =(V2, T2, P2, S2) dos gramticas libres de contexto y
L1 y L2 los lenguajes que generan. Supongamos que los conjuntos de variables
son disjuntos. Demostraremos que los lenguajes L1 L2, L1L2 y L1* de tipo 2 que
los generen. Son libres de contexto, encontrando gramticas
L1 L2. Una gramtica que genera este lenguaje es G3 =(V1 V2 {S3}, T1 T2,
P3, S3), donde S3 es una nueva variable, y P3 =P1 P2 ms las producciones
S3 S1 y S3 S2.
L1L2. Una gramtica que genera este lenguaje es G4 =(V1V2{S4}, T1T2,P4,S4),
donde S4 es una nueva variable, y P4 =P1 P2 ms la produccin S4 S1S2.
L1* Una gramtica que genera este lenguaje es G5 =(V1{S5}, T1P5,S5 ) donde
P5 es P1 ms las producciones S5 S1S5 y S5 .
Algunas propiedades de clausura de los lenguajes regulares no se verifican en la
clase de los lenguajes libres de contexto, como las que expresan el siguiente
teorema y corolario.
Algunas propiedades de clausura de los lenguajes regulares no se verifican en la
clase de los lenguajes libres de contexto, como las que expresan el siguiente
teorema y corolario.
Teorema La clase de los lenguajes libres de contexto no es cerrada para la
interseccin.
Demostracin.-Sabemos que el lenguaje L ={ aibicj | i 1} no es libre de contexto.
Por otra parte los lenguajes L2 ={aibicj | i 1 y j 1} y L3 ={ aibjcj | i 1 y j 1} si lo son.
El primero de ellos es generado por la gramtica:
S AB
A aAb|ab
B cB|c
y el segundo, por la gramtica:
S CD
C aC|a
D bDc|bc
Como L2 L3 = L1, se deduce que la clase de lenguajes libres de contexto no es
cerrada para la interseccin
Corolario La clase de lenguajes libres de contexto no es cerrada para el
complementario.
Demostracin.Es inmediato, ya que como la clase es cerrada para la unin, si lo fuese para el
complementario, se podra demostrar, usando las leyes De Morgan que lo es
tambin para la interseccin.
LECCION 28. - ALGORITMOS DE DECISIN PARA LOS LENGUAJES LIBRES
DE CONTEXTO
A BC, A a
Se construye entonces un grafo dirigido en el que los vrtices son las variables y
en el que para cada produccin de la forma A BC se consideran dos arcos: uno
de A a B y otro de A a C. Se puede comprobar que el lenguaje generado es finito
si y solo si el grafo construido de esta forma no tiene ciclos dirigidos.
Ejemplo Consideremos la gramtica con producciones,
S AB
A BC|a
B CC|b
Ca
El grafo asociado es el de la figura 28(a). No tiene ciclos y el lenguaje es finito. Si
aadimos la produccin C AB, el grafo tiene ciclos (figura 28(b)) y el lenguaje
generado es infinito.
Figura 28: Grafo asociado a una gramtica de tipo 2 con lenguaje finito e Infinito
Los lenguajes libres de contexto tienen una aplicacin a los compiladores, aunque
existen otras aplicaciones como la comparticin de informacin. Es aqu donde se
presentan interrogantes a las denominadas gramticas sensibles al contexto.
Para gramticas sensibles al contexto, el problema de decidir si el lenguaje que
genera es vaco o no tambin es un problema indecidible.
Se ha demostrado que hay infinitos problemas para los que no se va a tener una
MT que los resuelva (ni siquiera los reconozca). Tambin se ha formulado la tesis
de Church-Turing, que determina el lmite de los computadores actuales. Si esto es
as, llegamos al caso de formular la pregunta:
Qu tipo de mquina es un computador actual?
Como ya se habr supuesto, es una mquina programable en el sentido de la
Mquina Universal de Turing. Para demostrar esta afirmacin, se proceder como
siempre: primero simular una MT con un computador y segundo simular
un computador con una MT.
INTRODUCCIN
En las Unidades precendentes se han estudiado lo que se puede considerar las
mquinas abstractas que permiten solucionar ciertos tipos de algoritmos, los
algoritmos en los que no puede recordarse ms que una cantidad fija de
informacin y otros en los que la informacin desarrollada durante la ejecucin del
algoritmo puede recuperararse solo en concordancia con la regla lifo ltimos en
entrar primeros en salir, en esta unidad se describe una maquina abstracta,
llamada Mquina de turing , que es aceptada de manera amplia como modelo
general de computacin, aunque las operaciones bsicas de esta mquina son
comparables en su sencillez a las de las mquinas estudiadas en las unidades
anteriores, las nuevas maquinas pueden realizar una mplia varidad de
operaciones de computo. Adems de aceptar lenguajes les es posible computar
funciones y de conformidad con la tesis de Church-Turing, ejecutar casi cualquier
procedemiento algoritmico concebible.
OBJETIVO GENERAL
Reconocer la importancia y el poder computacional de las maquinas de turing en el
contexto de la solucin de problemas computacionales de reconocimiento de
lenguajes.
OBJETIVOS ESPECIFICOS
Estudiar las Mquinas de Turing y sus propiedades bsicas.
Turing propuso
en los aos 30 un modelo de mquina abstracta, como una
extensin de los autmatas finitos, que result ser de una gran simplicidad y
podero a la vez
La mquina de Turing es particularmente importante porque es la ms poderosa
de todas las mquinas abstractas conocidas (A. Turing.- On computable
numbers with an application to the Entscheidungs-problem, Proc. London
Math. Soc., v.2, n.42, pp230-265.)
LECCION 32. - FUNCIONAMIENTO DE LA MQUINA DE TURING
a mquina de Turing (abreviado MT) tiene, como los autmatas que hemos
visto antes, un control finito, una cabeza lectora y una cinta donde puede haber
caracteres, y donde eventualmente viene la palabra de entrada. La cinta es de
longitud infinita hacia la derecha, hacia donde se extiende indefinidamente,
llenndose los espacios con el caracter blanco (que representaremos con t). La
cinta no es infinita hacia la izquierda, por lo que hay un cuadro de la cinta que es
el extremo izquierdo, como en la figura En la MT la cabeza lectora es de lectura y
escritura, por lo que la cinta puede ser modificada en curso de ejecucin. Adems,
en la MT la cabeza se mueve bidireccionalmente (izquierda y derecha), por lo que
puede pasar repetidas veces sobre un mismo segmento de la cinta.
La operacin de la MT consta de los siguientes pasos:
1. Lee un caracter en la cinta
2. Efectua una transicin de estado
3. Realiza una accin en la cinta
Las acciones que puede ejecutar en la cinta la MT pueden ser:
Escribe un smbolo en la cinta, o Mueve la cabeza a la izquierda o a la derecha
Estas dos acciones son excluyentes, es decir, se hace una o la otra, pero no
ambas a la vez.
La palabra de entrada en la MT est escrita inicialmente en la cinta, como es
habitual en nuestros autmatas, pero iniciando a partir de la segunda posicin de
la cinta, siendo el primer cuadro un caracter blanco. Como la cinta es infinita,
inicialmente toda la parte de la cinta a la derecha de la palabra de entrada est
llena del caracter blanco (t).
Ejemplo.- Disear una MT que acepte las palabras en {a, b} que terminen con a.
Aunque este ejemplo parece bastante similar al precedente, en realidad es ms
complicado, pues para ver cul es la ltima letra, hay que ir hasta el blanco a la
derecha de la palabra, luego regresar a la ultima letra y verificar si es una a. Una
solucin se muestra en la figura 3.
LAS
En esta situacin son suficientes dos estados. En el estado inicial la mquina puede
permanecer desplazando la cabeza hacia la derecha hasta que encuentra un b. Esa
es la idea central para la construccin de la mquina. Paso a paso se ha de ir
definiendo cada instruccin necesaria para seguir la estrategia de trabajo. Y slo se
introducir un nuevo estado cuando se necesite. En este caso se llega a:
1/1D
so
s1
1 D s0
1 D s0
b N s1
b I s1
b N s1 = Parada
1/bN
b/bI
s0
s1
0/1D
b/bN
Diagrama de estados
Matriz de Turing
o Esquema funcional
s0
s1
s1
s1
s1
s1
bb11..1011..1b
bbb1..1011..1b
..................
bbb1..1011..1b
bbb1..1111..1b
. . . . . . . . . . . . . . . .....
Configuracin final: s1 b b b 1 . . 1 1 1 1 . . 1 b
Tambin hay que comprobar para 1er sumando = 0 y/o 2 sumando = 0.
Para una descripcin instantnea inicial distinta, la MT sera algo distinta. Por
ejemplo, si se partiese de la configuracin inicial s0 ... b b b ... b 1 1 ... 1 0 1 1 ... 1 b
b ...,
la MT correspondiente sera (borrando el 1er "1" del 1er n):
M2
s0
b D s0
b D s1
s1
b N s1
1 D s1
0
0 D s1
1 D s1
Hay que hacer notar que si se partiese de la 1 MT (borrando el ltimo "1" del 2 n)
habra que introducir un estado ms, porque habra que distinguir 3 tipos de b: Los
que se recorren hacia la derecha al principio, el primero que se encuentra cuando ha
terminado de barrerse el 2 n y el b que se encuentra al volver a la izquierda (por
transformacin del ltimo "1" del 2 n).
xi + n - 2
i=1
Para n = 2, f (x1,x2) = x1 + x2
Me
s0
1 D s0
1 D s1
s1
1 D s1
s2
b N s2
0 N s1
parada
error
b I s2
b N s2
parada
buena
Esquema funcional
s0
s1
1 D s1
b I s2
1 D s0
1 D s1
s2
b N s2
b N s2
hay que incluir dentro de la fase 3 una exploracin de la quntupla, una vez
encontrada, para decidir si hay que parar o continuar.
-Es complicado explicitar detalladamente las instrucciones que componen cada fase
del Algoritmo Universal, debido al carcter unidimensional de la cinta y a la
exploracin casilla a casilla.
- Es obligada una codificacin de la informacin. El n de alfabetos y de caracteres
distintos de todas las posibles M T particulares que puedan pensarse es
arbitrariamente grande y, sin embargo, la M U T slo puede disponer de un alfabeto
finito determinado. Esto obliga a definir procedimientos para codificar la informacin
de cualquier alfabeto finito al alfabeto que definamos para la M U T. Por el mismo
motivo ha de haber una normalizacin en la notacin de los estados (el estado inicial
de cualquier M T debe ser designado con el mismo smbolo, y as para los
sucesivos).
Una metodologa para la aplicacin de este concepto de normalizacin de la
informacin es la numeracin de Gdel, que se ve en Funciones Recursivas.
0,1,2,
Codificacin de palabras
Sean las letras del alfabeto Zi A y Z una palabra Z = Z1 Z2Zn
Z tiene un cdigo c(Z) = b b c ( Z1) b c (Z2) b b c (Zn) b
Sobre el trabajo de la MUT (continuacin)
La entrada a la MUT est dada por una MT y una palabra Z. La entrada codificada
es: c(T) c(Z).
Obsrvese que entre el final del cdigo de la ltima quntupla y el comienzo del
cdigo de Z hay tres blancos.
Es fcil construir la MT que transforma T en c(T) y Z * en c(Z).
Para simular el trabajo de T con una entrada Z, la entrada a la MUT es c(T) c(Z). El
trabajo ha de ser:
a) Cuando la funcin parcial que calcula T est definida para Z, T se detiene y da s
como resultado. En este caso la MUT debe parar y dar c(s) como resultado.
z
s
c(T) c(Z)
MUT
c(T) c(s)
La
Alan Turing
Alonzo Church
"La clase de las funciones que pueden ser calculadas mediante un algoritmo
coincide con la clase de las funciones recursivas." (Tesis de Church).
ENUNCIADOS: TURING
Es decir, si una funcin es computable entonces puede ser computada por una
mquina de Turing.
CHURCH Y TURING
"Toda funcin que pueda ser fsicamente computable, puede ser computada
por una mquina de Turing"
ORIGEN
XITO DE LA TESIS
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.
Teorema: Todo lenguaje estructurado por frases es aceptado por una mquina de
Turing.
Demostracin: Para cada gramtica G existe una mquina de Turing no determinista
M de 2 cintas que aceptas el lenguaje generado por G.
Construccin de la mquina:
1. Se copia la cadena de entrada en la primera cinta.
2. Se escribe S (smbolo inicial) en la cinta 2.
3. Se aplican las reglas de reescritura de forma no determinista a la cadena de la
cinta 2.
4. Si la cinta 2 contiene slo smbolos terminales, se compara con la cadena de la
cinta 1. Si son iguales, el proceso ha terminado. Si no, provocar una terminacin
anormal.
Hay otras definiciones de las mquinas de Turing que son equivalentes. Algunos de
esos modelos alternativos son mucho ms complicados aunque todos tienen la misma
potencia computacional (o de clculo). Muchas de ellas dotan de mayor flexibilidad al
diseo de una mquina de Turing que resuelva un problema en particular.
Mquina de Turing con Directiva de Permanecer
Recurdese que la mquina de Turing sencilla sita la cabeza de lectura/escritura
sobre el primer B que haya a la izquierda de la posicin actual. Para hacerlo, busca
fuera de la celda actual y retrocede. Esto es debido a la definicin original que
requiere que por cada transicin se mueva la cabeza de la cinta.
La funcin de transicin estaba definida como: d: Q x G Q x G x {R, L} y puede ser
modificada como: d: Q x G Q x G x {R, L, S} donde S significa permanecer, es
decir no mover la cabeza de lectura/escritura. Por tanto d(q, s)=(p, s, S) significa que
se pasa del estado q al p, se escribe s en la celda actual y la cabeza se queda sobre
la celda actual.
es
no
no
no
En
Los problemas de Hilbert son una lista de 23 problemas matemticos compilados por
el matemtico alemn David Hilbert para la conferencia en Pars del Congreso
Internacional de Matemticos de 1900. Los problemas estaban todos por resolver en
aquel momento, y varios resultaron ser muy influyentes en la matemtica del siglo XX.
Hilbert present diez de los problemas (1, 2, 6, 7, 8, 13, 16, 19, 21 y 22) en la
conferencia, en un acto el 8 de agosto en La Sorbona.
El estilo fue al menos tan influyente como el contenido de los problemas. Hilbert
solicitaba clarificaciones. Pidi soluciones en principio a preguntas algortmicas, no a
algoritmos prcticos. Pidi un fortalecimiento de los cimientos de partes de la
matemtica que a los no practicantes an se antojaban guiadas por intuiciones
opacas (el clculo de Schubert y la geometra enumerativa).
Estas actitudes fueron adoptadas por muchos seguidores, aunque tambin fueron
discutidas, y continan sindolo. Treinta aos despus, Hilbert haba endurecido su
postura: vase ignorabimus.
Los veintitrs problemas de Hilbert son:
Problema 1. La hiptesis del continuo (esto es, no existe conjunto cuyo tamao est
estrictamente entre el de los enteros y el de los nmeros reales) Se ha probado la
imposibilidad de probarlo como cierto o falso mediante los axiomas de ZermeloFraenkel. No hay consenso al respecto de considerar esto como solucin al problema.
Problema 2. Probar que los axiomas de la aritmtica son consistentes (esto es, que la
aritmtica es un sistema formal que no supone una contradiccin). Parcialmente
resuelto: hay quienes sostienen que se ha demostrado imposible de establecer en un
sistema consistente, finitista y axiomtico Sin embargo, Gentzen prob en 1936 que la
consistencia de la aritmtica se deriva del buen fundamento del ordinal0, un hecho
sujeto a la intuicin combinatoria.
Problema 3. Se puede probar que dos tetraedros tienen igual volumen (bajo ciertas
asunciones)? Resuelto. Resultado: no, probado usando invariantes de Dehn
Problema 4. Construir todas las mtricas cuyas rectas sean geodsicas. Demasiado
vago para decidir si se ha resuelto o no.
Problema 5. Son los grupos continuos grupos diferenciales de forma automtica?.
Resuelto por Andrew Gleason
Problema 6. Axiomatizar toda la fsica. Sin resolver. No matemtico
Problema 7. Es a b trascendental, siendo a 0,1 algebraico y b irracional
algebraico?. Resuelto. Resultado: s, ilustrado por el teorema de Gelfond o el teorema
de Gelfond-Schneider
Problema 8. La hiptesis de Riemann (la parte real de cualquier cero no trivial de la
funcin zeta de Riemann es ) y la conjetura de Goldbach (cada nmero par mayor
que 2 se puede escribir como la suma de dos nmeros primos). Abierto
Problema 9. Encontrar la ley ms general del teorema de reciprocidad en cualquier
cuerpo numrico algebraico. Parcialmente resuelto
Problema 10. Encontrar un algoritmo que determine si una ecuacin diofntica
polinmica dada con coeficientes enteros tiene solucin entera. Resuelto. Resultado:
no, el teorema de Matiyasevich implica que no existe tal algoritmo.
Problema 11. Resolver las formas cuadrticas con coeficientes numricos
algebraicos. Parcialmente resuelto
Problema 12. Extender el teorema de Kronecker sobre extensiones abelianas de los
nmeros racionales a cualquier cuerpo numrico de base. Abierto
Problema 13. Resolver todas las ecuaciones de 7 grado usando funciones de dos
parmetros. Resuelto. Lo prob posible Vladimir Arnold.
Problema 14. Probar la finitud de ciertos sistemas completos de funciones. Resuelto.
Resultado: no, en general, debido a un contraejemplo
Problema 15. Fundamento riguroso del clculo enumerativo de Schubert.
Parcialmente resuelto
Problema 16. Topologa de las curvas y superficies algebraicas. Abierto
Problema 17. Expresin de una funcin definida racional como cociente de sumas de
cuadrados. Resuelto. Resultado: se estableci un lmite superior para el nmero de
trminos cuadrados necesarios
Problema 18. Existe un poliedro irregular y que construya otros poliedros? Cual es
el apilamiento compacto ms denso?. Resuelto.
Problema 19. Son siempre analticas las soluciones de los Lagrangianos? Resuelto.
Resultado: s
Problema 20. Tienen solucin todos los problemas variacionales con ciertas
condiciones de contorno?. Resuelto. Ha supuesto un rea importante de investigacin
durante el siglo XX, culminando con las soluciones al caso no lineal.
Problema 21. Probar la existencia de ecuaciones lineales diferenciales que tengan un
grupo monodrmico prescrito Resuelto. Resultado: s o no, dependiendo de una
formulacin ms exacta del problema.
Problema 22. Uniformizacin de las relaciones analticas por medio de funciones
automrficas. Resuelto
Problema 23. Extensin de los mtodos del clculo de variaciones Resuelto
Si es soluble.
Si es un problema soluble.
No es insoluble.
Un lenguaje decidible es aquel lenguaje L para el cual existe una maquina de Turing
que le puede aceptar cualquier cadena {w L}.
Hay lenguajes formados por cadenas tales que una maquina de Turing logra un
estado final con las cadenas que reconoce y acepta, solamente. En este caso se dice
que la maquina de Turing semidecide al lenguaje. Los lenguajes semidecididos por
una MT se llaman recursivos numerables. Las gramticas sin restricciones son las
que generan los lenguajes recursivos numerables. De aqu en adelante ser suficiente
referirse a los lenguajes recursivos numerables, pues estos generalizan a los
lenguajes recursivos, los cuales generalizan a los lenguajes libres de contexto, y estos
a los lenguajes regulares. Lo anterior tiene relacin directa con que los autmatas de
Turing generalizan a los de la pila y estos a su vez a los autmatas finitos. Por otro
lado, pese a que lenguajes formales ms generales que los recursivos numerables no
son reconocidos por un automata de Turing, no existe hasta el momento ningn
autmata ms poderoso capaz de reconocerlos.
En terminos de procedimientos, las cadenas de un lenguaje decidible corresponden a
procedimientos que terminan, ya sea realizando lo que indica la palabra sealando
que no tienen la capacidad de realizarlo. Para un lenguaje semidecidible, las cadenas
decididas por la MT son instrucciones realizadas por la MT. De manera
complementaria, las cadenas no decidibles por la MT corresponden a procedimientos
que no terminan utilizando una maquina de Turing. A partir de lo dicho aqu tenemos
la definicin de algoritmo:
Es decir, si un dado un conjunto de entradas bajo las cuales una MT logra un estado
de parada para cada entrada, la maquina corresponde a la implementacin de un
algoritmo. Esta es la Tesis de Church Turing. No es un teorema pues no se puede
demostrar matemticamente, de manera general y categrica. Es solo la afirmacin
de que el concepto informal del algoritmo corresponde a un objeto matemtico. Al ser
solo una afirmacin no demostrable, puede suceder que luego fuera refudada. Para
que esto ocurra, se necesitara encontrar un autmata ms potente que uno de Turing
tal que fuese la implementacin de un algoritmo. Si bien hay algunas propuestas
interesantes que pretende generalizar a la MT, hasta la fecha ninguna de ellas ha sido
aceptada para sustituir nuestro actual concepto de procedimiento comprable.
Por otro lado, mientras que los lenguajes computables son una infinidad numerable,
los lenguajes no computables son una infinidad no numerable. Por ello, son ms los
lenguajes no computables o indecidibles. Una teora lgica (TL) se define a partir de
un conjunto de enunciados dados llamados axiomas, unas reglas de inferencia y un
esquema de derivacin. A partir de los axiomas y aplicando la regla de inferencia y el
esquema de derivacin se infieren los teoremas de la teora. El conjunto de teoremas
de la teora forma un lenguaje formal.
Si es posible definir una maquina de Turing tal que reconozca al lenguaje de los
teoremas, este lenguaje es decidible y la teora tambin lo es en consecuencia. Dicho
en otras palabras, si el conjunto de teoremas visto como un lenguaje es reconocido
por una maquina de Turing, entonces la TL es decidible. Y viceversa. Puede hablarse
entonces de manera indistinta de teoras lgicas o de lenguajes decididles, como
aquellos para los que existe una maquina de Turiong capaz de reconocerlos. Luego la
correspondencia entre la sintaxis de una teora lgica (lenguaje formal) y
reconocimiento simblico del mismo por parte de un autmata queda establecida.
Ejemplo:
Muestre que la coleccin de lenguajes decidibles por maquina de Turing para un
alfabeto cualquiera es infinita, pero contable.
Solucin:
{Lenguajes independientes de contexto} es infinito
{Lenguajes independientes de contexto} {Lenguajes decidibles por Turing}
{Lenguajes decidibles por Turing}
{Lenguajes estructurados por frases} es contable
{Lenguajes decidibles por Turing} {Lenguajes estructurados por frases}
{Lenguajes decidibles por Turing} es contable
Los lenguajes decidibles en tiempo polinomico son aquellos lenguajes para los que
una maquina de Turing puede determinar si una cadena pertence al lenguaje. Implica
reconocer el complemento del lenguaje.
Puede
Solucin:
La respuesta a esta pregunta es negativa. No se puede determinar si una mquina de
Turing se detiene con una entrada arbitraria.
Demostracin:
Para demostrarlo, supongamos que el problema de la parada tiene solucin, es decir,
supondremos que existe una mquina de Turing que es capaz de determinar si otra
mquina de Turing para con una entrada determinada.
Consideremos una mquina de Turing P, que recibe como entrada una mquina de
Turing M y una cadena w codificada en la cinta y una a continuacin de la otra (Mw), y
que se encarga de ejecutar M sobre la cadena w. La mquina P parar y aceptar la
entrada si M para con w, y parar y rechazar la entrada si M no para con w.
Ahora crearemos una mquina D, cuya funcin es la siguiente. Recibe una mquina
M, la pasa por una mquina que se encarga de copiar la mquina M a continuacin.
Por lo tanto, a la salida de la mquina copia, la cinta contendr MM (la codificacin
de la mquina repetida). A continuacin, D coge este resultado y lo pasa a travs de
P'. Con esto intentamos decidir si la mquina M para con la entrada M. Es decir, si M
para con la entrada M, entonces D no para, y si M no para con la entrada M,
entonces D para.
Se cita un ejemplo:
P1.- Hay hambre en el mundo.
P2.- Hay que redistribuir parte de la riqueza
El problema del hambre en el mundo se reduce a redistribuir riqueza. P2 es un
problema mucho ms general, pues adems de solucionar el hambre tambin
solucionara otros ms.
Hay que hacer notar que este mtodo no hace referencia a la manera en la que
se soluciona P1 o P2, sino que determina como la solucin de P2 conduce a
solucionar P1. Tambin se puede ver que P2 es un problema ms general que P1.
De hecho este mtodo no funcionara en el sentido inverso: siempre se reduce un
problema a otro ms general.
Otro ejemplo ms tpico: El jefe al fin se ha decidido a dar las vacaciones, pero
estamos a 30 de julio y queremos ir con la familia, que resulta que est en Australia.
El problema entonces se reduce a encontrar un billete de avin a este destino.
Que haya que demostrar que L2 es RE. Para ello partimos de la certeza de que L1
es RE (por ejemplo Lu) y lo reducimos a L2. Se supondr que este ltimo es
decidible, es decir, que se puede encontrar una MT que, siendo la entrada una
cadena de L1, esta se puede convertir en una cadena de L2, y decidir si esta
ltima pertenece a L2 o no. Si se encuentra al algoritmo de conversin, se habr
encontrado una MT que es capaz de reducir L1 a L2, y por tanto, la manera de
decidir L1. Pero esto es una contradiccin, pues sabemos de antemano que L1 es
RE, por lo que, forzosamente, L2 no puede ser decidible. Se llega a la conclusin de
que L2 tambin es RE.
Que haya que demostrar que L2 no es RE. Para ello partimos de la certeza de que
ACTIVIDADES:
Ejercicios Propuestos:
EJERCICIOS DE AUTOMATAS CON PILA
CONCEPTOS BSICOS
2.- Definir formalmente el lenguaje reconocido por el siguiente autmata con pila:
A = ({a,b,c}, {S,A,B}, {q,r,s,p}, q, S, f, )
f(q, a, S) = {(r, S)}
f(q, b, S) = {(s, BS)}
f(q, a, A) = {(r, A)}
f(q, b, A) = {(s, )}
f(r, a, S) = {(q, AS)}
f(r, a, A) = {(q, AA)}
f(q2, b, b) = {(q2, )}
f(q2, a, a) = {(q2, )}
f(q2, , Z) = {(q2, )}
CONSTRUCCIN DE AUTMATAS
4.- Construir un autmata con pila que reconozca cada uno de los siguientes
lenguajes:
(a) L = { anb2n/ n > 0 }
(b) L = { anbmcn/ n, m > 0 }
Ejercicios de Autmatas con Pila 2
(c) L = { x / x {0,1}+ & n 0s = n 1s }
(d) L = { aibjci+j / i, j > 0 }
(e) L = { a2ib3i / i >= 0 }
(f) L = { anbmc2man+2, m > 0, n >= 0 }
(g) L = { xcy / x,y {a, b}+, n de subcadenas ab en x = n de subcadenas ba
en y }
(h) L = { 0n1n / n > 0 } { 0n12n / n > 0 }
(i) L = {anbmcrasbn/ s = m + r, m,n > 0, r 0}
(j) L = {a2nbm0ib2man, i = 0 1, m, n > 0}
(l) L = {x1n2mx-1 / n, m = 0 1 y x {a, b}+}
(m) L = {anbmcp / n,m >= 0, p > n + m}
5.- Construir un autmata con pila que reconozca por vaciado de pila el lenguaje
que contiene las palabras formadas por los smbolos 0, 1 y 2 que tienen
tantas apariciones de las secuencia 01 como del smbolo 2.
6.- Construir un autmata con pila que reconozca por vaciado de pila las palabras
formadas por los smbolos a y b que tengan doble nmero de smbolos a que
de smbolos b (incluyendo ). Es decir, el autmata deber reconocer por
ejemplo las palabras aabbaa, abbaaa, bababaaaa, bbbaaaaaa, y no debe
reconocer palabras como abab, abbabab, a, b, aaa, bbb.
7.- Construir un autmata con pila que reconozca, por vaciado de pila, el lenguaje
formado por las cadenas que contienen smbolos de abrir y cerrar parntesis, es
decir ( y ), que cumple las siguientes condiciones:
- todo parntesis que se abre debe ser cerrado posteriormente
- todo parntesis que se cierra debe haber sido abierto anteriormente
- se permiten los parntesis anidados.
Tnganse en cuenta los siguientes ejemplos de cadenas reconocidas y no
reconocidas
por el autmata:
Cadenas reconocidas
Cadenas no reconocidas
()()((()())())
()())
((()))()
)()(
((())(()))()()(()())
(((()
Solucin:
Acepta la cadena vaca.
Segn la rama superior, toda x que se reciba, se registrar en la pila; y el estado
siguiente ser de aceptacin.
Segn la rama inferior, slo se aceptar la entrada y si se puede sacar una x de la
pila.
Conclusin:
Acepta cualquier cadena que (empezando a contar por la izquierda) contenga un
nmero de y menor o igual a que de x. Pueden estar intercaladas
Ejemplos: xyx, xxy, xxyxyx, etc.
2.- Modifique el diagrama de transiciones del ejercicio anterior para que el
autmata de pila acepte el mismo conjunto de cadenas, pero con su pila vaca.
Solucin:
3.- Muestre que toda cadena derivada por la izquierda de una gramtica
independiente del contexto puede derivarse tambin por la derecha.
Solucin:
El lado por donde se empieza a construir (por la derecha o por la izquierda) slo
tiene relevancia en las etapas intermedias de la construccin del rbol. Pero con la
construccin terminada, no es relevante el lado por donde se empez. La cadena
es la misma en ambos casos.
BIBLIOGRAFIA
RODRIGUEZ COSTA Sergio, (1996,2009). Las Mquinas de Turing. Extrado el 19 Febrero
de 2009 desde http://www.rastersoft.com/articulo/turing.html
RODRIGUEZ COSTA Sergio, (1996,2009). Las Mquinas de Turing. Extrado el 19 Febrero
de 2009 desde http://www.rastersoft.com/articulo/turing.html
BRENA PIERO, Ramn F. Autmatas y lenguajes un enfoque de diseo (2003) ITESM.
Extrado el 23 de Marzo de 2011 desde http://lizt.mty.itesm.mx/~rbrena/AyL.html
AUTOMATAS, (2004, 2008) Web de la asignatura Universidad Rey Juan Carlos. Autmatas,
Lenguajes regulares, Mquina de Turing,Pilas: (Extrado el 15 de Abril
de 2011
desde http://www.ia.escet.urjc.es/grupo/docencia/automatas
WIKIPEDIA, (1995,2011). Mquinas de Turing. Extrado el 24 de Mayo de 2011 desde
http://es.wikipedia.org/wiki/M%C3%A1quina_de_Turing
AUTOMATAS, (2000,2006). Autmatas Industriales. Extrado el 03 de Febrero de 2006
desde http://www.automatas.org/
BOVET JEAN, (2004, 2006) Visual Autmata Simulator. Extrado el 25 de Marzo de 2011
desde http://www.automatas.org/
JFLAP, (2004, 2008) JFLAP Version 7.0 Release August 28, 2009. Extrado el 30 de
Mayo de 2011 desde http://www.jflap.org/
PROYECTO SEPA, Software para la enseanza de Parsing. (n.d.). Extrado el 18 de
Marzo de 2011 desde http://www.ucse.edu.ar/fma/sepa/
de
de