Tabla De Transicion

14,098 views

Published on

Ejemplo de tablas de transiciones en matematicas discretas.

Published in: Education, Technology
1 Comment
2 Likes
Statistics
Notes
No Downloads
Views
Total views
14,098
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
277
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide

Tabla De Transicion

  1. 1. Autómatas y Lenguajes - Año 2007 ´ Teor´a 2: Automatas Finitos ı ´ Departamento de Informatica ´ Facultad de Cs. Fco. Matematicas y Naturales Universidad Nacional de San Luis San Luis - Argentina ´ ˜ Automatas y Lenguajes - Ano 2007– p.1/28 Autómata Finito Intuitivamente, como dispositivo reconocedor, un AF es una máquina abstracta con entradas y salidas discretas. Este tipo de máquina puede estar en uno de un número finito de estados internos. Dicho estado sumariza la información en relación a entradas previas que se necesitan para determinar el comportamiento del AF para la entrada remanente. ... Cinta (finita) Cabeza Lectora (Mov. implicito a derecha) q0 q1 q5 q4 q2 q3 UC ´ ˜ Automatas y Lenguajes - Ano 2007– p.2/28
  2. 2. Ejemplo Analizaremos un ejemplo de un problema de la vida real cuya solución puede ser dada usando un autómata finito: que ocurre en el proceso de login a una computadora, desde el punto de vista de la computadora. Asumiendo por simplicidad que esta computadora acepta un único usuario a la vez. Inicialmente la computadora espera a que se tipee un nombre de usuario. Cuando se ingresa un nombre, verifica si el nombre es correcto o no. Si es válido, espera la contraseña. Si el nombre de usuario no es válido permanece en el estado inicial. Cuando una contarseña es escrita y es correcta, entonces acepta al usuario y comienza la sesión. Cuando la sesión termina emite una señal, retorna al estado inicial y espera por otro login. Si el password fue incorrecto, informa al usuario y espera uno correcto. Si el segundo password falla, vuelve al estado inicial y comienza de nuevo. ´ ˜ Automatas y Lenguajes - Ano 2007– p.3/28 Ejemplo (Cont.) Pensemos, sin tener todavía la definición formal de AF, como modelar el problema propuesto: ui fs ui: usuario incorrecto uc: usuario correcto uc pc 1 2 3 pi: password incorrecto pc: password correcto pi ´ fs: fin de sesion pi pc 4 1: espera usuario 2: espera password ´ 3: comienza sesion 4: espera password ´ ˜ Automatas y Lenguajes - Ano 2007– p.4/28
  3. 3. Autómata Finito Determinístico (AFD) Damos ahora la noción formal de autómata finito, en particular la de autómata finito determinístico, el término determinístico se refiere al hecho de que desde cada entrada hay uno y sólo un estado al cual el autómata puede pasar desde el estado corriente. Definición formal: Un AF Determinístico (AFD) es una 5-tupla M = (Q, Σ, δ, q0 , F ), donde Q es un conjunto finito de estados, Σ el alfabeto de entrada, q0 ∈ Q el estado inicial, F ⊆ Q es el conjunto de estados finales. La función de transición, δ : Q × Σ → Q, es una función total. La función de transición toma como argumento un estado y un símbolo de la entrada y retorna un estado. En la representación que utilizamos en el ejemplo, δ fue representada por arcos entre los estados y los rótulos sobre los arcos. ´ ˜ Automatas y Lenguajes - Ano 2007– p.5/28 Notación La especficación de un AFD como una 5-tupla con una descripción detallada de la función de transición δ es bastante tediosa, por lo tanto hay dos notaciones utilizadas para describir autómatas: Un diagrama de transición. Una tabla de transición. Veamos un ejemplo, construyamos un AFD que reconoce el siguiente lenguaje, usando diagrama de transición y tabla de transición: ∗ L = {x ∈ {0, 1} |n0 (x) es par y mayor que 0} ´ ˜ Automatas y Lenguajes - Ano 2007– p.6/28
  4. 4. 1 1 1 0 1 0 q0 q1 q2 0 → q0 q1 q0 0 q1 q2 q1 ∗q2 q1 q2 Autómata Finito Determinístico y Tabla de Transición ´ ˜ Automatas y Lenguajes - Ano 2007– p.7/28 Lenguaje aceptado por un AFD Informalmente podemos decir que un AFD define un lenguaje: el conjunto de todas las cadenas que se pueden obtener partiendo del estado incial y arribando a un estado final. Pero necesitamos precisar la noción de lenguaje aceptado por un AFD, para ello es necesario extender la ˆ función de transición a la que llamaremos δ. Dicha función toma como argumentos un estado y una ˆ cadena y da como resultado un estado: δ : Q × Σ∗ → Q. Definición recursiva: ˆ 1. δ(q, λ) = q ˆ ˆ δ(q, w) = δ(δ(q, x), σ) con σ ∈ Σ y x ∈ Σ∗ y w = xσ 2. ˆ Luego, una cadena w es aceptada por un AFD M = (Q, Σ, δ, q0 , F ) si δ(q0 , w) ∈ F , y se consumió toda la cadena. ˆ En consecuencia, el lenguaje aceptado por M es L(M ) = {w ∈ Σ∗ |δ(q0 , w) ∈ F }. La familia de lenguajes aceptados por AFs son los lenguajes Tipo 3 o Regulares. ´ ˜ Automatas y Lenguajes - Ano 2007– p.8/28
  5. 5. ˆ Apliquemos la definición de δ para determinar si 100001 es aceptada por el autómata del ejemplo anterior: ˆ δ(q0 , λ) = q0 ˆ ˆ δ(q0 , 1) = δ(δ(q0 , λ), 1) = q0 ˆ ˆ δ(q0 , 10) = δ(δ(q0 , 1), 0) = q1 ˆ ˆ δ(q0 , 100) = δ(δ(q0 , 10), 0) = q2 ˆ ˆ δ(q0 , 1000) = δ(δ(q0 , 100), 0) = q1 ˆ ˆ δ(q0 , 10000) = δ(δ(q0 , 1000), 0) = q2 ˆ ˆ δ(q0 , 100001) = δ(δ(q0 , 10000), 1) = q2 Como partimos de q0 y llegamos al estado final q2 , la cadena es aceptada. ´ ˜ Automatas y Lenguajes - Ano 2007– p.9/28 Autómata Finito No Determinístico (AFND) Un autómata finito no determinístico tiene la potencia de estar en varios estados a la vez. Esta habilidad es expresada generalmente como una habilidad de adivinar algo sobre la entrada. Por ejemplo cuando el autómata es usado para buscar cierta secuencia de caracteres (por ejemplo: palabras claves) en un texto grande, es útil adivinar que está al comienzo de uno de aquellas cadenas y usar ciertos estados que no hacen nada más que chequear que la cadena aparezca caracter a caracter. Sin embargo, los AFND’s son simplemente otra versión de AF’s que no agregan potencia a los AFD’s, dado que los mismos aceptan lenguajes regulares. Pero en general los AFND’s permiten simplificar la tarea de diseño de un AF, y probablemente usar menos estados y transiciones para reconocer algún lenguaje particular. ´ ˜ Automatas y Lenguajes - Ano 2007– p.10/28
  6. 6. Al igual que un AFD, un AFND tiene un conjunto finito de estados, un conjunto finito de símbolos, un estado de comienzo y un conjunto de estados de aceptación. También tiene una función de transición, la cual llamamos δ. Pero la diferencia radica precisamente en el tipo de δ, para el AFND esta función toma un estado y un símbolo de entrada como argumentos, pero retorna un conjunto de cero, uno o más estados. El concepto de no determinismo juega un rol central en teoría de lenguajes y computación. Veamos a continuación un ejemplo y luego daremos las formalizaciones necesarias. ´ ˜ Automatas y Lenguajes - Ano 2007– p.11/28 Ejemplo El siguiente ejemplo muestra dos autómatas que reconocen el lenguaje {11, 110}∗ {0}. El primero, con 6 estados es un AFD; mientras que el segundo es un AFND con 5 estados y 6 transiciones que refleja más claramente el lenguaje reconocido. q0 q1 1 0 0,1 1 1 q1 q2 q3 0,1 0 q0 q4 0 0 1 1 1 1 0 q4 q5 q2 q3 0 1 AFs Determinístico y NO-Determinístico que reconocen el lenguaje dado. ´ ˜ Automatas y Lenguajes - Ano 2007– p.12/28
  7. 7. Veamos ahora que ocurre cuando queremos ver, en el AFND del ejemplo, si la cadena 111100 es aceptada: 1 1 1 1 0 q q q q q q 0 1 4 1 01 0 1 1 0 0q q q q q 3 0 4 2 2 1 q 3 De cada estado se disparan todas las posibles transiciones. Por lo tanto para determinar si una cadena es válida o no es necesario recorrer todos los caminos. ´ ˜ Automatas y Lenguajes - Ano 2007– p.13/28 Formalización de AFND’s Definición formal: Un AF No Determinístico (AFND) es una 5-tupla M = (Q, Σ, δ, q0 , F ), donde Q es un conjunto finito de estados, Σ el alfabeto de entrada, q0 ∈ Q el estado inicial, F ⊆ Q es el conjunto de estados finales. La función de transición, (δ : Q × Σ → 2Q ). Para el ejemplo dado definamos con una tabla de transición la función δ: 0 1 → q0 {q4 } {q1 , q2 } ∅ {q0 } q1 ∅ {q3 } q2 {q0 } ∅ q3 ∗q4 ∅ ∅ ´ ˜ Automatas y Lenguajes - Ano 2007– p.14/28
  8. 8. Lenguaje aceptado por AFND’s ˆ Como con AFD’s, es necesario extender la función de transición, a la que llamaremos δ. Dicha función toma como argumentos un estado q y una cadena w y retorna como resultado el conjunto de estados en el que el AFND está si comienza en el estado q y procesa la cadena w: Definición recursiva: ˆ δ(q, λ) = {q} 1. ˆ ˆ δ(q, w) = {r1 , r2 , .., rm }, w = xσ, δ(q, x) = {p1 , p2 , .., pk } 2. y ∪k δ(pi , σ) = {r1 , r2 , .., rm } i=1 Lenguaje aceptado por un AFND ˆ Si M es un AFND, luego L(M ) = {w ∈ Σ∗ |δ(q0 , w) ∩ F = ∅}, y se consumió toda la cadena. ´ ˜ Automatas y Lenguajes - Ano 2007– p.15/28 Equivalencia entre AFD’s y AFND’s La prueba de que a partir de cualquier AFND se puede obtener un AFD equivalente, involucra una importante construcción llamada constucción del subconjunto, la cual implica construir todos los subconjuntos del conjunto de estados del AFND. En general muchas pruebas sobre autómatas involucran construir un autómata a partir de otro. La construcción del subconjunto comienza a partir de un AFND N = (QN , Σ, δN , q0 , FN ). El objetivo es construir un AFD D = (QD , Σ, δD , {q0 }, FD ) tal que L(D) = L(N ). QD es el conjunto de subconjuntos de QN , es decir es el conjunto potencia de QN . FD es el conjunto de subconjuntos S de QN tal que S ∩ FN = ∅ Para cada conjunto S ⊆ QN y para cada símbolo de entrada a ∈ Σ: δD (S, a) = ∪p∈S δN (p, a) ´ ˜ Automatas y Lenguajes - Ano 2007– p.16/28
  9. 9. Ejemplo Veamos ahora con un ejemplo como realizar la construcción del subconjunto, dado el siguiente AFND: a q1 a a a q q b b 0 3 a a q 2 ´ ˜ Automatas y Lenguajes - Ano 2007– p.17/28 Ejemplo (Cont.) 1. Hallamos primero QD . 2. Luego FD . 3. Y por último δD . El autómata resultante es: a b {q , q } 12 a a {q } {q , q } 0 13 b b {} ´ ˜ Automatas y Lenguajes - Ano 2007– p.18/28
  10. 10. Formalizacion equivalencia AFND - AFD Teorema: Si D = (QD , Σ, δD , {q0 }, FD ) es el AFD construído a partir del AFND N = (QN , Σ, δN , q0 , FN ) por la construcción del subconjunto, entonces L(D) = L(N ). Demostración: ˆ ˆ Lo que debemos probar es que δD ({q0 }, w) = δN (q0 , w), lo haremos por inducción sobre |w|. ˆ ˆ Notar que cada una de las funciones δ retorna un conjunto de estados desde QN , pero δD interpreta ˆ este conjunto como uno de los estados de QD (el cual es el conjunto potencia de QN ), mientras δN interpreta este conjunto como un subconjunto de QN . Base: ˆ ˆ Sea |w| = 0, esto es w = λ. Por las definiciones básicas de δ para AFD’s y AFND’s, ambas δD ({q0 }, λ) ˆ y δN (q0 , λ) son q0 . ´ ˜ Automatas y Lenguajes - Ano 2007– p.19/28 Inducción: Sea w de longitud n + 1, asumamos que la sentencia se cumple para longitud n. Tomemos w = xa, con ˆ ˆ a el símbolo final de w. Por la hipótesis inductiva δD ({qo }, x) = δN (q0 , x). Sean ambos de estos conjuntos de estados de N , {p1 , p2 , ..pk }. ˆ La parte inductiva de la definición de δ para AFND’s nos dice que: ˆ δN (q0 , w) = ∪k δN (pi , a) (1) i=1 La consturcción del subconjunto nos dice por otro lado que: δD ({p1 , p2 , .., pk }, a) = ∪k δN (pi , a) (2) i=1 ˆ ˆ Usemos (2) y el hecho que δ({q0 }, x) = {p1 , p2 , .., pk } en la definición de δ para AFD’s: ˆ ˆ δ({q0 }, w) = δD (δD ({q0 }, x), a) = δD ({p1 , p2 , .., pk }, a) = ∪k δN (pi , a) (3) i=1 ˆ ˆ Las ecuaciones (1) y (3) demuestran que δD ({q0 }, w) = δN (q0 , w). ˆ ˆ Cuando observamos que D y N aceptan w sí y sólo sí δD ({q0 }, w) o δN (q0 , w), respectivamente, contienen un estado en FN , completamos la prueba de que L(D) = L(N ). ´ ˜ Automatas y Lenguajes - Ano 2007– p.20/28
  11. 11. Autómatas Finitos No Determinísticos con transiciones ǫ Introducimos ahora otra extensión de los autómatas finitos, la idea es permitir transiciones espontáneas, sin recibir un símbolo de entrada. Se utilizan para ello las transiciones ǫ, es decir, transiciones vía la cadena vacía. Como con AFND’s, esta nueva capacidad no agrega potencia, es decir que no expande la clase de los lenguajes aceptados por autómatas finitos. Sin embargo proveen ciertas facilidades para programación y también veremos como los AFND-ǫ están relacionados a las expresiones regulares y los usaremos en la prueba de la equivalencia entre las clases aceptados por autómatas finitos y las denotadas por expresiones regulares. A continuación veremos con un ejemplo un posible uso de estos AFND-ǫ: ´ ˜ Automatas y Lenguajes - Ano 2007– p.21/28 Ejemplo Construyamos un AFND-ǫ que acepta números decimales consistentes de: 1. Un signo + o − opcional. 2. Una cadena de dígitos. 3. Un punto decimal. 4. Otra cadena de dígitos, esta cadena de dígitos, o la del punto 2. pueden ser vacía, no las dos. 0,1,..,9 0,1,..,9 ε ,+,− ε 0,1,..,9 . q1 q q q q 5 0 2 3 0,1,..,9 . q4 ´ ˜ Automatas y Lenguajes - Ano 2007– p.22/28
  12. 12. Formalización de AFND’s con tarnsiciones ǫ Definición formal: Un AFND-ǫ se define de igual forma que un AFND, solo que es necesario incluir información sobre las transiciones ǫ. Formalmente un AFND-ǫ A es A = (Q, Σ, δ, q0 , F ) con las componentes significando lo mismo que con AFND, excepto que δ es ahora una función que toma como argumentos un estado de Q y un miembro de Σ ∪ {ǫ}. Necesitamos ahora extender la función de transición para poder así definir lenguaje aceptado por AFND-ǫ, pero para ello es necesario definir antes ǫ − clausura de un estado, informalmente la ǫ − clausura(q) es el conjunto de todos los estados p tal que hay un paso desde q a p rotulado ǫ. ´ ˜ Automatas y Lenguajes - Ano 2007– p.23/28 Definición recursiva de ǫ − clausura: 1. ǫ − clausura(q) = {q} 2. Si el estado p está en la ǫ − clausura(q), y hay una transición desde el estado p al estado r rotulado ǫ, entonces r está en la ǫ − clausura(q). Más precisamente, si δ es la función de transición del AFND-ǫ, y p está en la ǫ − clausura(q), entonces la ǫ − clausura(q) también contiene todos los estados en δ(p, ǫ). ˆ Ahoara definiremos la función de transición extendida δ: ´ ˜ Automatas y Lenguajes - Ano 2007– p.24/28
  13. 13. ˆ Definición recursiva de δ: ˆ 1. δ(q, ǫ) = ǫ − clausura(q) 2. Suponemos que w es de la forma xa, donde a es el último símbolo de w, con a ∈ Σ, el cual no puede ser ǫ dado que no pertenece a Σ. ˆ Entonces computamos δ(q, w) como sigue: ˆ a) Sea δ(q, x) = {p1 , p2 , .., pk }. b) Sea ∪k δ(pi , a) = {r1 , r2 , .., rm } i=1 ˆ c) Entnces δ(q, w) = ∪m ǫ − clausura(rj ). j=1 Lenguaje aceptado por un AFND-ǫ: Sea E = (Q, Σ, δ, q0 , F ) un AFND-ǫ, se define lenguaje aceptado por E como: ˆ L(E) = {w ∈ Σ∗ |δ(q0 , w) ∩ F = ∅} ´ ˜ Automatas y Lenguajes - Ano 2007– p.25/28 Eliminando las transiciones ǫ Dado cualquier AFND-ǫ E, podemos encontrar un AFD D que acepte el mismo lenguaje que E. La construcción es muy similar a la de la construcción del subconjunto, sólo que debemos incorporar las transiciones ǫ de E, para lo cual debemos utilizar la ǫ − clausura: Sea E = (QE , Σ, δE , q0 , FE ). Entonces el AFD equivalente D = (QD , Σ, δD , qD , FD ) se define como sigue: ´ ˜ Automatas y Lenguajes - Ano 2007– p.26/28
  14. 14. 1. QD es el conjunto de subconjuntos de QE . 2. qD = ǫ − clausura(q0 ). 3. FD es aquellos conjuntos de estados que contienen al menos un estado de aceptación de E. Esto es, FD = {S|S está en QD y S ∩ FE = ∅}. 4. δ(S, a), para todo a ∈ Σ y los conjuntos S en QD , es computada de la siguiente manera: a) Sea S = {p1 , p2 , .., pk }. b) Obtener ∪k δE (pi , a), sea este conjunto {r1 , r2 , .., rm }. i=1 c) Entonces δD (S, a) = ∪m ǫ − clausura(rj ). j=1 ´ ˜ Automatas y Lenguajes - Ano 2007– p.27/28 Ejemplo Apliquemos esta construcción para eliminar las transiciones ǫ del ejemplo correspondiente a los números decimales, esta construcción se da en clase. Teorema: Un lenguaje L es aceptado por algún AFND-ǫ sí y sólo sí L es aceptado por algún AFD. Demostración: Ver bibliografía, página 79, Introduction to Automata Theory, Languages and Computation - Hopcroft - Ullman - Motwani. ´ ˜ Automatas y Lenguajes - Ano 2007– p.28/28

×