Vous êtes sur la page 1sur 5

LECCION 2 EXPRESIONES REGULARES

En general, en matemticas, una expresin es una secuencia de OPERANDOS Y OPERADORES. Los operandos son los objetos sobre los cuales se realizan las operaciones mediante tales operadores. Como ejemplo recordemos los operadores aritmticos + , -, x, /, (suma, resta, multiplicacin y divisin). Estos operadores actan sobre elementos del conjunto de los nmeros, algunas operaciones son cerradas en ciertos conjuntos y otros no, por ejemplo, la suma es una operacin cerrada en los nmeros enteros porque al sumar dos enteros el resultado es tambin un entero, lo que no ocurre, por ejemplo, con el operador de la divisin: al dividir dos enteros el resultado no necesariamente es otro entero, con lo cual la divisin no es cerrada en el conjunto de los enteros.

Los conjuntos son elementos matemticos y por tanto son sujetos a operaciones. Por ejemplo, la unin de dos conjuntos produce un nuevo conjunto, al igual que la interseccin, y otras operaciones que veremos. Recordemos que los lenguajes en general son conjuntos de cadenas, por lo que podremos realizar operaciones con ellos y obtener nuevos lenguajes. En particular los lenguajes regulares son conjuntos de cadenas que pueden ser reconocidas por un autmata finito (determinista o no), y existen algunos operadores que al aplicarlos a lenguajes regulares nos producen nuevos lenguajes regulares. A las expresiones que contienen operandos y operadores regulares las llamaremos EXPRESIONES REGULARES.

Una expresin regular es un conjunto de operandos (lenguajes regulares), y operadores tales que al aplicarlos producen nuevos lenguajes regulares, a saber:

UNIN Si L1 y L2 son lenguajes regulares, L1 U L2 es un lenguaje regular:

L1 U L2 = { | L1

L2 }

Lo anterior se llama una definicin por comprensin y se debe leer as: La unin de dos lenguajes regulares es un nuevo conjunto de cadenas que conforman un lenguaje tambin regular tal que cada una de las cadenas de la unin pertenece a un lenguaje o pertenece al otro.

INTERSECCIN Si L1 y L2 son lenguajes regulares, L1 L2 es un lenguaje regular

L1

L2 = { | L1

L2 }

La interseccin de dos lenguajes regulares es un nuevo conjunto de cadenas que conforman un lenguaje tambin regular tal que cada una de las cadenas de la interseccin pertenece a un lenguaje y pertenece al otro.

CONCATENACIN Previo a la definicin de concatenacin de dos lenguajes recordemos lo que es la concatenacin de dos smbolos: Concatenar dos smbolos es yuxtaponer uno a continuacin de otro para formar una cadena de longitud 2. Ejemplo, en el alfabeto {0,1}. Concatenar 0 con 1 se representa as: 0 1 = 01. De manera similar se define la concatenacin de dos cadenas. Ya habamos definido la cadena vaca como aqulla que no tiene ningn smbolo, ya la denotamos con la letra griega lambda minscula: . Concatenar cualquier smbolo o cadena con la cadena vaca tiene como resultado el mismo smbolo o la misma cadena. Si es cualquier cadena de un alfabeto:

= =
Entonces, con base en las anteriores definiciones podemos definir ahora si la concatenacin de lenguajes:

Si L1 y L2 son lenguajes regulares, L1

L2 es un lenguaje regular as:

L1 L2 = { | = 1 2 | 1 L1

2 L2 }

La concatenacin de dos lenguajes regulares es un nuevo conjunto de cadenas, que conforman un lenguaje tambin regular, tal que cada una de las cadenas del lenguaje concatenado se puede descomponer en dos subcadenas contiguas y la primera parte pertenece al lenguaje 1 y la segunda parte pertenece al lenguaje 2.

ESTRELLA (O ESTRELLA DE KLEENE) La operacin estrella es mono aria ( es decir aplica sobre un solo lenguaje), y produce un nuevo lenguaje regular conformado por cadenas resultantes de concatenar entre s libremente las cadenas de dicho lenguaje.

Si L es un lenguaje regular, entonces L* es un lenguaje regular as:

L* = { | = 1 2 i . n | i L } U { }

La operacin estrella aplicada a un lenguaje regular es un nuevo conjunto de cadenas, que conforman un lenguaje tambin regular, tales que cualquier cadena de L* se puede descomponer en una serie de subcadenas concatenadas cada una de las cuales pertenece a L. Observe que en la definicin que acabamos de dar de la operacin estrella hemos unido al lenguaje la cadena vaca. Esto quiere decir que

pertenece a L* para cualquier L.

Esta definicin la aclaramos con un ejemplo: Sea L un lenguaje simple de = {0,1] que solo contiene dos cadenas: L = {0, 10 )

L* = { , 0, 10, 00, 010, 1010, 100, 000, 101010, 0100, 0010, 10100, 10010 .. }
Como se puede observar cualquier cadena de L* se puede descomponer en subcadenas de L. la cadena vaca se considera la concatenacin de cero cadenas de L. El lenguaje estrella de cualquier lenguaje L siempre tendr un nmero infinito de cadenas aunque L sea finito, y siempre contiene la cadena vaca .

Una consecuencia importante de la operacin estrella es que si la aplicamos a un alfabeto , nos producir el lenguaje universal del alfabeto . Ejemplo, si = {0,1}

* = ( , 0, 1, 00, 01, 10, 11, 000, 001, 010, 011, 100, 101, 110, 111, }
El lenguaje universal de un alfabeto es el conjunto de todas las cadenas que se pueden conformar con los smbolos ese alfabeto, incluida la cadena vaca.

LENGUAJES Y EXPRESIONES REGULARES Todo lenguaje regular se puede representar como una expresin regular. Para demostrar esto basta ver que todo autmata finito se puede convertir a una expresin regular equivalente, esto es, que acepta el mismo lenguaje. Con los operadores unin, concatenacin y estrella podemos realizar tal conversin as:

Las transiciones del autmata que se deben seguir para llegar desde el estado inicial hasta el de aceptacin se convierten en la concatenacin de los smbolos asociados con dichas transiciones. Los ciclos del autmata se representan como operaciones estrella del smbolo o la secuencia de smbolos con los que se realiza el ciclo. Los varios caminos de un autmata desde el estado inicial hasta el de aceptacin se representan como la unin de los lenguajes obtenidos por cada uno de tales caminos.

Ejemplo: Obtener la expresin regular del lenguaje L reconocido por el siguiente autmata M L(M) = Cadenas que empiezan en 0 y terminan en 1 0,1 0 1 A B C

La ER equivalente es = 0 (0,1)*1
El primer 0 de la expresin corresponde al smbolo necesario para llegar del estado A al B (0,1)* corresponde al ciclo que va del estado B al estado B mismo con los smbolos 0 y 1 El 1 final corresponde al smbolo necesario para llegar del estado B al C.

(0,1)* quiere decir que del estado B se puede volver al mismo con cualquier cadena del alfabeto, es decir con cualquier cadena de *, por supuesto, incluida la cadena vaca, es por esto ltimo que el lenguaje L(M) acepta la cadena 01, si no repetimos el estado B en la trayectoria desde A hasta C. Para efectos de nomenclatura, (0,1)* se puede representar de diferentes maneras a saber: (0,1)*= (0 U 1)* = {0,1}* = * y es la operacin estrella aplicada al alfabeto , es decir, repetimos una vez ms, es cualquier cadena del alfabeto {0,1}.

PROPIEDADES DE LAS EXPRESIONES REGULARES

Las expresiones regulares, y las operaciones U , y * tienen las siguientes propiedades (anlogas a las propiedades de las operaciones aritmticas de suma, multiplicacin y potenciacin):

(0 U 1)* <> 0* U 1* Lo operacin estrella no es distributiva para la unin L1 L2 <> L2 L1 Esto es la operacin concatenacin no es conmutativa, como lo es la unin. L1 U L2 = L2 U L1 (01)* = {, 01, 0101,010101,010101, .. , }, repeticiones de la cadena 01 (01)* <> 0*1* L =L = L L U = L ( es el lenguaje sin cadenas, el lenguaje vaco) L = (esto se desprende de la propia definicin de la concatenacin de lenguajes)

PRACTICA EN CASA: Para cada uno de los ejercicios del DEBER 1 obtenga la expresin regular equivalente. Si tiene dificultad con alguno de los ejercicios consulte en clase.

Vous aimerez peut-être aussi