gramaticas regulares

97
GRAMÁTICAS REGULARES

Upload: mateo988

Post on 02-Feb-2016

298 views

Category:

Documents


3 download

DESCRIPTION

Gramáticas regulares

TRANSCRIPT

Page 1: Gramaticas Regulares

GRAMÁTICAS REGULARES

Page 2: Gramaticas 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

Page 3: Gramaticas Regulares

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.

Page 4: Gramaticas 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

Page 5: Gramaticas Regulares

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.

Page 6: Gramaticas Regulares

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.

Page 7: Gramaticas Regulares

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.

Page 8: Gramaticas Regulares

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.

Page 9: Gramaticas Regulares

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.

Page 10: Gramaticas 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

Page 11: Gramaticas Regulares

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.

Page 12: Gramaticas Regulares

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.

Page 13: Gramaticas Regulares

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.

Page 14: Gramaticas Regulares

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.

Page 15: Gramaticas Regulares

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

Page 16: Gramaticas Regulares

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 Σ.

Page 17: Gramaticas Regulares

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.

Page 18: Gramaticas Regulares

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

Page 19: Gramaticas Regulares

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.

Page 20: Gramaticas Regulares

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.

Page 21: Gramaticas Regulares

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 Σ.

Page 22: Gramaticas Regulares

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.

Page 23: Gramaticas Regulares

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, . . .}

Page 24: Gramaticas Regulares

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.

Page 25: Gramaticas Regulares

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.

Page 26: Gramaticas Regulares

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)”.

Page 27: Gramaticas Regulares

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 }.

Page 28: Gramaticas Regulares

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, . . .}.

Page 29: Gramaticas Regulares

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.

Page 30: Gramaticas 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

Page 31: Gramaticas Regulares

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.

Page 32: Gramaticas Regulares

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.

Page 33: Gramaticas Regulares

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.

Page 34: Gramaticas Regulares

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.

Page 35: Gramaticas Regulares

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.

Page 36: Gramaticas Regulares

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.

Page 37: Gramaticas Regulares

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.

Page 38: Gramaticas Regulares

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

Page 39: Gramaticas Regulares

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

Page 40: Gramaticas Regulares

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.

Page 41: Gramaticas Regulares

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.

Page 42: Gramaticas Regulares

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 } )

Page 43: Gramaticas Regulares

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).

Page 44: Gramaticas Regulares

AUTÓMATAS FINITOS DETERMINISTAS (AFD)

Page 45: Gramaticas Regulares

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”).

Page 46: Gramaticas Regulares

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”.

Page 47: Gramaticas Regulares

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

Page 48: Gramaticas Regulares

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.

Page 49: Gramaticas Regulares

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 } )

Page 50: Gramaticas Regulares

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:

Page 51: Gramaticas Regulares

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.

Page 52: Gramaticas 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

Page 53: Gramaticas Regulares

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).

Page 54: Gramaticas Regulares

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.

Page 55: Gramaticas Regulares

AUTÓMATAS FINITOS NO DETERMINISTAS (AFN)

Ejemplo: Vamos a probar la cadena 00101

Page 56: Gramaticas Regulares

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.

Page 57: Gramaticas Regulares

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.

Page 58: Gramaticas Regulares

AUTÓMATAS FINITOS NO DETERMINISTAS (AFN)

Page 59: Gramaticas Regulares

AUTÓMATAS FINITOS NO DETERMINISTAS (AFN)

Page 60: Gramaticas 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

Page 61: Gramaticas Regulares

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”.

Page 62: Gramaticas Regulares

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.

Page 63: Gramaticas Regulares

AUTÓMATAS FINITOS CON TRANSICIÓN -

Ejemplo: Autómata que acepte la palabra web o ebay

Page 64: Gramaticas Regulares

AUTÓMATAS FINITOS CON TRANSICIÓN -

Ejemplo:

Page 65: Gramaticas Regulares

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 ε.

Page 66: Gramaticas Regulares

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,ε).

Page 67: Gramaticas Regulares

AUTÓMATAS FINITOS CON TRANSICIÓN -

Ejemplo:

CLAUSURAε (1) = {1,2,3,4,6}

Page 68: Gramaticas Regulares

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 ε.

Page 69: Gramaticas Regulares

AUTÓMATAS FINITOS CON TRANSICIÓN -

Page 70: Gramaticas 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

Page 71: Gramaticas Regulares

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.

Page 72: Gramaticas Regulares

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.

Page 73: Gramaticas Regulares

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}

Page 74: Gramaticas Regulares

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.

Page 75: Gramaticas Regulares

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.

Page 76: Gramaticas Regulares

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.

Page 77: Gramaticas Regulares

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).

Page 78: Gramaticas 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

Page 79: Gramaticas Regulares

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

Page 80: Gramaticas Regulares

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)

Page 81: Gramaticas Regulares

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.

Page 82: Gramaticas Regulares

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.

Page 83: Gramaticas Regulares

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.

Page 84: Gramaticas Regulares

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.

Page 85: Gramaticas Regulares

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*.

Page 86: Gramaticas Regulares

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 ε.

Page 87: Gramaticas Regulares

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*

Page 88: Gramaticas Regulares

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.

Page 89: Gramaticas Regulares

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.

Page 90: Gramaticas Regulares

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.

Page 91: Gramaticas Regulares

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.

Page 92: Gramaticas 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

Page 93: Gramaticas Regulares

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.

Page 94: Gramaticas Regulares

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.

Page 95: Gramaticas Regulares

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.

Page 96: Gramaticas Regulares

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*

Page 97: Gramaticas Regulares

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)*