1. CONJUNTOS REGULARES
Orlando Arboleda Molina
´
Escuela de Ingenier´a de Sistemas y Computacion de
ı
La Universidad del Valle
19 de Octubre de 2008
2. Contenido
Conjunto regulares
Expresiones regulares
Conjunto regulares
Teorema de Kleene
´
Automatas que reconocen conjuntos regulares
´
Conjuntos regulares y Gramaticas regulares
´
Limitaciones de los automatas de estado finito
3. ´
Pregunta: Si los automatas de estado finito se pueden utilizar
para reconocer lenguajes. Que conjuntos pueden reconocer ?
´
Solucion: En 1956 el matematico estadounidense Stephen
´ ´
Kleene demostro que hay un automata de estado finito que
reconoce un conjunto si y solo si, este conjunto se puede
construir a partir del conjunto vac´o, la cadena vac´a y cadenas
ı ı
de un s´mbolo haciendo uso de los operadores de union,
ı ´
´
concatenacion y cierre de kleene, tomados en orden arbitrario.
4. Contenido
Conjunto regulares
Expresiones regulares
Conjunto regulares
Teorema de Kleene
´
Automatas que reconocen conjuntos regulares
´
Conjuntos regulares y Gramaticas regulares
´
Limitaciones de los automatas de estado finito
5. Expresiones regulares
Las expresiones regulares sobre un conjunto I son definidas
recursivamente por:
◮ El s´mbolo ∅ (conjunto vac´o) es una expresion regular
ı ı ´
◮ El s´mbolo λ (conjunto {λ}) es una expresion regular
ı ´
◮ El s´mbolo x (conjunto {x}) es una expresion regular
ı ´
siempre que x ∈ I
◮Los s´mbolos (AB), (A ∪ B), y A∗ son expresiones
ı
regulares siempre que A y B son expresiones regulares
´
Cada expresion regular representa un conjunto.
Ejemplo: Las siguientes son expresiones regulares: (10)∗ ,
(1 ∪ 0)∗ , 0 ∪ (1∗ ∪ 0)∗
6. Contenido
Conjunto regulares
Expresiones regulares
Conjunto regulares
Teorema de Kleene
´
Automatas que reconocen conjuntos regulares
´
Conjuntos regulares y Gramaticas regulares
´
Limitaciones de los automatas de estado finito
7. Conjunto regulares
Los conjuntos representados por expresiones regulares son
llamados conjuntos regulares.
Ejercicio1: Determinar las cadenas para cada uno de los
siguientes conjuntos regulares:
◮ 10∗
◮ (1 ∪ 01)(10)∗
◮ 0 ∪ 01
◮ 0(0 ∪ 1)∗
◮ (0∗ 1)∗
8. Contenido
Conjunto regulares
Expresiones regulares
Conjunto regulares
Teorema de Kleene
´
Automatas que reconocen conjuntos regulares
´
Conjuntos regulares y Gramaticas regulares
´
Limitaciones de los automatas de estado finito
9. Teorema de Kleene
Teorema 1 - Teorema de Kleene
Un conjunto es regular si y solo si es reconocido por un
´
automata de estado finito.
´
Como construir los automatas que reconocen los conjuntos
regulares ?
10. Contenido
Conjunto regulares
Expresiones regulares
Conjunto regulares
Teorema de Kleene
´
Automatas que reconocen conjuntos regulares
´
Conjuntos regulares y Gramaticas regulares
´
Limitaciones de los automatas de estado finito
11. ´
Automatas que reconocen conjuntos regulares
◮ Automatas que reconocen los conjuntos ∅, {λ} y {a}
´
respectivamente
12. ´
Automatas que reconocen conjuntos regulares (2)
◮ ´
Automata MAB que reconoce al conjunto AB
◮ Combina en serie a MA y MB
◮ SAB = SA SB
◮ Estado inicial sA
◮ FAB = FB . Anadiendo SAB si λ ∈ A
˜ B y FA si λ ∈ B
◮ Transiciones: si λ ∈ A cada transicion que parta de SB y
´
desde cada estado previo a uno en FA ir hasta sB
13. ´
Automatas que reconocen conjuntos regulares (3)
◮ Automata que reconoce al conjunto A ∪ B
´
◮ Combina en paralelo a MA y MB
◮ SA S B = SA SB {sA∪B }
◮ Estado inicial {sA∪B }
◮ FA S B = FA FB . Anadiendo sA∪B si λ ∈ A
˜ B
◮ Transiciones: transiciones desde {sA∪B } con los simbolos
que procesaban sA y sB
14. ´
Automatas que reconocen conjuntos regulares (4)
◮ Automata que reconoce al conjunto A∗
´
◮ ∗
SA = SA {sA∗ }
◮ Estado inicial {sA∗ }
◮ ∗
FA = FA {sA∗ }.
◮ ´
Transiciones: por cada transicion desde sA a un estado s
para la entrada i, incluir transicion desde {sA∗ } hasta s con
´
´
el s´mbolo i y una transicion desde cada estado final hasta
ı
s para el mismo dato de entrada i.
15. ´
Automatas que reconocen conjuntos regulares (5)
´
Ejercicios: Construir automatas de estado finito que
reconozcan los siguientes conjuntos regulares:
◮ {11, 0}∗
◮ {11, 0}∗ 00, 1{10, 01}∗
◮ {11, 00}{01, 101}∗ {1, 00, 10}∗
◮ {11, 00}{01, 101}∗ {1, 00, 10}{1}∗
16. Contenido
Conjunto regulares
Expresiones regulares
Conjunto regulares
Teorema de Kleene
´
Automatas que reconocen conjuntos regulares
´
Conjuntos regulares y Gramaticas regulares
´
Limitaciones de los automatas de estado finito
17. ´
Conjuntos regulares y Gramaticas regulares
Teorema 2
´
Un conjunto es generado por una gramatica regular si y solo si
es un conjunto regular.
´
Ejercicio: Construir un automata de estado finito no
determinista que reconozca el lenguaje generado por la
gramatica regular G = (V , T , S, P), donde:
´
V = {0, 1, A, S}
T = {0, 1}
P = {S → 1A, S → 0, S → λ, A → 0A, A → 1A, A → 1}.
Nota: La idea es que el estado inicial es final si existe la
produccion S → λ. Adicionalmente que se cree un estado por
´
cada s´mbolo no terminal, mas un estado final adicional)
ı
18. ´
Conjuntos regulares y Gramaticas regulares (2)
´
Ejercicio: Hallar la gramatica regular que genere el conjunto
´
regular reconocido por el siguiente automata
19. Contenido
Conjunto regulares
Expresiones regulares
Conjunto regulares
Teorema de Kleene
´
Automatas que reconocen conjuntos regulares
´
Conjuntos regulares y Gramaticas regulares
´
Limitaciones de los automatas de estado finito
20. ´
Limitaciones de los automatas de estado finito
Ejercicio: Es el conjunto {0n 1n | n = 0, 1, . . .} regular ?
´
Nota: El conjunto puede ser generado con una gramatica libre
de contexto
´
Los automatas finitos:
◮ Son limitados (capacidad de memor´a finita).
ı
◮ No reconocen lenguajes que no son regulares.
´ ´
Modelos de computacion mas potentes:
´ ´
◮ Automata a pila (reconoce gramaticas libres del contexto).
No podr´a reconocer {0
ı n 1n 2n | n = 0, 1, . . .}
´ ´
◮ Maquinas de Turing ((reconoce gramaticas dependientes
del contexto).