Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

Teoria de Automatas y Lenguajes Formales, Esquemas y mapas conceptuales de Matemáticas

Teoria de Automatas y Lenguajes Formales

Tipo: Esquemas y mapas conceptuales

2018/2019

Subido el 02/07/2025

firefox-0075
firefox-0075 🇲🇽

1 documento

1 / 12

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Ciencias computacionales
Propedeutico: Teor´ıa de Aut´omatas y Lenguajes Formales
Expresiones regulares y lenguajes
Contents
1 Expresiones regulares 2
1.1 Los operadores de las expresiones regulares . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Construcci´on de expresiones regulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Precedencia de operaciones de las expresiones regulares . . . . . . . . . . . . . . . . . . . 3
1.4 Ejercicios ............................................. 3
2 Aut´omatas finitos y expresiones regulares 4
2.1 Conversi´on de un DFA a una RE por eliminaci´on de estados . . . . . . . . . . . . . . . . . 6
2.2 Convirtiendo una RE a un aut´omata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3 Aplicaciones de expresiones regulares 10
4 Reglas algebraicas para expresiones regulares 10
4.1 Identidades y ”aniquiladores” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.2 Leydistributiva.......................................... 11
4.3 Leydeidem-potencia....................................... 11
4.4 Leyes relacionadas con la propiedad de cerradura . . . . . . . . . . . . . . . . . . . . . . . 11
4.5 Descubrir leyes para expresiones regulares . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.6 La prueba de una ley algebraica para expresiones regulares . . . . . . . . . . . . . . . . . 12
4.7 Ejercicios ............................................. 12
1
pf3
pf4
pf5
pf8
pf9
pfa

Vista previa parcial del texto

¡Descarga Teoria de Automatas y Lenguajes Formales y más Esquemas y mapas conceptuales en PDF de Matemáticas solo en Docsity!

Ciencias computacionales

Propedeutico: Teor´ıa de Aut´omatas y Lenguajes Formales

Expresiones regulares y lenguajes

  • 1 Expresiones regulares Contents
    • 1.1 Los operadores de las expresiones regulares
    • 1.2 Construcci´on de expresiones regulares
    • 1.3 Precedencia de operaciones de las expresiones regulares
    • 1.4 Ejercicios
  • 2 Aut´omatas finitos y expresiones regulares
    • 2.1 Conversi´on de un DFA a una RE por eliminaci´on de estados
    • 2.2 Convirtiendo una RE a un aut´omata
  • 3 Aplicaciones de expresiones regulares
  • 4 Reglas algebraicas para expresiones regulares
    • 4.1 Identidades y ”aniquiladores”
    • 4.2 Ley distributiva
    • 4.3 Ley de idem-potencia
    • 4.4 Leyes relacionadas con la propiedad de cerradura
    • 4.5 Descubrir leyes para expresiones regulares
    • 4.6 La prueba de una ley algebraica para expresiones regulares
    • 4.7 Ejercicios

1 Expresiones regulares

Las expresiones regulares son un equivalente algebraico para un aut´omata. Utilizado en muchos lugares como un lenguaje para describir patrones en texto que son sencillos pero muy ´utiles. Pueden definir exactamente los mismos lenguajes que los aut´omatas pueden describir: Lenguajes regulares. Adem´as, ofrecen algo que los aut´omatas no: Manera declarativa de expresar las cadenas que queremos aceptar.

Sirven como lenguaje de entrada a muchos sistemas que procesan cadenas tales como:

  • Comandos de b´usqueda, e.g., grep de UNIX
  • Sistemas de formateo de texto: Usan notaci´on de tipo expresi´on regular para describir patrones
  • Convierte la expresi´on regular a un DFA o un NFA y simula el aut´omata en el archivo de b´usqueda
  • Generadores de analizadores-l´exicos. Como Lex o Flex.
  • Los analizadores l´exicos son parte de un compilador. Dividen el programa fuente en unidades l´ogicas (tokens). Tokens como while, n´umeros, signos (+, −, <, etc.)
  • Produce un DFA que reconoce el token.

De forma m´as precisa, Las expresiones regulares denotan lenguajes. Por ejemplo, la expresi´on regular: 01 ∗^ + 10∗^ denota todas las cadenas que son o un 0 seguido de cualquier cantidad de 1’s o un 1 seguida de cualquier cantidad de 0’s.

1.1 Los operadores de las expresiones regulares

Comunmente existen tres operadores de las expresiones regulares: Uni´on, concatenaci´on y cerradura. Si L y M son dos lenguajes, su uni´on se denota por L ∪ M e.g. L = {001,10,111}, M ={,001}, entonces la uni´on ser´a L ∪ M = {,10,001,111}.

La concatenaci´on de lenguajes se denota como LM o L.M e.g. L = {001,10,111}, M ={,001}, entonces la concatenaci´on ser´a LM ={001,10,111,001001,10001,111001}.

Finalmente, la cerradura (o cerradura de Kleene) de un lenguaje L se denota como L∗. Representa el conjunto de cadenas que puede que pueden formarse tomando cualquier n´umero de cadenas de L, posiblemente con repeticiones y concatenando todas ellas e.g. si L = { 0 , 1 }, L∗^ son todas las cadenas con 0’s y 1’s. Si L = { 0 , 11 }, entonces L∗^ son todas las cadenas de 0’s y 1’s tal que los 1’s est´an en pareja. Para calcular L∗^ se debe calcular Li^ para cada i y tomar la uni´on de todos estos lenguajes. Li^ tiene 2i elementos. Aunque cada Li^ es finito, la uni´on del n´umero de terminos de Li^ es en general un conjunto infinito e.g. ∅∗^ = {} o ∅^0 = {}. Generalizando, para todo i mayor o igual que uno, ∅i^ es el conjunto vac´ıo, no se puede seleccionar ninguna cadena del conjunto vac´ıo.

1.2 Construcci´on de expresiones regulares

Si E es una expresi´on 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´on regular que representan al lenguaje: L(a) = {a}
  3. Si E y F son expresiones regulares, entonces E + F tambi´en lo es denotando la uni´on de L(E) y L(F ). L(E + F ) = L(E) ∪ L(F ).
  4. Si E y F son expresiones regulares, entonces EF tambi´en lo es denotando la concatenaci´on de L(E) y L(F ). L(EF ) = L(E)L(F ).

2 Aut´omatas finitos y expresiones regulares

Si se necesita demostrar que para cada expresi´on regular, existe un aut´omata finito que acepta el mismo lenguaje. Se selecciona el aut´omata m´as apto  − N F A. Si por el contrario, se necesita demostrar que por cada aut´omata finito, hay una expresi´on regular definiendo su lenguaje se selecciona el aut´omata con mayores restricciones: DFA. Los lenguajes aceptados por DFA, NFA, -NFA, RE son llamados lenguajes regulares.

Para convertir expresiones regulares a -NFA se realizan pruebas por inducci´on en los diferentes operadores (+, concatenation, *) en la expresi´on regular. Siempre se construye un aut´omata de una forma especia. Se mostrar´a que un NFA con transiciones- puede aceptar el lenguaje de una RE. Despu´es, se mostrar´a que un RE puede describir el lenguaje de un DFA (la misma construcci´on funciona para un NFA). Los lenguajes aceptados por DFA, NFA, -NFA, RE son llamados lenguajes regulares.

Teorema 1 Si L = L(A) para alg´un DFA A, entonces existe una expresi´on regular R tal que L = L(R).

Prueba: Suponiendo que A tiene estados { 1 , 2 ,... , n}, n finito. Tratemos de construir una colecci´on de RE que describan progresivamente conjuntos de rutas del diagrama de transiciones de A

  • R( ijk )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.
  • Para construir R( ijk )se utiliza una definici´on inductiva de k = 0 hasta k = n
  • BASE: k = 0, implica que no hay estados intermedios. S´olo dos clases de rutas cumplen con esta condici´on: 1. Un arco del nodo (estado) i al nodo j 2. Una ruta de longitud 0 con un solo nodo i
  • Si i 6 = j, solo el caso 1 es posible.

Examinar el DFA A y encontrar los s´ımbolos de entrada a tal que hay una transici´on del estado i al estado j con el s´ımbolo a

  • Si no hay s´ımbolo a, entonces R (0) ij =^ ∅.
  • Si hay s´olo un s´ımbolo a, entonces R ij(0) = a.
  • Si hay varios s´ımbolos a 1 , a 2 ,... , ak, entonces R (0) ij =^ a^1 +^ a^2 +^...^ +^ ak. Si i = j, s´olo se permiten rutas de longitud 0 y ciclos del estado i a ´el mismo.
  • La ruta de longitud 0 se representa con 
  • Si no hay s´ımbolo a, entonces R(0) ij = ∅.
  • Si hay s´olo un s´ımbolo a, entonces R ij(0) =  + a.
  • Si hay varios s´ımbolos a 1 , a 2 ,... , ak, entonces R(0) ij =  + a 1 + a 2 +... + ak.

INDUCCI ON: Suponemos que hay una ruta del estado´ i al estado j que no pasa por ning´un estado mayor que k. Se consideran 2 casos.

  1. La ruta no pasa por el estado k: La etiqueta de la ruta est´a en el lenguaje R( ijk −1).

Figure 1: DFA que acepta todas las cadenas que tienen al menos un 0.

  1. La ruta pasa por el estado k al menos una vez:
    • Se divide la ruta en varias partes, una divisi´on cada que se pasa por el estado k
    • Primero del estado i al estado k, despu´es, 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: R( ikk −1)(R( kkk− 1))∗R( kjk−1)

  • Si combinamos las expresiones de las rutas de los dos tipos: R (k) ij =^ R

(k−1) ij +^ R

(k−1) ik (R

(k−1) kk )

∗R(k−1) kj para todas las etiquetas de las rutas del estado i al j que no pasan por estados mayores que k.

  • Eventualmente tendremos R( ijn ).
  • Asumimos que 1 es el estado inicial. El estado de aceptaci´on puede ser un conjunto de estados La expresi´on regular para el lenguaje del aut´omata es la suma (uni´on) de todas las expresiones R( 1 nj) tal que j es un estado de aceptaci´on.

Ejemplo 3 Un DFA que acepta todas las cadenas que tienen al menos un 0. Ver Figura 1.

Inicialmente sustituimos para la base: (i) R(0) ij = , (ii) R(0) ij =  + a y (iii) R(0) ij =  + a 1 + a 2 +... + ak

R(0) 11 =  + 1

R(0) 12 = 0

R(0) 21 = ∅

R(0) 22 = ( + 0 + 1)

Ahora para el paso de inducci´on: R(1) ij = R(0) ij + R(0) i 1 (R(0) 11 )∗R(0) 1 j Por sustituci´on directa Simplificado R(1) 11 =  + 1 + ( + 1)( + 1)∗( + 1) 1 ∗ R(1) 12 = 0 + ( + 1)( + 1)∗ 0 1 ∗ 0 R(1) 21 = ∅ + ∅( + 1)∗( + 1) ∅ R(1) 22 =  + 0 + 1 + ∅( + 1)∗ 0  + 0 + 1 R(2) ij = R(1) ij + R(1) i 2 (R(1) 22 )∗R(1) 2 j Por sustituci´on directa Simplificado R(2) 11 = 1 ∗^ + 1∗0( + 0 + 1)∗∅ 1 ∗ R(2) 12 = 1 ∗0 + 1∗0( + 0 + 1)∗( + 0 + 1) 1 ∗0(0 + 1)∗ R(2) 21 = ∅ + ( + 0 + 1)( + 0 + 1)∗∅ ∅ R(2) 22 =  + 0 + 1 + ( + 0 + 1)( + 0 + 1)∗^ (0 + 1)∗ ( + 0 + 1) Para la construcci´on de un RE final se puede utilizar la uni´on de todas las expresiones donde el primer estado es el estado inicial y el segundo el estado de aceptaci´on.

Figure 2: Ejemplo de DFA a RE por eliminaci´on de estados.

Figure 3: Eliminaci´on de estados.

Figure 4: Construcci´on del aut´omata.

Figure 5: Construcci´on del aut´omata.

Figure 7: Caso base.

Figure 8: Induccion (a).

3 Aplicaciones de expresiones regulares

Entre las aplicaciones de expresiones regulares se encuentran:

  • Comandos de b´usqueda, e.g., grep de UNIX
  • Sistemas de formateo de texto: Usan notaci´on de tipo expresi´on regular para describir patrones
  • Convierte la expresi´on regular a un DFA o un NFA y simula el aut´omata en el archivo de b´usqueda
  • Generadores de analizadores-l´exicos. Como Lex o Flex.
  • Los analizadores l´exicos son parte de un compilador. Dividen el programa fuente en unidades l´ogicas (tokens). Tokens como while, n´umeros, signos (+, −, <, etc.)
  • Produce un DFA que reconoce el token

4 Reglas algebraicas para expresiones regulares

Existen un conjunto de leyes algebraicas que se pueden utilizar para las expresiones regulares:

  • Ley conmutativa para la uni´on: L + M = M + L
  • Ley asociativa para la uni´on: (L + M ) + N = L + (M + N )
  • Ley asociativa para la concatenaci´on: (LM )N = L(M N )

NOTA: La concatenaci´on no es conmutativa, es decir LM 6 = M L

Figure 9: Induccion (b).

4.1 Identidades y ”aniquiladores”

Una identidad para un operador es un valor tal que cuando el operador se aplica a la identidad y a alg´un otro valor, el resultado es el otro valor. Por ejemplo, 0 es la identidad de la suma, ya que 0+x = x+0 = x, la identidad para la multiplicaci´on es 1 debido a que 1x = x1 = x. Un aniquilador para un operador es un valor tal que cuando el operador se aplica al aniquilador y alg´un otro valor, el resultado es el aniquilador. 0 es el aniquilador para la multiplicaci´on: 0 × x = x × 0 = 0. No hay aniquilador para la suma.

Estas leyes las utilizamos para hacer simplificaciones: ∅ es la identidad para la uni´on: ∅+L = L+∅ = L.  es la identidad para la concatenaci´on: L = L = L. ∅ es el aniquilador para la concatenaci´on: ∅L = L∅ = ∅.

4.2 Ley distributiva

Como la concatenaci´on no es conmutativa, tenemos dos formas de la ley distributiva para la concatenaci´on:

  • Ley Distributiva Izquierda para la concatenaci´on sobre uni´on: L(M + N ) = LM + LN
  • Ley Distributiva Derecha para la concatenaci´on sobre uni´on: (M + N )L = M L + N L

4.3 Ley de idem-potencia

Se dice que un operador es idempotente (idempotent) 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´on tampoco es idempotente: x × x 6 = x. La uni´on e intersecci´on son ejemplos comunes de operadores idempotentes. La ley idempotente para la uni´on: L + L = L.

4.4 Leyes relacionadas con la propiedad de cerradura

Las leyes involucradas con la propiedad de cerradura:

  • (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

4.5 Descubrir leyes para expresiones regulares

Se puede proponer una variedad infinita de leyes para expresiones regulares. El problema se reduce a probar la igualdad de dos lenguajes espec´ıficos:

Ejemplo 5 Probar que (L + M )∗^ = (L∗M ∗)∗

Es necesario probar que las cadenas que est´an en (L + M )∗^ tambi´en est´an en (L∗M ∗)∗, y probamos que las cadenas que est´an en (L∗M ∗)∗^ tambi´en est´an en (L + M )∗.

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´on (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∗)∗.