conjuntos regulares 04[1]

20
CONJUNTOS REGULARES Orlando Arboleda Molina Escuela de Ingenier´ ıa de Sistemas y Computaci´ on de La Universidad del Valle 19 de Octubre de 2008

Upload: edeciofreitez

Post on 27-Jul-2015

1.694 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Conjuntos regulares 04[1]

CONJUNTOS REGULARES

Orlando Arboleda Molina

Escuela de Ingenierıa de Sistemas y Computacion deLa Universidad del Valle

19 de Octubre de 2008

Page 2: Conjuntos regulares 04[1]

Contenido

Conjunto regularesExpresiones regularesConjunto regularesTeorema de KleeneAutomatas que reconocen conjuntos regularesConjuntos regulares y Gramaticas regularesLimitaciones de los automatas de estado finito

Page 3: Conjuntos regulares 04[1]

Pregunta: Si los automatas de estado finito se pueden utilizarpara reconocer lenguajes. Que conjuntos pueden reconocer ?

Solucion: En 1956 el matematico estadounidense StephenKleene demostro que hay un automata de estado finito quereconoce un conjunto si y solo si, este conjunto se puedeconstruir a partir del conjunto vacıo, la cadena vacıa y cadenasde un sımbolo haciendo uso de los operadores de union,concatenacion y cierre de kleene, tomados en orden arbitrario.

Page 4: Conjuntos regulares 04[1]

Contenido

Conjunto regularesExpresiones regularesConjunto regularesTeorema de KleeneAutomatas que reconocen conjuntos regularesConjuntos regulares y Gramaticas regularesLimitaciones de los automatas de estado finito

Page 5: Conjuntos regulares 04[1]

Expresiones regulares

Las expresiones regulares sobre un conjunto I son definidasrecursivamente 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)∗

Page 6: Conjuntos regulares 04[1]

Contenido

Conjunto regularesExpresiones regularesConjunto regularesTeorema de KleeneAutomatas que reconocen conjuntos regularesConjuntos regulares y Gramaticas regularesLimitaciones de los automatas de estado finito

Page 7: Conjuntos regulares 04[1]

Conjunto regulares

Los conjuntos representados por expresiones regulares sonllamados conjuntos regulares.

Ejercicio1: Determinar las cadenas para cada uno de lossiguientes conjuntos regulares:

◮ 10∗

◮ (1 ∪ 01)(10)∗

◮ 0 ∪ 01◮ 0(0 ∪ 1)∗

◮ (0∗1)∗

Page 8: Conjuntos regulares 04[1]

Contenido

Conjunto regularesExpresiones regularesConjunto regularesTeorema de KleeneAutomatas que reconocen conjuntos regularesConjuntos regulares y Gramaticas regularesLimitaciones de los automatas de estado finito

Page 9: Conjuntos regulares 04[1]

Teorema de Kleene

Teorema 1 - Teorema de KleeneUn conjunto es regular si y solo si es reconocido por unautomata de estado finito.

Como construir los automatas que reconocen los conjuntosregulares ?

Page 10: Conjuntos regulares 04[1]

Contenido

Conjunto regularesExpresiones regularesConjunto regularesTeorema de KleeneAutomatas que reconocen conjuntos regularesConjuntos regulares y Gramaticas regularesLimitaciones de los automatas de estado finito

Page 11: Conjuntos regulares 04[1]

Automatas que reconocen conjuntos regulares

◮ Automatas que reconocen los conjuntos ∅, {λ} y {a}respectivamente

Page 12: Conjuntos regulares 04[1]

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

Page 13: Conjuntos regulares 04[1]

Automatas que reconocen conjuntos regulares (3)◮ Automata que reconoce al conjunto A ∪ B

◮ Combina en paralelo a MA y MB

◮ SAS

B = SA⋃

SB⋃{sA∪B}

◮ Estado inicial {sA∪B}

◮ FAS

B = FA⋃

FB. Anadiendo sA∪B si λ ∈ A⋂

B◮ Transiciones: transiciones desde {sA∪B} con los simbolos

que procesaban sA y sB

Page 14: Conjuntos regulares 04[1]

Automatas que reconocen conjuntos regulares (4)◮ Automata que reconoce al conjunto A∗

◮ S∗

A = SA⋃{sA∗}

◮ Estado inicial {sA∗}

◮ F ∗

A = FA⋃{sA∗}.

◮ Transiciones: por cada transicion desde sA a un estado spara la entrada i , incluir transicion desde {sA∗} hasta s conel sımbolo i y una transicion desde cada estado final hastas para el mismo dato de entrada i .

Page 15: Conjuntos regulares 04[1]

Automatas que reconocen conjuntos regulares (5)

Ejercicios: Construir automatas de estado finito quereconozcan 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}∗

Page 16: Conjuntos regulares 04[1]

Contenido

Conjunto regularesExpresiones regularesConjunto regularesTeorema de KleeneAutomatas que reconocen conjuntos regularesConjuntos regulares y Gramaticas regularesLimitaciones de los automatas de estado finito

Page 17: Conjuntos regulares 04[1]

Conjuntos regulares y Gramaticas regulares

Teorema 2Un conjunto es generado por una gramatica regular si y solo sies un conjunto regular.

Ejercicio: Construir un automata de estado finito nodeterminista que reconozca el lenguaje generado por lagramatica 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 laproduccion S → λ. Adicionalmente que se cree un estado porcada sımbolo no terminal, mas un estado final adicional)

Page 18: Conjuntos regulares 04[1]

Conjuntos regulares y Gramaticas regulares (2)

Ejercicio: Hallar la gramatica regular que genere el conjuntoregular reconocido por el siguiente automata

Page 19: Conjuntos regulares 04[1]

Contenido

Conjunto regularesExpresiones regularesConjunto regularesTeorema de KleeneAutomatas que reconocen conjuntos regularesConjuntos regulares y Gramaticas regularesLimitaciones de los automatas de estado finito

Page 20: Conjuntos regulares 04[1]

Limitaciones de los automatas de estado finito

Ejercicio: Es el conjunto {0n1n | n = 0, 1, . . .} regular ?Nota: El conjunto puede ser generado con una gramatica librede 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 {0n1n2n | n = 0, 1, . . .}

◮ Maquinas de Turing ((reconoce gramaticas dependientesdel contexto).