Semana 3 Expresiones Regulares y Automatas
Semana 3 Expresiones Regulares y Automatas
Semana 3 Expresiones Regulares y Automatas
Expresiones Regulares
Y
Automatas
DEFINICIONES
Σ = { a, b } y O={ * , / }
Operaciones
▪ Unión
▪ Concatenación
▪ Clausura de Kleene
Agrupación( paréntesis)
Definen el ámbito y precedencia de los demás
operadores
EXPRESIONES
REGULARES
Prioridad de los operadores
Por ejemplo :
aa* (aa)*
EXPRESIONES
REGULARES EN JAVA
Ejemplo
import java.util.regex.*;
class Ejemplo1{
public static void main(String args[]){
Pattern regla = Pattern.compile("a*b");
Matcher encaja = regla.matcher("aabUNMSMaabUNMSMabUNMSMb");
String resultado = encaja.replaceAll("-");
System.out.println(resultado);
}
}
Salida
-UNMSM-UNMSM-UNMSM-
Process completed.
EXPRESIONES REGULARES EN JAVA
Ejemplo
import java.util.regex.*;
class Ejemplo1{
public static void main(String args[]){
String cadena="b";
boolean cumplePatron = Pattern.matches("a*b", cadena);
if(cumplePatron)
System.out.println("si cumple");
else System.out.println("NO cumple");
}
}
Salida si cumple
Process completed.
EXPRESIONES REGULARES
Observación
Estado final
Transición
inicio
inicio
...
...
inicio
DIAGRAMA DE
TRANSICION
Ejemplo
Diagrama de transición para
reconocer un identificador
Tabla de transición
La información en un diagrama de
transición puede representarse por
medio de una tabla. Así en el ejemplo
anterior su tabla de transición es la
siguiente:
L: letra
d:dígito
g:guión L d g o
o:otro 0 1
1 1 2 3 4
2 1 2 3 4
3 1 2 3 4
4
AUTOMATAS FINITOS
(A.F.)
Los AF se clasifican en :
e.r: (0/1)*10
G =(Vn, Vt, P, p )
Vn={ p, q, r } Vt={ 0, 1}
P= { p→0p | 1q
0 q→0r | 1q
r→0p | 1q
1 0 q→0 }
inicio
p q r G =(Vn, Vt, P, p )
1 Vn={ p, q, r } Vt={ 0, 1}
0 1 P= { p→0p | 1q
q→0r | 1q
r→0p | 1q
r→ }
AF Y GRAMATICA REGULAR
❑ Vn =Q
❑ Vt =
❑ S= q0
❑ Para cada transición del autómata
a(p) = q, añadimos a P la regla p →
aq
❑ Para cada estado q F añadimos a P
la regla q→, o alternativamente,
tantas reglas de la forma p→a como
transiciones del tipo a(p)=q con qF
tenga el AFD
AFN
Ejemplo
a
a b b
inicio
0 1 2 3
b
CONVERTIR AFN →AFD
Método de Thompson
2. La concatenación de r1 con r2 se
representa uniendo el nodo final de r1 r2
r1 con el nodo inicial de r2.
0 1 2
r1
1 3
5
0
2 4
r2
AFN a partir de una e.r
5. Para la expresión regular ( r1/r2 )*
r1
2 4
6
7
0 1
3 5
r2
AFD a partir de un AFN
❑ Entrada. Un AFN
❑ Salida, Un AFD que acepta el mismo
lenguaje.
(a/b)*ab
AFD a partir de un AFN
Paso 1
Cerradura_(0)= {0 1 7 2 3 } CONJUNTO ..0
Mover( {0 1 7 2 3 },a ) = {4 8 }
Cerradura_ ( { 4 8 } ) = { 4 6 1 7 2 3 8 } CONJUNTO . 1
Mover( {0 1 7 2 3 },b ) = {5 }
Cerradura_ ( { 5 } ) = { 5 6 1 7 2 3 } CONJUNTO .... 2
Paso 2
Mover( {4 6 1 7 2 3 8 },a ) = {4 8 }
Cerradura_ ( { 4 8 } ) = { 4 6 1 7 2 3 8 } CONJUNTO ..1
Mover( {4 6 1 7 2 3 8 },b ) = {5 9 }
Cerradura_ ( { 5 9 } ) = { 5 6 1 7 2 3 9 } CONJUNTO . 3
AFD a partir de un AFN
Paso 3
Mover( {5 6 1 7 2 3 },a ) = {4 8 }
Cerradura_ ( { 4 8 } ) = { 4 6 1 7 2 3 8 } CONJUNTO..1
Mover( {5 6 1 7 2 3 },b ) = {5 }
Cerradura_ ( { 5 } ) = { 5 6 1 7 2 3 } CONJUNTO ....2
Paso 4
Mover( {5 6 1 7 2 3 9 },a ) = {4 8 }
Cerradura_ ( { 4 8 } ) = { 4 6 1 7 2 3 8 } CONJUNTO..1
Mover( {5 6 1 7 2 3 9 },b ) = {5 }
Cerradura_ ( { 5 } ) = { 5 6 1 7 2 3 } CONJUNTO ....2
AFD a partir de un AFN
(a/b)*ab
a b
0 1 2
1 1 3
2 1 2
3. 1 2
MINIMIZACION DE ESTADOS
b
b b
AFD
C
a
a b b
A B D E
a
a a
b E b
a
a b
A B D
a
b a
AFD EQUIVALENTE
MINIMIZADO
MINIMIZACION DE ESTADOS
ENTRADA
Un AFD M con un conjunto de estados S, un
conjunto de entrada ,transiciones definidas para
todos los estados y las entradas, un estado de
inicio s0 y un conjunto de estados de aceptación
F.
SALIDA
Un AFD M’ que acepta el mismo lenguaje que M y
tiene el menor numero de estados posibles.
ALGORITMO DE MINIMIZACION
DE ESTADOS
b
b C b
a
a b b
A B D E
a
a a
P = [E A B C D]
MINIMIZACION DE ESTADOS
Para cada grupo de P hacer
Aplicando el algoritmo formamos Partición de G en subgrupos tales que
una nueva partición dos estados s y t
Pnueva= [E] [A B C D]
P = Pnueva
MINIMIZACION DE ESTADOS
❑ En el grupo ABCD , con la
entrada a, cada uno de estos
estados tiene una transición a B.
b b ❑ D va a E, un miembro de otro
C grupo.
a
a b b
A B D E
a
a a
P= [E] [A B C D]
MINIMIZACION DE ESTADOS
Para cada grupo de P hacer
Partición de G en subgrupos tales que
dos estados s y t
Pnueva= [E] [A B C] [ D]
P = Pnueva
MINIMIZACION DE ESTADOS
❑ En la entrada b, A y C tienen
ambas una transición a C.
b b ❑
C
a
a b b
A B D E
a
a a
P= [E] [A B C] [ D]
MINIMIZACION DE ESTADOS
Para cada grupo de P hacer
Partición de G en subgrupos tales que
dos estados s y t
b E b
a
a a b
b
A B D A B A
a
b B B D
a
D B E
E B A
AFD EQUIVALENTE
MINIMIZADO
Ejercicios
1. Encuentre la expresion regular para los siguientes diagramas de
transicion:
A) B) b
b
inicio a a
0 1 inicio a 2
0 1
C) D)
b
inicio a b b
0 2
inicio a a
b a 0 1 2
1
b a
Ejercicios
2. Encuentre el AFD para las siguientes expresiones regulares:
a) a*b(b/a)*b
b) ab*b(ab /c)*a
c) (ab)*c(a/b)*
d) a(b/a)c(abb/b)*
a) ab(aa/b)+b(ab)*b
b) (a/b)*b(ab/b)*a
A) B) b
b
inicio a a
0 1 inicio a 2
0 1
ab* ab*a
b b
C) inicio a D) b
0 2
inicio a a
b 0 1 2
a
1
a
b
c) a(b/a)c(abb/b)*
a
c) (ab)*c(a/b)*
b
a a b a
a c b
b
b
c a b