CONJUNTOS REGULARES

         Orlando Arboleda Molina

                                             ´
Escuela de Ingenier´a de Sistemas y Computacion de
                   ı
              La Universidad del Valle


          19 de Octubre de 2008
Contenido




  Conjunto regulares
    Expresiones regulares
    Conjunto regulares
    Teorema de Kleene
        ´
    Automatas que reconocen conjuntos regulares
                               ´
    Conjuntos regulares y Gramaticas regulares
                           ´
    Limitaciones de los automatas de estado finito
´
Pregunta: Si los automatas de estado finito se pueden utilizar
para reconocer lenguajes. Que conjuntos pueden reconocer ?


                              ´
Solucion: En 1956 el matematico estadounidense Stephen
                 ´                 ´
Kleene demostro que hay un automata de estado finito que
reconoce un conjunto si y solo si, este conjunto se puede
construir a partir del conjunto vac´o, la cadena vac´a y cadenas
                                    ı               ı
de un s´mbolo haciendo uso de los operadores de union,
       ı                                                ´
             ´
concatenacion y cierre de kleene, tomados en orden arbitrario.
Contenido




  Conjunto regulares
    Expresiones regulares
    Conjunto regulares
    Teorema de Kleene
        ´
    Automatas que reconocen conjuntos regulares
                               ´
    Conjuntos regulares y Gramaticas regulares
                           ´
    Limitaciones de los automatas de estado finito
Expresiones regulares


  Las expresiones regulares sobre un conjunto I son definidas
  recursivamente por:
    ◮ El s´mbolo ∅ (conjunto vac´o) es una expresion regular
          ı                     ı                 ´
    ◮   El s´mbolo λ (conjunto {λ}) es una expresion regular
            ı                                     ´
    ◮   El s´mbolo x (conjunto {x}) es una expresion regular
            ı                                     ´
        siempre que x ∈ I
    ◮Los s´mbolos (AB), (A ∪ B), y A∗ son expresiones
          ı
     regulares siempre que A y B son expresiones regulares
              ´
  Cada expresion regular representa un conjunto.


  Ejemplo: Las siguientes son expresiones regulares: (10)∗ ,
  (1 ∪ 0)∗ , 0 ∪ (1∗ ∪ 0)∗
Contenido




  Conjunto regulares
    Expresiones regulares
    Conjunto regulares
    Teorema de Kleene
        ´
    Automatas que reconocen conjuntos regulares
                               ´
    Conjuntos regulares y Gramaticas regulares
                           ´
    Limitaciones de los automatas de estado finito
Conjunto regulares



  Los conjuntos representados por expresiones regulares son
  llamados conjuntos regulares.


  Ejercicio1: Determinar las cadenas para cada uno de los
  siguientes conjuntos regulares:
    ◮   10∗
    ◮   (1 ∪ 01)(10)∗
    ◮   0 ∪ 01
    ◮   0(0 ∪ 1)∗
    ◮   (0∗ 1)∗
Contenido




  Conjunto regulares
    Expresiones regulares
    Conjunto regulares
    Teorema de Kleene
        ´
    Automatas que reconocen conjuntos regulares
                               ´
    Conjuntos regulares y Gramaticas regulares
                           ´
    Limitaciones de los automatas de estado finito
Teorema de Kleene




  Teorema 1 - Teorema de Kleene
  Un conjunto es regular si y solo si es reconocido por un
     ´
  automata de estado finito.


                        ´
  Como construir los automatas que reconocen los conjuntos
  regulares ?
Contenido




  Conjunto regulares
    Expresiones regulares
    Conjunto regulares
    Teorema de Kleene
        ´
    Automatas que reconocen conjuntos regulares
                               ´
    Conjuntos regulares y Gramaticas regulares
                           ´
    Limitaciones de los automatas de estado finito
´
Automatas que reconocen conjuntos regulares




    ◮   Automatas que reconocen los conjuntos ∅, {λ} y {a}
              ´
        respectivamente
´
Automatas que reconocen conjuntos regulares (2)
    ◮        ´
        Automata MAB que reconoce al conjunto AB




    ◮   Combina en serie a MA y MB
    ◮   SAB = SA    SB
    ◮   Estado inicial sA
    ◮   FAB = FB . Anadiendo SAB si λ ∈ A
                     ˜                       B y FA si λ ∈ B
    ◮   Transiciones: si λ ∈ A cada transicion que parta de SB y
                                            ´
        desde cada estado previo a uno en FA ir hasta sB
´
Automatas que reconocen conjuntos regulares (3)
    ◮   Automata que reconoce al conjunto A ∪ B
             ´




    ◮   Combina en paralelo a MA y MB
    ◮   SA S B = SA   SB   {sA∪B }
    ◮   Estado inicial {sA∪B }
    ◮   FA S B = FA FB . Anadiendo sA∪B si λ ∈ A
                             ˜                      B
    ◮   Transiciones: transiciones desde {sA∪B } con los simbolos
        que procesaban sA y sB
´
Automatas que reconocen conjuntos regulares (4)
    ◮   Automata que reconoce al conjunto A∗
             ´




    ◮    ∗
        SA = SA    {sA∗ }
    ◮   Estado inicial {sA∗ }
    ◮    ∗
        FA = FA    {sA∗ }.
    ◮                                     ´
        Transiciones: por cada transicion desde sA a un estado s
        para la entrada i, incluir transicion desde {sA∗ } hasta s con
                                            ´
                                     ´
        el s´mbolo i y una transicion desde cada estado final hasta
            ı
        s para el mismo dato de entrada i.
´
Automatas que reconocen conjuntos regulares (5)




                           ´
  Ejercicios: Construir automatas de estado finito que
  reconozcan los siguientes conjuntos regulares:
    ◮   {11, 0}∗
    ◮   {11, 0}∗ 00, 1{10, 01}∗
    ◮   {11, 00}{01, 101}∗ {1, 00, 10}∗
    ◮   {11, 00}{01, 101}∗ {1, 00, 10}{1}∗
Contenido




  Conjunto regulares
    Expresiones regulares
    Conjunto regulares
    Teorema de Kleene
        ´
    Automatas que reconocen conjuntos regulares
                               ´
    Conjuntos regulares y Gramaticas regulares
                           ´
    Limitaciones de los automatas de estado finito
´
Conjuntos regulares y Gramaticas regulares

  Teorema 2
                                      ´
  Un conjunto es generado por una gramatica regular si y solo si
  es un conjunto regular.


                             ´
  Ejercicio: Construir un automata de estado finito no
  determinista que reconozca el lenguaje generado por la
  gramatica regular G = (V , T , S, P), donde:
       ´
  V = {0, 1, A, S}
  T = {0, 1}
  P = {S → 1A, S → 0, S → λ, A → 0A, A → 1A, A → 1}.
  Nota: La idea es que el estado inicial es final si existe la
  produccion S → λ. Adicionalmente que se cree un estado por
           ´
  cada s´mbolo no terminal, mas un estado final adicional)
         ı
´
Conjuntos regulares y Gramaticas regulares (2)


                            ´
   Ejercicio: Hallar la gramatica regular que genere el conjunto
                                           ´
   regular reconocido por el siguiente automata
Contenido




  Conjunto regulares
    Expresiones regulares
    Conjunto regulares
    Teorema de Kleene
        ´
    Automatas que reconocen conjuntos regulares
                               ´
    Conjuntos regulares y Gramaticas regulares
                           ´
    Limitaciones de los automatas de estado finito
´
Limitaciones de los automatas de estado finito

   Ejercicio: Es el conjunto {0n 1n | n = 0, 1, . . .} regular ?
                                                             ´
   Nota: El conjunto puede ser generado con una gramatica libre
   de contexto


          ´
   Los automatas finitos:
     ◮   Son limitados (capacidad de memor´a finita).
                                          ı
     ◮   No reconocen lenguajes que no son regulares.


                        ´    ´
   Modelos de computacion mas potentes:
          ´                            ´
    ◮ Automata a pila (reconoce gramaticas libres del contexto).
      No podr´a reconocer {0
              ı              n 1n 2n | n = 0, 1, . . .}

        ´                                  ´
    ◮ Maquinas de Turing ((reconoce gramaticas dependientes
      del contexto).

Conjuntos regulares 04[1]

  • 1.
    CONJUNTOS REGULARES Orlando Arboleda Molina ´ Escuela de Ingenier´a de Sistemas y Computacion de ı La Universidad del Valle 19 de Octubre de 2008
  • 2.
    Contenido Conjuntoregulares Expresiones regulares Conjunto regulares Teorema de Kleene ´ Automatas que reconocen conjuntos regulares ´ Conjuntos regulares y Gramaticas regulares ´ Limitaciones de los automatas de estado finito
  • 3.
    ´ Pregunta: Si losautomatas de estado finito se pueden utilizar para reconocer lenguajes. Que conjuntos pueden reconocer ? ´ Solucion: En 1956 el matematico estadounidense Stephen ´ ´ Kleene demostro que hay un automata de estado finito que reconoce un conjunto si y solo si, este conjunto se puede construir a partir del conjunto vac´o, la cadena vac´a y cadenas ı ı de un s´mbolo haciendo uso de los operadores de union, ı ´ ´ concatenacion y cierre de kleene, tomados en orden arbitrario.
  • 4.
    Contenido Conjuntoregulares Expresiones regulares Conjunto regulares Teorema de Kleene ´ Automatas que reconocen conjuntos regulares ´ Conjuntos regulares y Gramaticas regulares ´ Limitaciones de los automatas de estado finito
  • 5.
    Expresiones regulares Las expresiones regulares sobre un conjunto I son definidas recursivamente por: ◮ El s´mbolo ∅ (conjunto vac´o) es una expresion regular ı ı ´ ◮ El s´mbolo λ (conjunto {λ}) es una expresion regular ı ´ ◮ El s´mbolo x (conjunto {x}) es una expresion regular ı ´ siempre que x ∈ I ◮Los s´mbolos (AB), (A ∪ B), y A∗ son expresiones ı regulares siempre que A y B son expresiones regulares ´ Cada expresion regular representa un conjunto. Ejemplo: Las siguientes son expresiones regulares: (10)∗ , (1 ∪ 0)∗ , 0 ∪ (1∗ ∪ 0)∗
  • 6.
    Contenido Conjuntoregulares Expresiones regulares Conjunto regulares Teorema de Kleene ´ Automatas que reconocen conjuntos regulares ´ Conjuntos regulares y Gramaticas regulares ´ Limitaciones de los automatas de estado finito
  • 7.
    Conjunto regulares Los conjuntos representados por expresiones regulares son llamados conjuntos regulares. Ejercicio1: Determinar las cadenas para cada uno de los siguientes conjuntos regulares: ◮ 10∗ ◮ (1 ∪ 01)(10)∗ ◮ 0 ∪ 01 ◮ 0(0 ∪ 1)∗ ◮ (0∗ 1)∗
  • 8.
    Contenido Conjuntoregulares Expresiones regulares Conjunto regulares Teorema de Kleene ´ Automatas que reconocen conjuntos regulares ´ Conjuntos regulares y Gramaticas regulares ´ Limitaciones de los automatas de estado finito
  • 9.
    Teorema de Kleene Teorema 1 - Teorema de Kleene Un conjunto es regular si y solo si es reconocido por un ´ automata de estado finito. ´ Como construir los automatas que reconocen los conjuntos regulares ?
  • 10.
    Contenido Conjuntoregulares Expresiones regulares Conjunto regulares Teorema de Kleene ´ Automatas que reconocen conjuntos regulares ´ Conjuntos regulares y Gramaticas regulares ´ Limitaciones de los automatas de estado finito
  • 11.
    ´ Automatas que reconocenconjuntos regulares ◮ Automatas que reconocen los conjuntos ∅, {λ} y {a} ´ respectivamente
  • 12.
    ´ Automatas que reconocenconjuntos regulares (2) ◮ ´ Automata MAB que reconoce al conjunto AB ◮ Combina en serie a MA y MB ◮ SAB = SA SB ◮ Estado inicial sA ◮ FAB = FB . Anadiendo SAB si λ ∈ A ˜ B y FA si λ ∈ B ◮ Transiciones: si λ ∈ A cada transicion que parta de SB y ´ desde cada estado previo a uno en FA ir hasta sB
  • 13.
    ´ Automatas que reconocenconjuntos regulares (3) ◮ Automata que reconoce al conjunto A ∪ B ´ ◮ Combina en paralelo a MA y MB ◮ SA S B = SA SB {sA∪B } ◮ Estado inicial {sA∪B } ◮ FA S B = FA FB . Anadiendo sA∪B si λ ∈ A ˜ B ◮ Transiciones: transiciones desde {sA∪B } con los simbolos que procesaban sA y sB
  • 14.
    ´ Automatas que reconocenconjuntos regulares (4) ◮ Automata que reconoce al conjunto A∗ ´ ◮ ∗ SA = SA {sA∗ } ◮ Estado inicial {sA∗ } ◮ ∗ FA = FA {sA∗ }. ◮ ´ Transiciones: por cada transicion desde sA a un estado s para la entrada i, incluir transicion desde {sA∗ } hasta s con ´ ´ el s´mbolo i y una transicion desde cada estado final hasta ı s para el mismo dato de entrada i.
  • 15.
    ´ Automatas que reconocenconjuntos regulares (5) ´ Ejercicios: Construir automatas de estado finito que reconozcan los siguientes conjuntos regulares: ◮ {11, 0}∗ ◮ {11, 0}∗ 00, 1{10, 01}∗ ◮ {11, 00}{01, 101}∗ {1, 00, 10}∗ ◮ {11, 00}{01, 101}∗ {1, 00, 10}{1}∗
  • 16.
    Contenido Conjuntoregulares Expresiones regulares Conjunto regulares Teorema de Kleene ´ Automatas que reconocen conjuntos regulares ´ Conjuntos regulares y Gramaticas regulares ´ Limitaciones de los automatas de estado finito
  • 17.
    ´ Conjuntos regulares yGramaticas regulares Teorema 2 ´ Un conjunto es generado por una gramatica regular si y solo si es un conjunto regular. ´ Ejercicio: Construir un automata de estado finito no determinista que reconozca el lenguaje generado por la gramatica regular G = (V , T , S, P), donde: ´ V = {0, 1, A, S} T = {0, 1} P = {S → 1A, S → 0, S → λ, A → 0A, A → 1A, A → 1}. Nota: La idea es que el estado inicial es final si existe la produccion S → λ. Adicionalmente que se cree un estado por ´ cada s´mbolo no terminal, mas un estado final adicional) ı
  • 18.
    ´ Conjuntos regulares yGramaticas regulares (2) ´ Ejercicio: Hallar la gramatica regular que genere el conjunto ´ regular reconocido por el siguiente automata
  • 19.
    Contenido Conjuntoregulares Expresiones regulares Conjunto regulares Teorema de Kleene ´ Automatas que reconocen conjuntos regulares ´ Conjuntos regulares y Gramaticas regulares ´ Limitaciones de los automatas de estado finito
  • 20.
    ´ Limitaciones de losautomatas de estado finito Ejercicio: Es el conjunto {0n 1n | n = 0, 1, . . .} regular ? ´ Nota: El conjunto puede ser generado con una gramatica libre de contexto ´ Los automatas finitos: ◮ Son limitados (capacidad de memor´a finita). ı ◮ No reconocen lenguajes que no son regulares. ´ ´ Modelos de computacion mas potentes: ´ ´ ◮ Automata a pila (reconoce gramaticas libres del contexto). No podr´a reconocer {0 ı n 1n 2n | n = 0, 1, . . .} ´ ´ ◮ Maquinas de Turing ((reconoce gramaticas dependientes del contexto).