Gramaticas Regulares
description
Transcript of Gramaticas Regulares
GRAMÁTICAS REGULARES
TEMARIO
Introducción
Introducción a los Autómatas Finitos
Conceptos Fundamentales de la Teoría de Autómatas
Autómatas Finito Deterministas (AFD)
Autómatas Finitos No Deterministas (AFN)
Autómatas Finitos con Transición - ε
Expresiones Regulares
El Algebra de la las Expresiones Regulares
Ejercicios
INTRODUCCIÓN
Gramáticas regulares:
Son los lenguajes formales más simples, en la
jerarquía de Chomsky se refiere a los lenguajes de
tipo 3, aquellos que pueden representarse mediante,
autómatas finitos o expresiones regulares.
TEMARIO
Introducción
Introducción a los Autómatas Finitos
Conceptos Fundamentales de la Teoría de Autómatas
Autómatas Finito Deterministas (AFD)
Autómatas Finitos No Deterministas (AFN)
Autómatas Finitos con Transición - ε
Expresiones Regulares
El Algebra de la las Expresiones Regulares
Ejercicios
INTRODUCCIÓN A LOS AUTÓMATAS FINITOS
Definición:
Un autómata finito o máquina de estado finito es un
modelo computacional que realiza cómputos en forma
automática sobre una entrada para producir una salida.
Este modelo está conformado por un alfabeto, un conjunto
de estados finitos, una función de transición, un estado
inicial y un conjunto de estados finales. Su funcionamiento
se basa en una función de transición, que recibe a partir de
un estado inicial una cadena de caracteres pertenecientes
al alfabeto, y que va leyendo dicha cadena a medida que el
autómata se desplaza de un estado a otro, para finalmente
detenerse en un estado final o de aceptación, que
representa la salida.
INTRODUCCIÓN A LOS AUTÓMATAS FINITOS
Los autómatas finitos constituyen un modelo útil para
muchos tipos de hardware y software. Por ejemplo:
1. Software para diseñar y probar el comportamiento
de circuitos digitales.
2. El “analizador léxico” de un compilador para tratar
identificadores, palabras clave y signos de puntuación.
3. Software para explorar textos largos, o para
determinar el número de apariciones de palabras,
frases u otros patrones.
INTRODUCCIÓN A LOS AUTÓMATAS FINITOS
En la siguiente figura se muestra el modelo de autómata finito
para el interruptor. Como en todos los autómatas finitos, los
estados están representados mediante círculos; en este
ejemplo, hemos denominado a los estados on y off. Los arcos
entre los estados están etiquetados con las “entradas”, las
cuales representan las influencias externas sobre el sistema.
Los dos arcos indican que, sea cual sea el estado en que se
encuentra el sistema, cuando recibe la entrada Pulsar pasa al
otro estado. Uno de los estados se designa como el “estado
inicial”, el estado en el que el sistema se encuentra
inicialmente.
INTRODUCCIÓN A LOS AUTÓMATAS FINITOS
El estado inicial es apagado (off) y, por conveniencia, hemos
indicado el estado inicial mediante la palabra Inicio y una
flecha. A menudo es necesario especificar uno o más estados
como estado “final” o "de aceptación”. Llegar a uno de estos
estados después de una secuencia de entradas indica que
dicha secuencia es correcta. Por ejemplo, el estado (on)
como estado de aceptación, ya que en dicho estado, el
dispositivo que está siendo controlado por el interruptor
funciona. Normalmente, los estados de aceptación se indican
mediante un círculo doble.
INTRODUCCIÓN A LOS AUTÓMATAS FINITOS
El trabajo de este autómata consiste en reconocer la palabra
clave then, por lo que necesita cinco estados, representando
cada uno de ellos la posición dentro de dicha palabra que se
ha alcanzado hasta el momento. Estas posiciones se
corresponden con los prefijos de la palabra. El estado inicial
se corresponde con la cadena vacía y cada uno de los
estados tiene una transición a la siguiente letra de la palabra
then. El estado denominado then se alcanza cuando la
entrada está formada por todas las letras de dicha palabra.
Puesto que el trabajo de este autómata es indicar el
reconocimiento de la palabra then, podemos considerar
dicho estado como el único estado de aceptación.
TEMARIO
Introducción
Introducción a los Autómatas Finitos
Conceptos Fundamentales de la Teoría de Autómatas
Autómatas Finito Deterministas (AFD)
Autómatas Finitos No Deterministas (AFN)
Autómatas Finitos con Transición - ε
Expresiones Regulares
El Algebra de la las Expresiones Regulares
Ejercicios
ALFABETOS
Definición:
Un alfabeto es un conjunto de símbolos finito y no
vacío. Convencionalmente, utilizamos el símbolo Σ
para designar un alfabeto.
1) Σ = {0,1}, el alfabeto binario.
2) Σ = { a, b, . . . , z}, el conjunto de todas las letras
minúsculas.
3) El conjunto de todos los caracteres ASCII o el
conjunto de todos los caracteres ASCII imprimibles.
CADENA DE CARACTERES
Definición:
Una cadena de caracteres es una secuencia finita de
símbolos seleccionados de algún alfabeto. Por
ejemplo, 01101 es una cadena del alfabeto binario Σ
= {0,1}. La cadena 111 es otra cadena de dicho
alfabeto.
LA CADENA VACÍA
Definición:
La cadena vacía es aquella cadena que presenta cero
apariciones de símbolos. Esta cadena, designada por
ε, es
una cadena que puede construirse en cualquier
alfabeto.
LONGITUD DE CADENA
Definición:
Es la longitud de la cadena, es decir, el número
posiciones ocupadas por los símbolos dentro de la
cadena.
Por ejemplo, 01101 tiene una longitud de 5.
LONGITUD DE CADENA
Es habitual decir que la longitud de una cadena es
igual al “número de símbolos” que contiene; esta
proposición está aceptada coloquialmente, sin
embargo, no es estrictamente correcta. Así, en la
cadena 01101 sólo hay dos símbolos, 0 y 1, aunque
tiene cinco posiciones para los mismos y su longitud es
igual a 5.
La notación estándar para indicar la longitud de una
cadena w es |w|. Por ejemplo: Si w = 001
|w| = 3
|ε| = 0
POTENCIAS DE UN ALFABETO
Definición:
Si Σ es un alfabeto, podemos expresar el conjunto de
todas las cadenas de una determinada longitud de
dicho alfabeto utilizando una notación exponencial.
Definimos Σ^k para que sea el conjunto de las
cadenas de longitud k, tales que cada uno de los
símbolos de las mismas pertenece a Σ.
POTENCIAS DE UN ALFABETO
Observe que Σ^0 = { }, independientemente de cuál sea
el alfabeto Σ. Es decir, ε es la única cadena cuya longitud es
0.
Si Σ = {0,1}, entonces
Σ^1 = {0,1}
Σ^2 = {00,01,10,11}
Σ^3 = {000,001,010,011,100,101,110,111}
Observe que existe una ligera confusión entre Σ y Σ^1. El
primero es un alfabeto; sus elementos 0 y 1 son los
símbolos. Lo segundo es un conjunto de cadenas; sus
elementos son las cadenas 0 y 1, cuya longitud es igual a 1.
POTENCIAS DE UN ALFABETO
Por convenio, el conjunto de todas las cadenas de un
alfabeto Σ se designa mediante Σ*. Por ejemplo,
Σ* = {ε ,0,1,00,01,10,11,000, . . .}.
Expresado de otra forma,
Σ* = Σ^0 ∪ Σ^1 ∪ Σ^2 ∪ · · ·
En ocasiones, desearemos excluir la cadena vacía del
conjunto de cadenas. El conjunto de cadenas no vacías
del alfabeto Σ se designa como Σ+. Por tanto:
Σ+ = Σ^1 ∪ Σ^2 ∪ Σ^3 ∪ · · ·
Σ* = Σ+ ∪ { ε } ó Σ* = Σ+ ∪ Σ^0
CONCATENACIÓN DE CADENAS
Definición:
Sean “x” e “y” dos cadenas. Entonces, “xy” denota la
concatenación de “x” e “y”, es decir, la cadena
formada por una copia de “x” seguida de una copia
de “y”. Dicho de manera más precisa, si “x” es la
cadena compuesta por “ i ” símbolos x = a1a2 · · ·ai e
“y” es la cadena compuesta por “ j ” símbolos y =
b1b2 · · ·bj , entonces “xy” es la cadena de longitud xy
= a1a2 · · ·aib1b2 · · ·bj.
CONCATENACIÓN DE CADENAS
Ejemplo:
Sean x = 01101 e y = 110.
Entonces xy = 01101110 e yx = 11001101.
Para cualquier cadena w, tenemos que:
εw = wε = w
Es decir, ε es el elemento neutro de la concatenación,
dado que su concatenación con cualquier cadena
proporciona la misma cadena como resultado.
LENGUAJES
Un conjunto de cadenas, todas ellas seleccionadas de
un Σ*, donde Σ es un determinado alfabeto se
denomina lenguaje. Si Σ es un alfabeto y L ⊆ Σ*,
entonces L es un lenguaje de Σ.
LENGUAJES
Ejemplos:
Un ejemplo sería el inglés, donde la colección de las
palabras correctas inglesas es un conjunto de cadenas
del alfabeto que consta de todas las letras.
Otro ejemplo es el lenguaje C, o cualquier otro
lenguaje de programación, donde los programas
correctos son un subconjunto de las posibles cadenas
que pueden formarse a partir del alfabeto del
lenguaje. Este alfabeto es un subconjunto de los
caracteres ASCII.
LENGUAJES
Ejemplos: Si Σ = {0,1}
El lenguaje de todas las cadenas que constan de n
ceros seguidos de n unos para cualquier n ≥ 0:
{ε ,01,0011,000111, . . .}.
El conjunto de cadenas formadas por el mismo
número de ceros que de unos:
{ε ,01,10,0011,0101,1001, . . .}
El conjunto de números binarios cuyo valor es un
número primo: {10,11,101,111,1011, . . .}
LENGUAJES
Curiosidades:
Σ* es un lenguaje para cualquier alfabeto Σ.
Ø, el lenguaje vacío, es un lenguaje de cualquier
alfabeto.
{ ε }, el lenguaje que consta sólo de la cadena
vacía, también es un lenguaje de cualquier alfabeto.
Observe
que Ø ≠ {ε }; el primero no contiene ninguna cadena
y el segundo sólo tiene una cadena.
LENGUAJES
Curiosidades:
La única restricción sobre un lenguaje es que todos
los alfabetos son finitos. De este modo, los lenguajes,
aunque pueden tener un número infinito de cadenas,
están restringidos a que dichas cadenas estén
formadas por los símbolos que definen un alfabeto
finito y prefijado.
LENGUAJES
Definición del Lenguaje Mediante Descripciones de
Conjuntos:
Es habitual describir un lenguaje utilizando una
“descripción de conjuntos”:
{w | algo acerca de w}
Esta expresión se lee “el conjunto de palabras “w” tal
que (lo que se dice acerca de “w” a la derecha de la
barra vertical)”.
LENGUAJES
Ejemplos:
{w | w consta de un número igual de ceros que de unos
}.
{w | w es un entero binario que es primo }.
{w | w es un programa C sintácticamente correcto }.
LENGUAJES
También es habitual reemplazar “w” por alguna
expresión con parámetros y describir las cadenas del
lenguaje estableciendo condiciones sobre los
parámetros.
Ejemplo:
{0^n 1^n | n ≥ 1}.
Esta expresión se lee: “El conjunto de 0 a la “n” y 1 a la
“n” tal que “n” es mayor o igual que 1”, este lenguaje
consta de las cadenas {01,0011,000111, . . .}.
LENGUAJES
Ejemplo:
{0^i1^j | 0 ≤ i ≤ j }.
Este lenguaje consta de cadenas formadas por ceros
(puede ser ninguno) seguidos de al menos el mismo
número de unos.
TEMARIO
Introducción
Introducción a los Autómatas Finitos
Conceptos Fundamentales de la Teoría de Autómatas
Autómatas Finito Deterministas (AFD)
Autómatas Finitos No Deterministas (AFN)
Autómatas Finitos con Transición - ε
Expresiones Regulares
El Algebra de la las Expresiones Regulares
Ejercicios
AUTÓMATAS FINITOS DETERMINISTAS (AFD)
Definición:
Es aquel Autómata Finito que sólo puede estar en un
único estado después de leer cualquier secuencia de
entradas. El término “determinista” hace referencia al
hecho de que para cada entrada sólo existe uno y sólo
un estado al que el autómata puede hacer la
transición a partir de su estado actual.
AUTÓMATAS FINITOS DETERMINISTAS (AFD)
Un autómata finito determinista consta de:
1. Un conjunto finito de estados, a menudo designado como Q.
2. Un conjunto finito de símbolos de entrada, se designa como Σ.
3. Una función de transición δ que toma como argumentos un
estado y un símbolo de entrada y devuelve un estado.
4. Un estado inicial, uno de los estados de Q.
5. Un conjunto de estados finales F. El conjunto F es un
subconjunto de Q.
AUTÓMATAS FINITOS DETERMINISTAS (AFD)
Entonces, definiremos un AFD utilizando la notación de
siguiente:
A = (Q, Σ,δ ,q0,F)
donde A es el nombre del AFD, Q es su conjunto de
estados, Σ son los símbolos de entrada, δ es la función de
transición, q0 es el estado inicial y F es el conjunto de
estados finales.
AUTÓMATAS FINITOS DETERMINISTAS (AFD)
Ejemplo:
Especificamos formalmente un AFD que acepte únicamente
todas las cadenas de ceros y unos que contengan la
secuencia 01 en cualquier posición de la cadena. Al que
denominaremos con la letra A.
AUTÓMATAS FINITOS DETERMINISTAS (AFD)
¿Qué sabemos del autómata?
En primer lugar, sabemos que su alfabeto de entrada
es Σ = {0,1}.
Tiene un determinado conjunto de estados, Q, siendo
uno de ellos, por ejemplo q0, el estado inicial.
AUTÓMATAS FINITOS DETERMINISTAS (AFD)
1. Ha leído ya una subcadena 01. En caso afirmativo,
aceptará cualquier secuencia de entradas futura; es decir,
sólo se encontrará en estados de aceptación.
2. Todavía no ha leído la secuencia 01, pero la entrada
más reciente ha sido un 0, de manera que si ahora lee un
1, habrá leído la subcadena 01 y podrá aceptar cualquier
cosa que lea de ahí en adelante
3. Todavía no ha leído la secuencia 01, pero la última
entrada no existe (acaba de iniciarse) o ha sido un 1. En
este caso, A no puede aceptar la entrada hasta que no lea
un 0 seguido inmediatamente de un 1.
AUTÓMATAS FINITOS DETERMINISTAS (AFD)
Cada una de las tres condiciones anteriores puede
representarse mediante un estado. La condición (3) se
representa
mediante el estado inicial, q0. Si estando en el estado q0 lo
primero que leemos es un 1, entonces no leeremos la
secuencia 01 y, por tanto, deberemos permanecer en el estado
q0. Es decir, δ (q0,1) = q0.
¿Todavía no ha leído la secuencia 01, pero la última entrada no
existe (acaba de iniciarse) o ha sido un 1? En este caso, A no puede
aceptar la entrada hasta que no lea un 0 seguido inmediatamente
de un 1.
AUTÓMATAS FINITOS DETERMINISTAS (AFD)
Sin embargo, si estando en el estado q0 y a continuación
leemos un 0, nos encontraremos en el caso de la condición (2).
Por tanto, utilizaremos q2 para representar la condición (2). La
transición de q0 para la entrada 0 es δ (q0,0) = q2.
Todavía no ha leído la secuencia 01, pero la entrada más reciente
ha sido un 0, de manera que si ahora lee un 1, habrá leído la
subcadena 01 y podrá aceptar cualquier cosa que lea de ahí en
adelante
AUTÓMATAS FINITOS DETERMINISTAS (AFD)
Consideremos ahora las transiciones desde el estado q2. Si
leemos un 0, no mejoramos nuestra situación pero tampoco la
empeoramos. El estado q2 describe esta situación
perfectamente, por lo que deseamos que δ (q2,0) = q2.
Todavía no ha leído la secuencia 01, pero la entrada más reciente
ha sido un 0, de manera que si ahora lee un 1, habrá leído la
subcadena 01 y podrá aceptar cualquier cosa que lea de ahí en
adelante
AUTÓMATAS FINITOS DETERMINISTAS (AFD)
Si nos encontramos en el estado q2 y leemos una entrada 1,
entonces disponemos de un 0 seguido de un 1. Ahora podemos
pasar a un estado de aceptación, que denominaremos q1, y
que se corresponde con la condición (1). Es decir, δ (q2,1) =
q1.
¿Ha leído ya una subcadena 01? En caso afirmativo, aceptará
cualquier secuencia de entradas futura; es decir, sólo se
encontrará en estados de aceptación.
AUTÓMATAS FINITOS DETERMINISTAS (AFD)
Por último, tenemos que diseñar las transiciones para el estado
q1. En este estado, ya hemos leído una secuencia 01, así que,
independientemente de lo que ocurra, nos encontraremos en
una situación en la que hemos leído la secuencia 01.
Es decir, δ (q1,0) = q1 y (q1,1) = q1.
¿Ha leído ya una subcadena 01? En caso afirmativo, aceptará
cualquier secuencia de entradas futura; es decir, sólo se
encontrará en estados de aceptación.
AUTÓMATAS FINITOS DETERMINISTAS (AFD)
Por tanto, Q = {q0,q1,q2}.
Como hemos dicho, q0 es el estado inicial y el único estado
de aceptación es q1; es decir, F = {q1}.
La especificación completa del autómata A que acepta el
lenguaje L de cadenas que contienen una subcadena 01 es
A = ( { q0 , q1 , q2 } , { 0 , 1 } , δ , q0 , { q1 } )
AUTÓMATAS FINITOS DETERMINISTAS (AFD)
Tablas de Transiciones
Una tabla de transiciones es una representación tabular
convencional de una función que toma dos argumentos y
devuelve un valor. Las filas de la tabla corresponden a los
estados y las columnas a las entradas. La entrada para la
fila correspondiente al estado “q” y la columna
correspondiente a la entrada “a” es el estado δ (q,a).
AUTÓMATAS FINITOS DETERMINISTAS (AFD)
AUTÓMATAS FINITOS DETERMINISTAS (AFD)
Extensión a cadenas de la función de transición
Si δ es la función de transición, entonces la función de
transición extendida construida a partir de δ será δ^ . La
función de transición extendida es una función que toma un
estado “q” y una cadena “w” y devuelve un estado “p” (el
estado al que el autómata llega partiendo del estado “q” y
procesando la secuencia de
entradas “w”).
AUTÓMATAS FINITOS DETERMINISTAS (AFD)
Extensión a cadenas de la función de transición
Definimos δ^ por inducción sobre la longitud de la cadena de
entrada como sigue:
Base: δ^ (q,ε) = q. Es decir, si nos encontramos en el
estado “q” y no leemos ninguna entrada, entonces
permaneceremos
en el estado “q”.
AUTÓMATAS FINITOS DETERMINISTAS (AFD)
Extensión a cadenas de la función de transición
Paso Inductivo: Supongamos que “w” es una cadena de la forma “xa”;
es decir, “a” es el último símbolo de “w” y “x” es la cadena formada
por todos los símbolos excepto el último.
Por ejemplo, w = 1101 se divide en x = 110 y a = 1.
Luego: δ (δ^(q , x), a) = q
δ (p, a) = q
AUTÓMATAS FINITOS DETERMINISTAS (AFD)
Ejemplo:
Supongamos que tenemos el lenguaje
L = {w | w tiene un número par de ceros y un número par de unos}
q0: tanto el número de ceros como el de unos leídos hasta el momento
es par.
q1: el número de ceros leídos hasta el momento es par, pero el de
unos es impar.
q2: el número de unos leídos hasta el momento es par, pero el de
ceros es impar.
q3: tanto el número de ceros como el de unos leídos hasta el momento
es impar.
AUTÓMATAS FINITOS DETERMINISTAS (AFD)
El estado q0 es tanto el estado inicial como el único estado
de aceptación. Es el estado inicial porque antes de leer
ninguna entrada, la cantidad de ceros y unos leídos hasta el
momento es igual a cero y cero es par. Ahora ya sabemos
cómo especificar el AFD para el lenguaje L.
Así A = ( { q0 , q1 , q2 , q3 } , { 0 , 1 } , δ , q0 , { q0 } )
AUTÓMATAS FINITOS DETERMINISTAS (AFD)
Ejemplo:
Supongamos que la entrada es 110101.
Dado que esta cadena tiene un número par de ceros y unos,
podemos asegurar que pertenece al lenguaje. Así, tendremos
que δ (q0,110101) = q0, ya que q0 es el único estado de
aceptación. Verifiquemos ahora esta afirmación.
La comprobación supone calcular δ (q0,w) para cada prefijo
w de 110101, comenzando por ε y aumentando
progresivamente el tamaño. El resumen de este cálculo es:
AUTÓMATAS FINITOS DETERMINISTAS (AFD)
Ejemplo: 110101
δ ( q0 , ε ) = q0.
δ( q0 , 1 ) = δ( (q0 , ε ) , 1 ) = δ( q0 , 1 ) = q1.
δ( q0 ,11 ) = δ( (q0 , 1 ) ,1 ) = δ( q1 , 1 ) = q0.
δ( q0 , 110 ) = δ( (q0 , 11 ) , 0 ) = δ( q0 , 0 ) = q2.
δ( q0 , 1101 ) = δ( (q0 , 110 ) , 1 ) = δ( q2 , 1 ) = q3.
δ( q0 , 11010 ) = δ( (q0 , 1101 ) , 0 ) = δ( q3 , 0 ) = q1.
δ( q0 , 110101 ) = δ( (q0 , 11010 ) , 1 ) = δ( q1 , 1 ) = q0.
TEMARIO
Introducción
Introducción a los Autómatas Finitos
Conceptos Fundamentales de la Teoría de Autómatas
Autómatas Finito Deterministas (AFD)
Autómatas Finitos No Deterministas (AFN)
Autómatas Finitos con Transición - ε
Expresiones Regulares
El Algebra de la las Expresiones Regulares
Ejercicios
AUTÓMATAS FINITOS NO DETERMINISTAS (AFN)
Al igual que el AFD, un AFN tiene un conjunto finito de
estados, un conjunto finito de símbolos de entrada, un
estado inicial y un conjunto de estados de aceptación. La
diferencia entre los AFD y los AFN se encuentra en el tipo
de función δ. En los AFN, δ es una función que toma un
estado y símbolos de entrada como argumentos, pero
devuelve un conjunto de cero, uno o más estados (en lugar
de devolver exactamente un estado como lo hacen los
AFD).
AUTÓMATAS FINITOS NO DETERMINISTAS (AFN)
Ejemplo:
A continuación se muestra un autómata finito no determinista, cuyo trabajo consiste en aceptar todas las cadenas formadas por ceros y unos que terminan en 01.
AUTÓMATAS FINITOS NO DETERMINISTAS (AFN)
Ejemplo: Vamos a probar la cadena 00101
AUTÓMATAS FINITOS NO DETERMINISTAS (AFN)
Equivalencia de un AFD y un AFN
Todo lenguaje que puede describirse mediante algún AFN
también puede ser descrito mediante algún AFD.
El AFD en la práctica tiene aproximadamente tantos
estados como el AFN, aunque a menudo tiene más
transiciones.
En el caso peor, el AFD puede tener 2^n estados mientras
que el AFN más pequeño para el mismo lenguaje tiene sólo
“n” estados.
AUTÓMATAS FINITOS NO DETERMINISTAS (AFN)
Ejemplo:
Sea N el autómata que acepta todas las cadenas de
números binarios que terminan en 01. Dado que el conjunto
de estados de N es {q0,q1,q2}, la construcción del
subconjunto de estados para un AFD da como resultado
2^3 = 8 estados, correspondientes a todos los
subconjuntos de estos tres estados.
AUTÓMATAS FINITOS NO DETERMINISTAS (AFN)
AUTÓMATAS FINITOS NO DETERMINISTAS (AFN)
TEMARIO
Introducción
Introducción a los Autómatas Finitos
Conceptos Fundamentales de la Teoría de Autómatas
Autómatas Finito Deterministas (AFD)
Autómatas Finitos No Deterministas (AFN)
Autómatas Finitos con Transición - ε
Expresiones Regulares
El Algebra de la las Expresiones Regulares
Ejercicios
AUTÓMATAS FINITOS CON TRANSICIÓN -
Esta nueva “característica” de los autómata finito nos
permite transiciones para ε , la cadena vacía. Así, un AFN
puede hacer una transición espontáneamente, sin recibir
un símbolo de
entrada. Esta nueva capacidad no expande la clase de
lenguajes que los autómatas finitos pueden aceptar, pero
proporciona algunas “facilidades de programación”.
AUTÓMATAS FINITOS CON TRANSICIÓN -
Podemos representar un AFN-ε del mismo modo que
representaríamos un AFN con una excepción: la función de
transición tiene que incluir la información sobre las
transiciones para ε . Formalmente, representamos un AFN-ε
“A” mediante
A = (Q, Σ, δ ,q0,F), donde todos los componentes tienen la
misma interpretación que en un AFN, excepto que ahora δ es
una función que toma como argumentos:
1. Un estado de Q y,
2. Un elemento de Σ ∪ { ε }, es decir, un símbolo de entrada
o el símbolo ε . Es preciso que ε , no pueda ser un elemento
del alfabeto Σ, con el fin de que no se produzcan confusiones.
AUTÓMATAS FINITOS CON TRANSICIÓN -
Ejemplo: Autómata que acepte la palabra web o ebay
AUTÓMATAS FINITOS CON TRANSICIÓN -
Ejemplo:
AUTÓMATAS FINITOS CON TRANSICIÓN -
Clausura Respecto de
La clausura respecto de ε de un estado “q” se realiza
siguiendo todas las transiciones salientes de “q” que estén
etiquetadas
con ε . Sin embargo, cuando obtenemos los otros estados
siguiendo ε , seguimos las transiciones-ε salientes de
dichos estados, y así sucesivamente, hasta encontrar todos
los estados a los que se puede llegar desde “q” siguiendo
cualquier camino cuyos arcos estén etiquetados con ε.
AUTÓMATAS FINITOS CON TRANSICIÓN -
Clausura Respecto de
Formalmente, la clausura respecto de ε ,CLAUSURAε(q),
se define recursivamente de la forma siguiente:
Base: El estado “q” pertenece a CLAUSURAε (q).
Paso Inductivo: Si el estado “p” pertenece a CLAUSURAε
(q) y existe una transición desde el estado “p” al estado “r”
etiquetada con ε , entonces r pertenece a CLAUSURAε (q). De
forma más precisa, si δ es la función de transición del AFN-ε y
“p” pertenece a CLAUSURAε (q), entonces CLAUSURAε (q)
también contiene todos los estados de δ (p,ε).
AUTÓMATAS FINITOS CON TRANSICIÓN -
Ejemplo:
CLAUSURAε (1) = {1,2,3,4,6}
AUTÓMATAS FINITOS CON TRANSICIÓN -
Eliminación de las transiciones-ε
Dado cualquier AFN-ε E, podemos hallar un AFD D que
acepte el mismo lenguaje que E. La construcción que
empleamos es muy parecida a la construcción de
subconjuntos de un AFN a un AFD, ya que los estados de D
son subconjuntos de los estados de E. La única diferencia
es que tenemos que incorporar las transiciones-ε de E, lo
que hacemos a través del mecanismo de clausura respecto
de ε.
AUTÓMATAS FINITOS CON TRANSICIÓN -
TEMARIO
Introducción
Introducción a los Autómatas Finitos
Conceptos Fundamentales de la Teoría de Autómatas
Autómatas Finito Deterministas (AFD)
Autómatas Finitos No Deterministas (AFN)
Autómatas Finitos con Transición - ε
Expresiones Regulares
El Algebra de la las Expresiones Regulares
Ejercicios
EXPRESIONES REGULARES
Definición:
Una expresión regular, es una secuencia de caracteres
que forma un patrón de búsqueda, principalmente utilizada
para la búsqueda de patrones de cadenas de caracteres u
operaciones de sustituciones.
EXPRESIONES REGULARES
Las expresiones regulares están estrechamente
relacionadas con los autómatas finitos no deterministas y
pueden considerarse una alternativa. Pueden definir de
forma exacta los mismos lenguajes que describen los
distintos tipos de autómatas. Sin embargo, las expresiones
regulares ofrecen algo que los autómatas no proporcionan:
una forma declarativa para expresar las cadenas que
deseamos aceptar. Por tanto, las expresiones
regulares sirven como lenguaje de entrada de muchos
sistemas que procesan cadenas.
EXPRESIONES REGULARES
Operaciones de las Expresiones Regulares
Unión:
La unión de dos lenguajes L y M, designada como L ∪ M, es
el conjunto de cadenas que pertenecen a L, a M o a ambos.
Ejemplo:
L = {001,10,111}
M = {ε,001}
entonces L ∪ M = {ε,10,001,111}
EXPRESIONES REGULARES
Operaciones de las Expresiones Regulares
Concatenación
La concatenación de los lenguajes L y M es el conjunto de
cadenas que se puede formar tomando cualquier cadena
de L y concatenándola con cualquier cadena de M. Para
designar la concatenación de lenguajes se emplea el punto
o ningún operador.
EXPRESIONES REGULARES
Operaciones de las Expresiones Regulares
Concatenación
Ejemplo:
L={001,10,111}
M = {ε ,001}
entonces L.M = {001,10,111,001001,10001,111001}
Las tres primeras cadenas de L.M son las cadenas de L
concatenadas con ε . las tres últimas cadenas de L.M se forman
tomando cada una de las cadenas de L y concatenándolas con
la segunda cadena de M, que es 001.
EXPRESIONES REGULARES
Operaciones de las Expresiones Regulares
Clausura o Clausura de Kleene
La clausura de un lenguaje L se designa mediante L* y
representa el conjunto de cadenas que se pueden formar
tomando cualquier número de cadenas de L y
concatenando todas ellas.
EXPRESIONES REGULARES
Operaciones de las Expresiones Regulares
Clausura o Clausura de Kleene
Ejemplo:
Si L = {0,1} entonces L* es igual a todas las cadenas de 0s y 1s.
Si L = {0,11} entonces L* es igual a todas cadenas de 0s y 1s
tales que los 1s aparezcan por parejas: 011, 11110
L* es la unión infinita ∪i≥0 L^i donde
L^0 = {ε }
L^1 = L
L^i, para i > 1 es LL· · ·L (la concatenación de i copias de L).
TEMARIO
Introducción
Introducción a los Autómatas Finitos
Conceptos Fundamentales de la Teoría de Autómatas
Autómatas Finito Deterministas (AFD)
Autómatas Finitos No Deterministas (AFN)
Autómatas Finitos con Transición - ε
Expresiones Regulares
El Algebra de la las Expresiones Regulares
Ejercicios
EL ALGEBRA DE LA LAS EXPRESIONES REGULARES
Conmutatividad
Esta ley establece que podemos efectuar la unión de dos
lenguajes en cualquier orden.
Por ejemplo: L + M = M + L
EL ALGEBRA DE LA LAS EXPRESIONES REGULARES
Asociatividad de la unión
Esta ley, establece que podemos efectuar la unión de tres
lenguajes bien calculando primero la unión de los dos
primeros, o bien la unión de los dos últimos.
Por ejemplo: (L + M) + N = L + (M + N)
Asociatividad para la concatenación
Esta ley, establece que podemos concatenar tres lenguajes
concatenando primero los dos primeros o bien los dos
últimos.
Por ejemplo: (LM)N = L(MN)
EL ALGEBRA DE LA LAS EXPRESIONES REGULARES
Elemento Identidad y Elemento Nulo
El elemento identidad de un operador es un valor tal que
cuando el operador se aplica al propio elemento identidad y a
algún otro valor, el resultado es ese otro valor. Por ejemplo, 0
es el elemento identidad para la suma, ya que 0+x= x+0 = x,
y 1 es el elemento identidad de la multiplicación, puesto que
1×x= x×1 = x.
El elemento nulo de un operador es un valor tal que cuando
el operador se aplica al propio elemento nulo y a algún otro
valor, el resultado es el elemento nulo. Por ejemplo, 0 es el
elemento nulo de la multiplicación, ya que 0×x = x×0 = 0.
EL ALGEBRA DE LA LAS EXPRESIONES REGULARES
Elemento Identidad y Elemento Nulo
Existen tres leyes para las expresiones regulares:
Ø + L = L + Ø = L. Esta ley establece que Ø es el
elemento identidad para la unión.
εL = Lε = L. Esta ley establece que ε es el elemento
identidad para la concatenación.
ØL = LØ = Ø. Esta ley establece que Ø es el elemento
nulo de la concatenación.
EL ALGEBRA DE LA LAS EXPRESIONES REGULARES
Leyes Distribuidas
Una ley distributiva implica a dos operadores y establece
que un operador puede aplicarse por separado a cada
argumento del otro operador.
L(M + N) = LM + LN. Ésta es la ley distributiva por la
izquierda de la concatenación respecto de la unión.
(M + N)L = ML + NL. Ésta es la ley distributiva por la
derecha de la concatenación respecto de la unión.
EL ALGEBRA DE LA LAS EXPRESIONES REGULARES
Ley de Idempotencia
Se dice que un operador es idempotencia si el resultado de
aplicarlo a dos valores iguales es dicho valor. Por tanto,
para expresiones regulares, podemos establecer la
siguiente ley:
L + L = L. Ésta es la ley de idempotencia para la unión,
que establece que si tomamos la unión de dos expresiones
idénticas, podemos reemplazarla por una copia de la de la
expresión.
EL ALGEBRA DE LA LAS EXPRESIONES REGULARES
Leyes Relativas a la Clausura
(L*)* = L*. Esta ley dice que clausurar una expresión que
ya está clausurada no modifica el lenguaje. El lenguaje de
(L*)* está formado por todas las cadenas creadas mediante
la concatenación de cadenas pertenecientes al lenguaje L*.
Pero dichas cadenas están formadas a su vez por cadenas
de L. Por tanto, la cadena perteneciente a (L*)* también es
una concatenación de cadenas de L y, por tanto, pertenece
al lenguaje de L*.
EL ALGEBRA DE LA LAS EXPRESIONES REGULARES
Leyes Relativas a la Clausura
Ø* = ε . La clausura de Ø sólo contiene la cadena ε
ε * = ε . Es fácil comprobar que la única cadena que se
puede formar concatenando cualquier número de copias de
la cadena vacía es la propia cadena vacía.
L* = (L+) + ε . La demostración es fácil, ya que la
expansión de L+ incluye cada uno de los términos de la
expansión de L* excepto ε.
EL ALGEBRA DE LA LAS EXPRESIONES REGULARES
Leyes Relativas a la Clausura
L+ = LL* = L*L
Recuerde que L+ se define para ser L+LL+LLL+· · · .
Y que, L* =ε +L+LL+ LLL+· · ·
Por tanto:
LL* = Lε +LL+LLL+LLLL+· · ·
Teniendo en cuenta que Lε = L, vemos que las expansiones
infinitas para LL* y para L+ son iguales.
Esto demuestra que L+ = LL*
EL ALGEBRA DE LA LAS EXPRESIONES REGULARES
Procedencia de los Operadores
El operador asterisco (*) es el de precedencia más alta. Es
decir, se aplica sólo a la secuencia más corta de símbolos a
su izquierda que constituye una expresión regular bien
formada.
EL ALGEBRA DE LA LAS EXPRESIONES REGULARES
Procedencia de los Operadores
El siguiente en precedencia es el operador de
concatenación, “punto”. Después de aplicar todos los
operadores a sus operandos, aplicamos los operadores de
concatenación a sus operandos. Dado que la concatenación
es una operación asociativa, no importa en qué orden se
realicen las sucesivas concatenaciones, aunque si hay que
elegir, las aplicaremos por la izquierda.
Por ejemplo, 012 se aplica así: (01)2.
EL ALGEBRA DE LA LAS EXPRESIONES REGULARES
Procedencia de los Operadores
Ejemplo:
La expresión 01*+1 se aplica de la forma siguiente: 0(1*)
+1. El operador (*) se aplica en primer lugar. A
continuación, realizamos las concatenaciones entre 0 y
(1*), obteniendo la expresión 0(1*) . Por último, el operador
de unión (+) se aplica entre la última expresión y la que
está a su derecha, que es 1.
EL ALGEBRA DE LA LAS EXPRESIONES REGULARES
Procedencia de los Operadores
Por último, se aplican todos los operadores de unión (+) a
sus operandos. Dado que la unión también es asociativa, de
nuevo no importa en que orden se lleven a cabo, pero
supondremos que se calculan empezando por la izquierda.
TEMARIO
Introducción
Introducción a los Autómatas Finitos
Conceptos Fundamentales de la Teoría de Autómatas
Autómatas Finito Deterministas (AFD)
Autómatas Finitos No Deterministas (AFN)
Autómatas Finitos con Transición - ε
Expresiones Regulares
El Algebra de la las Expresiones Regulares
Ejercicios
EJERCICIOS
Autómatas Finitos Deterministas (AFD)
Describa los AFD que aceptan los siguientes lenguajes
con el alfabeto {0,1}:
1. El conjunto de todas las cadenas que terminan en 00.
2. El conjunto de todas las cadenas con tres ceros
consecutivos (no necesariamente al final).
3. El conjunto de cadenas que contengan la subcadena
011.
4. El conjunto de cadenas que empiecen o terminen (o
ambas cosas) con 01.
EJERCICIOS
Autómatas Finitos No Deterministas (AFN)
1. El conjunto de cadenas del alfabeto {0,1, . . . ,9} tal
que el dígito final haya aparecido antes en la misma
entrada.
2. El conjunto de cadenas del alfabeto {0,1, . . .,9} tal
que el dígito final no haya aparecido antes.
3. El conjunto de cadenas formadas por ceros y unos
tal que contengan dos ceros separados por una
cantidad de posiciones que es múltiplo de 4. Observe
que 0 es un múltiplo permitido de 4.
EJERCICIOS
Expresiones Regulares
Escriba expresiones regulares para los siguientes
lenguajes:
1. El conjunto de cadenas del alfabeto {a,b,c} que
contienen al menos una a y al menos una b.
2. El conjunto de cadenas formadas por 0s y 1s con a lo
sumo una pareja de 1s consecutivos.
3. El conjunto de todas las cadenas formadas por ceros y
unos tales que cada pareja de 0s adyacentes aparece
antes que cualquier pareja de 1s adyacentes.
4. El conjunto de todas las cadenas formadas por ceros y
unos que contienen 101 como subcadena.
EJERCICIOS
Expresiones Regulares
Proporcione las descripciones informales de los
lenguajes correspondientes a las siguientes
expresiones regulares:
1. (1+ε )(00*1)*0+
2. (0*1*)*000(0+1)*
3. (0+10)*1*
EJERCICIOS
Algebra de Expresiones Regulares
Demuestre si cada una de las siguientes proposiciones
acerca de expresiones regulares es verdadera o falsa.
1. (R+S)* = R*+S*
2. (RS+R)*R = R(SR+R)*
3. (RS+R)*RS = (RR*S)*
4. (R+S)*S = (R*S)*
5. S(RS+S)*R = RR*S(RR*S)*