SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Downloaden Sie, um offline zu lesen
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
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
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
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
ˆ
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
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
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
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
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
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
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
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
ˆ
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
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

Weitere ähnliche Inhalte

Was ist angesagt?

Unidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacionUnidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacion
Irving Che
 
Autómatas de Pila
Autómatas de PilaAutómatas de Pila
Autómatas de Pila
Pablo Guerra
 
Expresiones regulares y gramáticas
Expresiones regulares y gramáticasExpresiones regulares y gramáticas
Expresiones regulares y gramáticas
Santiago Ramirez
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfija
Omarzingm
 

Was ist angesagt? (20)

Unidad 2 expresiones regulares
Unidad 2 expresiones regularesUnidad 2 expresiones regulares
Unidad 2 expresiones regulares
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
 
Estructuras (CAPAS) de un sistema operativo
Estructuras (CAPAS) de un sistema operativoEstructuras (CAPAS) de un sistema operativo
Estructuras (CAPAS) de un sistema operativo
 
Unidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacionUnidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacion
 
Investigacion errores lexicos
Investigacion errores lexicosInvestigacion errores lexicos
Investigacion errores lexicos
 
Autómatas de Pila
Autómatas de PilaAutómatas de Pila
Autómatas de Pila
 
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesPortafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
 
Tipos de listas en estructura de datos
Tipos de listas en estructura de datosTipos de listas en estructura de datos
Tipos de listas en estructura de datos
 
Arbol De Huffman
Arbol De HuffmanArbol De Huffman
Arbol De Huffman
 
Automata de Pila y Maquina de Turing No Deterministas
Automata de Pila y Maquina de Turing No DeterministasAutomata de Pila y Maquina de Turing No Deterministas
Automata de Pila y Maquina de Turing No Deterministas
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
Automatas de pila
Automatas de pilaAutomatas de pila
Automatas de pila
 
Expresiones regulares y gramáticas
Expresiones regulares y gramáticasExpresiones regulares y gramáticas
Expresiones regulares y gramáticas
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
 
Automatas de estado finito
Automatas de estado finitoAutomatas de estado finito
Automatas de estado finito
 
Modelo de entidad relación extendido
Modelo de entidad relación extendidoModelo de entidad relación extendido
Modelo de entidad relación extendido
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfija
 
Clase10 2-lenguaje ensamblador
Clase10 2-lenguaje ensambladorClase10 2-lenguaje ensamblador
Clase10 2-lenguaje ensamblador
 
Tipos de Autómatas 
Tipos de Autómatas Tipos de Autómatas 
Tipos de Autómatas 
 

Andere mochten auch

Analisis Lexico
Analisis LexicoAnalisis Lexico
Analisis Lexico
FARIDROJAS
 
Introducción a los Procesos Estocásticos y sus Aplicaciones en la Actuaría
Introducción a los Procesos Estocásticos y sus Aplicaciones en la ActuaríaIntroducción a los Procesos Estocásticos y sus Aplicaciones en la Actuaría
Introducción a los Procesos Estocásticos y sus Aplicaciones en la Actuaría
EmmanuelRuizG
 
Automatas y compiladores clase4
Automatas y compiladores clase4Automatas y compiladores clase4
Automatas y compiladores clase4
Germania Rodriguez
 
Automatas y compiladores clase3
Automatas y compiladores clase3Automatas y compiladores clase3
Automatas y compiladores clase3
Germania Rodriguez
 
Automatas y compiladores clase2
Automatas y compiladores clase2Automatas y compiladores clase2
Automatas y compiladores clase2
Germania Rodriguez
 
Configuracion y administracion del espacio en disco
 Configuracion y administracion del espacio en disco Configuracion y administracion del espacio en disco
Configuracion y administracion del espacio en disco
Yael_21
 
Análisis léxico y análisis sintáctico
Análisis léxico y análisis sintácticoAnálisis léxico y análisis sintáctico
Análisis léxico y análisis sintáctico
angiepao1717
 

Andere mochten auch (20)

Compiladores, Analisis Lexico, Tabla de Transiciones
Compiladores, Analisis Lexico, Tabla de TransicionesCompiladores, Analisis Lexico, Tabla de Transiciones
Compiladores, Analisis Lexico, Tabla de Transiciones
 
Automatas y compiladores tablas de transición análisis léxico
Automatas y compiladores tablas de transición análisis léxicoAutomatas y compiladores tablas de transición análisis léxico
Automatas y compiladores tablas de transición análisis léxico
 
Compiladores, Analisis Lexico
Compiladores, Analisis LexicoCompiladores, Analisis Lexico
Compiladores, Analisis Lexico
 
Diagrama de estados y diagrama de transiciones
Diagrama de estados y  diagrama de transicionesDiagrama de estados y  diagrama de transiciones
Diagrama de estados y diagrama de transiciones
 
Automatas celulares
Automatas celularesAutomatas celulares
Automatas celulares
 
Analisis Lexico
Analisis LexicoAnalisis Lexico
Analisis Lexico
 
Introducción a los Procesos Estocásticos y sus Aplicaciones en la Actuaría
Introducción a los Procesos Estocásticos y sus Aplicaciones en la ActuaríaIntroducción a los Procesos Estocásticos y sus Aplicaciones en la Actuaría
Introducción a los Procesos Estocásticos y sus Aplicaciones en la Actuaría
 
Autómatas finitos no deterministas
Autómatas finitos no deterministasAutómatas finitos no deterministas
Autómatas finitos no deterministas
 
Automatas y compiladores clase4
Automatas y compiladores clase4Automatas y compiladores clase4
Automatas y compiladores clase4
 
7 procesos estocásticos
7 procesos estocásticos7 procesos estocásticos
7 procesos estocásticos
 
Automatas y compiladores clase3
Automatas y compiladores clase3Automatas y compiladores clase3
Automatas y compiladores clase3
 
Automatas y compiladores clase2
Automatas y compiladores clase2Automatas y compiladores clase2
Automatas y compiladores clase2
 
Etapas de compilacion
Etapas de compilacionEtapas de compilacion
Etapas de compilacion
 
Configuracion y administracion del espacio en disco
 Configuracion y administracion del espacio en disco Configuracion y administracion del espacio en disco
Configuracion y administracion del espacio en disco
 
Compiladores, Analisis Lexico Conceptos
Compiladores, Analisis Lexico ConceptosCompiladores, Analisis Lexico Conceptos
Compiladores, Analisis Lexico Conceptos
 
Análisis léxico y análisis sintáctico
Análisis léxico y análisis sintácticoAnálisis léxico y análisis sintáctico
Análisis léxico y análisis sintáctico
 
Compiladores, Analisis Lexico, Ejemplo Minilenguaje
Compiladores, Analisis Lexico, Ejemplo MinilenguajeCompiladores, Analisis Lexico, Ejemplo Minilenguaje
Compiladores, Analisis Lexico, Ejemplo Minilenguaje
 
Simulación de un autómata de estado finito en Jflap
Simulación de un autómata de estado finito en JflapSimulación de un autómata de estado finito en Jflap
Simulación de un autómata de estado finito en Jflap
 
Mapa conceptual diseño instruccional gustavo
Mapa conceptual diseño instruccional gustavoMapa conceptual diseño instruccional gustavo
Mapa conceptual diseño instruccional gustavo
 
Mapa conceptual sobre Diseños Instruccionales para Entornos Virtuales
Mapa conceptual sobre Diseños Instruccionales para Entornos VirtualesMapa conceptual sobre Diseños Instruccionales para Entornos Virtuales
Mapa conceptual sobre Diseños Instruccionales para Entornos Virtuales
 

Mehr von GILDARDO MARTINEZ ESPINOSA (10)

Aspectos legales parte 2
Aspectos legales parte 2Aspectos legales parte 2
Aspectos legales parte 2
 
Aspectos legales parte 1
Aspectos legales parte 1Aspectos legales parte 1
Aspectos legales parte 1
 
Introduccion al desarrollo de software
Introduccion al desarrollo de softwareIntroduccion al desarrollo de software
Introduccion al desarrollo de software
 
Manual de Matlab70
Manual de Matlab70Manual de Matlab70
Manual de Matlab70
 
Manula Oracle 2
Manula Oracle 2Manula Oracle 2
Manula Oracle 2
 
Manualoracle 1
Manualoracle 1Manualoracle 1
Manualoracle 1
 
Manual JAVA
Manual JAVAManual JAVA
Manual JAVA
 
Revista Computer Hoy 263
Revista Computer Hoy 263Revista Computer Hoy 263
Revista Computer Hoy 263
 
Metodo Simplex
Metodo SimplexMetodo Simplex
Metodo Simplex
 
Formulario De Integrales
Formulario De IntegralesFormulario De Integrales
Formulario De Integrales
 

Kürzlich hochgeladen

RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxRESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
pvtablets2023
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
RigoTito
 

Kürzlich hochgeladen (20)

Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxRESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptFUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
Diapositivas de animales reptiles secundaria
Diapositivas de animales reptiles secundariaDiapositivas de animales reptiles secundaria
Diapositivas de animales reptiles secundaria
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdf
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOTIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 

Tabla De Transicion

  • 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. 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. 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. 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. ˆ 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. 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. 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. 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. 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. 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. 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. 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. ˆ 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. 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