You are on page 1of 252

Tema I: Introduccin a la teora de autmatas

Cmo estudiar este tema?

Por qu estudiar teora de autmatas?

Introduccin a las demostraciones formales

Otras formas de demostracin

Induccin matemtica

Alfabetos, cadenas y lenguajes

Teora de autmatas y lenguajes formales 2


Por qu estudiar teora de autmatas?

Teora de autmatas y lenguajes formales 3


Por qu estudiar teora de autmatas?

Estudio de mquinas abstractas con capacidad de computacin

La mquina de Turing es un modelo computacional


que estudiaba si hay un mtodo definido que pueda
aplicarse a cualquier sentencia matemtica y que
nos diga si es cierta o no.
Turing construy un modelo formal de computador
y demostr que existan problemas que una
mquina no poda resolver (publicado en 1936).
La mquina de Turing es un modelo matemtico
abstracto que formaliza el concepto de algoritmo.

Teora de autmatas y lenguajes formales 4


Por qu estudiar teora de autmatas?

Dcadas 40-50: Comienzo del estudio de las mquinas ms simples


(autmatas finitos)
Dcada 50: Chomsky estudio las gramticas formales relacionadas con los
autmatas abstractos y base de algunos componentes de software.
1969: Cook ampli el estudio de Turing. Fue capaz de separar aquellos
problemas que pueden ser resueltos de forma eficiente mediante ordenador,
de aquellos que en principio pueden ser resueltos, pero que en la prctica
consumen demasiados recursos (problemas NP Nondeterministic
Polynomial).

Teora de autmatas y lenguajes formales 5


Por qu estudiar teora de autmatas?

Rama de las ciencias de la computacin que estudia


matemticamente mquinas abstractas y problemas
que ests son capaces de resolver.

La teora de autmatas esta estrechamente


relacionada con la teora del lenguaje formal ya que los
autmatas son clasificados a menudo por la clase de
lenguajes formales que son capaces de reconocer.

Teora de autmatas y lenguajes formales 6


Por qu estudiar teora de autmatas?
Aplicaciones de los autmatas finitos

Diseo y verificacin del comportamiento de circuitos digitales

Analizador lxico de un compilador

Software para explorar textos

Software para comprobar la correccin de protocolos

Teora de autmatas y lenguajes formales 7


Introduccin a las demostraciones formales

Demostracin deductiva: Secuencia de proposiciones cuya veracidad


se comprueba partiendo de una hiptesis (H), hasta llegar a una
conclusin (C).

Si H entonces C implica que C se deduce de H


A B no equivale a B A
A B (A si y solo si B)
0 = 1
0 1

Teora de autmatas y lenguajes formales 8


Introduccin a las demostraciones formales

Teorema 1: Si x 4, entonces 2x x2

Si x es la suma de los cuadrados de cuatro enteros positivos, entonces 2x x2

Teora de autmatas y lenguajes formales 9


Otras formas de demostracin
Demostraciones sobre conjuntos

Cuando sea necesario demostrar que dos conjuntos definidos de


distinta manera son el mismo, se suele dividir en dos partes (doble
implicacin):


Ley conmutativa de la unin
R S=S R
Ley distributiva de la unin respecto de la interseccin
R (S T) = (R S) (R T)

Teora de autmatas y lenguajes formales 10


Otras formas de demostracin

Demostracin por el contrarrecproco

Conversin contradictoria:

Si H entonces C es si no C entonces no H
es

No confundir con la inversa:

Si H entonces C es si C entonces H

Teora de autmatas y lenguajes formales 11


Otras formas de demostracin

Demostracin por el reduccin al absurdo

Otra forma de demostrar una proposicin de la forma


Si H entonces C
consiste en demostrar la proposicin
H y no C implica falsedad
En el momento que se llegue a una contradiccin, ya estar la
demostracin terminada
Si lo que se hace es suponer que se verifica

Teora de autmatas y lenguajes formales 12


Otras formas de demostracin

Contraejemplos

Para demostrar la falsedad de una afirmacin sobre un conjunto de


casos, basta con encontrar uno en el que no se cumpla.

Si x es mltiplo de 3 tambin lo es de 5
Con x=6 se demuestra la falsedad

Teora de autmatas y lenguajes formales 13


Induccin matemtica

Un conjunto definido de manera inductiva cumple:


1. Tiene un primer elemento (caso base)
2. Hay una regla que permite saber cmo ser el sucesor de cada
elemento del conjunto (paso de induccin)

Demostrar una proposicin S(n) acerca de un nmero entero n


Caso base: Demostramos S(i) para un entero i (normalmente i=0 o 1)
Paso de induccin: n i, demostramos que si S(n) entonces S(n+1)

Principio de induccin: Si demostramos S(i) y demostramos que x i, S(n)


implica S(n+1), entonces podemos concluir que se cumple S(n) n i.

Teora de autmatas y lenguajes formales 14


Induccin matemtica

Teora de autmatas y lenguajes formales 15


Alfabetos, cadenas y lenguajes

Teora de autmatas y lenguajes formales 16


Alfabetos, cadenas y lenguajes

Teora de autmatas y lenguajes formales 17


Alfabetos, cadenas y lenguajes
Lenguaje: Conjunto de cadenas cuyos smbolos pertenecen a un alfabeto.

El problema esencial de teora de autmatas es decidir si una cadena


pertenece a un lenguaje determinado.

Una tarea de los compiladores es decidir si una cadena dada, pertenece al


lenguaje de programacin o no.

Teora de autmatas y lenguajes formales 18


Dudas

Teora de autmatas y lenguajes formales 19


Material complementario

Clase magistral
Lo ms recomendado
Tabla de verdad
Cuantificadores
Induccin matemtica
Contrarrecproco
+ Informacin
Aplicaciones de la teora de autmatas
Mquinas de Turing
Breve historia de las mquinas

Teora de autmatas y lenguajes formales 20


Prxima semana

Test tema I

Repasar tema I

Teora de autmatas y lenguajes formales 21


www.unir.net
Tema II: Autmatas finitos deterministas
Cmo estudiar este tema?

Introduccin a los autmatas finitos

Autmatas finitos deterministas

Teora de autmatas y lenguajes formales 2


Introduccin a los autmatas finitos

Los lenguajes regulares son aquellos que pueden describirse


mediante un autmata finito.

Un autmata finito tiene un conjunto de estados y su control


pasa de un estado a otro en respuesta a las entradas externas.

Determinista: El autmata no puede encontrarse en ms de


un estado al mismo tiempo.

No determinista: El autmata puede estar en varios estados


a la vez.

Teora de autmatas y lenguajes formales 3


Introduccin a los autmatas finitos
Ejemplo: Elaboracin de un protocolo para gestionar el dinero
electrnico, garantizando que la operacin es segura.

3 participantes: Cliente, tienda y banco.

Sucesos: Interaccin entre los participantes. Importa la secuencia de los


mismos.

1. El cliente decide pagar. Es decir, el cliente enva el dinero a la tienda.


2. El cliente decide cancelar el pago. El dinero se enva al banco con un
mensaje que indica que el dinero se ha aadido a la cuenta bancaria
del cliente.
3. La tienda suministra los bienes al cliente.
4. La tienda libra el dinero. Es decir, el dinero se enva al banco con la
solicitud de que su valor se asigne a la cuenta de la tienda.
5. El banco transfiere el dinero creando un nuevo archivo de dinero
electrnico cifrado y se lo enva a la tienda.

Teora de autmatas y lenguajes formales 4


Introduccin a los autmatas finitos
Ejemplo:

Protocolo: Se disea el autmata conforme a las exigencias del


protocolo y de la seguridad de operaciones.

Diseo de un autmata: Cmo intervienen los distintos sucesos en


el funcionamiento de un autmata.

Teora de autmatas y lenguajes formales 5


Autmatas finitos deterministas

Teora de autmatas y lenguajes formales 6


Autmatas finitos deterministas

Teora de autmatas y lenguajes formales 7


Autmatas finitos deterministas

Teora de autmatas y lenguajes formales 8


Autmatas finitos deterministas

Teora de autmatas y lenguajes formales 9


Autmatas finitos deterministas
Ejemplo pgina 42 del manual

Teora de autmatas y lenguajes formales 10


Autmatas finitos deterministas
Ejemplo pgina 42 del manual

Teora de autmatas y lenguajes formales 11


Autmatas finitos deterministas
Ejemplo pgina 42 del manual

Teora de autmatas y lenguajes formales 12


Autmatas finitos deterministas

Teora de autmatas y lenguajes formales 13


Dudas

Teora de autmatas y lenguajes formales 14


Material complementario

Clase magistral
Lo ms recomendado
Autmatas finitos deterministas
AFD: la funcin de transicin extendida y el lenguaje
Autmatas finitos
+ Informacin
Ejercicios sobre autmatas
Autmatas conexos
Definition of deterministic finite automata

Teora de autmatas y lenguajes formales 15


Prxima semana

Test tema II

Repasar tema II

Teora de autmatas y lenguajes formales 16


www.unir.net
Tema III: Autmatas finitos no deterministas
Cmo estudiar este tema?

Autmatas finitos no deterministas

Equivalencia entre AFD y AFN

Teora de autmatas y lenguajes formales 2


Autmatas finitos no deterministas

Un autmata finito no determinista (AFN) tiene la capacidad de


estar en varios estados a la vez.

Los AFN aceptan los lenguajes regulares al igual que los AFD.

Los AFN son ms compactos y fciles de disear que los AFD.

Un AFN siempre es posible convertirlo en un AFD.

Teora de autmatas y lenguajes formales 3


Autmatas finitos no deterministas

Al igual que un AFD, un AFN tiene:

Un conjunto finito de estados

Un conjunto finito de smbolos de entrada

Un estado inicial

Un conjunto de estados de aceptacin

Una funcin de transicin

Lo nico que en un AFD hay un nico arco de salida para cada


smbolo y en un AFN puede haber cero, uno o varios arcos.

Teora de autmatas y lenguajes formales 4


Autmatas finitos no deterministas

Teora de autmatas y lenguajes formales 5


Autmatas finitos no deterministas

Teora de autmatas y lenguajes formales 6


Autmatas finitos no deterministas
Ejemplo pginas 47 - 49 del manual

Teora de autmatas y lenguajes formales 7


Autmatas finitos no deterministas
Ejemplo pginas 47 - 49 del manual

Teora de autmatas y lenguajes formales 8


Autmatas finitos no deterministas

Teora de autmatas y lenguajes formales 9


Equivalencia entre AFD y AFN

Teora de autmatas y lenguajes formales 10


Equivalencia entre AFD y AFN

Teora de autmatas y lenguajes formales 11


Equivalencia entre AFD y AFN
Continuacin ejemplo anterior

Teora de autmatas y lenguajes formales 12


Equivalencia entre AFD y AFN Continuacin ejemplo anterior

Teora de autmatas y lenguajes formales 13


Equivalencia entre AFD y AFN
Continuacin ejemplo anterior

Teora de autmatas y lenguajes formales 14


Equivalencia entre AFD y AFN Continuacin ejemplo anterior

Teora de autmatas y lenguajes formales 15


Equivalencia entre AFD y AFN Ejercicios

Teora de autmatas y lenguajes formales 16


Teora de autmatas y lenguajes formales 17
Teora de autmatas y lenguajes formales 18
Teora de autmatas y lenguajes formales 19
Teora de autmatas y lenguajes formales 20
Ejercicios

Teora de autmatas y lenguajes formales 21


Dudas

Teora de autmatas y lenguajes formales 22


Material complementario

Teora de autmatas y lenguajes formales 23


Prxima semana

Test tema III

Repasar tema III

Teora de autmatas y lenguajes formales 24


www.unir.net
Tema IV: Lenguajes y expresiones regulares
Cmo estudiar este tema?

Lenguajes y expresiones regulares

Autmatas finitos y expresiones regulares

Teora de autmatas y lenguajes formales 2


Lenguajes y expresiones regulares

Las expresiones regulares sirven como lenguaje de entrada de


muchos sistemas que procesan cadenas, es decir, denotan
lenguajes

Teora de autmatas y lenguajes formales 3


Lenguajes y expresiones regulares

Operadores de las expresiones regulares ( y son lenguajes):


La unin de y se representa y es el conjunto de cadenas que
estn en , en o en ambos.
= 001, 10, 111 = , 001 = {, 10,001,111}
La concatenacin de y se representa . y es el conjunto de
cadenas que se pueden formar tomando cualquier cadena de y
concatenndola con cualquier cadena de .
= 001, 10, 111 = , 001 . = {001,10,111,001001,10001,111001}
La clausura (estrella, clausura de Kleene) de se representa y es el
conjunto de cadenas que se pueden formar concatenando cualquier
nmero de cadenas de . La descripcin formal es: =
0 1 2
=1 , = , = , = ,

= 0, 1 0 1

Teora de autmatas y lenguajes formales 4


Lenguajes y expresiones regulares

La construccin de expresiones regulares se realiza de forma


inductiva:

1. Caso base

2. Paso de induccin

Adems de describir las expresiones regulares vlidas, para cada


expresin regular se describe el lenguaje que representa ()

Teora de autmatas y lenguajes formales 5


Lenguajes y expresiones regulares

1. Caso base:

Las constantes y son expresiones regulares siendo L = y


L =

Si es cualquier smbolo, entonces es una expresin regular que


denota el lenguaje L = {}

Una variable, escrita en maysculas, como , representa cualquier


lenguaje

Teora de autmatas y lenguajes formales 6


Lenguajes y expresiones regulares

2. Paso inductivo:

Si y son expresiones regulares, entonces + es una expresin regular


que representa la unin de L y L . Siendo L + = () ()

Si y son expresiones regulares, entonces es una expresin regular


que representa la concatenacin de L y L . Siendo L = ()()

Si es una expresin regular, entonces es una expresin regular que


representa la clausura de L . Siendo L = ( )

Si es una expresin regular, entonces () es una expresin regular que


representa el mismo lenguaje que . Siendo L () = ()

Teora de autmatas y lenguajes formales 7


Lenguajes y expresiones regulares

Jerarqua de operaciones

Al igual que con las operaciones aritmticas, es necesario definir el


orden de las operaciones en las expresiones regulares, para evitar
ambigedad en la interpretacin.

Por orden: 1 clausura, 2 concatenacin y 3 unin

Ejemplo: 01 + 1 0 1
+1

Ejemplo: 101 + 0 (10 1 ) + 0

Teora de autmatas y lenguajes formales 8


Lenguajes y expresiones regulares Ejercicios

Teora de autmatas y lenguajes formales 9


Autmatas finitos y expresiones regulares

Los AF y las expresiones regulares describen los mismo lenguajes

La prueba de equivalencia entre ambos consta de probar que:

Todo lenguaje definido por un AF tambin puede ser definido


por una expresin regular

Todo lenguaje definido por una expresin regular tambin


puede ser definido por un AF

Teora de autmatas y lenguajes formales 10


Autmatas finitos y expresiones regulares
Conversin de un AFD en una expresin regular

Sea el AFD , existe una expresin regular tal que = ()

Idea: Construir las expresiones regulares en las que el primer estado es


el inicial y el ltimo pertenece al conjunto de estados de aceptacin.

()
Construccin inductiva: Sean {1,2, , n} los estados de y sea la

expresin regular cuyo lenguaje est formado por todas las cadenas
que van del estado al estado de , sin atravesar ningn nodo con
nmero mayor que

Teora de autmatas y lenguajes formales 11


Autmatas finitos y expresiones regulares
Conversin de un AFD en una expresin regular

1. Caso base: k = 0


0
Si , = en funcin de si no hay ningn
1 + 2 + +
smbolo que satisfaga la condicin, si solo el smbolo la satisface o si
existen smbolos, 1 + 2 + + que lo verifiquen.


0 +
Anlogamente, si = , = ya que se
+ 1 + 2 + +
considera el camino de longitud cero.

Teora de autmatas y lenguajes formales 12


Autmatas finitos y expresiones regulares
Conversin de un AFD en una expresin regular

2. Paso inductivo: Se supone que existe un camino desde el estado hasta


el estado que no pasa por ningn estado mayor que .

El camino no pasa a travs de . En este caso, la etiqueta sobre el


1
camino est en el lenguaje de .

1 1 1
El camino pasa a travs de al menos una vez. ( )

1 1 1 1
= + ( )

()
Por lo tanto, la expresin regular ser la unin de todas las 1
suponiendo que 1 es el estado inicial e .

Teora de autmatas y lenguajes formales 13


Autmatas finitos y expresiones regulares Ejemplo

Teora de autmatas y lenguajes formales 14


Autmatas finitos y expresiones regulares Ejemplo

Teora de autmatas y lenguajes formales 15


Autmatas finitos y expresiones regulares Ejemplo

Teora de autmatas y lenguajes formales 16


Autmatas finitos y expresiones regulares Ejemplo

Teora de autmatas y lenguajes formales 17


Autmatas finitos y expresiones regulares Ejemplo

Teora de autmatas y lenguajes formales 18


Autmatas finitos y expresiones regulares
Conversin de un AFD en una expresin regular por eliminacin de estados

Para que el lenguaje no vare con la eliminacin de estados de , se aade, a


cada camino que va de un estado a otro pasando por el estado eliminado,
un nuevo arco, etiquetado con una expresin regular que sea equivalente.

La expresin regular resultante, ser la suma de las expresiones regulares que


terminan en un estado de aceptacin

Teora de autmatas y lenguajes formales 19


Autmatas finitos y expresiones regulares
Conversin de un AFD en una expresin regular por eliminacin de estados

Teora de autmatas y lenguajes formales 20


Autmatas finitos y expresiones regulares Ejercicios

Teora de autmatas y lenguajes formales 21


Dudas

Teora de autmatas y lenguajes formales 22


Material complementario

Clase magistral
Lo ms recomendado
Construccin de ER a partir de AFD
Aplicaciones de las expresiones regulares
Lenguajes y expresiones regulares
+ Informacin
Introduccin a la teora de autmatas, lenguajes y computacin
Aplicaciones de los AFD
Expresiones regulares

Teora de autmatas y lenguajes formales 23


Prxima semana
Test tema IV

Repasar tema IV

Actividad puntuable: Autmatas finitos y expresiones regulares

Resuelve los siguientes problemas:


o Dado el alfabeto = {, }, construye un AF que reconozca el lenguaje
formado por las cadenas que contienen al menos una y en las que cada
est inmediatamente precedida y seguida por una .
o Sea un lenguaje regular del alfabeto y el lenguaje formado por todas
las cadenas tales que y . Se pide:
Determina si es lenguaje regular.
En caso afirmativo, construye el AF que reconozca el lenguaje
donde = {, } y = {| }.

Extensin mxima 6 pginas

Teora de autmatas y lenguajes formales 24


www.unir.net
Tema V: Lenguajes y expresiones regulares
Cmo estudiar este tema?

Conversin de expresiones regulares en autmatas

Aplicaciones de las expresiones regulares

lgebra de las expresiones regulares

Teora de autmatas y lenguajes formales 2


Conversin de expresiones regulares en autmatas

La prueba de equivalencia entre ambos consta de probar que:

Todo lenguaje definido por un AF tambin puede ser definido


por una expresin regular (Visto en el tema 4)

Todo lenguaje definido por una expresin regular tambin


puede ser definido por un AF

Teora de autmatas y lenguajes formales 3


Conversin de expresiones regulares en autmatas

Demostrar que todo lenguaje que es () para alguna expresin


regular , es tambin () para algn AFN- con:

Exactamente un estado de aceptacin

El estado de aceptacin siempre ser distinto del estado inicial

No existe ningn arco que salga del estado de aceptacin

Demostracin por induccin

Teora de autmatas y lenguajes formales 4


Conversin de expresiones regulares en autmatas

1. Caso base:

a) Hay un nico camino del estado inicial al estado de aceptacin,


etiquetado con ( ).

b) No hay ningn camino del estado inicial al estado de aceptacin


( ).

c) Hay un camino del estado inicial al de aceptacin que acepta la cadena


a( ).

Teora de autmatas y lenguajes formales 5


Conversin de expresiones regulares en autmatas
2. Paso inductivo: Se supone que se verifica la hiptesis para las
expresiones inmediatas a una expresin regular determinada. Entonces,
se tiene que la expresin puede ser de la forma:

1. + , para dos expresiones y ms pequeas.

2. , para dos expresiones y ms pequeas.

3. , para una expresin ms pequea.

4. (), para una expresin ms pequea. Los parntesis no cambian el


lenguaje definido por la expresin.

Teora de autmatas y lenguajes formales 6


Conversin de expresiones regulares en autmatas

Teora de autmatas y lenguajes formales 7


Conversin de expresiones regulares en autmatas

Teora de autmatas y lenguajes formales 8


Conversin de expresiones regulares en autmatas

Teora de autmatas y lenguajes formales 9


Aplicaciones de las expresiones regulares

Las expresiones regulares en UNIX se pueden escribir utilizando una


notacin extendida para facilitar su escritura y comprensin

El smbolo . (punto) representa cualquier carcter

Los corchetes [ ] representan intervalos

[A-Z] representa el conjunto de letras maysculas

Notaciones especiales:

[:digit:] es el conjunto de los diez dgitos, lo mismo que [0-9]

[:appha:] representa cualquier carcter alfabtico, igual que [A-Za-z]

[:alnum:] representa los dgitos y las letras, igual que [A-Za-z0-9]

Teora de autmatas y lenguajes formales 10


Aplicaciones de las expresiones regulares

El operador | se utiliza en
lugar de + para especificar la
unin

El operador ? significa cero o


uno de

El operador + significa uno o


ms de

El operador {n} significa n


copias de

Teora de autmatas y lenguajes formales 11


lgebra de las expresiones regulares
Principales propiedades de las expresiones regulares:

Asociativa de la unin: + + = + ( + )

Conmutativa de la unin: + = +

Asociativa de la concatenacin: = ()

Elemento identidad de la unin: , + = + =

Elemento identidad de la concatenacin: , = =

Elemento nulo de la concatenacin: , = =

Distributiva de la concatenacin respecto de la unin:

+ = +

+ = +

Teora de autmatas y lenguajes formales 12


lgebra de las expresiones regulares

La concatenacin no es conmutativa

Teora de autmatas y lenguajes formales 13


lgebra de las expresiones regulares
Principales propiedades de las expresiones regulares:

Ley de idempotencia para la unin: + =

Leyes relativas a las clausuras:

( ) =

+ = = siendo + = + + + y = + + + +

= + +

? = +

Teora de autmatas y lenguajes formales 14


Dudas

Teora de autmatas y lenguajes formales 15


Material complementario

Clase magistral
Lo ms recomendado
Construccin de AFD a partir de ER
Flex. Desarrollo de un analizador lxico usando Flex
Lenguajes y expresiones regulares
+ Informacin
Introduccin a la teora de autmatas, lenguajes y computacin
Expresiones regulares en la Shell. Ejemplos de uso con grep,
awk y sed
UNIX Shell regular expressions and the sed and grep commands

Teora de autmatas y lenguajes formales 16


Prxima semana

Test tema IV

Repasar tema IV

Foro puntuable: Propuestas para la resolucin de un


problema dado
o Foro de debate y opinin

Laboratorio 1: Autmatas finitos y lenguajes regulares


con JFLAP

Teora de autmatas y lenguajes formales 17


www.unir.net
Tema VI: Lema de Bombeo y clausura de los
lenguajes regulares
Cmo estudiar este tema?

Lema de Bombeo

Propiedades de clausura de los lenguajes regulares

Teora de autmatas y lenguajes formales 2


Lema de Bombeo

Tcnica para demostrar si un lenguaje es regular o no

Sea un lenguaje regular. Existe una constante (que depende


de ) tal que para toda cadena perteneciente a con ,
podemos descomponer en tres cadenas = tal que:

a)

b)

c) , 0

Teora de autmatas y lenguajes formales 3


Lema de Bombeo
Ejemplo de demostracin de que un lenguaje no es regular

Sea el lenguaje = {2 | 0}

1. Se supone que es regular. Si lo es, y como es infinito, cumplir el


lema de bombeo. Sea por tanto la constante desconocida.

2. Se elige una palabra que pertenezca a y de longitud mayor o igual a

o = 2 , ternemos que y = 3, entonces

3. Hay que encontrar todas las formas de partir la palabra en 3 que


cumplan las restricciones del lema de bombeo.

o =

o = 1 , + ||

o = 2

Teora de autmatas y lenguajes formales 4


Lema de Bombeo
4. Se deduce que la y la estarn formadas solo por aes, ya que la palabra
elegida, tiene 2 es al principio y la longitud de x .

5. Se puede ver adems que obviamente = , porque x =


2 = 2 = .

6. Hay que encontrar una constante 0 con la que ninguna de las posibles
particiones de que hemos encontrado sean bombeables.

o Si se elige = 2 y se bombean las , ,

o 2 = 2 2 = 2+ para cualquier y , es decir, para


cualquier de las particiones de la elegida.

7. Pero como 1 (ver punto 3) se tiene que 2 = 2+ , es una palabra


que no pertenece al lenguaje porque no tiene el doble de aes que de bs (al
menos una ms). Por lo tanto, se ha llegado a una contradiccin.

Teora de autmatas y lenguajes formales 5


Lema de Bombeo Ejercicios

Teora de autmatas y lenguajes formales 6


Propiedades de clausura de los lenguajes regulares

La unin de dos lenguajes regulares es regular


La interseccin de dos lenguajes regulares es regular
El complementario de un lenguaje regular es regular
La diferencia de dos lenguajes regulares es regular
La reflexin de un lenguaje regular es regular
La clausura de un lenguaje regular es regular
La concatenacin de dos lenguajes regulares es regular
Un homomorfismo de un lenguaje regular es regular
El homomorfismo inverso de un lenguaje regular es regular

Teora de autmatas y lenguajes formales 7


Propiedades de clausura de los lenguajes regulares

La unin de dos lenguajes regulares es regular


La interseccin de dos lenguajes regulares es regular
El complementario de un lenguaje regular es regular

Teora de autmatas y lenguajes formales 8


Propiedades de clausura de los lenguajes regulares

Teora de autmatas y lenguajes formales 9


Propiedades de clausura de los lenguajes regulares

La diferencia de dos lenguajes regulares es regular

La reflexin de un lenguaje regular es regular

Teora de autmatas y lenguajes formales 10


Propiedades de clausura de los lenguajes regulares
Un homomorfismo de un lenguaje regular es regular

Teora de autmatas y lenguajes formales 11


Propiedades de clausura de los lenguajes regulares
El homomorfismo inverso de un lenguaje regular es regular

Teora de autmatas y lenguajes formales 12


Dudas

Teora de autmatas y lenguajes formales 13


Material complementario

Clase magistral
Lo ms recomendado
Lema de bombeo
Propiedades de los lenguajes regulares
+ Informacin
Lenguajes no regulares

Teora de autmatas y lenguajes formales 14


Prxima semana

Test tema VI

Repasar tema VI

Actividad puntuable: Ejercicios de AF y ER


o Probar que no son regulares los siguientes lenguajes:

= +

= {, }

= > } { | = 1

Teora de autmatas y lenguajes formales 15


www.unir.net
Tema VII: Equivalencia y minimizacin de autmatas
Cmo estudiar este tema?

Equivalencia de AF

Minimizacin de AF

Teora de autmatas y lenguajes formales 2


Cmo estudiar este tema?

Cmo comprobar si 2 autmatas


definen el mismo lenguaje?

Cmo construir un AF equivalente a


otro AF pero ms sencillo?

Teora de autmatas y lenguajes formales 3


Equivalencia de AF

Construccin de un algoritmo para comprobar la equivalencia


entre dos AFD.

Comprobacin de la equivalencia de estados

Saber si 2 descripciones distintas se corresponden con el mismo


lenguaje regular.

Comprobacin de la equivalencia de lenguajes regulares

Teora de autmatas y lenguajes formales 4


Equivalencia de AF
Comprobacin de la equivalencia de estados

Para comprobar que 2 AFD son equivalentes hay que comprobar si


sus estados lo son.

2 estados y son equivalentes si:

Para toda cadena de entrada , (, ) es un estado de aceptacin si


y solo si (, ) es un estado de aceptacin.

Es decir, son equivalentes si aceptan y rechazan las mismas cadenas


o no.

Si no son equivalentes, se dice que son distinguibles.

Teora de autmatas y lenguajes formales 5


Equivalencia de AF
Comprobacin de la equivalencia de estados

Algoritmo de llenado de tabla: Hallar estados equivalentes


determinando pares de estados que sean distinguibles.

Teora de autmatas y lenguajes formales 6


Equivalencia de AF
Comprobacin de la equivalencia de estados

Los estados de aceptacin son siempre distintos de los estados


que no lo son entonces se marcan como distinguibles

Teora de autmatas y lenguajes formales 7


Equivalencia de AF
Comprobacin de la equivalencia de estados

Ahora ver si es equivalente a los otros estados de no aceptacin

La cadena 0 no distingue de , ya que ambos terminan en B

La cadena 1 si los distingue, ya que , 1 = y , 1 =

Lo mismo para el par ,

Teora de autmatas y lenguajes formales 8


Equivalencia de AF
Comprobacin de la equivalencia de estados

Ahora ver si el los estados que quedan son equivalentes

son equivalentes ya que con 1 acaban en s mismos y con 0 en

, son equivalentes ya que con 1 acaban en s mismos y con 0


acaban en el par {C, E} que son equivalentes

Teora de autmatas y lenguajes formales 9


Equivalencia de AF
Comprobacin de la equivalencia de estados

Teora de autmatas y lenguajes formales 10


Equivalencia de AF
Comprobacin de la equivalencia de estados

Teora de autmatas y lenguajes formales 11


Equivalencia de AF

Comprobacin de la equivalencia de lenguajes regulares

El algoritmo de llenado de tabla se usa para comprobar que dos


lenguajes regulares son iguales.

Para ello se parte de 2 AFD que definen los lenguajes y se


construye una tabla considerando los estados de los 2 AFD.

Se dice que 2 lenguajes y son equivalentes si sus estados


iniciales son equivalentes.

Teora de autmatas y lenguajes formales 12


Equivalencia de AF
Comprobacin de la equivalencia de lenguajes regulares

Teora de autmatas y lenguajes formales 13


Minimizacin de AF
Construir un autmata que defina el mismo lenguaje, pero con
menor cantidad de estados.

1. Eliminar cualquier estado al que no se puede llegar desde el inicial

2. Dividir todo los estados del autmata en subconjuntos, de forma que


todos los estados de un mismo subconjunto son equivalentes entre s.

Teora de autmatas y lenguajes formales 14


Minimizacin de AF

Teora de autmatas y lenguajes formales 15


Minimizacin de AF Ejercicios

Teora de autmatas y lenguajes formales 16


Dudas

Teora de autmatas y lenguajes formales 17


Material complementario

Clase magistral
Lo ms recomendado
Minimizacin de un AFD
Equivalencia de dos autmatas finitos
Propiedades de los lenguajes regulares
+ Informacin
Ejercicios de equivalencias
Scientia et Technica

Teora de autmatas y lenguajes formales 18


Prxima semana

Test tema VII

Repasar tema VII

Teora de autmatas y lenguajes formales 19


www.unir.net
Tema VIII: Gramticas independientes de contexto
Cmo estudiar este tema?

Gramticas independientes de contexto

rboles de derivacin

Teora de autmatas y lenguajes formales 2


Gramticas independientes de contexto
Una GIC, , se representa mediante 4 componentes, = (, , , ):

es el conjunto finito de variables o smbolos no terminales o categoras


sintcticas. Cada variable representa un conjunto de cadenas (lenguaje).

es el alfabeto terminal o alfabeto de smbolos. Conjunto finito de


smbolos que forman las cadenas del lenguaje que se define.

es el conjunto finito de producciones o reglas que representan la


definicin recursiva del lenguaje.

()

representa el lenguaje que se define. Se trata de una de las variables


de y se denomina smbolo inicial.

Teora de autmatas y lenguajes formales 3


Gramticas independientes de contexto Ejemplo

Teora de autmatas y lenguajes formales 4


Gramticas independientes de contexto Ejemplo

Teora de autmatas y lenguajes formales 5


Gramticas independientes de contexto Ejemplo

Determinacin de la cadena ( + 00)

Inferencia
recursiva

Derivacin

Teora de autmatas y lenguajes formales 6


Gramticas independientes de contexto
Para inferir que determinadas cadenas pertenecen al lenguaje de
una cierta variable, se pueden aplicar en dos mtodos:

El ms convencional: inferencia recursiva. Consiste en emplear las


reglas para pasar del cuerpo a la cabeza.

Derivacin. Consiste en emplear las reglas desde la cabeza hasta el


cuerpo.

o Derivacin ms a la izquierda

o Derivacin ms a la derecha

Teora de autmatas y lenguajes formales 7


Gramticas independientes de contexto

Lenguaje de una gramtica

Sea = (, , , ) una GIC, el lenguaje de , L(), es el conjunto


de cadenas terminales que tienen derivaciones desde el smbolo
inicial:

= { : }

En estas condiciones se dice que es un Lenguaje independiente


de contexto (LIC)

Teora de autmatas y lenguajes formales 8


rboles de derivacin

Las derivaciones se pueden representar como un rbol de derivacin

Sea = (, , , ) una gramtica, los rboles de verificacin para


son aquellos que verifican:

1. Cada nodo interior est etiquetado con una variable .

2. Cada hoja est etiquetada con una variable, un smbolo terminal o . Si


la hoja est etiqueta con tiene que ser el nico hijo de su padre.

3. Sea un nodo interior y sean 1 , 2 , , sus hijos comenzando por la


izquierda, entonces 1 , 2 , , es una produccin de .

Teora de autmatas y lenguajes formales 9


rboles de derivacin

Teora de autmatas y lenguajes formales 10


rboles de derivacin
Inferencia, derivaciones y rboles de derivacin

Sea = (, , , ) una gramtica, las siguientes afirmaciones


son equivalentes:

1. Puede determinarse por inferencia recursiva que la cadena terminal


pertenece al lenguaje de la variable .

2.

3.


4.

5. Existe un rbol de derivacin cuya raz es y cuyo resultado es .

Teora de autmatas y lenguajes formales 11


Dudas

Teora de autmatas y lenguajes formales 12


Material complementario

Clase magistral
Lo ms recomendado
Gramticas independientes de contexto
rboles de derivacin
Gramticas libres de contexto
Lenguajes y gramticas independientes de contexto
+ Informacin
GIC
Derivations. Parse Trees and Ambiguitys

Teora de autmatas y lenguajes formales 13


Prxima semana

Test tema VIII

Repasar tema VIII

Teora de autmatas y lenguajes formales 14


www.unir.net
Tema IX: Aplicaciones de las GIC. Ambigedades
en los lenguajes
Cmo estudiar este tema?

Aplicaciones de las GIC

Ambigedad en las gramticas y lenguajes

Teora de autmatas y lenguajes formales 2


Aplicaciones de las GIC
Las GIC tienen 2 usos principales:

Describir lenguajes de programacin

Existe una forma mecnica de convertir la descripcin del lenguaje


como GIC en un analizador sintctico (componente del compilador que
descubre la estructura del programa fuente y la representa mediante
un rbol de derivacin).

La definicin de tipo de documento, DTD (Document Type


Definition) de los lenguajes XML (eXtensible Markup Language)

Es una GIC que describe las etiquetas permitidas y las formas en que
dichas etiquetas pueden anidarse.

Teora de autmatas y lenguajes formales 3


Aplicaciones de las GIC

YACC (Yet Another Compiler-Compiler) es un programa para generar


analizadores sintcticos. La entrada a YACC es una GIC.

Desarrollado por Stephen C. Johnson para el sistema operativo UNIX.

Teora de autmatas y lenguajes formales 4


Aplicaciones de las GIC

Los lenguajes de marcado tambin pueden definirse mediante una GIC.

Las cadenas de estos lenguajes son documentos con determinadas


etiquetas que nos informan acercan de la semntica de las distintas
cadenas contenidas en un documento.

HTML (HyperText Markup Language) es el lenguaje de marcado ms


conocido. Tiene 2 funciones principales:

Crear vnculos entre documentos

Describir el formato (aspecto) de un documento

Teora de autmatas y lenguajes formales 5


Aplicaciones de las GIC

Existen una serie de clases de cadenas asociadas con un documento


HTML:
Texto: Cualquier cadena de caracteres que se puede interpretar de forma
literal.
Car: Cualquier cadena que consta de un solo carcter que es vlido en
un texto html. Los espacios en blanco se consideran caracteres.
Doc: Representa documentos.
Element: Es o una cadena de Texto o un par de etiquetas emparejadas y
el documento que haya entre ellas, o una etiqueta no emparejada
seguida de un documento
ListItem: Es la etiqueta <LI> seguida de un documento, que es
simplemente un elemento de una lista.
Lista: Es una secuencia de cero o ms elementos de una lista.

Teora de autmatas y lenguajes formales 6


Aplicaciones de las GIC

Teora de autmatas y lenguajes formales 7


Aplicaciones de las GIC
En los lenguajes XML, las GIC describen la semntica del texto.

Un DTD (definicin de tipo de documento) es una GIC, con su propia


notacin para describir las variables y producciones.

Las descripciones de los elementos son expresiones regulares, con los


siguientes operadores permitidos:
Unin mediante el smbolo |
Concatenacin mediante el smbolo coma
Clausura con 3 smbolos posibles: (0 o ms apariciones), + (1 o ms
apariciones) y ? (0 o 1 aparicin)

Teora de autmatas y lenguajes formales 8


Aplicaciones de las GIC

Teora de autmatas y lenguajes formales 9


Ambigedad en gramticas y lenguajes

Una GIC no siempre proporciona estructuras nicas, es decir, una


forma sentencial puede tener dos derivaciones distintas (ambigedad)

Cuando ocurra, ser posible expresar el mismo lenguaje en otra


gramtica que no sea ambigua, aunque hay gramticas en la que no
es posible eliminar la ambigedad (inherentemente ambiguas)

Teora de autmatas y lenguajes formales 10


Ambigedad en gramticas y lenguajes

Gramticas ambiguas

Teora de autmatas y lenguajes formales 11


Ambigedad en gramticas y lenguajes

Gramticas ambiguas

El resultado es diferente: 1 + 2 3 1 + 2 3

Teora de autmatas y lenguajes formales 12


Ambigedad en gramticas y lenguajes
Gramticas ambiguas

Hay que tener en cuenta, que el hecho de que existan distintas


desviaciones no implica a priori que la gramtica sea ambigua.

Ejemplo cadena +

Los dos ejemplos sugieren que no es la multiplicidad de derivaciones lo


que causa la ambigedad, sino la existencia de dos o ms rboles de
derivacin.

Teora de autmatas y lenguajes formales 13


Ambigedad en gramticas y lenguajes
Gramticas ambiguas

Por lo tanto, una GIC = (, , , ) es ambigua si existe al menos una


cadena de para la que se puede encontrar dos rboles de derivacin
diferentes, teniendo cada uno de ellos una raz y un resultado

Teora de autmatas y lenguajes formales 14


Ambigedad en gramticas y lenguajes
Eliminacin de la ambigedad de las gramticas

No hay un procedimiento general

Hay GIC en las que es imposible eliminar la ambigedad

En nuestro ejemplo si que es posible. La idea es la misma que se utiliza en


las expresiones algebraicas: explicitar la jerarqua de operaciones

Las causas de ambigedad de la gramtica del ejemplo son:

La precedencia de operadores no se respeta

No se especifica cmo agrupar una secuencia de operadores idnticos,


si por la derecha o por la izquierda

Teora de autmatas y lenguajes formales 15


Ambigedad en gramticas y lenguajes
Eliminacin de la ambigedad de las gramticas

Para solucionar este problema se definen nuevas variables:

Factor: Es una expresin que no se puede separar mediante ningn


operador adyacente * ni +. Los nicos factores en nuestro lenguaje de
expresiones son:

o Identificadores: No es posible separar las letras de un identificador


o Cualquier expresin entre parntesis

Trmino: Es una expresin que si se puede separar por el operador +.


As, nos aseguramos de priorizar la operacin * sobre la +.

Expresin: Hace referencia a cualquier expresin, incluyendo las que se


pueden separar mediante un signo * o un signo +.

Teora de autmatas y lenguajes formales 16


Ambigedad en gramticas y lenguajes
Eliminacin de la ambigedad de las gramticas

Teora de autmatas y lenguajes formales 17


Ambigedad en gramticas y lenguajes
Ambigedad inherente

Un LIC es inherentemente ambiguo cuando todas las gramticas que lo


generan son ambiguas.

Si se encuentra una gramtica no ambigua, entonces el lenguaje no lo es.

Teora de autmatas y lenguajes formales 18


Ambigedad en gramticas y lenguajes
Ambigedad inherente

Teora de autmatas y lenguajes formales 19


Dudas

Teora de autmatas y lenguajes formales 20


Material complementario

Clase magistral
Lo ms recomendado
Ambigedades de las gramticas
Lenguajes y gramticas independientes del contexto
+ Informacin
Gramtica ambigua
Derivations and Parse Trees
Derivations, Parse Trees and Ambiguitys
Socument Type Definition

Teora de autmatas y lenguajes formales 21


Prxima semana

Test tema IX

Repasar tema IX

Teora de autmatas y lenguajes formales 22


www.unir.net
Tema X: Autmatas a pila
Cmo estudiar este tema?

Definicin de los autmatas a pila

Lenguajes aceptados por un autmata a pila

Teora de autmatas y lenguajes formales 2


Definicin de los autmatas a pila

Un autmata a pila es un AFN- al que se aade una pila en la


que se puede almacenar una cadena de smbolos

Una autmata de pila puede recordar una cantidad finita de informacin

Estructura LIFO para acceder a la informacin de la pila

En cada transicin el autmata a pila:

Consume el smbolo que se usa en la transicin. Si es no consume nada.

Pasa a un nuevo estado, que puede o no ser el mismo que el anterior.

Reemplaza el smbolo de la parte superior de la pila por una cadena.

Teora de autmatas y lenguajes formales 3


Definicin de los autmatas a pila
Un autmata a pila est formado por 7 componentes:

= (, , , , 0 , 0 , )

, es un conjunto finito de estados.


, es un conjunto de smbolos de entrada.
, es un alfabeto de pila finito. Conjunto de smbolos que pueden
introducirse en la pila.
, es la funcin de transicin. Tiene como entrada (, , ) donde es un
estado de , a es un smbolo de entrada de y es un smbolo de pila
que pertenece a . La salida de es un conjunto finito de pares (, ),
donde es el nuevo estado y es la cadena de smbolos de la pila.

0 , es el estado inicial.

0 , es el smbolo inicial.

, es el conjunto de estados de aceptacin.

Teora de autmatas y lenguajes formales 4


Definicin de los autmatas a pila
Diagrama de transiciones de un autmata a pila en el que:

Los nodos se corresponden con los estados del autmata a pila.

Una flecha etiquetada como Inicio indica el estado inicial y los estados con
un crculos doble se corresponden a los estado de aceptacin.

Los arcos corresponden a las transiciones del autmata a pila de la


siguiente forma:

o Un arco etiquetado con , / del estado al estado quiere decir


que (, , ) contiene el par (, ), entre otros pares.

Lo nico que no proporciona el diagrama es el smbolo inicial, que suele


ser 0

Teora de autmatas y lenguajes formales 5


Definicin de los autmatas a pila

Teora de autmatas y lenguajes formales 6


Definicin de los autmatas a pila

Teora de autmatas y lenguajes formales 7


Definicin de los autmatas a pila

Teora de autmatas y lenguajes formales 8


Definicin de los autmatas a pila
Para los AF, la notacin era suficiente para representar las secuencias a travs
de las que se mueve un AF.

En cambio, para los autmatas a pila se necesita una notacin que describa los
cambios en el estado, la entrada y la pila.

La notacin es la que se usa para describir los cambios de estado.



Sea = (, , , , 0 , 0 , ) un autmata a pila. Se define
o cuando se
sobreentiende.
Supongamos que (, , ) contiene (, ), entonces para todas las cadenas
de y de :
(, , ) (, , )
Este movimiento refleja la idea de que, consumiendo de la entrada y
reemplazando en la cima de la pila por , podemos ir del estado al
estado

Teora de autmatas y lenguajes formales 9


Lenguajes aceptados por un autmata a pila

2 enfoques:

Aceptacin por estado final: Un autmata a pila acepta la cadena


cuando acaba en un estado de aceptacin.

Aceptacin por pila vaca: Define el lenguaje de aceptacin como el


conjunto de cadenas para las que el autmata vaca su pila.

Ambos enfoques son equivalentes, es decir, un lenguaje tiene un


autmata a pila que lo acepta por estado final, si y solo si, tiene un
autmata a pila que lo acepta por pila vaca.

Sin embargo, para un autmata a pila, los lenguajes que acepta por estado
final y por pila vaca normalmente son diferentes.

Teora de autmatas y lenguajes formales 10


Lenguajes aceptados por un autmata a pila

Aceptacin por estado final

Sea = (, , , , 0 , 0 , ) un autmata a pila. Entonces (), el lenguaje


aceptado por por estado final, es:

{| 0 , , 0 (, , )}

Para un estado de y cualquier cadena de pila . Es decir, partiendo de la


descripcin instantnea inicial con esperando en la entrada, consume
a partir de la entrada y pasa a un estado de aceptacin. El contenido de la
pila en dicho instante es irrelevante.

Teora de autmatas y lenguajes formales 11


Lenguajes aceptados por un autmata a pila

Aceptacin por pila vaca

Para todo autmata a pila = (, , , , 0 , 0 , ), definimos tambin:

= {| 0 , , 0 (, , )}

Para cualquier estado . Es decir, N() es el conjunto de entradas


que puede consumir vaciando al mismo tiempo su pila.

Teora de autmatas y lenguajes formales 12


Dudas

Teora de autmatas y lenguajes formales 13


Material complementario

Clase magistral
Lo ms recomendado
Autmatas a pila
Ejemplo de un autmata a pila
Ejercicios de autmatas a pila
+ Informacin
Ejercicios sobre autmatas a pila
Pushdown Automata

Teora de autmatas y lenguajes formales 14


Prxima semana

Test tema X

Repasar tema X

Actividad puntuable: Autmata a pila

Resuelve los siguientes problemas:


o Construye un autmata a pila que reconozca el lenguaje
{ 2 > 0}
o Construye un autmata a pila que reconozca el lenguaje
{ 2 0}

Extensin mxima 6 pginas

Teora de autmatas y lenguajes formales 15


www.unir.net
Tema XI: Autmatas a pila y GIC
Cmo estudiar este tema?

Equivalencia entre autmatas a pila y GIC

Autmata a pila determinista

Teora de autmatas y lenguajes formales 2


Equivalencia entre autmatas a pila y GIC

Los lenguajes aceptados por un autmata a pila son independientes de


contexto.

El objetivo es demostrar que los 3 tipos siguientes de lenguajes son de la


misma clase:

Los LIC, es decir, lenguajes definidos mediante GIC.

Los lenguajes que son aceptados por estado final por algn autmata a pila.

Los lenguajes que son aceptados por pila vaca por algn autmata a pila.

Teora de autmatas y lenguajes formales 3


Equivalencia entre autmatas a pila y GIC
De las gramticas a los autmatas a pila

Dada una GIC es posible construir un autmata a pila que acepte las mismas
cadenas del lenguaje, simulando las derivaciones ms a la izquierda de la GIC.

Sea = (, , , ) una GIC y sea el autmata a pila = ({}, , , , , ),


donde se define como:

1. Para cada variable


, , = {(, )| }
2. Para cada smbolo terminal
, , = { , }

Entonces = ()

Teora de autmatas y lenguajes formales 4


Equivalencia entre autmatas a pila y GIC Ejemplo

De las gramticas a los autmatas a pila

Teora de autmatas y lenguajes formales 5


Equivalencia entre autmatas a pila y GIC
De los autmatas a pila a las gramticas

Dado un autmata a pila, se puede encontrar una GIC que defina el mismo
lenguaje.

Sea la GIC = (, , , ) donde consta de:

1. Extraccin neta de un smbolo de la pila

2. Un cambio de estado desde el estado al cuando finalmente se ha


reemplazado por en la pila.

Entonces dado el autmata a pila = (, , , , 0 , 0 ), existe una GIC tal


que =

Teora de autmatas y lenguajes formales 6


Equivalencia entre autmatas a pila y GIC
De los autmatas a pila a las gramticas

Teora de autmatas y lenguajes formales 7


Equivalencia entre autmatas a pila y GIC Ejemplo

De los autmatas a pila a las gramticas

Teora de autmatas y lenguajes formales 8


Equivalencia entre autmatas a pila y GIC Ejemplo

De los autmatas a pila a las gramticas

Teora de autmatas y lenguajes formales 9


Equivalencia entre autmatas a pila y GIC Ejemplo

De los autmatas a pila a las gramticas

Teora de autmatas y lenguajes formales 10


Autmata a pila determinista

Los APD son un tipo particular de autmatas a pila.

Un autmata a pila es determinista si en ninguna situacin existe la posibilidad de


elegir 2 o ms movimientos.

Por ello un autmata a pila = (, , , , 0 , 0 , ) es determinista si y solo si se


cumplen las siguientes condiciones:

(, , ) tiene como mximo un elemento para cualquier de , de o


= y de .

Si , , no est vaco para algn de , entonces , , tiene que


estar vaco.

Teora de autmatas y lenguajes formales 11


Autmata a pila determinista Ejemplo

Teora de autmatas y lenguajes formales 12


Autmata a pila determinista Ejemplo

Teora de autmatas y lenguajes formales 13


Autmata a pila determinista

Los APD aceptan una clase de lenguajes que se encuentra entre los
lenguajes regulares y los LIC.

Si es un lenguaje regular, entonces = () para algn autmata a pila


no determinista .

Una de las propiedades ms tiles de los APD es que todos los lenguajes
que aceptan tiene alguna gramtica no ambigua.

Si = () para un APD , entonces tiene una GIC no ambigua.

Teora de autmatas y lenguajes formales 14


Dudas

Teora de autmatas y lenguajes formales 15


Material complementario

Clase magistral
Lo ms recomendado
De una GIC a un autmata a pila
AP y APD
Autmatas a pila
+ Informacin
Ejercicios sobre autmatas
Test acerca de GIC y autmatas finitos

Teora de autmatas y lenguajes formales 16


Prxima semana

Test tema XI

Repasar tema XI

Laboratorio 2: Gramticas con JFLAP

Teora de autmatas y lenguajes formales 17


www.unir.net
Tema XII: Formas normales y lema de
bombeo de las GIC
Cmo estudiar este tema?

Formas normales de las GIC

Lema de bombeo

Teora de autmatas y lenguajes formales 2


Formas normales de las GIC

Todo LIC puede ser generado por una GIC en la forma normal de
Chomsky.

Para ello, primero es necesario:

Eliminar los smbolos intiles: Aquellas variables o smbolos


terminales que no aparecen en ninguna derivacin de una cadena
terminal que parta del smbolo inicial.

Eliminar las producciones-: Aquellas de la forma para alguna


variable .

Eliminar las producciones unitarias: Aquellas de la forma para


y .

Teora de autmatas y lenguajes formales 3


Formas normales de las GIC
Eliminacin de smbolos intiles

Un smbolo es til para una gramtica = (, , , ) si existe alguna



derivacin de la forma , donde pertenece a

puede ser o , y la forma puede ser la primera o la ltima en la


derivacin.

El mtodo para eliminar smbolos intiles identifica las dos cosas que un
smbolo tienen que cumplir para resultar til:

1. Decimos que es generador si para alguna cadena terminal .

2. Decimos que es alcanzable si existe una derivacin para algn
y .

Teora de autmatas y lenguajes formales 4


Formas normales de las GIC Ejemplo

Eliminacin de smbolos intiles

Teora de autmatas y lenguajes formales 5


Formas normales de las GIC
Eliminacin de smbolos intiles

Cmo calcular el conjunto de smbolos generadores de una gramtica ?

Cmo calcular el conjunto de smbolos alcanzables de una gramtica ?

Demostracin mediante induccin:

Sea = (, , , ) una gramtica:

1. Base: Todo smbolo de es generador, ya que se genera a s mismo.

2. Paso inductivo: Supongamos que existe una produccin y que


todo smbolo de es generador. Entonces es generador. Esta regla
incluye el caso en que = por lo que todas las variables que tienen
como cuerpo de una produccin son generadoras.

Teora de autmatas y lenguajes formales 6


Formas normales de las GIC
Eliminacin de producciones-

Sea una gramtica = (, , , ) una GIC, los nicos smbolos anulables


son las variables encontradas por el algoritmo:

1. Base: Si es una produccin de entonces es anulable.

2. Paso inductivo: Si existe una produccin 1 , 2 , , , donde


cada es anulable, entonces es anulable. Cada tiene que ser una
variable anulada, por lo que solo hay que considerar las producciones
cuyos cuerpos sean solo variables.

Teora de autmatas y lenguajes formales 7


Formas normales de las GIC Ejemplo

Eliminacin de producciones-

Teora de autmatas y lenguajes formales 8


Formas normales de las GIC Ejemplo

Eliminacin de producciones-

Teora de autmatas y lenguajes formales 9


Formas normales de las GIC
Eliminacin de producciones unitarias

Una produccin unitaria es una produccin de la forma donde y


son variables.

Para determinar los pares unitarios de una GIC = (, , , ), hay que


realizar el algoritmo:


1. Base: (, ) es un par unitario para cualquier variable . Es decir,
en cero pasos.

2. Paso inductivo: Si (A, ) es un par unitario y es una produccin


en la que es una variable, entonces (A, ) es un par unitario.

Teora de autmatas y lenguajes formales 10


Formas normales de las GIC Ejemplo

Eliminacin de producciones unitarias

Teora de autmatas y lenguajes formales 11


Formas normales de las GIC Ejemplo

Eliminacin de producciones unitarias

Teora de autmatas y lenguajes formales 12


Formas normales de las GIC
Forma normal de Chomsky

Todo LIC no vaco sin tiene una gramtica que no contiene smbolos
intiles, en la que todas las producciones tienen una de las siguientes
formas:

1. donde , y son variables.

2. donde es una variable y es un smbolo terminal.

Entonces se dice que la gramtica est en la formal normal de Chomsky

Si es una GIC que genera un lenguaje que contiene al menos una cadena
distinta de , entonces existe otra GIC 1 tal que 1 = L G {}, y 1 no
tiene producciones-, ni producciones unitarias ni smbolos intiles.

Teora de autmatas y lenguajes formales 13


Formas normales de las GIC Ejemplo

Forma normal de Chomsky

Ejemplo anterior

Teora de autmatas y lenguajes formales 14


Formas normales de las GIC Ejemplo

Forma normal de Chomsky

Teora de autmatas y lenguajes formales 15


Lema de bombeo para LIC
Al igual que se estudi un lema de bombeo para los lenguajes regulares, hay
otro para demostrar que determinados lenguajes no son LIC.

Sea un LIC. Entonces existe una constante tal que si es cualquier


cadena de tal que es al menos , entonces podemos escribir = ,
que verifican:

a) . Es decir, la parte central no es demasiado larga.

b) . Puesto que y son las partes que se van a bombear, esta


condicin establece que al menos una de las cadenas que se van a
bombear no tiene que ser vaca.

c) 0, . Es decir, las dos cadenas y pueden


bombearse cualquier nmero de veces, incluyendo cero, y la cadena
resultante pertenecer a .

Teora de autmatas y lenguajes formales 16


Dudas

Teora de autmatas y lenguajes formales 17


Material complementario

Clase magistral
Lo ms recomendado
Forma normal de Chomsky
Lema de bombeo para GIC
Propiedades de los lenguajes independientes del contexto
+ Informacin
Ejercicios sobre los lenguajes independientes de contexto

Teora de autmatas y lenguajes formales 18


Prxima semana

Test tema XII

Repasar tema XII

Teora de autmatas y lenguajes formales 19


www.unir.net
Tema XIII: Propiedades de los LIC
Cmo estudiar este tema?

Propiedades de clausura de los lenguajes

Propiedades de decisin de los LIC

Teora de autmatas y lenguajes formales 2


Propiedades de clausura de los lenguajes

Operaciones sobre los LIC que garantizan que generan un LIC:

Sustituciones

Reflexin

Interseccin con un lenguaje regular

Homomorfismo inverso

Teora de autmatas y lenguajes formales 3


Propiedades de clausura de los lenguajes
Sustituciones

Reemplazos de cada uno de los smbolos de las cadenas de un lenguaje


por un lenguaje completo.

Sea un alfabeto, para cada smbolo , elegimos un lenguaje .

Considerar que a cada smbolo se le puede asignar un lenguaje


distinto y que los smbolos de cada no tienen por qu pertenecer a .

La eleccin de lenguajes define una funcin (sustitucin) sobre .

Sea un LIC sobre un alfabeto y sea una sustitucin sobre tal que
() es un LIC para cada . Entonces, () es un LIC.

Teora de autmatas y lenguajes formales 4


Propiedades de clausura de los lenguajes Ejemplo

Sustituciones

Teora de autmatas y lenguajes formales 5


Propiedades de clausura de los lenguajes
Sustituciones
Aplicando el teorema de sustitucin resulta sencillo demostrar que los LIC son
cerrados respecto a las operaciones de:

1. Unin: Sean 1 y 2 dos LIC. Entonces 1 2 es el lenguaje (), donde es el


lenguaje {1,2} y es la sustitucin definida por 1 = 1 y s 2 = 2 .

2. Concatenacin: Sean 1 y 2 dos LIC. Entonces 1 2 es el lenguaje (), donde es


el lenguaje {12} y la sustitucin que la unin.

3. Clausura (*) y clausura positiva (+): Sea 1 un LIC. Entonces es el lenguaje {1} y
es la sustitucin 1 = 1 , entonces 1 = (). De forma similar, si es el
lenguaje {1}+ , entonces +
1 = ().

4. Homomorfismo: Sea un LIC del alfabeto y un homomorfismo sobre . Sea la


sustitucin que reemplaza cada smbolo en por el lenguaje que consta de una
sola cadena que es h(). Es decir, = , . Entonces () = ().

Teora de autmatas y lenguajes formales 6


Propiedades de clausura de los lenguajes
Reflexin

Los LIC tambin son cerrados para la reflexin.

Si es un LIC, entonces tambin lo es.

1. Sea = () para alguna GIC = (, , , ). Construimos = (, , , ), donde


es la refleja de cada produccin .

2. Si es una produccin de , entonces es una produccin de .

3. Por induccin sobre las longitudes de las derivaciones de y se demuestra que


L = .

4. En esencia, todas las forma sentenciales de son reflejas de las formas


sentenciales de , y viceversa.

Teora de autmatas y lenguajes formales 7


Propiedades de clausura de los lenguajes
Interseccin

Los LIC no son cerrados para la interseccin.

En el ejemplo 7.19 (pgina 237) se demostr que no es LIC, el lenguaje:

= {0 1 2 | 1}

Sin embargo, 1 = {0 1 2 | 1, 1} y2 = {0 1 2 | 1, 1} si son LIC.

Un gramtica para 1 es:


01 | 01
2 | 2

En esta gramtica, genera todas las cadenas de la forma 0 1 y genera todas


las cadenas 2 .

Teora de autmatas y lenguajes formales 8


Propiedades de clausura de los lenguajes
Interseccin

Un gramtica para 2 es:


0 | 0
12 | 12

Funciona de manera similar, pero con generando cualquier cadena 0 y


generando todas las cadenas 1 2 .

Sin embargo, = 1 2 no es una LIC. Observemos que 1 requiere que haya el


mismo nmero de ceros que de unos, mientras que 2 requiere que el nmero de
unos y doses sea igual. Para que una cadena pertenezca a ambos lenguajes tiene
que tener por tanto el mismo nmero de los tres smbolos, para as pertenecer a .

Teora de autmatas y lenguajes formales 9


Propiedades de clausura de los lenguajes
Interseccin

En cambio, si es un LIC y un lenguaje regular, entonces es un LIC.

Lo mismo ocurre con las operaciones de complementacin y diferencia de


conjuntos.

Sean , 1 y 2 unos LIC y un lenguaje regular, las siguientes afirmaciones son


verdaderas:

o es un LIC.

o no es necesariamente un LIC.

o 1 2 no es necesariamente un LIC.

Teora de autmatas y lenguajes formales 10


Propiedades de decisin de los LIC

Complejidad de la conversin entre gramticas GIC y autmatas a pila

Sea un autmata a pila cuya representacin tiene una longitud .

Existe un algoritmo (3 ) que genera una GIC de longitud mxima (3 ) que


acepta el mismo lenguaje que por pila vaca.

Esta GIC tambin puede construirse para que acepte el mismo lenguaje que
por estado final.

Teora de autmatas y lenguajes formales 11


Propiedades de decisin de los LIC

Tiempo de ejecucin de la conversin a la forma normal de Chomsky

Dada una gramtica de longitud .

Es posible determinar una gramtica equivalente en la forma normal de Chomsky


para en un tiempo (2 ).

La gramtica tiene una longitud de (2 ).

Teora de autmatas y lenguajes formales 12


Propiedades de decisin de los LIC

Comprobacin de si un LIC est vaco

Dada una gramtica para un LIC .

Se puede demostrar que est vaco, si y solo si , smbolo inicial de , no es


generador.

El tiempo para determinar si un LIC es vaco es ().

Comprobacin de la pertenencia a un LIC

Dada una cadena se puede comprobar su pertenencia a un LIC .

El tiempo para determinar la pertenencia a un LIC es (3 ) usando el algoritmo


CYK o algoritmo de llenado de tabla.

Teora de autmatas y lenguajes formales 13


Dudas

Teora de autmatas y lenguajes formales 14


Material complementario

Clase magistral
Lo ms recomendado
Propiedades de clausura de los LIC
Propiedades de los lenguajes independientes del contexto
+ Informacin
Ejercicios sobre las propiedades de los LIC
Propiedades de los Lenguajes Libres de Contexto

Teora de autmatas y lenguajes formales 15


Prxima semana

Test tema XIII

Repasar tema XIII

Teora de autmatas y lenguajes formales 16


www.unir.net

You might also like