• No se han encontrado resultados

CI 3725 Clase 04 pdf

N/A
N/A
Protected

Academic year: 2020

Share "CI 3725 Clase 04 pdf"

Copied!
66
0
0

Texto completo

(1)TRADUCTORES E INTERPRETADORES Clase 4: Autómatas Finitos. Profs. Carlos Pérez y Ricardo Monascal.

(2) Agenda • • • •. Autómatas Finitos No Deterministas (AFND) Autómatas Finitos Deterministas (AFD) Equivalencia entre AFND’s y AFD’s. Equivalencia entre Autómatas Finitos y Lenguajes Regulares.. Profs. Carlos Pérez y Ricardo Monascal.

(3) Autómatas Finitos No Deterministas • Empezamos estudiando los lenguajes regulares… • Hasta ahora hemos visto cómo especificar lenguajes regulares (constructivamente o generativamente). • Ahora nos interesa saber cómo determinar si una frase cualquiera pertenece a un lenguaje regular determinado.. Profs. Carlos Pérez y Ricardo Monascal.

(4) Autómatas Finitos No Deterministas • Empezamos estudiando los lenguajes regulares… • Hasta ahora hemos visto cómo especificar lenguajes regulares (constructivamente o generativamente). • Ahora nos interesa saber cómo determinar si una frase cualquiera pertenece a un lenguaje regular determinado. • Para eso, estudiaremos los autómatas finitos. Profs. Carlos Pérez y Ricardo Monascal.

(5) Autómatas Finitos No Deterministas • Intuitivamente… un autómata finito es un diagrama de transiciones. • Cada transición corresponde a leer a lo sumo un símbolo. • Existen estados que indican finalización. • Los caminos válidos, hasta uno de estos estados, en este diagrama corresponderán al lenguaje reconocido por el autómata. Profs. Carlos Pérez y Ricardo Monascal.

(6) Autómatas Finitos No Deterministas a. q0. a. q1. b b. Profs. Carlos Pérez y Ricardo Monascal. q2.

(7) Autómatas Finitos No Deterministas a. q0. a. b b. q1. q2. Reconoce el Lenguaje:. {a b | i  1  j  1} i. j. Profs. Carlos Pérez y Ricardo Monascal.

(8) Autómatas Finitos No Deterministas • Formalmente… un autómata M es una 5-tupla con la siguiente forma:. M  (, Q,  , q0 , F ). • Σ es el alfabeto del lenguaje. • Q es el conjunto de estados. • δ es la función de transición: Q  : Q  (  {})  2 • q0 es el estado inicial. q0  Q. • F es el conjunto de estados finales. F  Q Profs. Carlos Pérez y Ricardo Monascal.

(9) Autómatas Finitos No Deterministas • Formalmente… un autómata M es una 5-tupla con la siguiente forma:. M  (, Q,  , q0 , F ). • Σ es el alfabeto del lenguaje. • Q es el conjunto de estados. • δ * es la función de transición extendida:  * : Q    2Q • q0 es el estado inicial. q0  Q • F es el conjunto de estados finales. F  Q Profs. Carlos Pérez y Ricardo Monascal.

(10) Autómatas Finitos No Deterministas • Se define un estado de ejecución de un autómata finito, como la dupla:. (qi , w) • qi es el estado del autómata en el que se encuentre en el momento dado. • w es la frase que queda por reconocer, igualmente en el momento dado. Profs. Carlos Pérez y Ricardo Monascal.

(11) Autómatas Finitos No Deterministas • Se define la relación de movimiento directa sobre un autómata M  (, Q,  , q0 , F ), como:. (q, aw)⊢ M (q' , w)  q'  (q, a), a    {} • Es decir, de dónde puedo ir a dónde y con qué.. Profs. Carlos Pérez y Ricardo Monascal.

(12) Autómatas Finitos No Deterministas • La relación de movimiento general, de n pasos n (⊢ M ), es la composición de la relación de movimiento directa n veces. • La relación de movimiento general, de * cualquier cantidad de pasos (⊢ M ), es la composición de la relación de movimiento directa, cero o más veces. (Esto también es conocido como la clausura reflexo-transitiva de ⊢ M) Profs. Carlos Pérez y Ricardo Monascal.

(13) Autómatas Finitos No Deterministas • ¿Cuál sería el lenguaje reconocido por un autómata finito M  (, Q,  , q0 , F ) ?. Profs. Carlos Pérez y Ricardo Monascal.

(14) Autómatas Finitos No Deterministas • ¿Cuál sería el lenguaje reconocido por un autómata finito M  (, Q,  , q0 , F ) ? • Son todas aquellas frases w ∈ Σ*, * (q , ), q  F tales que (q0 , w)⊢ M f f. Profs. Carlos Pérez y Ricardo Monascal.

(15) Autómatas Finitos No Deterministas • ¿Cuál sería el lenguaje reconocido por un autómata finito M  (, Q,  , q0 , F ) ? • Son todas aquellas frases w ∈ Σ*, * (q , ), q  F tales que (q0 , w)⊢ M f f • A este lenguaje lo llamaremos L(M). Profs. Carlos Pérez y Ricardo Monascal.

(16) Autómatas Finitos No Deterministas • Ejemplo: Construiremos ahora un autómata que reconozca el lenguaje sobre el alfabeto Σ={a,b}, donde hay al menos una a, o al menos dos b’s.. Profs. Carlos Pérez y Ricardo Monascal.

(17) Autómatas Finitos No Deterministas a. a, b. a, b. q0. q2 b. b q1 a, b. Profs. Carlos Pérez y Ricardo Monascal.

(18) Autómatas Finitos Deterministas • ¿Por qué los necesitamos?. Profs. Carlos Pérez y Ricardo Monascal.

(19) Autómatas Finitos Deterministas • ¿Por qué los necesitamos? • ¿Cómo los definiríamos?.  : Q  (  {})  2. Q. Profs. Carlos Pérez y Ricardo Monascal.

(20) Autómatas Finitos Deterministas • ¿Por qué los necesitamos? • ¿Cómo los definiríamos?.  : Q  (  {})  2. Q. Profs. Carlos Pérez y Ricardo Monascal.

(21) Autómatas Finitos Deterministas • ¿Por qué los necesitamos? • ¿Cómo los definiríamos?.  : Q  (  {})  2. Q. Profs. Carlos Pérez y Ricardo Monascal.

(22) Autómatas Finitos Deterministas • ¿Por qué los necesitamos? • ¿Cómo los definiríamos?.  : Q  (  {})  2. Q. Profs. Carlos Pérez y Ricardo Monascal.

(23) Autómatas Finitos Deterministas • ¿Por qué los necesitamos? • ¿Cómo los definiríamos?.  : Q  Q. Profs. Carlos Pérez y Ricardo Monascal.

(24) Autómatas Finitos Deterministas • ¿Por qué los necesitamos? • ¿Cómo los definiríamos?.  : Q  Q • ¿Y qué pasa con la relación de movimiento?. Profs. Carlos Pérez y Ricardo Monascal.

(25) Autómatas Finitos Deterministas • ¿Por qué los necesitamos? • ¿Cómo los definiríamos?.  : Q  Q • ¿Y qué pasa con la relación de movimiento? – ¡Ahora es una función!. Profs. Carlos Pérez y Ricardo Monascal.

(26) Autómatas Finitos Deterministas • Retomamos el ejemplo introducido en autómatas finitos no deterministas. • ¿Se puede hacer un autómata finito determinista que reconozca el mismo lenguaje?. Profs. Carlos Pérez y Ricardo Monascal.

(27) Autómatas Finitos Deterministas a. a, b. q0. q2 a, b. b q1. Profs. Carlos Pérez y Ricardo Monascal.

(28) Equivalencia entre AFND’s y AFD’s • ¿Será posible hacer tal transformación para cualquier caso?. Profs. Carlos Pérez y Ricardo Monascal.

(29) Equivalencia entre AFND’s y AFD’s • ¿Será posible hacer tal transformación para cualquier caso? • Ya saben la respuesta…. Profs. Carlos Pérez y Ricardo Monascal.

(30) Equivalencia entre AFND’s y AFD’s • ¿Será posible hacer tal transformación para cualquier caso? • Ya saben la respuesta… ¡por supuesto que no!. Profs. Carlos Pérez y Ricardo Monascal.

(31) Equivalencia entre AFND’s y AFD’s • ¿Será posible hacer tal transformación para cualquier caso? • Ya saben la respuesta… ¡por supuesto que no! • ¿O será que sí?. Profs. Carlos Pérez y Ricardo Monascal.

(32) Equivalencia entre AFND’s y AFD’s 1. Se definen dos conjuntos Q’= Ø y S = {{q0}}. 2. Mientras S ≠ Ø – – – –. Seleccionar un estado q’ de S. S = S - {q ’} Q ’ = Q ’ U {q ’} Para cada símbolo a ∈ Σ, construir: * • q' '    (qi , a) qi q '. • S = S U {q ’’} si q ’’ ∉ Q ’ Profs. Carlos Pérez y Ricardo Monascal.

(33) Equivalencia entre AFND’s y AFD’s • El nuevo autómata es M '  (, Q' ,  ' ,{q0 }, F ' ) • Los estados del nuevo autómata es el conjunto Q ’ que se construyó. • Las transiciones en δ’ vienen dadas por los símbolos seleccionados y que resultados dieron. • El estado inicial del nuevo autómata es aquél que contenga solamente al estado inicial del nuevo autómata, es decir {q0}. • Los estados finales F’ son aquellos que contengan algún estado final del autómata original. Profs. Carlos Pérez y Ricardo Monascal.

(34) Equivalencia entre AFND’s y AFD’s • Vamos a aplicar el algoritmo al AFND de ejemplo que hicimos originalmente. a. a, b. a, b. q0. q2 b. b q1 a, b. Profs. Carlos Pérez y Ricardo Monascal.

(35) Equivalencia entre AFND’s y AFD’s • Ejemplo: Corrida en frío. • Paso 1: Del autómata ejemplo, obtenemos: – S = {{q0}} – Q’ = Ø. Profs. Carlos Pérez y Ricardo Monascal.

(36) Equivalencia entre AFND’s y AFD’s • Ejemplo: Corrida en frío. • Paso 2: Seleccionamos cada estado y, de estos, se determina los nuevos estados. – Tomando {q0}… • Con a obtengo {q0, q2} (Si) • Con b obtengo {q0, q1} (Si). • Q’ = {{q0}} • S = {{q0, q2} , {q0, q1}} Profs. Carlos Pérez y Ricardo Monascal.

(37) Equivalencia entre AFND’s y AFD’s • Ejemplo: Corrida en frío. • Paso 2: Seleccionamos cada estado y, de estos, se determina los nuevos estados. – Tomando {q0, q2}… • Con a obtengo {q0, q2} (No) • Con b obtengo {q0, q1 , q2} (Si). • Q’ = {{q0}, {q0, q2}} • S = {{q0, q1}, {q0, q1 , q2}} Profs. Carlos Pérez y Ricardo Monascal.

(38) Equivalencia entre AFND’s y AFD’s • Ejemplo: Corrida en frío. • Paso 2: Seleccionamos cada estado y, de estos, se determina los nuevos estados. – Tomando {q0, q1}… • Con a obtengo {q0, q1 , q2} (Si) • Con b obtengo {q0, q1 , q2} (Si). • Q’ = {{q0}, {q0, q2}, {q0, q1}} • S = {{q0, q1 , q2}} Profs. Carlos Pérez y Ricardo Monascal.

(39) Equivalencia entre AFND’s y AFD’s • Ejemplo: Corrida en frío. • Paso 2: Seleccionamos cada estado y, de estos, se determina los nuevos estados. – Tomando {q0, q1 , q2}}… • Con a obtengo {q0, q1 , q2} (No) • Con b obtengo {q0, q1 , q2} (No). • Q’ = {{q0}, {q0, q2}, {q0, q1}, {q0, q1 , q2}} • S=Ø Profs. Carlos Pérez y Ricardo Monascal.

(40) Equivalencia entre AFND’s y AFD’s • Ejemplo: Corrida en frío. • Paso 2: Seleccionamos cada estado y, de estos, se determina los nuevos estados. – Al ya no haber más estados, el algoritmo termina ya.. Profs. Carlos Pérez y Ricardo Monascal.

(41) Equivalencia entre AFND’s y AFD’s • Ejemplo: Corrida en frío. • Paso 3: Construir el nuevo autómata. – Son cuatro estados en total. • • • •. q’0 = {q0} q’1 = {q0, q2} q’2 ={q0, q1} q’3 ={q0, q1 , q2}. – El autómata resultante se mostrará en la siguiente lámina. Profs. Carlos Pérez y Ricardo Monascal.

(42) Equivalencia entre AFND’s y AFD’s b q’0. q’2. a a. q’1. a, b. b. Profs. Carlos Pérez y Ricardo Monascal. q’3 a, b.

(43) Equivalencia entre AFND’s y AFD’s • Pero… el resultado no es el mismo que el AFD introducido antes… ¿Qué paso?. Profs. Carlos Pérez y Ricardo Monascal.

(44) Equivalencia entre AFND’s y AFD’s • Pero… el resultado no es el mismo que el AFD introducido antes… ¿Qué paso? – Un AFND que reconoce un lenguaje no es el único que reconoce este último.. Profs. Carlos Pérez y Ricardo Monascal.

(45) Equivalencia entre AFND’s y AFD’s • Pero… el resultado no es el mismo que el AFD introducido antes… ¿Qué paso? – Un AFND que reconoce un lenguaje no es el único que reconoce este último. – Igual caso con los AFD’s.. Profs. Carlos Pérez y Ricardo Monascal.

(46) Equivalencia entre AFND’s y AFD’s • Pero… el resultado no es el mismo que el AFD introducido antes… ¿Qué paso? – Un AFND que reconoce un lenguaje no es el único que reconoce este último. – Igual caso con los AFD’s.. • El AFD que introdujimos inicialmente es menor que el último.. Profs. Carlos Pérez y Ricardo Monascal.

(47) Equivalencia entre AFND’s y AFD’s • Pero… el resultado no es el mismo que el AFD introducido antes… ¿Qué paso? – Un AFND que reconoce un lenguaje no es el único que reconoce este último. – Igual caso con los AFD’s.. • El AFD que introdujimos inicialmente es menor que el último. – ¿En base a cuál métrica? Profs. Carlos Pérez y Ricardo Monascal.

(48) Equivalencia entre AFND’s y AFD’s • Pero… el resultado no es el mismo que el AFD introducido antes… ¿Qué paso? – Un AFND que reconoce un lenguaje no es el único que reconoce este último. – Igual caso con los AFD’s.. • El AFD que introdujimos inicialmente es menor que el último. – ¿En base a cuál métrica? – Eso lo veremos en la clase que viene. Profs. Carlos Pérez y Ricardo Monascal.

(49) Equivalencia entre AFND’s y AFD’s • Falta demostrar que este algoritmo es correcto… • Es decir, que L(M) = L(M’) – Recordando que: • •. * L(M )  {w | (q0 , w)⊢ M (q f , ), q f  F} * L(M ' )  {w | ( {q0 }, w)⊢ M’ (q f , ), q f  F ' }. Profs. Carlos Pérez y Ricardo Monascal.

(50) Equivalencia entre AFND’s y AFD’s • Falta demostrar que este algoritmo es correcto… • Es decir, que L(M) = L(M’) – Recordando que: • •. * L(M )  {w | (q0 , w)⊢ M (q f , ), q f  F} * L(M ' )  {w | ( {q0 }, w)⊢ M’ (q f , ), q f  F ' }. – Les queda como ejercicio… Profs. Carlos Pérez y Ricardo Monascal.

(51) Equivalencia entre AFND’s y AFD’s • Falta demostrar que este algoritmo es correcto… • Es decir, que L(M) = L(M’) – Recordando que: • •. * L(M )  {w | (q0 , w)⊢ M (q f , ), q f  F} * L(M ' )  {w | ( {q0 }, w)⊢ M’ (q f , ), q f  F ' }. • Con esto, demostramos que los AFND’s y los AFD’s son equivalentes. Profs. Carlos Pérez y Ricardo Monascal.

(52) Equivalencia entre Autómatas Finitos y Lenguajes Regulares • Queremos probar si los lenguajes que reconocen los AFND’s/AFD’s son los Lenguajes Regulares. • Para eso, procedemos a una prueba por equivalencia similar a las Expresiones y Gramáticas Regulares.. Profs. Carlos Pérez y Ricardo Monascal.

(53) Equivalencia entre Autómatas Finitos y Lenguajes Regulares • Primero, queremos probar que todo Lenguaje Regular tiene un AFND/AFD que lo reconozca. • Para eso, definiremos un esquema de traducción de una Expresión Regular a un AFND. (¿Por qué?) • Y para eso…. Profs. Carlos Pérez y Ricardo Monascal.

(54) Equivalencia entre Autómatas Finitos y Lenguajes Regulares • Primero, queremos probar que todo Lenguaje Regular tiene un AFND/AFD que lo reconozca. • Para eso, definiremos un esquema de traducción de una Expresión Regular a un AFND. (¿Por qué?) • Y para eso…. ¡INDUCCIÓN AL RESCATE! Profs. Carlos Pérez y Ricardo Monascal.

(55) Equivalencia entre Autómatas Finitos y Lenguajes Regulares • Caso base (e = Ø):. Profs. Carlos Pérez y Ricardo Monascal.

(56) Equivalencia entre Autómatas Finitos y Lenguajes Regulares • Caso base (e = λ):. q0. Profs. Carlos Pérez y Ricardo Monascal.

(57) Equivalencia entre Autómatas Finitos y Lenguajes Regulares • Caso base (e = a para un a ∈ Σ):. a q0. q1. Profs. Carlos Pérez y Ricardo Monascal.

(58) Equivalencia entre Gramáticas Regulares y Lenguajes Regulares. Dada e, una Expresión Regular sobre Σ:. • Caso inductivo : Sean u y v, Expresiones Regulares con AFND’s Mu y Mv que los reconozcan.. Profs. Carlos Pérez y Ricardo Monascal.

(59) Equivalencia entre Gramáticas Regulares y Lenguajes Regulares. Dada e, una Expresión Regular sobre Σ:. • Caso inductivo : Sean u y v, Expresiones Regulares con AFND’s Mu y Mv que los reconozcan. • ¡Construyamos todas las máquinas correspondientes!. Profs. Carlos Pérez y Ricardo Monascal.

(60) Equivalencia entre Autómatas Finitos y Lenguajes Regulares • Caso inductivo (e = u +v): λ. Mu. λ. q0. q1 λ. Mv Profs. Carlos Pérez y Ricardo Monascal. λ.

(61) Equivalencia entre Autómatas Finitos y Lenguajes Regulares • Caso inductivo (e = u +v): λ. Mu. λ. q0. ¡Esta transición se aplica a cada Edo. Final de Mu!. q1 λ. Mv Profs. Carlos Pérez y Ricardo Monascal. λ.

(62) Equivalencia entre Autómatas Finitos y Lenguajes Regulares • Caso inductivo (e = uv):. q0. λ. Mu. λ. quv. λ. Profs. Carlos Pérez y Ricardo Monascal. Mv. λ. q1.

(63) Equivalencia entre Autómatas Finitos y Lenguajes Regulares • Caso inductivo (e = u*):. λ λ q0. Mu. Profs. Carlos Pérez y Ricardo Monascal.

(64) Equivalencia entre Autómatas Finitos y Lenguajes Regulares • ¿El autómata resultante reconoce el mismo lenguaje representado por la Expresión Regular? – Demostrar que L(M) = sem(e).. Profs. Carlos Pérez y Ricardo Monascal.

(65) Equivalencia entre Autómatas Finitos y Lenguajes Regulares • ¿El autómata resultante reconoce el mismo lenguaje representado por la Expresión Regular? – Demostrar que L(M) = sem(e). – Nuevamente, les queda como ejercicio…. Profs. Carlos Pérez y Ricardo Monascal.

(66) Equivalencia entre Autómatas Finitos y Lenguajes Regulares • Con esto, se demuestra una dirección: de un Lenguaje Regular se puede conseguir un AFND que lo reconozca. • Falta la otra dirección: todo lenguaje de un AFND/AFD es regular… • ¡Y eso será para la próxima clase!. Profs. Carlos Pérez y Ricardo Monascal.

(67)

Referencias

Documento similar

¿Cómo se traduce la incorporación de ésta en la idea de museo?; ¿Es útil un museo si no puede concebirse como un proyecto cultural colectivo?; ¿Cómo puede ayudar el procomún

Primeros ecos de la Revolución griega en España: Alberto Lista y el filohelenismo liberal conservador español 369 Dimitris Miguel Morfakidis Motos.. Palabras de clausura

Un caso particular de nodo de azar es el llamado nodo determinista, que es aquel que representa una variable cuyo valor es una función determinista de sus predecesores. Fi-

Rítmicamente: saque el Groove de la canción rock steady y partir de ahí para crear la batería de Alicia adorada al funk, durante la canción en general hay momentos donde

Esta asignatura se sitúa, por tanto, en el nivel básico dentro del plan de formación de los grados en Ingeniería Informática y en Tecnologías de la Información y desarrolla

Los arquitectos aún no se atreven a aceptar en todo su rigor un axioma recogido hace algún tiem- po por los analistas de la sociedad postindustrial, y es «que una gran

El objetivo de este bolet´ın es ilustrar uno de los m´etodos que permiten calcular la expresi´on regular que denota el mismo lenguaje que un Aut´omata Finito reconoce mediante