SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

Registros de control y estados de la CPU
Registros de control y estados de la CPURegistros de control y estados de la CPU
Registros de control y estados de la CPU
Ivan Porras
 
Parte 4 Máquinas De Turing
Parte 4  Máquinas De  TuringParte 4  Máquinas De  Turing
Parte 4 Máquinas De Turing
Ricardo Quintero
 
Estructura de un compilador 2
Estructura de un compilador 2Estructura de un compilador 2
Estructura de un compilador 2
perlallamas
 
Diseño de entraday_salida
Diseño de entraday_salidaDiseño de entraday_salida
Diseño de entraday_salida
Jorge Garcia
 

La actualidad más candente (20)

2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata
 
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...
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador Sintáctico
 
Unidad 2 ensamblador
Unidad 2   ensambladorUnidad 2   ensamblador
Unidad 2 ensamblador
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
TABLA DE SÍMBOLOS
TABLA DE SÍMBOLOSTABLA DE SÍMBOLOS
TABLA DE SÍMBOLOS
 
Analizador lexico
Analizador lexicoAnalizador lexico
Analizador lexico
 
Autómata de Pila
Autómata de Pila Autómata de Pila
Autómata de Pila
 
Equivalencia de autómatas finitos y expresiones regulares.
Equivalencia de autómatas finitos y expresiones regulares.Equivalencia de autómatas finitos y expresiones regulares.
Equivalencia de autómatas finitos y expresiones regulares.
 
Registros de control y estados de la CPU
Registros de control y estados de la CPURegistros de control y estados de la CPU
Registros de control y estados de la CPU
 
Generador de codigo intermedio
Generador de codigo intermedioGenerador de codigo intermedio
Generador de codigo intermedio
 
Parte 4 Máquinas De Turing
Parte 4  Máquinas De  TuringParte 4  Máquinas De  Turing
Parte 4 Máquinas De Turing
 
Estructura de un compilador 2
Estructura de un compilador 2Estructura de un compilador 2
Estructura de un compilador 2
 
Analisis lexico automatas i
Analisis lexico automatas iAnalisis lexico automatas i
Analisis lexico automatas i
 
Tutorial de JFLAP
Tutorial de JFLAPTutorial de JFLAP
Tutorial de JFLAP
 
Traductor y su estructura
Traductor y su estructuraTraductor y su estructura
Traductor y su estructura
 
Monitores-sistemas operativos
Monitores-sistemas operativosMonitores-sistemas operativos
Monitores-sistemas operativos
 
Tipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacionTipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacion
 
Diseño de entraday_salida
Diseño de entraday_salidaDiseño de entraday_salida
Diseño de entraday_salida
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadoras
 

Destacado

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
 

Destacado (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
 

Más de 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
 

Último

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
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
jlorentemartos
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
UPTAIDELTACHIRA
 

Último (20)

INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
Diapositivas de animales reptiles secundaria
Diapositivas de animales reptiles secundariaDiapositivas de animales reptiles secundaria
Diapositivas de animales reptiles secundaria
 
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
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
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
 
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
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
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
 
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
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
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
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 

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