SlideShare ist ein Scribd-Unternehmen logo
1 von 60
Downloaden Sie, um offline zu lesen
´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito
Determin´stico
          ı
                                     ´
                                  Automatas Finitos
    ´
Automata
Finito No-
Determin´stico
         ı
                           Leopoldo Altamirano, Eduardo Morales
    ´
Automatas
Finitos y
Lenguajes
Formales
                                          INAOE
         ´
Eliminacion
de las
Transiciones-ǫ
                                      Verano, 2011




                 (INAOE)                                      Verano, 2011   1 / 60
Contenido
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un                 ´           ´
                 1 Introduccion a los Automatas
    ´
Automata
Finito
Determin´stico
          ı

    ´
Automata                  ´                  ´
                 2 Definicion formal de un Automata Finito Determin´stico
                                                                  ı
Finito No-
Determin´stico
         ı

    ´
Automatas
Finitos y             ´
                 3 Automata Finito No-Determin´stico
                                              ı
Lenguajes
Formales

         ´
Eliminacion
de las                ´
                 4 Automatas Finitos y Lenguajes Formales
Transiciones-ǫ



                            ´
                 5 Eliminacion de las Transiciones-ǫ




                 (INAOE)                                        Verano, 2011   2 / 60
´           ´
                           Introduccion a los Automatas


                                      ´           ´
                            Introduccion a los Automatas
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un      Automata: Conjunto de estados + Control → Cambio de
                      ´
    ´
Automata
Finito            estados en respuesta a una entrada.
Determin´stico
          ı
                  Tipo de Control:
    ´
Automata
Finito No-
Determin´stico
         ı
                    • Determin´stico: Para cada entrada, hay solo un estado
                                 ı                              ´
    ´
Automatas                            ´
                       al que el automata puede ir desde el estado en que se
Finitos y
Lenguajes              encuentre.
Formales
                    • No determin´stico: Un automata finito es
                                    ı           ´
         ´
Eliminacion
de las                 no-determin´stico cuando se permite que el AF tenga 0
                                    ı
Transiciones-ǫ
                           ´
                       o mas estados siguientes para cada par
                       estado-entrada.




                 (INAOE)                                         Verano, 2011   3 / 60
´           ´
                               Introduccion a los Automatas


                                    ´
                                 Automatas No-Deterministas
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un          ˜                                            ˜
                  Si anadimos la propiedad de no-determinismo, no anadimos
    ´
Automata
Finito                         ´
                  poder al automata. Osea que no podemos definir ningun
                                                                     ´
Determin´stico
          ı
                                                            ´
                  lenguaje que no se pueda definir con el automata
    ´
Automata
Finito No-        determin´stico.
                           ı
Determin´stico
         ı
                  Con la propiedad de no-determinismo se agrega eficiencia
    ´
Automatas
Finitos y                                  ´
                  al describir una aplicacion:
Lenguajes
Formales              • Permite programar soluciones en un lenguaje de mas
                                                                        ´
         ´
Eliminacion
de las                     alto nivel
Transiciones-ǫ
                      • Hay un algoritmo para compilar un N-DFA en un DFA y
                           poder ser ejecutado en una computadora convencional




                 (INAOE)                                            Verano, 2011   4 / 60
´           ´
                            Introduccion a los Automatas


                                 ´
                              Automatas No-Deterministas
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito                • Extension del N-DFA para hacer saltos de un estado a
                               ´
Determin´stico
          ı
                                     ´
                        otro espontaneamente, con la cadena vac´a (ǫ) como
                                                                      ı
    ´
Automata
Finito No-                                           ´              ´
                        entrada: ǫN-DFA. Estos automatas tambien aceptan
Determin´stico
         ı

    ´
Automatas
                        lenguajes regulares.
Finitos y
Lenguajes
                      • Ejemplo: Compra con dinero-electronico. El cliente
                                                              ´
Formales
                        utiliza un archivo (env´o por internet) para pagar al
                                               ı
         ´
Eliminacion
de las                  comerciante. El comerciante al recibir el archivo pide al
Transiciones-ǫ
                        banco que le transfieran el dinero.




                 (INAOE)                                             Verano, 2011   5 / 60
´           ´
                           Introduccion a los Automatas


                                                      Ejemplo
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito
Determin´stico
          ı

    ´
Automata
Finito No-
Determin´stico
         ı

    ´
Automatas
Finitos y
Lenguajes
Formales

         ´
Eliminacion
de las
Transiciones-ǫ




                                      ´
                  Tarea: Leer la seccion 2.1.1 – 2.1.5 del libro


                 (INAOE)                                           Verano, 2011   6 / 60
´                  ´
          Definicion formal de un Automata Finito Determin´stico
                                                         ı


                                     ´                  ´
                              Definicion Formal de un Automata
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito
Determin´stico
          ı        Un AF se representa como la 5-tupla: A = (Q, Σ, δ, q0 , F ).
    ´
Automata           Donde:
Finito No-
Determin´stico
         ı             1   Q es un conjunto finito de estados.
    ´
Automatas
Finitos y              2   Σ es un alfabeto de s´mbolos de entrada.
                                                ı
Lenguajes
Formales               3   q0 es el estado inicial/de comienzo.
         ´
Eliminacion
de las                 4                            ´                        ´
                           F representa cero o mas estados finales/de aceptacion.
Transiciones-ǫ




                 (INAOE)                                              Verano, 2011   7 / 60
´                  ´
          Definicion formal de un Automata Finito Determin´stico
                                                         ı


                                                  ´             ´
                                             funcion de Transicion
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito                 1                 ´             ´             ´
                           δ es una funcion de transicion. Esta funcion:
Determin´stico
          ı
                               • Toma un estado y un s´mbolo de entrada como
                                                      ı
    ´
Automata
Finito No-                         argumentos.
Determin´stico
         ı
                               • Regresa un estado.
    ´
Automatas                      • Una “regla” de δ se escribe como δ(q, a) = p, donde q y
Finitos y
Lenguajes                          p son estados, y a es un s´mbolo de entrada.
                                                             ı
Formales
                                                             ´
                               • Intuitivamente: Si el AF esta en un estado q, y recibe
         ´
Eliminacion
de las                             una entrada a, entonces el AF va al estado p (nota:
Transiciones-ǫ
                                   q = p OK).




                 (INAOE)                                                      Verano, 2011   8 / 60
´                  ´
          Definicion formal de un Automata Finito Determin´stico
                                                         ı


                                                              Ejemplo
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito
Determin´stico
          ı
                                   ´
                   Ejemplo: Un Automata A que acepta
    ´
Automata           L = {x01y|x, y ∈ {0, 1}∗ }
Finito No-
Determin´stico
         ı             • El DFA acepta cadenas que tienen 01 en alguna parte
    ´
Automatas                  de la cadena
Finitos y
Lenguajes
Formales
                       • El lenguaje del DFA es el conjunto de cadenas que
         ´
Eliminacion                acepta {w |w tiene la forma “x01y” para algunas
de las
Transiciones-ǫ             cadenas x y y que consisten solo de 0’s y 1’s }.
                                                          ´




                 (INAOE)                                                Verano, 2011   9 / 60
´                  ´
          Definicion formal de un Automata Finito Determin´stico
                                                         ı


                                             Tabla de Transiciones
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito
Determin´stico
          ı
                          ´
                   El Automata anterior puede ser representado con una tabla
    ´
Automata           de transiciones, definido como A = (q0 , q1 , q2 , 0, 1, δ, q0 , q1 ),
Finito No-
Determin´stico
         ı         de la siguiente forma:
    ´
Automatas                    0    1
Finitos y
Lenguajes           → q0 q2 q0
Formales
                       ·q1 q1 q1
         ´
Eliminacion
de las                  q2 q2 q1
Transiciones-ǫ




                 (INAOE)                                                  Verano, 2011   10 / 60
´                  ´
          Definicion formal de un Automata Finito Determin´stico
                                                         ı


                                        Diagrama de Transiciones
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito
Determin´stico
          ı           ´
                   Automata representado con un diagrama de transiciones:
    ´
Automata
Finito No-
Determin´stico
         ı

    ´
Automatas
Finitos y
Lenguajes
Formales

         ´
Eliminacion
de las
Transiciones-ǫ




                 (INAOE)                                          Verano, 2011   11 / 60
´                  ´
          Definicion formal de un Automata Finito Determin´stico
                                                         ı


                                                       Convenciones
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito
Determin´stico
          ı        Se utilizan algunas convenciones para evitar mencionar el
    ´
Automata           tipo de cada nombre, para esto utilizamos las siguientes
Finito No-
Determin´stico
         ı         reglas:
    ´
Automatas
Finitos y
                       • Los s´mbolos de entrada son a, b, etc., o d´gitos.
                              ı                                     ı
Lenguajes
Formales               • Las cadenas de s´mbolos de entrada son u, v, . . . , z.
                                         ı
         ´
Eliminacion
de las
                       • Los estados son q, p, etc.
Transiciones-ǫ




                 (INAOE)                                              Verano, 2011   12 / 60
´                  ´
          Definicion formal de un Automata Finito Determin´stico
                                                         ı


                                        Diagrama de Transiciones
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito
                   Un AF se puede representar por medio de un grafo; los
Determin´stico
          ı
                   nodos representan estados; un arco de p a q se etiqueta
    ´
Automata
Finito No-         con el conjunto de s´mbolos de entrada a tal que
                                       ı
Determin´stico
         ı
                   δ(q, a) = p.
    ´
Automatas
Finitos y              • No hay arco si a no existe.
Lenguajes
Formales
                       • El estado de inicio se indica con la palabra “start” con
         ´
Eliminacion
de las                     una flecha.
Transiciones-ǫ
                       • Los estados de aceptacion tienen doble c´rculo.
                                                ´                ı




                 (INAOE)                                              Verano, 2011   13 / 60
´                  ´
          Definicion formal de un Automata Finito Determin´stico
                                                         ı


                                                              Ejemplo
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito
Determin´stico
          ı

    ´
Automata
Finito No-
Determin´stico
         ı

    ´
Automatas
Finitos y
Lenguajes
Formales

         ´
Eliminacion
de las
Transiciones-ǫ




                 (INAOE)                                                Verano, 2011   14 / 60
´                  ´
          Definicion formal de un Automata Finito Determin´stico
                                                         ı


                                             ´              ˆ
                        Funciones de transicion extendidas (δ)
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito
Determin´stico
          ı
                   Intuitivamente, un FA acepta una cadena w = a1 a2 . . . an si
    ´
Automata
Finito No-         hay una ruta en el diagrama de transiciones que:
Determin´stico
         ı

    ´
Automatas              1   Empieza en el estado de inicio,
Finitos y
Lenguajes              2                                   ´
                           Termina en un estado de aceptacion, y
Formales

         ´
Eliminacion
                       3   Tiene una secuencia de etiquetas a1 , a2 , . . . , an .
de las
Transiciones-ǫ




                 (INAOE)                                                     Verano, 2011   15 / 60
´                  ´
          Definicion formal de un Automata Finito Determin´stico
                                                         ı


                                                              Ejemplo
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito
Determin´stico
          ı        Ejemplo: El siguiente AF acepta la cadena 01101:
    ´
Automata
Finito No-
Determin´stico
         ı

    ´
Automatas
Finitos y
Lenguajes
Formales

         ´
Eliminacion
de las
Transiciones-ǫ




                 (INAOE)                                                Verano, 2011   16 / 60
´                  ´
          Definicion formal de un Automata Finito Determin´stico
                                                         ı


                                                  ´             ´
                                             Funcion de Transicion
          ´
Introduccion a
       ´
los Automatas                                        ´            ´
                   Formalmente, extendemos la funcion de transicion δ a
        ´
Definicion
                   ˆ
                   δ(q, w ), donde w puede ser cualquier cadena de s´mbolos
                                                                    ı
formal de un
    ´
Automata           de entrada:
Finito
Determin´stico
          ı                    ˆ
                       • Base: δ(q, ǫ) = q (i.e., nos quedamos en el mismo lugar
    ´
Automata
Finito No-               si no recibimos una entrada).
Determin´stico
         ı

    ´
Automatas
                                   ´ ˆ               ˆ
                       • Induccion: δ(q, w ) = δ(δ(q, x), a), donde x es una
Finitos y
Lenguajes
                         cadena, y a es un solo s´mbolo (i.e., ver a donde va el
                                                       ı                        ´
Formales                                                             ´
                         AF con x, luego buscar la transicion para el ultimo     ´
         ´
Eliminacion
de las
                         s´mbolo a partir de ese estado).
                          ı
Transiciones-ǫ
                       • Hecho importante con una prueba inductiva directa: δ      ˆ
                         realmente representa rutas. Esto es, si w = a1 a2 . . . an ,
                         y δ(pi , ai ) = pi+1 , ∀i = 0, 1, . . . , n − 1, entonces
                         ˆ
                         δ(p0 , w ) = pn .


                 (INAOE)                                                Verano, 2011   17 / 60
´                  ´
          Definicion formal de un Automata Finito Determin´stico
                                                         ı


                                                  ´             ´
                                             Funcion de Transicion
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito
Determin´stico
          ı

    ´
Automata               • Aceptacion de Cadenas: Un AF A = (Q, Σ, δ, q0 , F )
                                 ´
Finito No-
Determin´stico
         ı                                       ˆ
                           acepta la cadena w si δ(p0 , w ) esta en F .
                                                               ´
    ´
Automatas
Finitos y              • Lenguaje de un AF: Un AF acepta el lenguaje
Lenguajes
Formales
                                      ˆ
                           L(A) = {w |δ(p0, w ) ∈ F }.
         ´
Eliminacion
de las
Transiciones-ǫ




                 (INAOE)                                                  Verano, 2011   18 / 60
´                  ´
          Definicion formal de un Automata Finito Determin´stico
                                                         ı


                                Algunas confusiones frecuentes
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
                                             ´
                   Una gran fuente de confusion cuando se trabaja con
formal de un
    ´
Automata
                       ´               ´
                   automatas (o matematicas en general) son los “errores de
Finito
Determin´stico
          ı
                   tipo”:
    ´
Automata               • Ejemplo: No confundir A, un FA, i.e., un programa, con
Finito No-
Determin´stico
         ı                 L(A), el cual es del tipo “conjunto de cadenas”.
    ´
Automatas
Finitos y
                       • Ejemplo: El estado de inicio q0 es del tipo “estado” pero
Lenguajes
Formales
                                                ´
                         los estados de aceptacion F son del tipo “conjunto de
         ´
Eliminacion              estados”.
de las
Transiciones-ǫ         • Ejemplo enganoso: Es a un s´mbolo o una cadena de
                                       ˜              ı
                         longitud 1? Respuesta: Depende del contexto, i.e., se
                                                                    ˆ
                         usa en δ(q, a), donde es un s´mbolo, o en δ(q, a),
                                                      ı
                         donde es una cadena?



                 (INAOE)                                               Verano, 2011   19 / 60
´                  ´
          Definicion formal de un Automata Finito Determin´stico
                                                         ı


                                                             Ejemplo:
          ´
Introduccion a
       ´
los Automatas
                                               ´
                   Un DFA que acepta todas y solo las cadenas que tienen un
        ´
Definicion
formal de un        ´                       ´ un numero par de 1’s
                   numero par de 0’s y tambien     ´
    ´
Automata
Finito
Determin´stico
          ı

    ´
Automata
Finito No-
Determin´stico
         ı

    ´
Automatas
Finitos y
Lenguajes
Formales

         ´
Eliminacion
de las
Transiciones-ǫ




                 (INAOE)                                                Verano, 2011   20 / 60
´                  ´
          Definicion formal de un Automata Finito Determin´stico
                                                         ı


                                                      Ejemplo (cont.)
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito
Determin´stico
          ı

    ´
Automata
Finito No-
Determin´stico
         ı

    ´
Automatas
Finitos y
Lenguajes
Formales

         ´
Eliminacion
de las
Transiciones-ǫ




                 (INAOE)                                                Verano, 2011   21 / 60
´                  ´
          Definicion formal de un Automata Finito Determin´stico
                                                         ı


                                                      Ejemplo (cont.)
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
                               ´                 ´
                   Representacion tabular del automata anterior:
Finito
Determin´stico
          ı
                             0   1
    ´
Automata            · → q0 q2 q1
Finito No-
Determin´stico
         ı              q1 q3 q0
    ´
Automatas               q2 q0 q3
Finitos y
Lenguajes               q3 q1 q2
Formales

         ´
Eliminacion
de las             Ejemplo: Problema 2.2.1.a
Transiciones-ǫ


                   Ejemplo: Problema 2.2.4.a




                 (INAOE)                                                Verano, 2011   22 / 60
´
                           Automata Finito No-Determin´stico
                                                      ı


                              ´
                           Automata Finito No-Determin´stico
                                                      ı
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito                   ´
                  Un automata finito es no-determin´stico cuando se permite
                                                  ı
Determin´stico
          ı
                                       ´
                  que el AF tenga 0 o mas estados siguientes para cada par
    ´
Automata
Finito No-        estado-entrada:
Determin´stico
         ı

    ´
Automatas
Finitos y
Lenguajes
Formales

         ´
Eliminacion
de las
Transiciones-ǫ




                 (INAOE)                                        Verano, 2011   23 / 60
´
                            Automata Finito No-Determin´stico
                                                       ı


                               ´
                            Automata Finito No-Determin´stico
                                                       ı
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion             • En el ejemplo anterior, se puede apreciar que de q0 se
formal de un
    ´
Automata                                 ´
                           puede ir a q0 o a q1 con la entrada “0”, y esto hace al
Finito
Determin´stico
          ı                AF ser no-determinista.
    ´
Automata
Finito No-            • Un NFA puede estar en varios estados a la vez o se
Determin´stico
         ı
                                                      ´
                        puede ver que “adivina” a que estado ir.
    ´
Automatas
Finitos y             • Por ejemplo, el siguiente automata acepta todas las
                                                     ´
Lenguajes
Formales                cadenas que terminan en 01:
         ´
Eliminacion
de las
Transiciones-ǫ




                 (INAOE)                                                Verano, 2011   24 / 60
´
                           Automata Finito No-Determin´stico
                                                      ı


                              ´
                           Automata Finito No-Determin´stico
                                                      ı
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito            Lo que pasa al procesar como entrada a 00101 es:
Determin´stico
          ı

    ´
Automata
Finito No-
Determin´stico
         ı

    ´
Automatas
Finitos y
Lenguajes
Formales

         ´
Eliminacion
de las
Transiciones-ǫ




                 (INAOE)                                       Verano, 2011   25 / 60
´
                            Automata Finito No-Determin´stico
                                                       ı


                               ´
                            Automata Finito No-Determin´stico
                                                       ı
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
                      • Un NFA es una herramienta importante para disenar
                                                                      ˜
    ´
Automata
Finito
                           procesadores de cadenas, e.g., grep, analizadores
Determin´stico
          ı                 ´                ´        ˜
                           lexicos, etc. Es facil disenar NFAs que encuentren
    ´
Automata
Finito No-
                           secuencias de palabras en texto.
Determin´stico
         ı
                      • NFA: Formalmente, un NFA es una qu´ntupla
                                                          ı
    ´
Automatas
Finitos y                  A = (Q, Σ, δ, q0 , F ), donde todo es un DFA, pero δ(q, a)
Lenguajes
Formales                   nos regresa un conjunto de estados en lugar de un solo
         ´
Eliminacion                estado. De hecho puede ser vac´o, tener un solo estado
                                                              ı
de las
Transiciones-ǫ                      ´
                           o tener mas estados.
                      • Un NFA acepta, al igual que un DFA, lenguajes
                           regulares



                 (INAOE)                                                Verano, 2011   26 / 60
´
                           Automata Finito No-Determin´stico
                                                      ı


                                                           Ejemplo
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito
                  Por ejemplo, para el NFA que acepta cadenas que acaban
Determin´stico
          ı                     ´             ´
                  en 01 su funcion de transicion δ es:
    ´
Automata
Finito No-
Determin´stico
         ı                              0            1
    ´
Automatas
Finitos y
                    → q0        {q0 , q1 }        {q0 }
Lenguajes
Formales
                      q1                 ∅        {q2 }
         ´
Eliminacion
                     *q2                 ∅            ∅
de las
Transiciones-ǫ
                  Como puede observarse, todo se especifica en conjuntos.




                 (INAOE)                                             Verano, 2011   27 / 60
´
                            Automata Finito No-Determin´stico
                                                       ı


                                                             ´    ˆ
                                                      Extension a δ
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
                                                                ´
                  Similarmente a un DFA, podemos definir la funcion de
formal de un      transicion            ˆ
                          ´ extendida δ como sigue:
    ´
Automata
Finito
Determin´stico
          ı
                             ˆ
                     • Base: δ(q, ǫ) = q
    ´
Automata
Finito No-
                      • Induccion: Supongamos w es de la forma w = xa,
                               ´
Determin´stico
         ı                 donde a es el s´mbolo terminal y x es el resto de w .
                                             ı
    ´
Automatas
                                                     ´             ˆ
                           Supongamos tambien que: δ(q, x) = {p1 , p2 , . . . , pk }.
Finitos y
                             k
                             i=1 δ(pi , a) = {r1 , r2 , . . . , rm }. Entonces
Lenguajes
Formales

         ´
Eliminacion
                           ∪δ(q, w ) = {r1 , r2 , . . . , rm }.
de las                                                                ˆ
                           En otras palabras calculamos δ(q, w ) primero
Transiciones-ǫ
                                         ˆ x) y despues siguiendo cualquier
                           calculando δ(q,                       ´
                                   ´ de algunos de esos estados etiquetada con
                           transicion
                           a.



                 (INAOE)                                                  Verano, 2011   28 / 60
´
                           Automata Finito No-Determin´stico
                                                      ı


                                                          Ejemplo:
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata                                              ˆ
                  Por ejemplo, podemos calcular δ(q0 , 00101) para el
Finito
Determin´stico
          ı           ´
                  automata anterior:
    ´
Automata
Finito No-
                  ˆ
                  δ(q0 , ǫ) = {q0 }
Determin´stico
         ı        ˆ
                  δ(q0 , 0) = δ(q0 , 0) = {q0 , q1 }
    ´
Automatas
Finitos y
                  ˆ 0 , 00) = δ(q0 , 0) ∪ δ(q1 , 0) ∪ ∅ = {q0 , q1 }
                  δ(q
Lenguajes
Formales
                  ˆ
                  δ(q0 , 001) = δ(q0 , 1) ∪ δ(q1 , 1) = {q0 } ∪ {q2 } = {q0 , q2 }
         ´
Eliminacion
                  ˆ 0 , 0010) = δ(q0 , 0) ∪ δ(q2 , 0) = {q0 , q1 } ∪ ∅ = {q0 , q1 }
                  δ(q
de las
Transiciones-ǫ
                  ˆ
                  δ(q0 , 00101) = δ(q0 , 1) ∪ δ(q1 , 1) = {q0 } ∪ {q2 } = {q0 , q2 }
                  Que tiene un estado final.




                 (INAOE)                                                Verano, 2011   29 / 60
´
                           Automata Finito No-Determin´stico
                                                      ı


                                           Lenguajes de un NFA
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un      El lenguaje aceptado por un NFA, A, es:
    ´
Automata
Finito
                             ˆ
                  L(A) = {w |δ(q0 , w ) ∩ F = ∅}.
Determin´stico
          ı

    ´
Automata
Finito No-
Determin´stico
         ı
                  Equivalencia entre un DFA y un NFA
    ´
Automatas
Finitos y                                       ´ ´
                  Un NFA es normalmente mas facil de definir, aunque al
Lenguajes
Formales          mismo tiempo, para cualquier NFA N existe un DFA D tal
         ´
Eliminacion
de las
                  que L(D) = L(N) y viceversa.
Transiciones-ǫ                                    ´
                  Para esto se usa la construccion de subconjunto que
                                              ´       ´
                  muestra un ejemplo de como un automata se puede
                  construir a partir de otro.




                 (INAOE)                                         Verano, 2011   30 / 60
´
                            Automata Finito No-Determin´stico
                                                       ı


                                           ´
                                 Construccion de Subconjunto
          ´
Introduccion a    Para cada NFA existe un DFA equivalente (acepta el mismo
       ´
los Automatas
                  lenguaje). Pero el DFA puede tener un numero exponencial
                                                              ´
        ´
Definicion
formal de un      de estados.
    ´
Automata
Finito            Sea N = (QN , Σ, δN , q0 , FN ) un NFA. El DFA equivalente
Determin´stico
          ı
                                                                     ´
                  construido a partir del subconjunto de construccion es
    ´
Automata
Finito No-        D = (QD , Σ, δD , {q0 }, FD ), donde:
Determin´stico
         ı

    ´
Automatas
                      • |QD | = 2|QN | ; i.e., QD es el conjunto de todos los
Finitos y
Lenguajes
                           subconjuntos de QN .
Formales
                      • FD es el conjunto de conjuntos S en QD tal que
         ´
Eliminacion
de las                     S ∩ FN = ∅.
Transiciones-ǫ
                      • Para cualquier S ⊆ QN y a ∈ Σ,
                           δD (S, a) = p∈S δN (p, a), osea, la union de todos los
                                                                            ´
                           estados a partir de p con entrada a.
                           δD ({q1 , q2 , . . . , qk }, a) =
                           δN (p1 , a) ∪ δN (p2 , a) ∪ . . . ∪ δN (pk , a).
                 (INAOE)                                                Verano, 2011   31 / 60
´
                           Automata Finito No-Determin´stico
                                                      ı


                                          ´
                                Construccion de Subconjunto
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion                 ´             ´
                  La funcion de transicion δD del NFA anterior es:
formal de un
    ´
Automata
Finito
Determin´stico
          ı

    ´
Automata
Finito No-
Determin´stico
         ı

    ´
Automatas
Finitos y
Lenguajes
Formales

         ´
Eliminacion
de las
Transiciones-ǫ




                 (INAOE)                                             Verano, 2011   32 / 60
´
                           Automata Finito No-Determin´stico
                                                      ı


                                          ´
                                Construccion de Subconjunto
          ´
Introduccion a
       ´
los Automatas
                  Al existir 3 estados, tenemos 8 subconjuntos. Esto mismo lo
        ´
Definicion
formal de un      podemos poner como:
    ´
Automata
Finito
Determin´stico
          ı

    ´
Automata
Finito No-
Determin´stico
         ı

    ´
Automatas
Finitos y
Lenguajes
Formales

         ´
Eliminacion
de las
Transiciones-ǫ




                 (INAOE)                                         Verano, 2011   33 / 60
´
                            Automata Finito No-Determin´stico
                                                       ı


                                           ´
                                 Construccion de Subconjunto
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito
                      • Lo cual es un DFA (simplemente cambiando la
Determin´stico
          ı                       ´         ´
                           notacion). Tambien es importante notar que no todos
    ´
Automata
Finito No-
                                                                               ´
                           los estados pueden ser alcanzados. En particular, solo
Determin´stico
         ı
                           los estados B, E y F son accesibles, por lo que los
    ´
Automatas
Finitos y                       ´
                           demas los podemos eliminar.
Lenguajes
Formales              • Una forma de no construir todos los subconjuntos para
         ´
Eliminacion                      ´                   ´
                           despues encontrar que solo unos cuantos son
de las
Transiciones-ǫ                                                ´
                           accesibles, es construir la tabla solo para los estados
                           accesibles (lazy evaluation).




                 (INAOE)                                                Verano, 2011   34 / 60
´
                           Automata Finito No-Determin´stico
                                                      ı


                                                   Ejemplo (cont.)
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito
Determin´stico
          ı
                  Para el ejemplo anterior: δD (q0 , 0) = {q0 , q1 }
    ´
Automata
Finito No-        δD (q0 , 1) = {q1 }
Determin´stico
         ı
                  δD (q0 , q1 , 0) = {q0 , q1 }
    ´
Automatas
Finitos y         δD (q0 , q1 , 1) = {q0 , q2 } = δN (q0 , 1) ∪ δN (q1 , 1)
Lenguajes
Formales          δD (q0 , q2 , 0) = {q0 , q1 }
         ´
Eliminacion       δD (q0 , q2 , 1) = {q0 }
de las
Transiciones-ǫ




                 (INAOE)                                                      Verano, 2011   35 / 60
´
                           Automata Finito No-Determin´stico
                                                      ı


                                                   Ejemplo (cont.)
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito            Lo que nos queda:
Determin´stico
          ı

    ´
Automata
Finito No-
Determin´stico
         ı

    ´
Automatas
Finitos y
Lenguajes
Formales

         ´
Eliminacion
de las
Transiciones-ǫ




                 (INAOE)                                             Verano, 2011   36 / 60
´
                           Automata Finito No-Determin´stico
                                                      ı


                                        Prueba de Equivalencia
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito
Determin´stico
          ı

    ´
Automata          Teorema clave: induccion de |w | (la prueba esta en el
                                               ´                        ´
Finito No-
Determin´stico
         ı
                          ˆ                ˆ
                  libro): δD ({q0 }, w ) = δN (q0 , w ). Lo que queremos probar es
    ´
Automatas         que si D = (QD , Σ, δD , {q0 }, FD ) es construido a partir del
Finitos y
Lenguajes         NFA N = (QN , Σ, δN , q0 , FN ) usando construccion de
                                                                      ´
Formales
                  subconjuntos, entonces L(D) = L(N).
         ´
Eliminacion
de las
Transiciones-ǫ




                 (INAOE)                                              Verano, 2011   37 / 60
´
                           Automata Finito No-Determin´stico
                                                      ı


                                        Prueba de Equivalencia
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito
Determin´stico
          ı

    ´
Automata                                             ´
                  Queremos probar por induccion en w que
Finito No-
Determin´stico
         ı
                  ˆ                ˆ
                  δD ({q0 }, w ) = δN (q0 , w ). Las dos funciones de transicion
                                                                              ´
    ´
Automatas         regresan conjuntos de estados de QN , pero la determin´stica ı
Finitos y
Lenguajes         lo interpreta como uno solo de sus estados QD .
Formales                                          ˆ             ˆ
                  Base: w = ǫ, en este caso δD ({q0 }, ǫ) = δN (q0 , ǫ) = {q0 }.
         ´
Eliminacion
de las
Transiciones-ǫ




                 (INAOE)                                           Verano, 2011   38 / 60
´
                           Automata Finito No-Determin´stico
                                                      ı


                                        Prueba de Equivalencia
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito            Induccion: Tomamos w de longitud n + 1 y asumimos que
                            ´
Determin´stico
          ı

    ´
Automata
                  se cumple el enunciado para n, o sea que
Finito No-        ˆ                    ˆ
                  δD ({q0 }, x) = δN (q0 , x). Sean estos dos conjuntos de
Determin´stico
         ı

    ´
Automatas
                  estados = {p1 , p2 , . . . , pk }. Dividimos a w en xa. La
Finitos y                  ´          ˆ
                  definicion de δ para el NFA nos dice que:
Lenguajes
Formales          ˆ
                  δN (q0 , w ) = k δN (pi , a).
                                       i=1
         ´
Eliminacion
de las
                                           ´
                  Por la construccion de subconjuntos:
                                                    k
Transiciones-ǫ    δD ({p1 , p2 , . . . , pk }, a) = i=1 δN (pi , a)




                 (INAOE)                                          Verano, 2011   39 / 60
´
                           Automata Finito No-Determin´stico
                                                      ı


                                        Prueba de Equivalencia
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito
Determin´stico
          ı
                                          ˆ
                  Usando esto, y que δD ({q0 }, x) = {p1 , p2 , . . . , pk } tenemos
    ´
Automata          que:
Finito No-
Determin´stico
         ı        ˆ                    ˆ
                  δD ({q0 }, w ) = δD (δD ({q0 }, x), a) = δD ({p1 , p2 , . . . , pk }, a) =
                    k
                    i=1 δN (pi , a)
    ´
Automatas
Finitos y
Lenguajes         Tanto D como N aceptan w cuando contiene un estado en
Formales

         ´
Eliminacion
                  FN.
de las
Transiciones-ǫ
                  Consecuencia: L(D) = L(N).




                 (INAOE)                                                      Verano, 2011   40 / 60
´
                           Automata Finito No-Determin´stico
                                                      ı


                                                          Ejemplos
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito
Determin´stico
          ı
                  Ejemplo: Convertir el siguiente NFA a un DFA
    ´
Automata
Finito No-              0       1
Determin´stico
         ı
                   → p {p, q} {p}
    ´
Automatas
Finitos y          q    {r }    {r }
Lenguajes
Formales           r    {s}     ∅
         ´
Eliminacion        ∗s   {s}     {s}
de las
Transiciones-ǫ




                 (INAOE)                                             Verano, 2011   41 / 60
´
                           Automata Finito No-Determin´stico
                                                      ı


                                                           Ejemplo
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
                                                                    ˜ ´
                  En este ejemplo un tanto imaginario, se disenara un NFA
formal de un
    ´
Automata
                  para aceptar cadenas sobre el alfabeto {1, 2, 3} de tal
Finito
Determin´stico
          ı
                  manera que el ultimo s´mbolo aparezca previamente, sin
                                       ´          ı
    ´
Automata          ninguna intervencion      ´ de un s´mbolo mas alto entre esa
                                                       ı     ´
Finito No-
Determin´stico
         ı
                                     ´
                  previa aparicion del s´mbolo, e.g.,
                                                ı
    ´
Automatas         . . . 11, . . . 21112, . . . 312123.
Finitos y
Lenguajes             • Truco: Utilizar el estado de inicio con el significado
Formales

         ´
Eliminacion
                        “Creo que todav´a no se ha visto el s´mbolo que
                                        ı                    ı
de las
Transiciones-ǫ
                        corresponde al s´mbolo final”.
                                         ı
                      • Otros tres estados representando una eleccion de que
                                                                    ´
                        el s´mbolo con que acaba la cadena se ha visto y se
                            ı
                        recuerda de que s´mbolo se trata.
                                           ı



                 (INAOE)                                             Verano, 2011   42 / 60
´
                           Automata Finito No-Determin´stico
                                                      ı


                                                           Ejemplo
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito
Determin´stico
          ı

    ´
Automata
Finito No-
Determin´stico
         ı

    ´
Automatas
Finitos y
Lenguajes
Formales

         ´
Eliminacion
de las
Transiciones-ǫ




                 (INAOE)                                             Verano, 2011   43 / 60
´
                           Automata Finito No-Determin´stico
                                                      ı


                                                   Ejemplo (cont.)
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un                                 ´
                  Subconjunto de Construccion del NFA Previo.
    ´
Automata
Finito
Determin´stico
          ı
                    • Un truco practico importante utilizado por analizadores
                                  ´
    ´
Automata               ´
                      lexicos y otros procesadores de texto es ignorar los
Finito No-
Determin´stico
         ı            (frecuentemente muchos) estados que no son
    ´
Automatas             accesibles desde el estado de inicio (i.e., no hay ruta
Finitos y
Lenguajes             que lleve a ellos).
Formales
                      • Para el ejemplo anterior de NFA, de los 32
         ´
Eliminacion
de las
Transiciones-ǫ
                           subconjuntos posibles, solo 15 son accesibles.
                           Calculando las transiciones “por demanda” obtenemos
                           el siguiente δD :




                 (INAOE)                                             Verano, 2011   44 / 60
´
                           Automata Finito No-Determin´stico
                                                      ı


                                                   Ejemplo (cont.)
          ´
Introduccion a
                                            1                 2       3
       ´
los Automatas         → {p}              {pq}             {pr }    {ps}
        ´
Definicion
formal de un
                        {pq}            {pqt}             {pr }    {ps}
    ´
Automata
Finito
                      {∗pqt}            {pqt}             {pr }    {ps}
Determin´stico
          ı             {pr }           {pqr }           {prt}     {ps}
    ´
Automata
Finito No-
                      {∗prt}            {pqr }           {prt}     {ps}
Determin´stico
         ı
                        {ps}            {pqs}            {prs}    {pst}
    ´
Automatas
Finitos y             {∗pst}            {pqs}            {prs}    {pst}
Lenguajes
Formales               {prs}           {pqrs}           {prst}    {pst}
         ´
Eliminacion          {∗prst}           {pqrs}           {prst}    {pst}
de las
Transiciones-ǫ         {pqs}           {pqst}            {prs}    {pst}
                     {∗pqst}           {pqst}            {prs}    {pst}
                       {pqr }          {pqrt}            {prt}     {ps}
                     {∗pqrt}           {pqrt}            {prt}     {ps}
                      {pqrs}          {pqrst}           {prst}    {pst}
                    {∗pqrst}          {pqrst}           {prst}    {pst}
                 (INAOE)                                                  Verano, 2011   45 / 60
´
                           Automata Finito No-Determin´stico
                                                      ı


                                                           Ejemplo
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito
Determin´stico
          ı

    ´
Automata
Finito No-
Determin´stico
         ı
                                  ˜
                  Ejemplo: Disene un NFA que reconozca los siguientes
    ´
Automatas
                  conjuntos de cadenas: abc, abd y aacd , suponiendo que el
Finitos y
Lenguajes
                  alfabeto es {a, b, c, d }
Formales

         ´
Eliminacion
de las
Transiciones-ǫ




                 (INAOE)                                             Verano, 2011   46 / 60
´
                      Automatas Finitos y Lenguajes Formales


                              ´
                           Automata Finito con Transiciones-ǫ
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito
Determin´stico
          ı
                      • Sea ǫ una etiqueta en arcos.
    ´
Automata              • No hay ningun cambio extra: la aceptacion de w todav´a
                                   ´                           ´            ı
Finito No-
Determin´stico
         ı                 se da como la existencia de la ruta desde un estado de
    ´
Automatas
Finitos y
                                                         ´
                           inicio a un estado de aceptacion con etiqueta w .
Lenguajes
Formales
                      • Pero ǫ puede aparecer en los arcos, y significa que hay
         ´
Eliminacion                              ı                                ´
                           una cadena vac´a (i.e., no tiene una contribucion visible
de las
Transiciones-ǫ             para w ).




                 (INAOE)                                               Verano, 2011   47 / 60
´
                      Automatas Finitos y Lenguajes Formales


                                                           Ejemplo
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito
Determin´stico
          ı

    ´
Automata
Finito No-
Determin´stico
         ı

    ´
Automatas
Finitos y
Lenguajes
Formales

         ´
Eliminacion
de las
Transiciones-ǫ




                 (INAOE)                                             Verano, 2011   48 / 60
´
                      Automatas Finitos y Lenguajes Formales


                                                   Ejemplo (cont.)
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito
Determin´stico
          ı           • 001 es aceptado siguiendo la ruta q, s, r , q, r , s, con la
    ´
Automata
Finito No-
                        etiqueta 0ǫ01ǫ = 001.
Determin´stico
         ı
                      • Podemos disenar un automata que acepte cadenas de
                                      ˜        ´
    ´
Automatas
Finitos y               numeros que tengan un signo al inicio opcional,
                         ´
Lenguajes
Formales                seguida posiblemente de una cadena de decimales,
         ´
Eliminacion             seguida de un punto decimal y posiblemente de otra
de las
Transiciones-ǫ          cadena de decimales.




                 (INAOE)                                                Verano, 2011   49 / 60
´
                      Automatas Finitos y Lenguajes Formales


                                                           Ejemplo
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito
Determin´stico
          ı

    ´
Automata
Finito No-
Determin´stico
         ı

    ´
Automatas
Finitos y
Lenguajes
Formales

         ´
Eliminacion
de las
Transiciones-ǫ




                 (INAOE)                                             Verano, 2011   50 / 60
´
                      Automatas Finitos y Lenguajes Formales


                                                               ǫ-NFA
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito
Determin´stico
          ı         ´
                  Mas formalmente: Un ǫ-NFA es una qu´ntuplaı
    ´
Automata
Finito No-        (Q, Σ, δ, q0 , F ), donde δ es una funcion de Q × Σ ∪ {ǫ} al
                                                          ´
Determin´stico
         ı
                  conjunto potencia de Q.
    ´
Automatas
Finitos y
Lenguajes
Formales

         ´
Eliminacion                           ´
                  La tabla de transicion del ǫ-NFA del ejemplo anterior es:
de las
Transiciones-ǫ




                 (INAOE)                                               Verano, 2011   51 / 60
´
                      Automatas Finitos y Lenguajes Formales


                                                               ´
                                              Tabla de Transicion
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito
Determin´stico
          ı

    ´
Automata
Finito No-
Determin´stico
         ı

    ´
Automatas
Finitos y
Lenguajes
Formales

         ´
Eliminacion
de las
Transiciones-ǫ




                 (INAOE)                                            Verano, 2011   52 / 60
´
                            Eliminacion de las Transiciones-ǫ


                                      ´
                             Eliminacion de las Transiciones-ǫ
          ´
Introduccion a
       ´
los Automatas     Las transiciones-ǫ son una conveniencia, pero no
        ´
Definicion
formal de un
                  incrementan la potencia de los FA’s. Para eliminar las
    ´
Automata          transiciones-ǫ:
Finito
Determin´stico
          ı
                                                         ´
                     1 Calcular la cerradura transitiva solo para los arcos ǫ.
    ´
Automata
Finito No-             Ejemplo: q −→ {q}; r −→ {r , s}; s −→ {r , s}.
Determin´stico
         ı

    ´
Automatas
                     2     Si un estado p puede alcanzar al estado q por medio
Finitos y
Lenguajes
                                                            ´
                           de arcos ǫ, y existe una transicion de q a r en la entrada
Formales                                        ˜´                  ´
                           a (no ǫ), entonces anadase una transicion de p a r con
         ´
Eliminacion
de las
                           la entrada a.
Transiciones-ǫ
                     3     Convertir el estado p en un estado de aceptacion  ´
                           siempre y cuando p pueda alcanzar algun estado de
                                                                    ´
                                     ´
                           aceptacion q por medio de arcos ǫ.
                     4     Eliminar todas las transiciones-ǫ.


                 (INAOE)                                                Verano, 2011   53 / 60
´
                           Eliminacion de las Transiciones-ǫ


                                                           Ejemplo
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito
Determin´stico
          ı

    ´
Automata
Finito No-
Determin´stico
         ı

    ´
Automatas
Finitos y
Lenguajes
Formales

         ´
Eliminacion
de las
Transiciones-ǫ




                 (INAOE)                                             Verano, 2011   54 / 60
´
                            Eliminacion de las Transiciones-ǫ


                                       Transiciones Extendidas
          ´
Introduccion a
       ´
los Automatas
                  De la misma forma como lo hicimos anteriormente,
        ´
Definicion
formal de un      podemos definir las transiciones extendidas para ǫ-NFA.
    ´
Automata
Finito                      ˆ
                    • Base: δ(q, ǫ) = ECLOSE (q)
Determin´stico
          ı

    ´
Automata                       ´ ˆ
                      • Induccion: δ(q, xa) =                       ˆ
                                                                p∈δ(δ(q,x),a)   ECLOSE (p)
Finito No-
Determin´stico
         ı                                 ˆ
                           Por ejemplo, δ(q0 , 5.6) es:
    ´
Automatas
Finitos y
                           ˆ 0 , ǫ) = {q0 , q1 } = ECLOSE (q0)
                           δ(q
Lenguajes
Formales
                           δ(q0 , 5) ∪ δ(q1 , 5) = {q1 , q4 }
         ´
Eliminacion                ECLOSE (q1) ∪ ECLOSE (q4) = {q1 , q4 }
de las
Transiciones-ǫ             δ(q1 , .) ∪ δ(q4 , .) = {q2 , q3 }
                                                                         ˆ
                           ECLOSE (q2) ∪ ECLOSE (q3) = {q2 , q3 , q5 } = δ(q0 , 5.6)
                           δ(q2 , 6) ∪ δ(q3 , 6) ∪ δ(q5 , 6) = {q3 }
                           ˆ
                           δ(q0 , 5.6) = ECLOSE (q3) = {q3 , q5 }



                 (INAOE)                                                               Verano, 2011   55 / 60
´
                            Eliminacion de las Transiciones-ǫ


                                                     Equivalencias
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito
Determin´stico
          ı           • Como antes, el lenguaje aceptado por un ǫ-NFA, E, es:
    ´
Automata                               ˆ
                           L(E ) = {w |δ(q0 , w ) ∩ F = ∅}, osea todas las cadenas
Finito No-
Determin´stico
         ı                 w que van de un estado inicial q0 a al menos un estado
    ´
Automatas
Finitos y
                           final.
Lenguajes
Formales
                      • Se puede demostrar que se puede construir un DFA a
         ´
Eliminacion                partir de un ǫ-NFA siguiendo un esquema parecido al
de las
Transiciones-ǫ                            ´
                           de construccion de subconjuntos visto para NFA.




                 (INAOE)                                              Verano, 2011   56 / 60
´
                           Eliminacion de las Transiciones-ǫ


                                                    Equivalencias
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito
Determin´stico
          ı       QD = {S|S ⊆ QE ∧ S = ECLOSE (S)}
    ´
Automata          qD = ECLOSE (q0)
Finito No-
Determin´stico
         ı        FD = {S|S ⊆ QD ∧ S ∩ FE = ∅}
    ´
Automatas         δD (S, a) = { ECLOSE (p)|p ∈ δ(t, a), t ∈ S}
Finitos y
Lenguajes
Formales

         ´
Eliminacion
de las
Transiciones-ǫ
                  lo que se calcula para todos los a ∈ Σ y conjuntos S ∈ QD .




                 (INAOE)                                            Verano, 2011   57 / 60
´
                           Eliminacion de las Transiciones-ǫ


                                                           Ejemplo
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
                  El DFA correspondiente al ǫ-NFA de numeros decimales
                                                         ´
Finito
Determin´stico
          ı
                  (omitiendo todas las transiciones a estados “muertos”) es:
    ´
Automata
Finito No-
Determin´stico
         ı

    ´
Automatas
Finitos y
Lenguajes
Formales

         ´
Eliminacion
de las
Transiciones-ǫ




                 (INAOE)                                             Verano, 2011   58 / 60
´
                           Eliminacion de las Transiciones-ǫ


                                                    Equivalencias
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
Finito            Se puede demostrar que un lenguaje L es aceptado por
Determin´stico
          ı

    ´
Automata
                  algun ǫ-NFA E si y solo si L es aceptado por un DFA. Para
                     ´
Finito No-
Determin´stico
         ı
                                             ´
                  esto, hacia un sentido es facil (cambiando un DFA a un
    ´
Automatas
                  ǫ-NFA) y para el otro sentido se hace lo mismo que hemos
Finitos y
Lenguajes
                  hecho antes, probando con el caso base y el caso inductivo,
Formales          donde partimos w = xa, asumimos que es verdad para x y
         ´
Eliminacion
de las
                  probamos para w , solo que ahora tomando la cerradura ǫ o
Transiciones-ǫ
                  ECLOSE para los estados.




                 (INAOE)                                            Verano, 2011   59 / 60
´
                           Eliminacion de las Transiciones-ǫ


                                                           Ejemplo
          ´
Introduccion a
       ´
los Automatas

        ´
Definicion
formal de un
    ´
Automata
                  Considere el siguiente ǫ-NFA:
Finito
Determin´stico
          ı
                          ǫ      a     b     c
    ´
Automata
                   →p     ∅     {p} {q} {r }
Finito No-
Determin´stico
         ı
                    q    {p} {q} {r }        ∅
    ´
Automatas          ∗r    {q} {r }      ∅    {p}
Finitos y
Lenguajes
Formales
                    a) Calcula las ǫ-closure para cada estado
         ´
Eliminacion         b) Cuales son todas las cadenas de 3 o menos caracteres
de las
Transiciones-ǫ                             ´
                       aceptadas por el automata
                     c) Convertirlo a un DFA




                 (INAOE)                                             Verano, 2011   60 / 60

Weitere ähnliche Inhalte

Was ist angesagt?

Raices de ecuaciones Metodos Númericos
Raices de ecuaciones Metodos NúmericosRaices de ecuaciones Metodos Númericos
Raices de ecuaciones Metodos NúmericosTensor
 
Estructura Discreta 2 Grafos Eulerianos y Hamiltonianos
Estructura Discreta 2 Grafos Eulerianos y HamiltonianosEstructura Discreta 2 Grafos Eulerianos y Hamiltonianos
Estructura Discreta 2 Grafos Eulerianos y HamiltonianosFabiola Dubraska
 
Gramática Libre de Contexto
Gramática Libre de ContextoGramática Libre de Contexto
Gramática Libre de ContextoBrayhan Acosta
 
Programación Orientada a Objetos - constructores y destructores
Programación Orientada a Objetos - constructores y destructoresProgramación Orientada a Objetos - constructores y destructores
Programación Orientada a Objetos - constructores y destructoresAlvaro Enrique Ruano
 
Método de la regla falsa (o metodo de la falsa posición) SN
Método de la regla falsa (o metodo de la falsa posición) SNMétodo de la regla falsa (o metodo de la falsa posición) SN
Método de la regla falsa (o metodo de la falsa posición) SNTensor
 
Clases abstractas e interfaces
Clases abstractas e interfacesClases abstractas e interfaces
Clases abstractas e interfaceslopezcortes
 
Teoria de Automatas & Lenguajes Formales
Teoria de Automatas & Lenguajes FormalesTeoria de Automatas & Lenguajes Formales
Teoria de Automatas & Lenguajes FormalesErivan Martinez Ovando
 
Grafos eulerianos y hamiltonianos
Grafos eulerianos y hamiltonianosGrafos eulerianos y hamiltonianos
Grafos eulerianos y hamiltonianosAron Boza
 
Problemas de flujos
Problemas de flujosProblemas de flujos
Problemas de flujosiecacyol
 
Automata Finito No Determinista
Automata Finito No DeterministaAutomata Finito No Determinista
Automata Finito No DeterministaJean Bernard
 
Arboles de derivacion
Arboles de derivacionArboles de derivacion
Arboles de derivacionLuis Couoh
 
5.3 arbol de expansión minima algoritmo de prim
5.3 arbol de expansión minima algoritmo de prim5.3 arbol de expansión minima algoritmo de prim
5.3 arbol de expansión minima algoritmo de primADRIANA NIETO
 
Algoritmo de dijkstra
Algoritmo de dijkstraAlgoritmo de dijkstra
Algoritmo de dijkstraKeily Solano
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18 ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18 Dimitris Psounis
 
Regla Del Trapecio
Regla Del TrapecioRegla Del Trapecio
Regla Del Trapeciopaulamelissa
 
Resolucion de ecuaciones diferenciales por medio de series
Resolucion de ecuaciones diferenciales por medio de seriesResolucion de ecuaciones diferenciales por medio de series
Resolucion de ecuaciones diferenciales por medio de seriesMateoLeonidez
 

Was ist angesagt? (20)

Expresiones Regulares
Expresiones RegularesExpresiones Regulares
Expresiones Regulares
 
Raices de ecuaciones Metodos Númericos
Raices de ecuaciones Metodos NúmericosRaices de ecuaciones Metodos Númericos
Raices de ecuaciones Metodos Númericos
 
Estructura Discreta 2 Grafos Eulerianos y Hamiltonianos
Estructura Discreta 2 Grafos Eulerianos y HamiltonianosEstructura Discreta 2 Grafos Eulerianos y Hamiltonianos
Estructura Discreta 2 Grafos Eulerianos y Hamiltonianos
 
Problemas redes
Problemas redesProblemas redes
Problemas redes
 
Gramática Libre de Contexto
Gramática Libre de ContextoGramática Libre de Contexto
Gramática Libre de Contexto
 
Programación Orientada a Objetos - constructores y destructores
Programación Orientada a Objetos - constructores y destructoresProgramación Orientada a Objetos - constructores y destructores
Programación Orientada a Objetos - constructores y destructores
 
Método de la regla falsa (o metodo de la falsa posición) SN
Método de la regla falsa (o metodo de la falsa posición) SNMétodo de la regla falsa (o metodo de la falsa posición) SN
Método de la regla falsa (o metodo de la falsa posición) SN
 
Clases abstractas e interfaces
Clases abstractas e interfacesClases abstractas e interfaces
Clases abstractas e interfaces
 
Teoria de Automatas & Lenguajes Formales
Teoria de Automatas & Lenguajes FormalesTeoria de Automatas & Lenguajes Formales
Teoria de Automatas & Lenguajes Formales
 
Grafos eulerianos y hamiltonianos
Grafos eulerianos y hamiltonianosGrafos eulerianos y hamiltonianos
Grafos eulerianos y hamiltonianos
 
Problemas de flujos
Problemas de flujosProblemas de flujos
Problemas de flujos
 
Automata Finito No Determinista
Automata Finito No DeterministaAutomata Finito No Determinista
Automata Finito No Determinista
 
Arboles de derivacion
Arboles de derivacionArboles de derivacion
Arboles de derivacion
 
Cayley hamilton theorem
Cayley hamilton theoremCayley hamilton theorem
Cayley hamilton theorem
 
5.3 arbol de expansión minima algoritmo de prim
5.3 arbol de expansión minima algoritmo de prim5.3 arbol de expansión minima algoritmo de prim
5.3 arbol de expansión minima algoritmo de prim
 
Algoritmo de dijkstra
Algoritmo de dijkstraAlgoritmo de dijkstra
Algoritmo de dijkstra
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18 ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18
 
Expresiones regulares
Expresiones regularesExpresiones regulares
Expresiones regulares
 
Regla Del Trapecio
Regla Del TrapecioRegla Del Trapecio
Regla Del Trapecio
 
Resolucion de ecuaciones diferenciales por medio de series
Resolucion de ecuaciones diferenciales por medio de seriesResolucion de ecuaciones diferenciales por medio de series
Resolucion de ecuaciones diferenciales por medio de series
 

Andere mochten auch

Lenguajes Regulares y Autómatas Finitos - Clase 7
Lenguajes Regulares y Autómatas Finitos - Clase 7Lenguajes Regulares y Autómatas Finitos - Clase 7
Lenguajes Regulares y Autómatas Finitos - Clase 7UTN-FRT Tucumán Argentina
 
Teoria de automatas
Teoria de automatasTeoria de automatas
Teoria de automatasequipolf
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Osiris Mirerus
 
Segmentación de cauce
Segmentación de cauceSegmentación de cauce
Segmentación de cauceElvis Quenhua
 
automatas finitos
 automatas finitos automatas finitos
automatas finitosAnel Sosa
 
(Sin soluiciones) s3 afnd y afd
(Sin soluiciones) s3   afnd y afd(Sin soluiciones) s3   afnd y afd
(Sin soluiciones) s3 afnd y afddwonga
 
Operaciones entre lenguajes
Operaciones entre lenguajesOperaciones entre lenguajes
Operaciones entre lenguajesJean Bernard
 
Presentación Autómatas Finito No Deterministico
Presentación  Autómatas Finito No DeterministicoPresentación  Autómatas Finito No Deterministico
Presentación Autómatas Finito No DeterministicoScarlinr
 
Maquinas secuenciales y Autómatas Finitos
Maquinas secuenciales y Autómatas FinitosMaquinas secuenciales y Autómatas Finitos
Maquinas secuenciales y Autómatas FinitosShirlid .n
 
Lenguajes Regulares.
Lenguajes Regulares.Lenguajes Regulares.
Lenguajes Regulares.guestdf1874
 
Autómatas finitos deterministas (afd)
Autómatas finitos deterministas (afd)Autómatas finitos deterministas (afd)
Autómatas finitos deterministas (afd)Moises Morales
 

Andere mochten auch (20)

Clase afd
Clase afdClase afd
Clase afd
 
Lenguajes Regulares y Autómatas Finitos - Clase 7
Lenguajes Regulares y Autómatas Finitos - Clase 7Lenguajes Regulares y Autómatas Finitos - Clase 7
Lenguajes Regulares y Autómatas Finitos - Clase 7
 
Teoria de automatas
Teoria de automatasTeoria de automatas
Teoria de automatas
 
Automatas[1]
Automatas[1]Automatas[1]
Automatas[1]
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1
 
Automatas de estado finito
Automatas de estado finitoAutomatas de estado finito
Automatas de estado finito
 
Segmentación de cauce
Segmentación de cauceSegmentación de cauce
Segmentación de cauce
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
 
Porque estudiar la teoría de autómatas
Porque estudiar la teoría de autómatasPorque estudiar la teoría de autómatas
Porque estudiar la teoría de autómatas
 
(Sin soluiciones) s3 afnd y afd
(Sin soluiciones) s3   afnd y afd(Sin soluiciones) s3   afnd y afd
(Sin soluiciones) s3 afnd y afd
 
Operaciones entre lenguajes
Operaciones entre lenguajesOperaciones entre lenguajes
Operaciones entre lenguajes
 
Cambios climáticos
Cambios climáticosCambios climáticos
Cambios climáticos
 
Presentación Autómatas Finito No Deterministico
Presentación  Autómatas Finito No DeterministicoPresentación  Autómatas Finito No Deterministico
Presentación Autómatas Finito No Deterministico
 
Automatas[2]
Automatas[2]Automatas[2]
Automatas[2]
 
Maquinas automatas
Maquinas automatasMaquinas automatas
Maquinas automatas
 
Maquinas automatas
Maquinas automatasMaquinas automatas
Maquinas automatas
 
Maquinas secuenciales y Autómatas Finitos
Maquinas secuenciales y Autómatas FinitosMaquinas secuenciales y Autómatas Finitos
Maquinas secuenciales y Autómatas Finitos
 
Lenguajes Regulares.
Lenguajes Regulares.Lenguajes Regulares.
Lenguajes Regulares.
 
Autómatas finitos deterministas (afd)
Autómatas finitos deterministas (afd)Autómatas finitos deterministas (afd)
Autómatas finitos deterministas (afd)
 
Libro 1
Libro 1Libro 1
Libro 1
 

Introducción a los automatas finitos

  • 1. ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Determin´stico ı ´ Automatas Finitos ´ Automata Finito No- Determin´stico ı Leopoldo Altamirano, Eduardo Morales ´ Automatas Finitos y Lenguajes Formales INAOE ´ Eliminacion de las Transiciones-ǫ Verano, 2011 (INAOE) Verano, 2011 1 / 60
  • 2. Contenido ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ ´ 1 Introduccion a los Automatas ´ Automata Finito Determin´stico ı ´ Automata ´ ´ 2 Definicion formal de un Automata Finito Determin´stico ı Finito No- Determin´stico ı ´ Automatas Finitos y ´ 3 Automata Finito No-Determin´stico ı Lenguajes Formales ´ Eliminacion de las ´ 4 Automatas Finitos y Lenguajes Formales Transiciones-ǫ ´ 5 Eliminacion de las Transiciones-ǫ (INAOE) Verano, 2011 2 / 60
  • 3. ´ ´ Introduccion a los Automatas ´ ´ Introduccion a los Automatas ´ Introduccion a ´ los Automatas ´ Definicion formal de un Automata: Conjunto de estados + Control → Cambio de ´ ´ Automata Finito estados en respuesta a una entrada. Determin´stico ı Tipo de Control: ´ Automata Finito No- Determin´stico ı • Determin´stico: Para cada entrada, hay solo un estado ı ´ ´ Automatas ´ al que el automata puede ir desde el estado en que se Finitos y Lenguajes encuentre. Formales • No determin´stico: Un automata finito es ı ´ ´ Eliminacion de las no-determin´stico cuando se permite que el AF tenga 0 ı Transiciones-ǫ ´ o mas estados siguientes para cada par estado-entrada. (INAOE) Verano, 2011 3 / 60
  • 4. ´ ´ Introduccion a los Automatas ´ Automatas No-Deterministas ´ Introduccion a ´ los Automatas ´ Definicion formal de un ˜ ˜ Si anadimos la propiedad de no-determinismo, no anadimos ´ Automata Finito ´ poder al automata. Osea que no podemos definir ningun ´ Determin´stico ı ´ lenguaje que no se pueda definir con el automata ´ Automata Finito No- determin´stico. ı Determin´stico ı Con la propiedad de no-determinismo se agrega eficiencia ´ Automatas Finitos y ´ al describir una aplicacion: Lenguajes Formales • Permite programar soluciones en un lenguaje de mas ´ ´ Eliminacion de las alto nivel Transiciones-ǫ • Hay un algoritmo para compilar un N-DFA en un DFA y poder ser ejecutado en una computadora convencional (INAOE) Verano, 2011 4 / 60
  • 5. ´ ´ Introduccion a los Automatas ´ Automatas No-Deterministas ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito • Extension del N-DFA para hacer saltos de un estado a ´ Determin´stico ı ´ otro espontaneamente, con la cadena vac´a (ǫ) como ı ´ Automata Finito No- ´ ´ entrada: ǫN-DFA. Estos automatas tambien aceptan Determin´stico ı ´ Automatas lenguajes regulares. Finitos y Lenguajes • Ejemplo: Compra con dinero-electronico. El cliente ´ Formales utiliza un archivo (env´o por internet) para pagar al ı ´ Eliminacion de las comerciante. El comerciante al recibir el archivo pide al Transiciones-ǫ banco que le transfieran el dinero. (INAOE) Verano, 2011 5 / 60
  • 6. ´ ´ Introduccion a los Automatas Ejemplo ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Determin´stico ı ´ Automata Finito No- Determin´stico ı ´ Automatas Finitos y Lenguajes Formales ´ Eliminacion de las Transiciones-ǫ ´ Tarea: Leer la seccion 2.1.1 – 2.1.5 del libro (INAOE) Verano, 2011 6 / 60
  • 7. ´ ´ Definicion formal de un Automata Finito Determin´stico ı ´ ´ Definicion Formal de un Automata ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Determin´stico ı Un AF se representa como la 5-tupla: A = (Q, Σ, δ, q0 , F ). ´ Automata Donde: Finito No- Determin´stico ı 1 Q es un conjunto finito de estados. ´ Automatas Finitos y 2 Σ es un alfabeto de s´mbolos de entrada. ı Lenguajes Formales 3 q0 es el estado inicial/de comienzo. ´ Eliminacion de las 4 ´ ´ F representa cero o mas estados finales/de aceptacion. Transiciones-ǫ (INAOE) Verano, 2011 7 / 60
  • 8. ´ ´ Definicion formal de un Automata Finito Determin´stico ı ´ ´ funcion de Transicion ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito 1 ´ ´ ´ δ es una funcion de transicion. Esta funcion: Determin´stico ı • Toma un estado y un s´mbolo de entrada como ı ´ Automata Finito No- argumentos. Determin´stico ı • Regresa un estado. ´ Automatas • Una “regla” de δ se escribe como δ(q, a) = p, donde q y Finitos y Lenguajes p son estados, y a es un s´mbolo de entrada. ı Formales ´ • Intuitivamente: Si el AF esta en un estado q, y recibe ´ Eliminacion de las una entrada a, entonces el AF va al estado p (nota: Transiciones-ǫ q = p OK). (INAOE) Verano, 2011 8 / 60
  • 9. ´ ´ Definicion formal de un Automata Finito Determin´stico ı Ejemplo ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Determin´stico ı ´ Ejemplo: Un Automata A que acepta ´ Automata L = {x01y|x, y ∈ {0, 1}∗ } Finito No- Determin´stico ı • El DFA acepta cadenas que tienen 01 en alguna parte ´ Automatas de la cadena Finitos y Lenguajes Formales • El lenguaje del DFA es el conjunto de cadenas que ´ Eliminacion acepta {w |w tiene la forma “x01y” para algunas de las Transiciones-ǫ cadenas x y y que consisten solo de 0’s y 1’s }. ´ (INAOE) Verano, 2011 9 / 60
  • 10. ´ ´ Definicion formal de un Automata Finito Determin´stico ı Tabla de Transiciones ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Determin´stico ı ´ El Automata anterior puede ser representado con una tabla ´ Automata de transiciones, definido como A = (q0 , q1 , q2 , 0, 1, δ, q0 , q1 ), Finito No- Determin´stico ı de la siguiente forma: ´ Automatas 0 1 Finitos y Lenguajes → q0 q2 q0 Formales ·q1 q1 q1 ´ Eliminacion de las q2 q2 q1 Transiciones-ǫ (INAOE) Verano, 2011 10 / 60
  • 11. ´ ´ Definicion formal de un Automata Finito Determin´stico ı Diagrama de Transiciones ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Determin´stico ı ´ Automata representado con un diagrama de transiciones: ´ Automata Finito No- Determin´stico ı ´ Automatas Finitos y Lenguajes Formales ´ Eliminacion de las Transiciones-ǫ (INAOE) Verano, 2011 11 / 60
  • 12. ´ ´ Definicion formal de un Automata Finito Determin´stico ı Convenciones ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Determin´stico ı Se utilizan algunas convenciones para evitar mencionar el ´ Automata tipo de cada nombre, para esto utilizamos las siguientes Finito No- Determin´stico ı reglas: ´ Automatas Finitos y • Los s´mbolos de entrada son a, b, etc., o d´gitos. ı ı Lenguajes Formales • Las cadenas de s´mbolos de entrada son u, v, . . . , z. ı ´ Eliminacion de las • Los estados son q, p, etc. Transiciones-ǫ (INAOE) Verano, 2011 12 / 60
  • 13. ´ ´ Definicion formal de un Automata Finito Determin´stico ı Diagrama de Transiciones ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Un AF se puede representar por medio de un grafo; los Determin´stico ı nodos representan estados; un arco de p a q se etiqueta ´ Automata Finito No- con el conjunto de s´mbolos de entrada a tal que ı Determin´stico ı δ(q, a) = p. ´ Automatas Finitos y • No hay arco si a no existe. Lenguajes Formales • El estado de inicio se indica con la palabra “start” con ´ Eliminacion de las una flecha. Transiciones-ǫ • Los estados de aceptacion tienen doble c´rculo. ´ ı (INAOE) Verano, 2011 13 / 60
  • 14. ´ ´ Definicion formal de un Automata Finito Determin´stico ı Ejemplo ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Determin´stico ı ´ Automata Finito No- Determin´stico ı ´ Automatas Finitos y Lenguajes Formales ´ Eliminacion de las Transiciones-ǫ (INAOE) Verano, 2011 14 / 60
  • 15. ´ ´ Definicion formal de un Automata Finito Determin´stico ı ´ ˆ Funciones de transicion extendidas (δ) ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Determin´stico ı Intuitivamente, un FA acepta una cadena w = a1 a2 . . . an si ´ Automata Finito No- hay una ruta en el diagrama de transiciones que: Determin´stico ı ´ Automatas 1 Empieza en el estado de inicio, Finitos y Lenguajes 2 ´ Termina en un estado de aceptacion, y Formales ´ Eliminacion 3 Tiene una secuencia de etiquetas a1 , a2 , . . . , an . de las Transiciones-ǫ (INAOE) Verano, 2011 15 / 60
  • 16. ´ ´ Definicion formal de un Automata Finito Determin´stico ı Ejemplo ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Determin´stico ı Ejemplo: El siguiente AF acepta la cadena 01101: ´ Automata Finito No- Determin´stico ı ´ Automatas Finitos y Lenguajes Formales ´ Eliminacion de las Transiciones-ǫ (INAOE) Verano, 2011 16 / 60
  • 17. ´ ´ Definicion formal de un Automata Finito Determin´stico ı ´ ´ Funcion de Transicion ´ Introduccion a ´ los Automatas ´ ´ Formalmente, extendemos la funcion de transicion δ a ´ Definicion ˆ δ(q, w ), donde w puede ser cualquier cadena de s´mbolos ı formal de un ´ Automata de entrada: Finito Determin´stico ı ˆ • Base: δ(q, ǫ) = q (i.e., nos quedamos en el mismo lugar ´ Automata Finito No- si no recibimos una entrada). Determin´stico ı ´ Automatas ´ ˆ ˆ • Induccion: δ(q, w ) = δ(δ(q, x), a), donde x es una Finitos y Lenguajes cadena, y a es un solo s´mbolo (i.e., ver a donde va el ı ´ Formales ´ AF con x, luego buscar la transicion para el ultimo ´ ´ Eliminacion de las s´mbolo a partir de ese estado). ı Transiciones-ǫ • Hecho importante con una prueba inductiva directa: δ ˆ realmente representa rutas. Esto es, si w = a1 a2 . . . an , y δ(pi , ai ) = pi+1 , ∀i = 0, 1, . . . , n − 1, entonces ˆ δ(p0 , w ) = pn . (INAOE) Verano, 2011 17 / 60
  • 18. ´ ´ Definicion formal de un Automata Finito Determin´stico ı ´ ´ Funcion de Transicion ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Determin´stico ı ´ Automata • Aceptacion de Cadenas: Un AF A = (Q, Σ, δ, q0 , F ) ´ Finito No- Determin´stico ı ˆ acepta la cadena w si δ(p0 , w ) esta en F . ´ ´ Automatas Finitos y • Lenguaje de un AF: Un AF acepta el lenguaje Lenguajes Formales ˆ L(A) = {w |δ(p0, w ) ∈ F }. ´ Eliminacion de las Transiciones-ǫ (INAOE) Verano, 2011 18 / 60
  • 19. ´ ´ Definicion formal de un Automata Finito Determin´stico ı Algunas confusiones frecuentes ´ Introduccion a ´ los Automatas ´ Definicion ´ Una gran fuente de confusion cuando se trabaja con formal de un ´ Automata ´ ´ automatas (o matematicas en general) son los “errores de Finito Determin´stico ı tipo”: ´ Automata • Ejemplo: No confundir A, un FA, i.e., un programa, con Finito No- Determin´stico ı L(A), el cual es del tipo “conjunto de cadenas”. ´ Automatas Finitos y • Ejemplo: El estado de inicio q0 es del tipo “estado” pero Lenguajes Formales ´ los estados de aceptacion F son del tipo “conjunto de ´ Eliminacion estados”. de las Transiciones-ǫ • Ejemplo enganoso: Es a un s´mbolo o una cadena de ˜ ı longitud 1? Respuesta: Depende del contexto, i.e., se ˆ usa en δ(q, a), donde es un s´mbolo, o en δ(q, a), ı donde es una cadena? (INAOE) Verano, 2011 19 / 60
  • 20. ´ ´ Definicion formal de un Automata Finito Determin´stico ı Ejemplo: ´ Introduccion a ´ los Automatas ´ Un DFA que acepta todas y solo las cadenas que tienen un ´ Definicion formal de un ´ ´ un numero par de 1’s numero par de 0’s y tambien ´ ´ Automata Finito Determin´stico ı ´ Automata Finito No- Determin´stico ı ´ Automatas Finitos y Lenguajes Formales ´ Eliminacion de las Transiciones-ǫ (INAOE) Verano, 2011 20 / 60
  • 21. ´ ´ Definicion formal de un Automata Finito Determin´stico ı Ejemplo (cont.) ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Determin´stico ı ´ Automata Finito No- Determin´stico ı ´ Automatas Finitos y Lenguajes Formales ´ Eliminacion de las Transiciones-ǫ (INAOE) Verano, 2011 21 / 60
  • 22. ´ ´ Definicion formal de un Automata Finito Determin´stico ı Ejemplo (cont.) ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata ´ ´ Representacion tabular del automata anterior: Finito Determin´stico ı 0 1 ´ Automata · → q0 q2 q1 Finito No- Determin´stico ı q1 q3 q0 ´ Automatas q2 q0 q3 Finitos y Lenguajes q3 q1 q2 Formales ´ Eliminacion de las Ejemplo: Problema 2.2.1.a Transiciones-ǫ Ejemplo: Problema 2.2.4.a (INAOE) Verano, 2011 22 / 60
  • 23. ´ Automata Finito No-Determin´stico ı ´ Automata Finito No-Determin´stico ı ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito ´ Un automata finito es no-determin´stico cuando se permite ı Determin´stico ı ´ que el AF tenga 0 o mas estados siguientes para cada par ´ Automata Finito No- estado-entrada: Determin´stico ı ´ Automatas Finitos y Lenguajes Formales ´ Eliminacion de las Transiciones-ǫ (INAOE) Verano, 2011 23 / 60
  • 24. ´ Automata Finito No-Determin´stico ı ´ Automata Finito No-Determin´stico ı ´ Introduccion a ´ los Automatas ´ Definicion • En el ejemplo anterior, se puede apreciar que de q0 se formal de un ´ Automata ´ puede ir a q0 o a q1 con la entrada “0”, y esto hace al Finito Determin´stico ı AF ser no-determinista. ´ Automata Finito No- • Un NFA puede estar en varios estados a la vez o se Determin´stico ı ´ puede ver que “adivina” a que estado ir. ´ Automatas Finitos y • Por ejemplo, el siguiente automata acepta todas las ´ Lenguajes Formales cadenas que terminan en 01: ´ Eliminacion de las Transiciones-ǫ (INAOE) Verano, 2011 24 / 60
  • 25. ´ Automata Finito No-Determin´stico ı ´ Automata Finito No-Determin´stico ı ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Lo que pasa al procesar como entrada a 00101 es: Determin´stico ı ´ Automata Finito No- Determin´stico ı ´ Automatas Finitos y Lenguajes Formales ´ Eliminacion de las Transiciones-ǫ (INAOE) Verano, 2011 25 / 60
  • 26. ´ Automata Finito No-Determin´stico ı ´ Automata Finito No-Determin´stico ı ´ Introduccion a ´ los Automatas ´ Definicion formal de un • Un NFA es una herramienta importante para disenar ˜ ´ Automata Finito procesadores de cadenas, e.g., grep, analizadores Determin´stico ı ´ ´ ˜ lexicos, etc. Es facil disenar NFAs que encuentren ´ Automata Finito No- secuencias de palabras en texto. Determin´stico ı • NFA: Formalmente, un NFA es una qu´ntupla ı ´ Automatas Finitos y A = (Q, Σ, δ, q0 , F ), donde todo es un DFA, pero δ(q, a) Lenguajes Formales nos regresa un conjunto de estados en lugar de un solo ´ Eliminacion estado. De hecho puede ser vac´o, tener un solo estado ı de las Transiciones-ǫ ´ o tener mas estados. • Un NFA acepta, al igual que un DFA, lenguajes regulares (INAOE) Verano, 2011 26 / 60
  • 27. ´ Automata Finito No-Determin´stico ı Ejemplo ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Por ejemplo, para el NFA que acepta cadenas que acaban Determin´stico ı ´ ´ en 01 su funcion de transicion δ es: ´ Automata Finito No- Determin´stico ı 0 1 ´ Automatas Finitos y → q0 {q0 , q1 } {q0 } Lenguajes Formales q1 ∅ {q2 } ´ Eliminacion *q2 ∅ ∅ de las Transiciones-ǫ Como puede observarse, todo se especifica en conjuntos. (INAOE) Verano, 2011 27 / 60
  • 28. ´ Automata Finito No-Determin´stico ı ´ ˆ Extension a δ ´ Introduccion a ´ los Automatas ´ Definicion ´ Similarmente a un DFA, podemos definir la funcion de formal de un transicion ˆ ´ extendida δ como sigue: ´ Automata Finito Determin´stico ı ˆ • Base: δ(q, ǫ) = q ´ Automata Finito No- • Induccion: Supongamos w es de la forma w = xa, ´ Determin´stico ı donde a es el s´mbolo terminal y x es el resto de w . ı ´ Automatas ´ ˆ Supongamos tambien que: δ(q, x) = {p1 , p2 , . . . , pk }. Finitos y k i=1 δ(pi , a) = {r1 , r2 , . . . , rm }. Entonces Lenguajes Formales ´ Eliminacion ∪δ(q, w ) = {r1 , r2 , . . . , rm }. de las ˆ En otras palabras calculamos δ(q, w ) primero Transiciones-ǫ ˆ x) y despues siguiendo cualquier calculando δ(q, ´ ´ de algunos de esos estados etiquetada con transicion a. (INAOE) Verano, 2011 28 / 60
  • 29. ´ Automata Finito No-Determin´stico ı Ejemplo: ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata ˆ Por ejemplo, podemos calcular δ(q0 , 00101) para el Finito Determin´stico ı ´ automata anterior: ´ Automata Finito No- ˆ δ(q0 , ǫ) = {q0 } Determin´stico ı ˆ δ(q0 , 0) = δ(q0 , 0) = {q0 , q1 } ´ Automatas Finitos y ˆ 0 , 00) = δ(q0 , 0) ∪ δ(q1 , 0) ∪ ∅ = {q0 , q1 } δ(q Lenguajes Formales ˆ δ(q0 , 001) = δ(q0 , 1) ∪ δ(q1 , 1) = {q0 } ∪ {q2 } = {q0 , q2 } ´ Eliminacion ˆ 0 , 0010) = δ(q0 , 0) ∪ δ(q2 , 0) = {q0 , q1 } ∪ ∅ = {q0 , q1 } δ(q de las Transiciones-ǫ ˆ δ(q0 , 00101) = δ(q0 , 1) ∪ δ(q1 , 1) = {q0 } ∪ {q2 } = {q0 , q2 } Que tiene un estado final. (INAOE) Verano, 2011 29 / 60
  • 30. ´ Automata Finito No-Determin´stico ı Lenguajes de un NFA ´ Introduccion a ´ los Automatas ´ Definicion formal de un El lenguaje aceptado por un NFA, A, es: ´ Automata Finito ˆ L(A) = {w |δ(q0 , w ) ∩ F = ∅}. Determin´stico ı ´ Automata Finito No- Determin´stico ı Equivalencia entre un DFA y un NFA ´ Automatas Finitos y ´ ´ Un NFA es normalmente mas facil de definir, aunque al Lenguajes Formales mismo tiempo, para cualquier NFA N existe un DFA D tal ´ Eliminacion de las que L(D) = L(N) y viceversa. Transiciones-ǫ ´ Para esto se usa la construccion de subconjunto que ´ ´ muestra un ejemplo de como un automata se puede construir a partir de otro. (INAOE) Verano, 2011 30 / 60
  • 31. ´ Automata Finito No-Determin´stico ı ´ Construccion de Subconjunto ´ Introduccion a Para cada NFA existe un DFA equivalente (acepta el mismo ´ los Automatas lenguaje). Pero el DFA puede tener un numero exponencial ´ ´ Definicion formal de un de estados. ´ Automata Finito Sea N = (QN , Σ, δN , q0 , FN ) un NFA. El DFA equivalente Determin´stico ı ´ construido a partir del subconjunto de construccion es ´ Automata Finito No- D = (QD , Σ, δD , {q0 }, FD ), donde: Determin´stico ı ´ Automatas • |QD | = 2|QN | ; i.e., QD es el conjunto de todos los Finitos y Lenguajes subconjuntos de QN . Formales • FD es el conjunto de conjuntos S en QD tal que ´ Eliminacion de las S ∩ FN = ∅. Transiciones-ǫ • Para cualquier S ⊆ QN y a ∈ Σ, δD (S, a) = p∈S δN (p, a), osea, la union de todos los ´ estados a partir de p con entrada a. δD ({q1 , q2 , . . . , qk }, a) = δN (p1 , a) ∪ δN (p2 , a) ∪ . . . ∪ δN (pk , a). (INAOE) Verano, 2011 31 / 60
  • 32. ´ Automata Finito No-Determin´stico ı ´ Construccion de Subconjunto ´ Introduccion a ´ los Automatas ´ Definicion ´ ´ La funcion de transicion δD del NFA anterior es: formal de un ´ Automata Finito Determin´stico ı ´ Automata Finito No- Determin´stico ı ´ Automatas Finitos y Lenguajes Formales ´ Eliminacion de las Transiciones-ǫ (INAOE) Verano, 2011 32 / 60
  • 33. ´ Automata Finito No-Determin´stico ı ´ Construccion de Subconjunto ´ Introduccion a ´ los Automatas Al existir 3 estados, tenemos 8 subconjuntos. Esto mismo lo ´ Definicion formal de un podemos poner como: ´ Automata Finito Determin´stico ı ´ Automata Finito No- Determin´stico ı ´ Automatas Finitos y Lenguajes Formales ´ Eliminacion de las Transiciones-ǫ (INAOE) Verano, 2011 33 / 60
  • 34. ´ Automata Finito No-Determin´stico ı ´ Construccion de Subconjunto ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito • Lo cual es un DFA (simplemente cambiando la Determin´stico ı ´ ´ notacion). Tambien es importante notar que no todos ´ Automata Finito No- ´ los estados pueden ser alcanzados. En particular, solo Determin´stico ı los estados B, E y F son accesibles, por lo que los ´ Automatas Finitos y ´ demas los podemos eliminar. Lenguajes Formales • Una forma de no construir todos los subconjuntos para ´ Eliminacion ´ ´ despues encontrar que solo unos cuantos son de las Transiciones-ǫ ´ accesibles, es construir la tabla solo para los estados accesibles (lazy evaluation). (INAOE) Verano, 2011 34 / 60
  • 35. ´ Automata Finito No-Determin´stico ı Ejemplo (cont.) ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Determin´stico ı Para el ejemplo anterior: δD (q0 , 0) = {q0 , q1 } ´ Automata Finito No- δD (q0 , 1) = {q1 } Determin´stico ı δD (q0 , q1 , 0) = {q0 , q1 } ´ Automatas Finitos y δD (q0 , q1 , 1) = {q0 , q2 } = δN (q0 , 1) ∪ δN (q1 , 1) Lenguajes Formales δD (q0 , q2 , 0) = {q0 , q1 } ´ Eliminacion δD (q0 , q2 , 1) = {q0 } de las Transiciones-ǫ (INAOE) Verano, 2011 35 / 60
  • 36. ´ Automata Finito No-Determin´stico ı Ejemplo (cont.) ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Lo que nos queda: Determin´stico ı ´ Automata Finito No- Determin´stico ı ´ Automatas Finitos y Lenguajes Formales ´ Eliminacion de las Transiciones-ǫ (INAOE) Verano, 2011 36 / 60
  • 37. ´ Automata Finito No-Determin´stico ı Prueba de Equivalencia ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Determin´stico ı ´ Automata Teorema clave: induccion de |w | (la prueba esta en el ´ ´ Finito No- Determin´stico ı ˆ ˆ libro): δD ({q0 }, w ) = δN (q0 , w ). Lo que queremos probar es ´ Automatas que si D = (QD , Σ, δD , {q0 }, FD ) es construido a partir del Finitos y Lenguajes NFA N = (QN , Σ, δN , q0 , FN ) usando construccion de ´ Formales subconjuntos, entonces L(D) = L(N). ´ Eliminacion de las Transiciones-ǫ (INAOE) Verano, 2011 37 / 60
  • 38. ´ Automata Finito No-Determin´stico ı Prueba de Equivalencia ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Determin´stico ı ´ Automata ´ Queremos probar por induccion en w que Finito No- Determin´stico ı ˆ ˆ δD ({q0 }, w ) = δN (q0 , w ). Las dos funciones de transicion ´ ´ Automatas regresan conjuntos de estados de QN , pero la determin´stica ı Finitos y Lenguajes lo interpreta como uno solo de sus estados QD . Formales ˆ ˆ Base: w = ǫ, en este caso δD ({q0 }, ǫ) = δN (q0 , ǫ) = {q0 }. ´ Eliminacion de las Transiciones-ǫ (INAOE) Verano, 2011 38 / 60
  • 39. ´ Automata Finito No-Determin´stico ı Prueba de Equivalencia ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Induccion: Tomamos w de longitud n + 1 y asumimos que ´ Determin´stico ı ´ Automata se cumple el enunciado para n, o sea que Finito No- ˆ ˆ δD ({q0 }, x) = δN (q0 , x). Sean estos dos conjuntos de Determin´stico ı ´ Automatas estados = {p1 , p2 , . . . , pk }. Dividimos a w en xa. La Finitos y ´ ˆ definicion de δ para el NFA nos dice que: Lenguajes Formales ˆ δN (q0 , w ) = k δN (pi , a). i=1 ´ Eliminacion de las ´ Por la construccion de subconjuntos: k Transiciones-ǫ δD ({p1 , p2 , . . . , pk }, a) = i=1 δN (pi , a) (INAOE) Verano, 2011 39 / 60
  • 40. ´ Automata Finito No-Determin´stico ı Prueba de Equivalencia ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Determin´stico ı ˆ Usando esto, y que δD ({q0 }, x) = {p1 , p2 , . . . , pk } tenemos ´ Automata que: Finito No- Determin´stico ı ˆ ˆ δD ({q0 }, w ) = δD (δD ({q0 }, x), a) = δD ({p1 , p2 , . . . , pk }, a) = k i=1 δN (pi , a) ´ Automatas Finitos y Lenguajes Tanto D como N aceptan w cuando contiene un estado en Formales ´ Eliminacion FN. de las Transiciones-ǫ Consecuencia: L(D) = L(N). (INAOE) Verano, 2011 40 / 60
  • 41. ´ Automata Finito No-Determin´stico ı Ejemplos ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Determin´stico ı Ejemplo: Convertir el siguiente NFA a un DFA ´ Automata Finito No- 0 1 Determin´stico ı → p {p, q} {p} ´ Automatas Finitos y q {r } {r } Lenguajes Formales r {s} ∅ ´ Eliminacion ∗s {s} {s} de las Transiciones-ǫ (INAOE) Verano, 2011 41 / 60
  • 42. ´ Automata Finito No-Determin´stico ı Ejemplo ´ Introduccion a ´ los Automatas ´ Definicion ˜ ´ En este ejemplo un tanto imaginario, se disenara un NFA formal de un ´ Automata para aceptar cadenas sobre el alfabeto {1, 2, 3} de tal Finito Determin´stico ı manera que el ultimo s´mbolo aparezca previamente, sin ´ ı ´ Automata ninguna intervencion ´ de un s´mbolo mas alto entre esa ı ´ Finito No- Determin´stico ı ´ previa aparicion del s´mbolo, e.g., ı ´ Automatas . . . 11, . . . 21112, . . . 312123. Finitos y Lenguajes • Truco: Utilizar el estado de inicio con el significado Formales ´ Eliminacion “Creo que todav´a no se ha visto el s´mbolo que ı ı de las Transiciones-ǫ corresponde al s´mbolo final”. ı • Otros tres estados representando una eleccion de que ´ el s´mbolo con que acaba la cadena se ha visto y se ı recuerda de que s´mbolo se trata. ı (INAOE) Verano, 2011 42 / 60
  • 43. ´ Automata Finito No-Determin´stico ı Ejemplo ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Determin´stico ı ´ Automata Finito No- Determin´stico ı ´ Automatas Finitos y Lenguajes Formales ´ Eliminacion de las Transiciones-ǫ (INAOE) Verano, 2011 43 / 60
  • 44. ´ Automata Finito No-Determin´stico ı Ejemplo (cont.) ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Subconjunto de Construccion del NFA Previo. ´ Automata Finito Determin´stico ı • Un truco practico importante utilizado por analizadores ´ ´ Automata ´ lexicos y otros procesadores de texto es ignorar los Finito No- Determin´stico ı (frecuentemente muchos) estados que no son ´ Automatas accesibles desde el estado de inicio (i.e., no hay ruta Finitos y Lenguajes que lleve a ellos). Formales • Para el ejemplo anterior de NFA, de los 32 ´ Eliminacion de las Transiciones-ǫ subconjuntos posibles, solo 15 son accesibles. Calculando las transiciones “por demanda” obtenemos el siguiente δD : (INAOE) Verano, 2011 44 / 60
  • 45. ´ Automata Finito No-Determin´stico ı Ejemplo (cont.) ´ Introduccion a 1 2 3 ´ los Automatas → {p} {pq} {pr } {ps} ´ Definicion formal de un {pq} {pqt} {pr } {ps} ´ Automata Finito {∗pqt} {pqt} {pr } {ps} Determin´stico ı {pr } {pqr } {prt} {ps} ´ Automata Finito No- {∗prt} {pqr } {prt} {ps} Determin´stico ı {ps} {pqs} {prs} {pst} ´ Automatas Finitos y {∗pst} {pqs} {prs} {pst} Lenguajes Formales {prs} {pqrs} {prst} {pst} ´ Eliminacion {∗prst} {pqrs} {prst} {pst} de las Transiciones-ǫ {pqs} {pqst} {prs} {pst} {∗pqst} {pqst} {prs} {pst} {pqr } {pqrt} {prt} {ps} {∗pqrt} {pqrt} {prt} {ps} {pqrs} {pqrst} {prst} {pst} {∗pqrst} {pqrst} {prst} {pst} (INAOE) Verano, 2011 45 / 60
  • 46. ´ Automata Finito No-Determin´stico ı Ejemplo ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Determin´stico ı ´ Automata Finito No- Determin´stico ı ˜ Ejemplo: Disene un NFA que reconozca los siguientes ´ Automatas conjuntos de cadenas: abc, abd y aacd , suponiendo que el Finitos y Lenguajes alfabeto es {a, b, c, d } Formales ´ Eliminacion de las Transiciones-ǫ (INAOE) Verano, 2011 46 / 60
  • 47. ´ Automatas Finitos y Lenguajes Formales ´ Automata Finito con Transiciones-ǫ ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Determin´stico ı • Sea ǫ una etiqueta en arcos. ´ Automata • No hay ningun cambio extra: la aceptacion de w todav´a ´ ´ ı Finito No- Determin´stico ı se da como la existencia de la ruta desde un estado de ´ Automatas Finitos y ´ inicio a un estado de aceptacion con etiqueta w . Lenguajes Formales • Pero ǫ puede aparecer en los arcos, y significa que hay ´ Eliminacion ı ´ una cadena vac´a (i.e., no tiene una contribucion visible de las Transiciones-ǫ para w ). (INAOE) Verano, 2011 47 / 60
  • 48. ´ Automatas Finitos y Lenguajes Formales Ejemplo ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Determin´stico ı ´ Automata Finito No- Determin´stico ı ´ Automatas Finitos y Lenguajes Formales ´ Eliminacion de las Transiciones-ǫ (INAOE) Verano, 2011 48 / 60
  • 49. ´ Automatas Finitos y Lenguajes Formales Ejemplo (cont.) ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Determin´stico ı • 001 es aceptado siguiendo la ruta q, s, r , q, r , s, con la ´ Automata Finito No- etiqueta 0ǫ01ǫ = 001. Determin´stico ı • Podemos disenar un automata que acepte cadenas de ˜ ´ ´ Automatas Finitos y numeros que tengan un signo al inicio opcional, ´ Lenguajes Formales seguida posiblemente de una cadena de decimales, ´ Eliminacion seguida de un punto decimal y posiblemente de otra de las Transiciones-ǫ cadena de decimales. (INAOE) Verano, 2011 49 / 60
  • 50. ´ Automatas Finitos y Lenguajes Formales Ejemplo ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Determin´stico ı ´ Automata Finito No- Determin´stico ı ´ Automatas Finitos y Lenguajes Formales ´ Eliminacion de las Transiciones-ǫ (INAOE) Verano, 2011 50 / 60
  • 51. ´ Automatas Finitos y Lenguajes Formales ǫ-NFA ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Determin´stico ı ´ Mas formalmente: Un ǫ-NFA es una qu´ntuplaı ´ Automata Finito No- (Q, Σ, δ, q0 , F ), donde δ es una funcion de Q × Σ ∪ {ǫ} al ´ Determin´stico ı conjunto potencia de Q. ´ Automatas Finitos y Lenguajes Formales ´ Eliminacion ´ La tabla de transicion del ǫ-NFA del ejemplo anterior es: de las Transiciones-ǫ (INAOE) Verano, 2011 51 / 60
  • 52. ´ Automatas Finitos y Lenguajes Formales ´ Tabla de Transicion ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Determin´stico ı ´ Automata Finito No- Determin´stico ı ´ Automatas Finitos y Lenguajes Formales ´ Eliminacion de las Transiciones-ǫ (INAOE) Verano, 2011 52 / 60
  • 53. ´ Eliminacion de las Transiciones-ǫ ´ Eliminacion de las Transiciones-ǫ ´ Introduccion a ´ los Automatas Las transiciones-ǫ son una conveniencia, pero no ´ Definicion formal de un incrementan la potencia de los FA’s. Para eliminar las ´ Automata transiciones-ǫ: Finito Determin´stico ı ´ 1 Calcular la cerradura transitiva solo para los arcos ǫ. ´ Automata Finito No- Ejemplo: q −→ {q}; r −→ {r , s}; s −→ {r , s}. Determin´stico ı ´ Automatas 2 Si un estado p puede alcanzar al estado q por medio Finitos y Lenguajes ´ de arcos ǫ, y existe una transicion de q a r en la entrada Formales ˜´ ´ a (no ǫ), entonces anadase una transicion de p a r con ´ Eliminacion de las la entrada a. Transiciones-ǫ 3 Convertir el estado p en un estado de aceptacion ´ siempre y cuando p pueda alcanzar algun estado de ´ ´ aceptacion q por medio de arcos ǫ. 4 Eliminar todas las transiciones-ǫ. (INAOE) Verano, 2011 53 / 60
  • 54. ´ Eliminacion de las Transiciones-ǫ Ejemplo ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Determin´stico ı ´ Automata Finito No- Determin´stico ı ´ Automatas Finitos y Lenguajes Formales ´ Eliminacion de las Transiciones-ǫ (INAOE) Verano, 2011 54 / 60
  • 55. ´ Eliminacion de las Transiciones-ǫ Transiciones Extendidas ´ Introduccion a ´ los Automatas De la misma forma como lo hicimos anteriormente, ´ Definicion formal de un podemos definir las transiciones extendidas para ǫ-NFA. ´ Automata Finito ˆ • Base: δ(q, ǫ) = ECLOSE (q) Determin´stico ı ´ Automata ´ ˆ • Induccion: δ(q, xa) = ˆ p∈δ(δ(q,x),a) ECLOSE (p) Finito No- Determin´stico ı ˆ Por ejemplo, δ(q0 , 5.6) es: ´ Automatas Finitos y ˆ 0 , ǫ) = {q0 , q1 } = ECLOSE (q0) δ(q Lenguajes Formales δ(q0 , 5) ∪ δ(q1 , 5) = {q1 , q4 } ´ Eliminacion ECLOSE (q1) ∪ ECLOSE (q4) = {q1 , q4 } de las Transiciones-ǫ δ(q1 , .) ∪ δ(q4 , .) = {q2 , q3 } ˆ ECLOSE (q2) ∪ ECLOSE (q3) = {q2 , q3 , q5 } = δ(q0 , 5.6) δ(q2 , 6) ∪ δ(q3 , 6) ∪ δ(q5 , 6) = {q3 } ˆ δ(q0 , 5.6) = ECLOSE (q3) = {q3 , q5 } (INAOE) Verano, 2011 55 / 60
  • 56. ´ Eliminacion de las Transiciones-ǫ Equivalencias ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Determin´stico ı • Como antes, el lenguaje aceptado por un ǫ-NFA, E, es: ´ Automata ˆ L(E ) = {w |δ(q0 , w ) ∩ F = ∅}, osea todas las cadenas Finito No- Determin´stico ı w que van de un estado inicial q0 a al menos un estado ´ Automatas Finitos y final. Lenguajes Formales • Se puede demostrar que se puede construir un DFA a ´ Eliminacion partir de un ǫ-NFA siguiendo un esquema parecido al de las Transiciones-ǫ ´ de construccion de subconjuntos visto para NFA. (INAOE) Verano, 2011 56 / 60
  • 57. ´ Eliminacion de las Transiciones-ǫ Equivalencias ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Determin´stico ı QD = {S|S ⊆ QE ∧ S = ECLOSE (S)} ´ Automata qD = ECLOSE (q0) Finito No- Determin´stico ı FD = {S|S ⊆ QD ∧ S ∩ FE = ∅} ´ Automatas δD (S, a) = { ECLOSE (p)|p ∈ δ(t, a), t ∈ S} Finitos y Lenguajes Formales ´ Eliminacion de las Transiciones-ǫ lo que se calcula para todos los a ∈ Σ y conjuntos S ∈ QD . (INAOE) Verano, 2011 57 / 60
  • 58. ´ Eliminacion de las Transiciones-ǫ Ejemplo ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata El DFA correspondiente al ǫ-NFA de numeros decimales ´ Finito Determin´stico ı (omitiendo todas las transiciones a estados “muertos”) es: ´ Automata Finito No- Determin´stico ı ´ Automatas Finitos y Lenguajes Formales ´ Eliminacion de las Transiciones-ǫ (INAOE) Verano, 2011 58 / 60
  • 59. ´ Eliminacion de las Transiciones-ǫ Equivalencias ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Finito Se puede demostrar que un lenguaje L es aceptado por Determin´stico ı ´ Automata algun ǫ-NFA E si y solo si L es aceptado por un DFA. Para ´ Finito No- Determin´stico ı ´ esto, hacia un sentido es facil (cambiando un DFA a un ´ Automatas ǫ-NFA) y para el otro sentido se hace lo mismo que hemos Finitos y Lenguajes hecho antes, probando con el caso base y el caso inductivo, Formales donde partimos w = xa, asumimos que es verdad para x y ´ Eliminacion de las probamos para w , solo que ahora tomando la cerradura ǫ o Transiciones-ǫ ECLOSE para los estados. (INAOE) Verano, 2011 59 / 60
  • 60. ´ Eliminacion de las Transiciones-ǫ Ejemplo ´ Introduccion a ´ los Automatas ´ Definicion formal de un ´ Automata Considere el siguiente ǫ-NFA: Finito Determin´stico ı ǫ a b c ´ Automata →p ∅ {p} {q} {r } Finito No- Determin´stico ı q {p} {q} {r } ∅ ´ Automatas ∗r {q} {r } ∅ {p} Finitos y Lenguajes Formales a) Calcula las ǫ-closure para cada estado ´ Eliminacion b) Cuales son todas las cadenas de 3 o menos caracteres de las Transiciones-ǫ ´ aceptadas por el automata c) Convertirlo a un DFA (INAOE) Verano, 2011 60 / 60