View
7
Download
2
Embed Size (px)
DESCRIPTION
Introduccion de Automatas y Lenguajes Formales
AUTOMATAS Y LENGUAJES FORMALES
INTRODUCCIN Y CONCEPTOS
PRELIMINARES
ANTECEDENTESMatemticas:
Fundamentos de la lgica matemtica
Biologa: Redes Neuronales Artificiales
Ingeniera elctrica: Teora de la conmutacin
Lingstica: Terica de las gramticas
QUE ES?
La teora de los autmatas y lenguajes formales estudia las propiedades de los modelos matemticos de la computacin.
La teora de autmatas estudia las mquinas o dispositivos abstractos con capacidad de computacin
Jerarqua de Chomsky
Lenguajes Formales Autmatas
No enumerables
Recursivamente enumerables Mquina de Turing
Sensibles al contexto Autmata Lineal Acotado
Libres de contexto Autmata de Pila
Regulares Autmata Finito
APLICACIONES
Compiladores
Procesadores de texto
Motores de bsqueda
Diseo de hardware
Diseo de lenguajes de programacin
Teora de conjuntos
El fundamento ms importante para el estudio de los lenguajes y autmatas es la Teora de conjuntos.
Cantor G, Formulo la teora de conjuntos
Frege G, demostr que cualquier enunciado de las matemticas puede expresarse en la teora de conjuntos
Russel B, Formulo la paradoja de Russel (demuestra que la teora original de conjuntos formulada por Cantor y Frege es contradictoria.)
ConjuntoUn conjunto es un grupo de objetos representado como una unidad
Elemento
Los objetos pertenecientes a un conjunto son llamados elementos o miembros.
Expresin de conjuntosLos conjuntos pueden expresarse de dos maneras bsicamente:
En extensin: Donde se citan explcitamente cada uno de sus elementos.
Ejemplo: {1, 3, 5}
En intensin: dando una descripcin precisa de los elementos que forman parte del conjunto, en vez de citarlos explcitamente
Ejemplo: {i N| impar(i), i < 6}
Membresa a un conjuntoSe utilizan los smbolos y para denotar membresa o no membresa a un conjunto.
Cuando un elemento pertenece a un conjunto, se escribe el smbolo entre el elemento y el conjunto. Cuando un elemento no pertenece a un conjunto, se escribe el smbolo entre el elemento y el conjunto.
Ejemplo:
6 {8, 12, 6, 20} y 3 {8, 12, 6, 20}
SubconjuntoTeniendo en cuenta los conjuntos A y B se dice que el conjunto B es subconjunto del conjunto A si B est contenido dentro de A, es decir si todo elemento que es miembro de B tambin es miembro de A. Denotado por A B. Recprocamente, se dice que el conjunto A es un superconjunto de B cuando B es un subconjunto de A.
Se dice que A es un subconjunto propio de B denotado por A B si A es subconjunto de B y no es igual a B
Conjunto potenciaEl conjunto potencia de un conjunto dado es otro conjunto formado por todos los subconjuntos del mismo.
Ejemplo: el conjunto potencia de A = {1, 2, 3} es:
{ {1}, {2}, {3}, {1, 2}, {2, 3}, {1, 3}, {1, 2, 3} }
El conjunto potencia de A tambin se denomina conjunto de las partes de A, o conjunto de partes de A se denota por P(A) o 2A.
MulticonjuntoLos multiconjuntos son colecciones donde se permite la aparicin repetida de los elementos sin importar su orden. Se debe indicar cuntas veces el elemento es miembro del conjunto.
Ejemplo:
Multiconjunto { c, c, c, d, d, e },
Las multiplicidades de los miembros c, d, y e son 3, 2, y 1, respectivamente.
Para evitar confusin debiera escribirse: < c, c, c, d, d, e >1
Conjunto infinitoUn conjunto infinito es un conjunto que contiene un nmero infinito de elementos.
Ejemplo:
Los nmeros enteros Z = {..., -3, -2, -1, 0, 1, 2, 3, ...} forman un conjunto infinito y numerable.
Los puntos en una recta, representados por un nmero real, forman un conjunto infinito y no numerable
Conjunto vacoUn conjunto con cero elementos se denomina conjunto vaco y se denota por
Singleton
(Instancia nica). El conjunto con un solo elemento se denomina singleton
Cardinalidad
La cardinalidad de un conjunto es el nmero de elementos
que posee ese conjunto.
El smbolo que representa la cardinalidad de un
conjunto A es n(A), card (A), #A o |A|.
Ejemplo:
A = {-3, 0, 1, 2, 3,} tiene cinco elementos por tanto se tiene
que |A| = 5
Notacin Inductiva de Conjuntos En ocasiones los conjuntos se escriben de acuerdo con una regla. Se escribe:
{n | regla acerca de n}
De modo que:
{n | n = m2 para toda m N} es el conjunto de los cuadrados perfectos
SecuenciasUna secuencia es una lista de objetos puestos en algn orden. Usualmente se denota a una secuencia por la lista de estos objetos entre parntesis.
Ejemplo: (-3, 0, 1, 2, 3)
El orden no es importante en los conjuntos pero si en las secuencias de modo que (-3, 0, 1, 2, 3) (2, 0, 1, -3, 3)
Igual pasa con las repeticiones, en los conjuntos no es tomada en cuenta pero en las secuencias si, de modo que (-3, 0, 1, 2, 3) ((-3, 0, 1, 1, 1 2, 3)
TuplasUna tupla es una lista ordenada de elementos.
Una n-tupla es una secuencia (o lista ordenada) de n elementos, siendo n un nmero natural (entero no-negativo). La nica 0-tupla es la secuencia vaca. Una n-tupla se define inductivamente desde la construccin de un par ordenado. Las tuplas suelen anotarse listando sus elementos entre parntesis "( )", separados por comas.
Ejemplo:
(2, 7, 4, 1, 7) denota una 5-tupla.
FuncinUna funcin es un objeto que establece una relacin entrada salida. Una funcin toma una entrada y genera una salida. En toda funcin la misma entrada siempre produce la misma salida.
Si f es una funcin cuyo valor de salida es x3 cuando su valor de entrada es x se escribe,
f(x) = x3
Una funcin se conoce tambin como mapeo y si, f(x) = x3 se dice que f mapea x a x3
Argumentos de una funcin
Cuando el dominio de una funcin f es A1 x A2 x A3 . x Ak para algunos conjuntos A1, A2 , A3 . , Ak la entrada de f es una K-tupla (a1, a2 , a3 . , ak y se dice que ai son los argumentos de la funcin
Aridad de una funcin
Una funcin con K elementos f es llamada funcin K-aria y K es llamada aridad de la funcin. Si K es 1, f tiene un solo argumento y f es llamada funcin unaria si K es 2, f es una funcin binaria
Relacin
Un predicado cuyo dominio es el conjunto de las K-tuplas A1 x A2 x A3 . x Ak es llamado relacin k-aria. Un caso comn, la relacin 2-aria, es llamada relacin binaria. Por lo general, se emplea la notacin infija para expresar enunciados matemticos que incluyen relaciones binarias
Relacin de equivalencia
Una relacin binaria es una relacin de equivalencia si R satisface tres condiciones:
1. R es reflexiva si para toda x, xRx
2. R es simtrica si para toda x y y, xRy y si solo si yRx; y
3. R es transitiva si para toda x, y y z, xRy y yRz implica que xRz
LENGUAJES Y EXPRESIONES REGULARES
AlfabetoUn alfabeto es cualquier conjunto finito, no vaco. Los miembros de un alfabeto son llamados smbolos del alfabeto.
Es usual utilizar letras griegas maysculas como y para denotar un alfabeto.
Ejemplo:
{0, 1},
{a, b, c},
{0, 11},
{(0, 0), (0, 1), (1, 0), (1, 1)}.
StringUn String sobre un alfabeto es una secuencia finita de smbolos de un alfabeto, usualmente escritos uno seguido de otros sin ser separados por comas.
Ejemplo: "abc, invierno, 123456
Longitud String
Si es un string sobre , la longitud de , denota por | |, es el nmero de smbolos que este contiene.
Ejemplo: "abc = longitud |3|, invierno longitud |8|
String vacioEl string de longitud cero es llamado String vaco y se denota por
Notacin para String
Si tiene longitud n , puede escribirse = 1, 2, 3, .., n donde cada i
Reversa de un String
La reversa de , denotado por R, es el string que se obtiene al escribir en el orden opuesto.
Substring
El string z es un substring de si z aparece consecutivamente dentro de
LenguajeUn lenguaje es un conjunto de String
Palabra o cadena
Es una secuencia de smbolos del alfabeto, es decir, s = a1a2a3... an, donde ai .
Por lo general se utilizan las primeras letras del alfabeto, a, b, c, d, e, para denotar smbolos del alfabeto y las ltimas letras, s, t, u, v, w, x, y, z, para denotar palabras.
Longitud de una palabra
Es el nmero de smbolos en s. Se denota por | s
Palabra nula o vaca
Es la palabra de longitud cero. Algunos autores utilizan para denotarla
Operaciones regulares
Las operaciones regulares se emplean en el estudio de las propiedades de los lenguajes regulares
Unin
Concatenacin
Estrella
UninSean A y B lenguajes. La operacin regular Unin se define como:
A B = {x|x A x B}
Ejemplo: A= { 1, 2, 3} y B = { 3, 4}
A B = {1, 2, 3, 4}
Observacin
La unin es el lenguaje que se obtiene al combinar todos los string de A y B en un solo lenguaje
ConcatenacinSean A y B lenguajes. La operacin regular concatenacin se define como:
A B = {xy|x A y B}
Observacin
La concatenacin yuxtapone un string de B despus de un string de A en todas las formas posibles para obtener los string del nuevo lenguaje
Estrella de KleeneSean A y B lenguajes. La operacin regular estrella se define como:
A* = {x1 x2 x3. xk |k 0, A}
Observacin
La estrella yuxtapone cualquier nmero de strings de A, uno despus de otro, para obtener los string del nuevo lenguaj