Expresiones Regulares

Transcripción

Expresiones Regulares
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Expresiones Regulares
Leyes
Algebraicas
de las
Expresiones
Regulares
INAOE
(INAOE)
1 / 52
Contenido
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
1 Expresiones Regulares
2 Operadores y Operandos
3 Equivalencia de Lenguajes de FA y Lenguajes RE
4 Leyes Algebraicas de las Expresiones Regulares
(INAOE)
2 / 52
Expresiones Regulares
Expresiones Regulares
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
Es un equivalente algebraico para un autómata.
• Utilizado en muchos lugares como un lenguaje para
describir patrones en texto que son sencillos pero muy
útiles.
• Pueden definir exactamente los mismos lenguajes que
los autómatas pueden describir: Lenguajes regulares
• Ofrecen algo que los autómatas no: Manera declarativa
de expresar las cadenas que queremos aceptar
(INAOE)
3 / 52
Expresiones Regulares
Expresiones Regulares
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
• Ejemplos de sus usos
• Comandos de búsqueda, e.g., grep de UNIX
• Sistemas de formateo de texto: Usan notación de tipo
expresión regular para describir patrones
• Convierte la expresión regular a un DFA o un NFA y
simula el autómata en el archivo de búsqueda
• Generadores de analizadores-léxicos. Como Lex o Flex.
• Los analizadores léxicos son parte de un compilador.
Dividen el programa fuente en unidades lógicas
(tokens), como while, números, signos (+, −, <, etc.)
• Produce un DFA que reconoce el token
(INAOE)
4 / 52
Expresiones Regulares
Expresiones Regulares
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
• Las expresiones regulares denotan lenguajes. Por
ejemplo, la expresión regular: 01∗ + 10∗ denota todas
las cadenas que son o un 0 seguido de cualquier
cantidad de 1’s o un 1 seguido de cualquier cantidad de
0’s.
• Operaciones de los lenguajes:
Unión: Si L y M son dos lenguajes, su unión se denota
por L ∪ M (e.g., L = {11, 00}, M = {0, 1},
LcuoM = {0, 1, 00, 11})
2 Concatenación: La concatenación es: LM o L.M (e.g.,
LM = {110, 111, 000, 001} )
3 Cerradura (o cerradura de Kleene): Si L es un lenguaje
su cerradura se denota por: L∗
(L0 = {}, L1 = L, L2 = LL. Si
L = {0, 11}, L2 = {00, 011, 110, 1111})
1
(INAOE)
5 / 52
Operadores y Operandos
Expresiones Regulares
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
Si E es una expresión regular, entonces L(E) denota el
lenguaje que define E. Las expresiones se construyen de la
manera siguiente:
1
Las constantes y ∅ son expresiones regulares que
representan a los lenguaje L() = {} y L(∅) = ∅
respectivamente
2
Si a es un sı́mbolo, entonces es una expresión regular
que representan al lenguaje: L(a) = {a}
(INAOE)
6 / 52
Operadores y Operandos
Operandos
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
1
Si E y F son expresiones regulares, entonces E + F
también lo es denotando la unión de L(E) y L(F ).
L(E + F ) = L(E) ∪ L(F ).
2
Si E y F son expresiones regulares, entonces EF
también lo es denotando la concatenación de L(E) y
L(F ). L(EF ) = L(E)L(F ).
3
4
(INAOE)
Si E es una expresión regular, entonces E ∗ también lo
es y denota la cerradura de L(E). Osea
L(E ∗ ) = (L(E))∗
Si E es una expresión regular, entonces (E) también lo
es. Formalmente: L((E)) = L(E).
7 / 52
Operadores y Operandos
Precedencia
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
1
El asterisco de la cerradura tiene la mayor precedencia
2
Concatenación sigue en precedencia a la cerradura, el
operador “dot”. Concatenación es asociativa y se
sugiere agrupar desde la izquierda (i.e. 012 se agrupa
(01)2).
3
La unión (operador +) tiene la siguiente precedencia,
también es asociativa.
4
Los paréntesis pueden ser utilizados para alterar el
agrupamiento
(INAOE)
8 / 52
Operadores y Operandos
Ejemplos
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
• L(001) = 001.
• L(0 + 10∗ ) = {0, 1, 10, 100, 1000, . . .}.
• L((0(0 + 1))∗ ) = el conjunto de cadenas de 0’s y 1’s, de
longitud par, de tal manera que cada posición impar
tenga un 0.
• Expresión regular de cadenas que alterna 0’s y 1’s:
1
2
(INAOE)
(01)∗ + (10)∗ + 0(10)∗ + 1(01)∗ (opción 1)
( + 1)(01)∗ ( + 0) (opción 2)
9 / 52
Operadores y Operandos
Ejemplos
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
1
Encuentra la expresión regular para el conjunto de
cadenas sobre el alfabeto {a, b, c} que tiene al menos
una a y al menos una b
2
Encuentra la expresión regular para el conjunto de
cadenas de 0’s y 1’s tal que cada par de 0’s adyacentes
aparece antes de cualquier par de 1’s adyacentes
(INAOE)
10 / 52
Operadores y Operandos
Soluciones
Expresiones
Regulares
Operadores y
Operandos
1
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
2
(INAOE)
c ∗ a(a + c)∗ b(a + b + c)∗ + c ∗ b(b + c)∗ a(a + b + c)∗
Osea, cuando la primera a esta antes que la primera b
o cuando la primera b está antes de la primera a
(10 + 0)∗ ( + 1)(01 + 1)∗ ( + 1)
(10 + 0)∗ ( + 1) es el conjunto de cadenas que no
tienen dos 1’s adyacentes. La segunda parte es el
conjunto de cadenas que no tienen dos 0’s adyacentes.
De hecho + 1 lo podrı́amos eliminar porque se puede
obtener el 1 de lo que sigue, por lo que podemos
simplificarlo a: (10 + 0)∗ (01 + 1)∗ ( + 1)
11 / 52
Equivalencia de Lenguajes de FA y Lenguajes RE
Equivalencia de Lenguajes de FA y
Lenguajes RE
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
• Se mostrará que un NFA con transiciones- puede
aceptar el lenguaje de una RE.
• Después, se mostrará que un RE puede describir el
lenguaje de un DFA (la misma construcción funciona
para un NFA).
• Los lenguajes aceptados por DFA, NFA, -NFA, RE son
llamados lenguajes regulares.
(INAOE)
12 / 52
Equivalencia de Lenguajes de FA y Lenguajes RE
De DFA’s a Expresiones Regulares
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
Teorema 3.4: Si L = L(A) para algún DFA A, entonces
existe una expresión regular R tal que L = L(R).
Prueba: Suponiendo que A tiene estados {1, 2, . . . , n}, n
finito. Tratemos de construir una colección de RE que
describan progresivamente conjuntos de rutas del diagrama
de transiciones de A
(k)
• Rij
es el nombre de la RE cuyo lenguaje es el
conjunto de cadenas w.
• w es la etiqueta de la ruta del estado i al estado j de A.
Esta ruta no tiene estado intermedio mayor a k . Los
estados inicial y terminal no son intermedios, i y/o j
pueden ser igual o menores que k
(INAOE)
13 / 52
Equivalencia de Lenguajes de FA y Lenguajes RE
De DFA’s a Expresiones Regulares
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
(k)
• Para construir Rij
se utiliza una definición inductiva de
k = 0 hasta k = n
• BASE: k = 0, implica que no hay estados intermedios.
Sólo dos clases de rutas cumplen con esta condición:
1
2
Un arco del nodo (estado) i al nodo j
Una ruta de longitud 0 con un solo nodo i
• Si i 6= j, solo el caso 1 es posible.
(INAOE)
14 / 52
Equivalencia de Lenguajes de FA y Lenguajes RE
De DFA’s a Expresiones Regulares
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
Examinar el DFA A y encontrar los sı́mbolos de entrada a tal
que hay una transición del estado i al estado j con el
sı́mbolo a
(0)
• Si no hay sı́mbolo a, entonces Rij
= ∅.
(0)
• Si hay sólo un sı́mbolo a, entonces Rij
= a.
• Si hay varios sı́mbolos a1 , a2 , . . . , ak , entonces
(0)
Rij
(INAOE)
= a1 + a2 + . . . + ak .
15 / 52
Equivalencia de Lenguajes de FA y Lenguajes RE
De DFA’s a Expresiones Regulares
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
Si i = j, sólo se permiten rutas de longitud 0 y ciclos del
estado i a él mismo.
• La ruta de longitud 0 se representa con (0)
• Si no hay sı́mbolo a, entonces Rij
=∅
(0)
• Si hay sólo un sı́mbolo a, entonces Rij
= + a.
• Si hay varios sı́mbolos a1 , a2 , . . . , ak , entonces
(0)
Rij
(INAOE)
= + a1 + a2 + . . . + ak .
16 / 52
Equivalencia de Lenguajes de FA y Lenguajes RE
De DFA’s a Expresiones Regulares
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
INDUCCIÓN: Suponemos que hay una ruta del estado i al
estado j que no pasa por ningún estado mayor que k.
Se consideran 2 casos.
1
La ruta no pasa por el estado k : La etiqueta de la ruta
(k−1)
está en el lenguaje Rij
.
2
La ruta pasa por el estado k al menos una vez:
• Se divide la ruta en varias partes, una división por cada
vez que se pasa por el estado k
• Primero del estado i al estado k, después, varios pasos
del estado k a sı́ mismo, finalmente, del estado k al
estado j.
Las etiquetas de estas rutas se representan con la RE:
(k−1)
(k−1)
(k−1)
Rik
(Rkk )∗ Rkj
(INAOE)
17 / 52
Equivalencia de Lenguajes de FA y Lenguajes RE
De DFA’s a Expresiones Regulares
Expresiones
Regulares
Operadores y
Operandos
• Si combinamos las expresiones de las rutas de los dos
(k)
Leyes
Algebraicas
de las
Expresiones
Regulares
(k−1)
(k−1)
(k−1)
(k−1)
tipos: Rij = Rij
+ Rik
(Rkk )∗ Rkj
para todas
las etiquetas de las rutas del estado i al j que no pasan
por estados mayores que k .
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
(n)
• Eventualmente tendremos Rij .
• Suponemos que 1 es el estado inicial. El estado de
aceptación puede ser un conjunto de estados. La
expresión regular para el lenguaje del autómata es la
(n)
suma (unión) de todas las expresiones R1j tal que j es
un estado de aceptación.
(INAOE)
18 / 52
Equivalencia de Lenguajes de FA y Lenguajes RE
Ejemplo
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Un DFA que acepta todas las cadenas que tienen al menos
un 0
Leyes
Algebraicas
de las
Expresiones
Regulares
(INAOE)
19 / 52
Equivalencia de Lenguajes de FA y Lenguajes RE
Ejemplo
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
(0)
Inicialmente sustituimos para la base: (i) Rij
(0)
Rij
(0)
R11
(0)
R12
(0)
R21
(0)
R22
(INAOE)
= + a y (iii)
(0)
Rij
= , (ii)
= + a1 + a2 + . . . + ak
=+1
=0
=∅
= ( + 0 + 1)
20 / 52
Equivalencia de Lenguajes de FA y Lenguajes RE
Ejemplo
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
Ahora para el paso de inducción:
(1)
(0)
(0)
(0)
(0)
Rij = Rij + Ri1 (R11 )∗ R1j
Por sustitución directa
(1)
R11 = + 1 + ( + 1)( + 1)∗ ( + 1)
(1)
R12 = 0 + ( + 1)( + 1)∗ 0
(1)
R21 = ∅ + ∅( + 1)∗ ( + 1)
(1)
R22 = + 0 + 1 + ∅( + 1)∗ 0
(INAOE)
Simplificado
1∗
1∗ 0
∅
+0+1
21 / 52
Equivalencia de Lenguajes de FA y Lenguajes RE
Ejemplo
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
(2)
Rij
(2)
R11
(2)
R12
(2)
R21
(2)
R22
(INAOE)
(1)
= Rij
=
=
=
=
(1)
(1)
(1)
+ Ri2 (R22 )∗ R2j
Por sustitución directa
1∗ + 1∗ 0( + 0 + 1)∗ ∅
1∗ 0 + 1∗ 0( + 0 + 1)∗ ( + 0 + 1)
∅ + ( + 0 + 1)( + 0 + 1)∗ ∅
+ 0 + 1 + ( + 0 + 1)( + 0 + 1)∗
( + 0 + 1)
Simplificado
1∗
1∗ 0(0 + 1)∗
∅
(0 + 1)∗
22 / 52
Equivalencia de Lenguajes de FA y Lenguajes RE
Construcción de la RE final
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
Unión de todas las expresiones donde el primer estado es el
estado inicial y el segundo el estado de aceptación
• Estado inicial: 1
• Estado final: 2
(2)
• Sólo necesitamos R12
• 1∗ 0(0 + 1)∗
Este método funciona también para NFA y -NFA pero su
construcción es muy costosa, hasta en el orden de 4n
sı́mbolos.
(INAOE)
23 / 52
Equivalencia de Lenguajes de FA y Lenguajes RE
Ejemplo
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
Dada la tabla de transición de un DFA:
0
1
→ q1 q2 q1
q2 q3 q1
∗q3 q3 q2
(0)
a) Dar todas las expresiones regulares para Rij
(1)
b) Dar todas las expresiones regulares para Rij
(INAOE)
24 / 52
Equivalencia de Lenguajes de FA y Lenguajes RE
Conversión de un DFA a una RE por
Eliminación de Estados
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
• Evita duplicar trabajo en algunos puntos del teorema
anterior
• Ahora utilizaremos autómatas que podrán tener RE
como etiquetas.
• El lenguaje del autómata es la unión de todas las rutas
que van del estado inicial a un estado de aceptación.
• Concatenando los lenguajes de las RE que van a través
de la ruta.
• En la siguiente figura se muestra un autómata al cual se
va a eliminar el estado “s”.
(INAOE)
25 / 52
Equivalencia de Lenguajes de FA y Lenguajes RE
Conversión de un DFA a una RE por
Eliminación de Estados
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
(INAOE)
26 / 52
Equivalencia de Lenguajes de FA y Lenguajes RE
Conversión de un DFA a una RE por
Eliminación de Estados
Expresiones
Regulares
Operadores y
Operandos
• Se eliminan todos los arcos que incluyen a “s”
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
• Se introduce, para cada predecesor qi de s y cada
Leyes
Algebraicas
de las
Expresiones
Regulares
sucesor pj de s, una RE que representa todas las rutas
que inician en qi , van a s, quizás hacen un loop en s
cero o más veces, y finalmente van a pj .
• La expresión para estas rutas es Qi S ∗ Pj .
• Esta expresión se suma (con el operador unión) al arco
que va de qi a pj .
• Si este arco no existe, se añade primero uno con la RE
∅
• El autómata resultante después de la eliminación de “s”
es el siguiente:
(INAOE)
27 / 52
Equivalencia de Lenguajes de FA y Lenguajes RE
Conversión de un DFA a una RE por
Eliminación de Estados
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
(INAOE)
28 / 52
Equivalencia de Lenguajes de FA y Lenguajes RE
Estrategia para construir el autómata
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
1
Para cada estado de aceptación q, aplicar el proceso
de reducción para producir un autómata equivalente
con RE como etiquetas en los arcos. Eliminar todos los
estados excepto q y el estado inicial q0 .
2
Si q 6= q0 , se genera un autómata con 2 estados como
el siguiente, una forma de describir la RE de este
autómata es (R + SU ∗ T )∗ SU ∗
(INAOE)
29 / 52
Equivalencia de Lenguajes de FA y Lenguajes RE
Estrategia para construir el autómata
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
3
(INAOE)
Si el estado inicial también es un estado de aceptación,
también se debe hacer una eliminación de estados del
autómata original que elimine todos los estados menos
el inicial y dejamos un autómata como el siguiente:
30 / 52
Equivalencia de Lenguajes de FA y Lenguajes RE
Estrategia para construir el autómata
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
4
(INAOE)
La RE final es la suma (unión) de todas las expresiones
derivadas del autómata reducido para cada estado de
aceptación por las reglas 2 y 3.
31 / 52
Equivalencia de Lenguajes de FA y Lenguajes RE
Ejemplo
Expresiones
Regulares
Operadores y
Operandos
Para el siguiente NFA que acepta cadenas de 0’s y 1’s de
manera que tienen un 1 dos o tres posiciones antes del final.
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
(INAOE)
32 / 52
Equivalencia de Lenguajes de FA y Lenguajes RE
Convirtiendo una RE a un Autómata
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
Teorema 3.7: Todo lenguaje definido por una RE también
esta definido por un autómata finito.
Prueba: Suponemos L = L(R) para la expresión regular R.
Mostramos que L = L(E) para algún -NFA E con:
1
Exactamente un estado de aceptación
2
Sin arcos que lleguen al estado inicial
3
Sin arcos que salgan del estado de aceptación
(INAOE)
33 / 52
Equivalencia de Lenguajes de FA y Lenguajes RE
Convirtiendo una RE a un Autómata
Expresiones
Regulares
Operadores y
Operandos
Base: cumpliendo las condiciones 1, 2, y 3.
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
(INAOE)
34 / 52
Equivalencia de Lenguajes de FA y Lenguajes RE
Convirtiendo una RE a un Autómata
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Inducción:
a) Para las expresiones R + S
Leyes
Algebraicas
de las
Expresiones
Regulares
(INAOE)
35 / 52
Equivalencia de Lenguajes de FA y Lenguajes RE
Convirtiendo una RE a un Autómata
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
b) Para las expresiones RS
(INAOE)
36 / 52
Equivalencia de Lenguajes de FA y Lenguajes RE
Convirtiendo una RE a un Autómata
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
c) Para las expresiones R ∗
Leyes
Algebraicas
de las
Expresiones
Regulares
(INAOE)
37 / 52
Equivalencia de Lenguajes de FA y Lenguajes RE
Convirtiendo una RE a un Autómata
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
d) Para las expresiones (R)
(INAOE)
38 / 52
Equivalencia de Lenguajes de FA y Lenguajes RE
Ejemplo
Expresiones
Regulares
Convertir la RE (0 + 1)∗ 1(0 + 1) a un -NFA.
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
(INAOE)
39 / 52
Equivalencia de Lenguajes de FA y Lenguajes RE
Ejemplo
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
Dada la siguiente tabla de transición de un DFA:
0
1
→ q1 q2 q1
q2 q3 q1
∗q3 q3 q2
(0)
• Dar las expresiones regulares para Rij
(1)
• Dar las expresiones regulares para Rij
y simplificar las
expresiones
• Construir el diagrama de transición para el DFA y dar la
expresión regular de su lenguaje eliminando el estado
q2
(INAOE)
40 / 52
Equivalencia de Lenguajes de FA y Lenguajes RE
Ejemplo
Expresiones
Regulares
Convierte la siguiente expresión regular a un NFA con
transiciones : 01∗
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
(INAOE)
41 / 52
Leyes Algebraicas de las Expresiones Regulares
Asociatividad y Conmutatividad
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
Existen un conjunto de leyes algebraı́cas que se pueden
utilizar para las expresiones regulares:
• Ley conmutativa para la unión: L + M = M + L
• Ley asociativa para la unión: (L + M) + N = L + (M + N)
• Ley asociativa para la concatenación: (LM)N = L(MN)
NOTA: La concatenación no es conmutativa, es decir
LM 6= ML
(INAOE)
42 / 52
Leyes Algebraicas de las Expresiones Regulares
Identidades y Aniquiladores
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
• Una identidad para un operador es un valor tal que
cuando el operador se aplica a la identidad y a algún
otro valor, el resultado es el otro valor.
• 0 es la identidad para la adición: 0 + x = x + 0 = x.
• 1 es la identidad para la multiplicación:
1×x =x ×1=x
(INAOE)
43 / 52
Leyes Algebraicas de las Expresiones Regulares
Identidades y Aniquiladores
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
• Un aniquilador para un operador es un valor tal que
cuando el operador se aplica al aniquilador y algún otro
valor, el resultado es el aniquilador.
• 0 es el aniquilador para la multiplicación:
0×x =x ×0=0
• No hay aniquilador para la suma
(INAOE)
44 / 52
Leyes Algebraicas de las Expresiones Regulares
Identidades y Aniquiladores
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
• ∅ es la identidad para la unión: ∅ + L = L + ∅ = L
• es la identidad para la concatenación: L = L = L
• ∅ es el aniquilador para la concatenación: ∅L = L∅ = ∅
NOTA: Estas leyes las utilizamos para hacer simplificaciones
(INAOE)
45 / 52
Leyes Algebraicas de las Expresiones Regulares
Leyes Distributivas
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
• Como la concatenación no es conmutativa, tenemos
dos formas de la ley distributiva para la concatenación:
• Ley Distributiva Izquierda para la concatenación sobre
unión: L(M + N) = LM + LN
• Ley Distributiva Derecha para la concatenación sobre
unión: (M + N)L = ML + NL
(INAOE)
46 / 52
Leyes Algebraicas de las Expresiones Regulares
Ley de Idempotencia
Expresiones
Regulares
Operadores y
Operandos
• Se dice que un operador es idempotente (idempotent)
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
si el resultado de aplicarlo a dos argumentos con el
mismo valor es el mismo valor
• En general la suma no es idempotente: x + x 6= x
(aunque para algunos valores sı́ aplica como 0 + 0 = 0)
• En general la multiplicación tampoco es idempotente:
x × x 6= x
• La unión e intersección son ejemplos comunes de
operadores idempotentes. Ley idempotente para la
unión: L + L = L
(INAOE)
47 / 52
Leyes Algebraicas de las Expresiones Regulares
Leyes que involucran la cerradura
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
• (L∗ )∗ = L∗ (Idempotencia para la cerradura)
• ∅∗ = • ∗ = • L+ = LL∗ = L∗ L, L+ se define como L + LL + LLL + . . .
• L∗ = + L + LL + LLL + . . .
• LL∗ = L + LL + LLL + LLLL + . . .
• L∗ = L+ + • L? = + L
(INAOE)
48 / 52
Leyes Algebraicas de las Expresiones Regulares
Descubriendo leyes para RE
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
• Se puede proponer una variedad infinita de leyes para
RE
• Se reduce a probar la igualdad de dos lenguajes
especı́ficos
• Ejemplo: probar que (L + M)∗ = (L∗ M ∗ )∗
• Para esto, probamos que las cadenas que están en
(L + M)∗ también están en (L∗ M ∗ )∗ , y
• Probamos que las cadenas que están en (L∗ M ∗ )∗
también están en (L + M)∗
(INAOE)
49 / 52
Leyes Algebraicas de las Expresiones Regulares
Descubriendo leyes para RE
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
• Cualquier RE con variables se puede ver como una RE
concreta sin variables, viendo cada variable como si
fuera un sı́mbolo diferente
• La expresión (L + M)∗ se puede ver como (a + b)∗ .
Utilizamos esta forma como una guı́a para concluir
sobre los lenguajes.
• Podemos analizar el lenguaje que nos describe:
(a + b)∗
• Y analizar el lenguaje que nos describe: (a∗ b ∗ )∗
(INAOE)
50 / 52
Leyes Algebraicas de las Expresiones Regulares
Pasos de Prueba
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
Para probar una Ley Algebraica para una RE:
PASOS:
1
Convertir E y F a RE concretas C y D,
respectivamente, reemplazando cada variable por un
sı́mbolo concreto.
2
Probar si L(C) = L(D). Si es cierto, entonces E = F es
una ley verdadera y si no, la “ley” es falsa.
Ejemplo: L∗ = L∗ L∗
(INAOE)
51 / 52
Leyes Algebraicas de las Expresiones Regulares
Ejemplos
Expresiones
Regulares
Operadores y
Operandos
Equivalencia
de Lenguajes
de FA y
Lenguajes RE
Leyes
Algebraicas
de las
Expresiones
Regulares
Probar que se cumple o no se sumple:
• R+S =S+R
• (R ∗ )∗ = R ∗
• (R + S)∗ = R ∗ + S ∗
• S(RS + S)∗ R = RR ∗ S(RR ∗ S)∗
Simplificar: (0 + 1)∗ 1(0 + 1) + (0 + 1)∗ 1(0 + 1)(0 + 1)
(INAOE)
52 / 52

Documentos relacionados