SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
Introdução à Teoria da Computação




                           UAB/UFRPE




                       Eduardo Araújo Oliveira
                http://sites.google.com/site/eaoufpe




                                                       slide 1




Conceitos Iniciais

 • Computadores atuais mais rápidos e poderosos

 • Modelos matemáticos

 • Autômatos Finitos




                                                       slide 2
Autômatos Finitos

 • Reconhecedor de palavras ou cadeia de caracteres


 • Bons modelos para computadores com capacidade de
   memória reduzida

 • Fazem parte de vários dispositivos eletro-mecânicos
   do dia-a-dia




                                                         slide 3




Autômatos Finitos

 • Exemplo 1




              Visão aérea de uma porta automática




                                                         slide 4
Autômatos Finitos

  • Exemplo 1

   O controlador da porta pode estar em 2 estados:
     - aberto (significando porta aberta)
     - fechado (significando porta fechada)
   O controlador passa de um estado para outro dependendo do
   estímulo (entrada) que recebe:




                                                                 slide 5




Autômatos Finitos

  • Exemplo 1

Entradas: Existem 4 condições de entrada possíveis

   Frente: significando que uma pessoa está em pé sobre o tapete da
      frente;
   Retaguarda: significando que uma pessoa está em pé sobre o tapete
     de
               dentro;
   Ambos: significando que existem pessoas sobre os 2 tapetes;
   Nenhum: significando que ninguém está sobre os tapetes.




                                                                 slide 6
Autômatos Finitos

 • Exemplo 1


        Entradas: Existem 4 condições de entrada possíveis




                                                             slide 7




Autômatos Finitos

 • Exemplo 1

  Tabela de Transição




                                                             slide 8
Autômatos Finitos

 • Exemplo 2

                      Interruptor


               Estados: Ligado ou Desligado




                                                        slide 9




Autômatos Finitos

 • Exemplo 3

                     Palavra AMOR


          Qualquer outra palavra deve ser descartada




                                                       slide 10
Autômatos Finitos

 • Exemplo 3
         Tentativa de leitura da Palavra AMBIENTE




                                                    slide 11




Autômatos Finitos

 • Controladores para:

    – Lavadoras de louça/roupa

    – Termômetros eletrônicos

    – Relógios digitais

    – Calculadoras

    – Máquinas de venda automática




                                                    slide 12
Autômatos Finitos

  • O AF é uma máquina, reconhecedora de palavras ou cadeia
    de caracteres, que sempre pára retornando uma resposta
    sim (cadeia reconhecida) ou não (cadeia não conhecida)
  • Podem ser classificados em:
     – Autômatos Finitos Determinísticos (AFD)
     – Autômatos Finitos Não-Determinísticos (AFND)




                                                                slide 13




Autômatos Finitos Determinísticos – Definição Formal


  Definição formal de um Autômato Finito Determinístico:

  Um Autômato Finito Determinístico (AFD) M é uma 5-upla:

                    M = (Q, Σ, δ, q0, F), onde

     Q: conjunto finito de estados do autômato;
     Σ: alfabeto de símbolos de entrada;
     δ: função programa ou função de transição (parcial)
        δ: Q × Σ → Q. Significa dizer que permanecendo em um
       estado e lendo um símbolo do alfabeto faz o autômato passar
       para outro estado ou mesmo ficar no mesmo
     q0: estado inicial (q0∈Q)
     F: conjunto de estados finais ou estados de aceitação
       (F⊆Q)

                                                                slide 14
Autômatos Finitos Determinísticos – Cadeias e Linguagens



   Um alfabeto Σ é um conjunto finito (não-vazio)
    de símbolos


   Uma cadeia (string) em um alfabeto Σ é uma
   seqüência finita de símbolos deste alfabeto
   Ex.:   Alfabetos              Ex.:   Cadeias
          Σ1 = {0,1}                    01001
          Σ2 = {a, b, c, …, z}          abracadabra


                                                      slide 15




Autômatos Finitos Determinísticos – Cadeias e Linguagens



   Se w = w1w2…wn é uma cadeia sobre Σ, o
     comprimento de w, denotado por |w|, é n

    Ex.: |abracadabra| = 11


   A cadeia de comprimento 0, é denominada
     cadeia nula e é representada por λ




                                                      slide 16
Autômatos Finitos Determinísticos – Cadeias e Linguagens


   Se u = u1u2…un e v = v1v2…vm são cadeias no
     alfabeto Σ, então a concatenação de u com
     v, denotada por uv, é definida por:
              uv = u1u2…unv1v2…vm

      Ex.: u = abra e v = cadabra ⇒ uv = abracadabra

     Propriedades da concatenação

      • uλ = λu = u
      • u(vw) = (uv)w
      • |uv| = |u| + |v|
                                                       slide 17




Autômatos Finitos Determinísticos – Concatenação

   A concatenação da mesma cadeia várias vezes
     é definida por:
               w0 = λ, e
               wn+1 = wn w, para n ≥ 0

   Se w = w1w2…wn é uma cadeia no alfabeto Σ,
     então a reversa (inversa) de w, denotada por
     wR, é definida por wR = wn…w2w1
     Observações

      • λR = λ
      • (vw)R = wRvR
                                                       slide 18
Autômatos Finitos Determinísticos – Linguagens

    Seja Σ um alfabeto. Então:
                  Σ0 = { λ }
                  Σ1 = { w : |w| = 1 }
                  Σ2 = { w : |w| = 2 }
                  Σn = { w : |w| = n }

    Σ* = Σ0 ∪ Σ1 ∪ … ∪ Σn ∪ Σn+1 ∪ …
    ou seja,

    Σ* = { w : w é uma cadeia em Σ}
                                                 slide 19




Autômatos Finitos Determinísticos – Linguagens


   Uma Linguagem L no alfabeto Σ é qualquer
    subconjunto de Σ*

   Ex.:   Σ = { a, b }
          L1   = { ab, ba }

          L2   ={λ}

          L3   = { anbn : n ≥ 0 }

                                                 slide 20
Autômatos Finitos Determinísticos – Linguagens

  Exemplo:
  Seja ∑ = {a, b, c, ..., z}. Sejam A e B as linguagens
    sobre ∑ dadas por: A = {bom, mau} e B =
    {garoto, garota}, então:

    A ∪ B = {bom, mau, garoto, garota}
    A • B = {bomgaroto, bomgarota, maugaroto,
             maugarota}
    A* =     {λ, bom, mau, bombom, bommau,
             maubom, maumau, bombombom, ...}



                                                      slide 21




Autômatos Finitos Determinísticos – Representação Gráfica


  • Representação Gráfica




                                                      slide 22
Autômatos Finitos Determinísticos

      Um autômato finito M1: (diagrama de estados)



                        M1 tem 3 estados, q1, q2, q3 ;
                        M1 inicia no estado q1 ;
                        M1 tem um estado final, q2 ;
                        Os arcos que vão de um estado p/ outro
                        chamam-se transições.




                                                          slide 23




Autômatos Finitos Determinísticos


                - O autômato finito M1 recebe os símbolos de
                entrada um por um;

                - Depois de ler cada símbolo, M1 move-se de
                um estado para outro, de acordo com a
                transição que possui aquele símbolo como
                seu rótulo;

                - Quando M1 lê o ultimo símbolo ele produz
                uma saída:
                      reconhece se M1 está no estado final
                      não-reconhece se M1 não estiver.




                                                          slide 24
Autômatos Finitos Determinísticos


                   Exemplo: entrada 1101

                   1.   Inicia no estado q1.
                   2.   Lê 1, segue transição de   q1   p/   q2.
                   3.   Lê 1, segue transição de   q2   p/   q2.
                   4.   Lê 0, segue transição de   q2   p/   q3.
                   5.   Lê 1, segue transição de   q3   p/   q2.
                   6.   Pára c/ saída reconhece.




                                                               slide 25




Autômatos Finitos Determinísticos

    Vamos aprender!
    Testar: 1, 01, 11, 0101 (em M1)
                    Percebemos que :
                    - M1 reconhece qualquer cadeia que
                      termine com 1 (vai p/ o estado final
                      q2 toda vez que lê 1);

                    - M1 não reconhece cadeias como 0,
                      10, 101000.




                                                               slide 26
Autômatos Finitos Determinísticos

Exemplo: Autômato que reconhece a linguagem de números
   binários com quantidade ímpar de 1s.
                     M = (∑, Q, δ, qo, F)
                      Q = { qo, q1 }, ∑ = { 0, 1 }, F = { q1 }




          Função de Transição

                  δ     0     1

              qpar     qpar qímpar

            qímpar qímpar qpar

            δ (qpar,0) = qpar
            ...
                                                                 slide 27




Autômatos Finitos Determinísticos

•       Um Autômato Finito nunca entra em “loop” infinito

•       Novos símbolos da entrada são lidos a cada aplicação da
        função programa, o processo de reconhecimento de
        qualquer cadeia pára de duas maneiras:

    –     Aceitando ou;
    –     rejeitando uma entrada.




                                                                 slide 28
Autômatos Finitos Determinísticos

• Definir um AF engloba definir
   – Um conjunto finito de estados;

   – Um alfabeto de entrada que indica os símbolos de
     entrada permitidos;

   – Um conjunto de regras de movimento que indicam
     como ir de um estado p/ outro, dependendo do
     símbolo de entrada;

   – Um estado escolhido como estado inicial;

   – Um conjunto de estados escolhidos como estados
     finais (de reconhecimento);



                                                                 slide 29




Autômatos Finitos Determinísticos – Praticando...

 • Exercício: suponha que o alfabeto é {0,1}.
   Projete um AF para reconhecer a linguagem
   regular composta por todas as cadeias que
   tem 001 como subcadeia

 • Por    exemplo,   0010,   1001,                  001      e
   11111110011111      pertencem                a         esta
   linguagem, mas 11 e 0000 não




                                                                 slide 30
Autômatos Finitos Determinísticos – Praticando...

Exercício 2: Construir um AFD que reconhece a linguagem a*.
                             M = (∑, Q, δ, qo, F)
                       Q = { qo }, ∑ = { a }, F = { q0 }




      Função de Transição
                                              a
             δ         a                                qo
             qo        qo




                                                                      slide 31




Autômatos Finitos Determinísticos – Praticando...

Exercício 3: Construir um AFD que reconhece a linguagem aa* .
                             M = (∑, Q, δ, qo, F)
                   Q = { qo, q1 }, ∑ = { a }, F = { q1 }




    Função de Transição

         δ        a                                 a             a

        qo        q1
                                         qo                  q1
        q1        q1



                                                                      slide 32
Autômatos Finitos Determinísticos – Praticando...
Exercício 4: Construir um AFD que reconhece a
                linguagem (abb*a)*

                               M = (∑, Q, δ, qo, F)

            Q = { qo, q1, q2 }, ∑ = { a, b }, F = { q0 }


       Função de Transição
                                                          a
            δ      a      b
           qo      q1     qrej                   qo           b        q1

           q1      qrej   q2                                            b
                                                      a
           q2      q0     q2                                      q2



                                                                            slide 33




Autômatos Finitos Determinísticos – Praticando...
Exercício 5:

Conjunto de todos as palavras com três zeros
   consecutivos.




                                                                            slide 34
Autômatos Finitos Determinísticos – Praticando...
Exercício 6:

Conjunto de todas as palavras que não contém 101
como subpalavra.




                                                         slide 35




               Introdução à Teoria da Computação




                             UAB/UFRPE




                         Eduardo Araújo Oliveira
                  http://sites.google.com/site/eaoufpe




                                                         slide 36
Introdução à Teoria da Computação




                           UAB/UFRPE




                       Eduardo Araújo Oliveira
                http://sites.google.com/site/eaoufpe




                                                       slide 1




Conceitos Iniciais

 • Computadores atuais mais rápidos e poderosos

 • Modelos matemáticos

 • Autômatos Finitos




                                                       slide 2
Autômatos Finitos

 • Reconhecedor de palavras ou cadeia de caracteres


 • Bons modelos para computadores com capacidade de
   memória reduzida

 • Fazem parte de vários dispositivos eletro-mecânicos
   do dia-a-dia




                                                         slide 3




Autômatos Finitos

 • Exemplo 1




              Visão aérea de uma porta automática




                                                         slide 4
Autômatos Finitos

  • Exemplo 1

   O controlador da porta pode estar em 2 estados:
     - aberto (significando porta aberta)
     - fechado (significando porta fechada)
   O controlador passa de um estado para outro dependendo do
   estímulo (entrada) que recebe:




                                                                 slide 5




Autômatos Finitos

  • Exemplo 1

Entradas: Existem 4 condições de entrada possíveis


   Frente: significando que uma pessoa está em pé sobre o tapete da
      frente;
   Retaguarda: significando que uma pessoa está em pé sobre o tapete
     de
               dentro;
   Ambos: significando que existem pessoas sobre os 2 tapetes;
   Nenhum: significando que ninguém está sobre os tapetes.




                                                                 slide 6
Autômatos Finitos

 • Exemplo 1


        Entradas: Existem 4 condições de entrada possíveis




                                                             slide 7




Autômatos Finitos

 • Exemplo 1

  Tabela de Transição




                                                             slide 8
Autômatos Finitos

 • Exemplo 2

                      Interruptor


               Estados: Ligado ou Desligado




                                                        slide 9




Autômatos Finitos

 • Exemplo 3

                     Palavra AMOR


          Qualquer outra palavra deve ser descartada




                                                       slide 10
Autômatos Finitos

 • Exemplo 3
         Tentativa de leitura da Palavra AMBIENTE




                                                    slide 11




Autômatos Finitos

 • Controladores para:

    – Lavadoras de louça/roupa

    – Termômetros eletrônicos

    – Relógios digitais

    – Calculadoras

    – Máquinas de venda automática




                                                    slide 12
Autômatos Finitos

  • O AF é uma máquina, reconhecedora de palavras ou cadeia
    de caracteres, que sempre pára retornando uma resposta
    sim (cadeia reconhecida) ou não (cadeia não conhecida)
  • Podem ser classificados em:
     – Autômatos Finitos Determinísticos (AFD)
     – Autômatos Finitos Não-Determinísticos (AFND)




                                                                slide 13




Autômatos Finitos Determinísticos – Definição Formal


  Definição formal de um Autômato Finito Determinístico:

  Um Autômato Finito Determinístico (AFD) M é uma 5-upla:

                    M = (Q, Σ, δ, q0, F), onde

     Q: conjunto finito de estados do autômato;
     Σ: alfabeto de símbolos de entrada;
     δ: função programa ou função de transição (parcial)
        δ: Q × Σ → Q. Significa dizer que permanecendo em um
       estado e lendo um símbolo do alfabeto faz o autômato passar
       para outro estado ou mesmo ficar no mesmo
     q0: estado inicial (q0∈Q)
     F: conjunto de estados finais ou estados de aceitação
       (F⊆Q)

                                                                slide 14
Autômatos Finitos Determinísticos – Cadeias e Linguagens



   Um alfabeto Σ é um conjunto finito (não-vazio)
    de símbolos


   Uma cadeia (string) em um alfabeto Σ é uma
   seqüência finita de símbolos deste alfabeto
   Ex.:   Alfabetos              Ex.:   Cadeias
          Σ1 = {0,1}                    01001
          Σ2 = {a, b, c, …, z}          abracadabra


                                                      slide 15




Autômatos Finitos Determinísticos – Cadeias e Linguagens



   Se w = w1w2…wn é uma cadeia sobre Σ, o
     comprimento de w, denotado por |w|, é n

    Ex.: |abracadabra| = 11


   A cadeia de comprimento 0, é denominada
     cadeia nula e é representada por λ




                                                      slide 16
Autômatos Finitos Determinísticos – Cadeias e Linguagens


   Se u = u1u2…un e v = v1v2…vm são cadeias no
     alfabeto Σ, então a concatenação de u com
     v, denotada por uv, é definida por:
              uv = u1u2…unv1v2…vm

      Ex.: u = abra e v = cadabra ⇒ uv = abracadabra

     Propriedades da concatenação

      • uλ = λu = u
      • u(vw) = (uv)w
      • |uv| = |u| + |v|
                                                       slide 17




Autômatos Finitos Determinísticos – Concatenação

   A concatenação da mesma cadeia várias vezes
     é definida por:
               w0 = λ, e
               wn+1 = wn w, para n ≥ 0

   Se w = w1w2…wn é uma cadeia no alfabeto Σ,
     então a reversa (inversa) de w, denotada por
     wR, é definida por wR = wn…w2w1
     Observações

      • λR = λ
      • (vw)R = wRvR
                                                       slide 18
Autômatos Finitos Determinísticos – Linguagens

    Seja Σ um alfabeto. Então:
                   Σ0 = { λ }
                   Σ1 = { w : |w| = 1 }
                   Σ2 = { w : |w| = 2 }
                   Σn = { w : |w| = n }

    Σ* = Σ0 ∪ Σ1 ∪ … ∪ Σn ∪ Σn+1 ∪ …
    ou seja,

    Σ* = { w : w é uma cadeia em Σ}
                                                 slide 19




Autômatos Finitos Determinísticos – Linguagens


   Uma Linguagem L no alfabeto Σ é qualquer
    subconjunto de Σ*

   Ex.:   Σ = { a, b }
          L1   = { ab, ba }

          L2   ={λ}

          L3   = { an b n : n ≥ 0 }

                                                 slide 20
Autômatos Finitos Determinísticos – Linguagens

  Exemplo:
  Seja ∑ = {a, b, c, ..., z}. Sejam A e B as linguagens
    sobre ∑ dadas por: A = {bom, mau} e B =
    {garoto, garota}, então:

    A ∪ B = {bom, mau, garoto, garota}
    A • B = {bomgaroto, bomgarota, maugaroto,
             maugarota}
    A* =     {λ, bom, mau, bombom, bommau,
             maubom, maumau, bombombom, ...}



                                                      slide 21




Autômatos Finitos Determinísticos – Representação Gráfica


  • Representação Gráfica




                                                      slide 22
Autômatos Finitos Determinísticos

      Um autômato finito M1: (diagrama de estados)



                        M1 tem 3 estados, q1, q2, q3 ;
                        M1 inicia no estado q1 ;
                        M1 tem um estado final, q2 ;
                        Os arcos que vão de um estado p/ outro
                        chamam-se transições.




                                                          slide 23




Autômatos Finitos Determinísticos


                - O autômato finito M1 recebe os símbolos de
                entrada um por um;

                - Depois de ler cada símbolo, M1 move-se de
                um estado para outro, de acordo com a
                transição que possui aquele símbolo como
                seu rótulo;

                - Quando M1 lê o ultimo símbolo ele produz
                uma saída:
                      reconhece se M1 está no estado final
                      não-reconhece se M1 não estiver.




                                                          slide 24
Autômatos Finitos Determinísticos


                   Exemplo: entrada 1101

                   1.   Inicia no estado q1.
                   2.   Lê 1, segue transição de   q1   p/   q2.
                   3.   Lê 1, segue transição de   q2   p/   q2.
                   4.   Lê 0, segue transição de   q2   p/   q3.
                   5.   Lê 1, segue transição de   q3   p/   q2.
                   6.   Pára c/ saída reconhece.




                                                               slide 25




Autômatos Finitos Determinísticos

    Vamos aprender!
    Testar: 1, 01, 11, 0101 (em M1)
                    Percebemos que :
                    - M1 reconhece qualquer cadeia que
                      termine com 1 (vai p/ o estado final
                      q2 toda vez que lê 1);

                    - M1 não reconhece cadeias como 0,
                      10, 101000.




                                                               slide 26
Autômatos Finitos Determinísticos

Exemplo: Autômato que reconhece a linguagem de números
   binários com quantidade ímpar de 1s.
                     M = (∑, Q, δ, qo, F)
                      Q = { qo, q1 }, ∑ = { 0, 1 }, F = { q1 }




          Função de Transição

                  δ     0     1

              qpar     qpar qímpar

            qímpar qímpar qpar

            δ (qpar,0) = qpar
            ...
                                                                 slide 27




Autômatos Finitos Determinísticos

•       Um Autômato Finito nunca entra em “loop” infinito

•       Novos símbolos da entrada são lidos a cada aplicação da
        função programa, o processo de reconhecimento de
        qualquer cadeia pára de duas maneiras:

    –     Aceitando ou;
    –     rejeitando uma entrada.




                                                                 slide 28
Autômatos Finitos Determinísticos

• Definir um AF engloba definir
   – Um conjunto finito de estados;

   – Um alfabeto de entrada que indica os símbolos de
     entrada permitidos;

   – Um conjunto de regras de movimento que indicam
     como ir de um estado p/ outro, dependendo do
     símbolo de entrada;

   – Um estado escolhido como estado inicial;

   – Um conjunto de estados escolhidos como estados
     finais (de reconhecimento);



                                                                 slide 29




Autômatos Finitos Determinísticos – Praticando...

 • Exercício: suponha que o alfabeto é {0,1}.
   Projete um AF para reconhecer a linguagem
   regular composta por todas as cadeias que
   tem 001 como subcadeia

 • Por    exemplo,   0010,   1001,                  001      e
   11111110011111      pertencem                a         esta
   linguagem, mas 11 e 0000 não




                                                                 slide 30
Autômatos Finitos Determinísticos – Praticando...

Exercício 2: Construir um AFD que reconhece a linguagem a*.
                             M = (∑, Q, δ, qo, F)
                       Q = { qo }, ∑ = { a }, F = { q0 }




      Função de Transição
                                              a
             δ         a                                qo
             qo        qo




                                                                      slide 31




Autômatos Finitos Determinísticos – Praticando...

Exercício 3: Construir um AFD que reconhece a linguagem aa* .
                             M = (∑, Q, δ, qo, F)
                   Q = { qo, q1 }, ∑ = { a }, F = { q1 }




    Função de Transição

         δ        a                                 a             a

        qo        q1
                                         qo                  q1
        q1        q1



                                                                      slide 32
Autômatos Finitos Determinísticos – Praticando...
Exercício 4: Construir um AFD que reconhece a
                linguagem (abb*a)*

                               M = (∑, Q, δ, qo, F)

            Q = { qo, q1, q2 }, ∑ = { a, b }, F = { q0 }


       Função de Transição
                                                          a
            δ      a      b
           qo      q1     qrej                   qo           b        q1

           q1      qrej   q2                                            b
                                                      a
           q2      q0     q2                                      q2



                                                                            slide 33




Autômatos Finitos Determinísticos – Praticando...
Exercício 5:

Conjunto de todos as palavras com três zeros
   consecutivos.




                                                                            slide 34
Autômatos Finitos Determinísticos – Praticando...
Exercício 6:

Conjunto de todas as palavras que não contém 101
como subpalavra.




                                                         slide 35




               Introdução à Teoria da Computação




                             UAB/UFRPE




                         Eduardo Araújo Oliveira
                  http://sites.google.com/site/eaoufpe




                                                         slide 36

Más contenido relacionado

Similar a Introdução à Teoria da Computação com AF

Teoria da Computação - Fecho sob as operacoes regulares
Teoria da Computação - Fecho sob as operacoes regularesTeoria da Computação - Fecho sob as operacoes regulares
Teoria da Computação - Fecho sob as operacoes regularesIFCE
 
2º/2012 - Prova 02 de Autômatos e Computabilidade
2º/2012 - Prova 02 de Autômatos e Computabilidade2º/2012 - Prova 02 de Autômatos e Computabilidade
2º/2012 - Prova 02 de Autômatos e Computabilidadeshichibukai_01
 
Aula 5 linguagens regularese automatosfinitosnãodeterministico
Aula 5   linguagens regularese automatosfinitosnãodeterministicoAula 5   linguagens regularese automatosfinitosnãodeterministico
Aula 5 linguagens regularese automatosfinitosnãodeterministicowab030
 
Aula 9 propriedadedas linguagensregulares
Aula 9   propriedadedas linguagensregularesAula 9   propriedadedas linguagensregulares
Aula 9 propriedadedas linguagensregulareswab030
 
Prova 02 de Autômatos e Computabilidade
Prova 02 de Autômatos e ComputabilidadeProva 02 de Autômatos e Computabilidade
Prova 02 de Autômatos e Computabilidadeshichibukai_01
 
2º/2012 - Prova 01 de Autômatos e Computabilidade
2º/2012 - Prova 01 de Autômatos e Computabilidade2º/2012 - Prova 01 de Autômatos e Computabilidade
2º/2012 - Prova 01 de Autômatos e Computabilidadeshichibukai_01
 

Similar a Introdução à Teoria da Computação com AF (6)

Teoria da Computação - Fecho sob as operacoes regulares
Teoria da Computação - Fecho sob as operacoes regularesTeoria da Computação - Fecho sob as operacoes regulares
Teoria da Computação - Fecho sob as operacoes regulares
 
2º/2012 - Prova 02 de Autômatos e Computabilidade
2º/2012 - Prova 02 de Autômatos e Computabilidade2º/2012 - Prova 02 de Autômatos e Computabilidade
2º/2012 - Prova 02 de Autômatos e Computabilidade
 
Aula 5 linguagens regularese automatosfinitosnãodeterministico
Aula 5   linguagens regularese automatosfinitosnãodeterministicoAula 5   linguagens regularese automatosfinitosnãodeterministico
Aula 5 linguagens regularese automatosfinitosnãodeterministico
 
Aula 9 propriedadedas linguagensregulares
Aula 9   propriedadedas linguagensregularesAula 9   propriedadedas linguagensregulares
Aula 9 propriedadedas linguagensregulares
 
Prova 02 de Autômatos e Computabilidade
Prova 02 de Autômatos e ComputabilidadeProva 02 de Autômatos e Computabilidade
Prova 02 de Autômatos e Computabilidade
 
2º/2012 - Prova 01 de Autômatos e Computabilidade
2º/2012 - Prova 01 de Autômatos e Computabilidade2º/2012 - Prova 01 de Autômatos e Computabilidade
2º/2012 - Prova 01 de Autômatos e Computabilidade
 

Introdução à Teoria da Computação com AF

  • 1. Introdução à Teoria da Computação UAB/UFRPE Eduardo Araújo Oliveira http://sites.google.com/site/eaoufpe slide 1 Conceitos Iniciais • Computadores atuais mais rápidos e poderosos • Modelos matemáticos • Autômatos Finitos slide 2
  • 2. Autômatos Finitos • Reconhecedor de palavras ou cadeia de caracteres • Bons modelos para computadores com capacidade de memória reduzida • Fazem parte de vários dispositivos eletro-mecânicos do dia-a-dia slide 3 Autômatos Finitos • Exemplo 1 Visão aérea de uma porta automática slide 4
  • 3. Autômatos Finitos • Exemplo 1 O controlador da porta pode estar em 2 estados: - aberto (significando porta aberta) - fechado (significando porta fechada) O controlador passa de um estado para outro dependendo do estímulo (entrada) que recebe: slide 5 Autômatos Finitos • Exemplo 1 Entradas: Existem 4 condições de entrada possíveis Frente: significando que uma pessoa está em pé sobre o tapete da frente; Retaguarda: significando que uma pessoa está em pé sobre o tapete de dentro; Ambos: significando que existem pessoas sobre os 2 tapetes; Nenhum: significando que ninguém está sobre os tapetes. slide 6
  • 4. Autômatos Finitos • Exemplo 1 Entradas: Existem 4 condições de entrada possíveis slide 7 Autômatos Finitos • Exemplo 1 Tabela de Transição slide 8
  • 5. Autômatos Finitos • Exemplo 2 Interruptor Estados: Ligado ou Desligado slide 9 Autômatos Finitos • Exemplo 3 Palavra AMOR Qualquer outra palavra deve ser descartada slide 10
  • 6. Autômatos Finitos • Exemplo 3 Tentativa de leitura da Palavra AMBIENTE slide 11 Autômatos Finitos • Controladores para: – Lavadoras de louça/roupa – Termômetros eletrônicos – Relógios digitais – Calculadoras – Máquinas de venda automática slide 12
  • 7. Autômatos Finitos • O AF é uma máquina, reconhecedora de palavras ou cadeia de caracteres, que sempre pára retornando uma resposta sim (cadeia reconhecida) ou não (cadeia não conhecida) • Podem ser classificados em: – Autômatos Finitos Determinísticos (AFD) – Autômatos Finitos Não-Determinísticos (AFND) slide 13 Autômatos Finitos Determinísticos – Definição Formal Definição formal de um Autômato Finito Determinístico: Um Autômato Finito Determinístico (AFD) M é uma 5-upla: M = (Q, Σ, δ, q0, F), onde Q: conjunto finito de estados do autômato; Σ: alfabeto de símbolos de entrada; δ: função programa ou função de transição (parcial) δ: Q × Σ → Q. Significa dizer que permanecendo em um estado e lendo um símbolo do alfabeto faz o autômato passar para outro estado ou mesmo ficar no mesmo q0: estado inicial (q0∈Q) F: conjunto de estados finais ou estados de aceitação (F⊆Q) slide 14
  • 8. Autômatos Finitos Determinísticos – Cadeias e Linguagens Um alfabeto Σ é um conjunto finito (não-vazio) de símbolos Uma cadeia (string) em um alfabeto Σ é uma seqüência finita de símbolos deste alfabeto Ex.: Alfabetos Ex.: Cadeias Σ1 = {0,1} 01001 Σ2 = {a, b, c, …, z} abracadabra slide 15 Autômatos Finitos Determinísticos – Cadeias e Linguagens Se w = w1w2…wn é uma cadeia sobre Σ, o comprimento de w, denotado por |w|, é n Ex.: |abracadabra| = 11 A cadeia de comprimento 0, é denominada cadeia nula e é representada por λ slide 16
  • 9. Autômatos Finitos Determinísticos – Cadeias e Linguagens Se u = u1u2…un e v = v1v2…vm são cadeias no alfabeto Σ, então a concatenação de u com v, denotada por uv, é definida por: uv = u1u2…unv1v2…vm Ex.: u = abra e v = cadabra ⇒ uv = abracadabra Propriedades da concatenação • uλ = λu = u • u(vw) = (uv)w • |uv| = |u| + |v| slide 17 Autômatos Finitos Determinísticos – Concatenação A concatenação da mesma cadeia várias vezes é definida por: w0 = λ, e wn+1 = wn w, para n ≥ 0 Se w = w1w2…wn é uma cadeia no alfabeto Σ, então a reversa (inversa) de w, denotada por wR, é definida por wR = wn…w2w1 Observações • λR = λ • (vw)R = wRvR slide 18
  • 10. Autômatos Finitos Determinísticos – Linguagens Seja Σ um alfabeto. Então: Σ0 = { λ } Σ1 = { w : |w| = 1 } Σ2 = { w : |w| = 2 } Σn = { w : |w| = n } Σ* = Σ0 ∪ Σ1 ∪ … ∪ Σn ∪ Σn+1 ∪ … ou seja, Σ* = { w : w é uma cadeia em Σ} slide 19 Autômatos Finitos Determinísticos – Linguagens Uma Linguagem L no alfabeto Σ é qualquer subconjunto de Σ* Ex.: Σ = { a, b } L1 = { ab, ba } L2 ={λ} L3 = { anbn : n ≥ 0 } slide 20
  • 11. Autômatos Finitos Determinísticos – Linguagens Exemplo: Seja ∑ = {a, b, c, ..., z}. Sejam A e B as linguagens sobre ∑ dadas por: A = {bom, mau} e B = {garoto, garota}, então: A ∪ B = {bom, mau, garoto, garota} A • B = {bomgaroto, bomgarota, maugaroto, maugarota} A* = {λ, bom, mau, bombom, bommau, maubom, maumau, bombombom, ...} slide 21 Autômatos Finitos Determinísticos – Representação Gráfica • Representação Gráfica slide 22
  • 12. Autômatos Finitos Determinísticos Um autômato finito M1: (diagrama de estados) M1 tem 3 estados, q1, q2, q3 ; M1 inicia no estado q1 ; M1 tem um estado final, q2 ; Os arcos que vão de um estado p/ outro chamam-se transições. slide 23 Autômatos Finitos Determinísticos - O autômato finito M1 recebe os símbolos de entrada um por um; - Depois de ler cada símbolo, M1 move-se de um estado para outro, de acordo com a transição que possui aquele símbolo como seu rótulo; - Quando M1 lê o ultimo símbolo ele produz uma saída: reconhece se M1 está no estado final não-reconhece se M1 não estiver. slide 24
  • 13. Autômatos Finitos Determinísticos Exemplo: entrada 1101 1. Inicia no estado q1. 2. Lê 1, segue transição de q1 p/ q2. 3. Lê 1, segue transição de q2 p/ q2. 4. Lê 0, segue transição de q2 p/ q3. 5. Lê 1, segue transição de q3 p/ q2. 6. Pára c/ saída reconhece. slide 25 Autômatos Finitos Determinísticos Vamos aprender! Testar: 1, 01, 11, 0101 (em M1) Percebemos que : - M1 reconhece qualquer cadeia que termine com 1 (vai p/ o estado final q2 toda vez que lê 1); - M1 não reconhece cadeias como 0, 10, 101000. slide 26
  • 14. Autômatos Finitos Determinísticos Exemplo: Autômato que reconhece a linguagem de números binários com quantidade ímpar de 1s. M = (∑, Q, δ, qo, F) Q = { qo, q1 }, ∑ = { 0, 1 }, F = { q1 } Função de Transição δ 0 1 qpar qpar qímpar qímpar qímpar qpar δ (qpar,0) = qpar ... slide 27 Autômatos Finitos Determinísticos • Um Autômato Finito nunca entra em “loop” infinito • Novos símbolos da entrada são lidos a cada aplicação da função programa, o processo de reconhecimento de qualquer cadeia pára de duas maneiras: – Aceitando ou; – rejeitando uma entrada. slide 28
  • 15. Autômatos Finitos Determinísticos • Definir um AF engloba definir – Um conjunto finito de estados; – Um alfabeto de entrada que indica os símbolos de entrada permitidos; – Um conjunto de regras de movimento que indicam como ir de um estado p/ outro, dependendo do símbolo de entrada; – Um estado escolhido como estado inicial; – Um conjunto de estados escolhidos como estados finais (de reconhecimento); slide 29 Autômatos Finitos Determinísticos – Praticando... • Exercício: suponha que o alfabeto é {0,1}. Projete um AF para reconhecer a linguagem regular composta por todas as cadeias que tem 001 como subcadeia • Por exemplo, 0010, 1001, 001 e 11111110011111 pertencem a esta linguagem, mas 11 e 0000 não slide 30
  • 16. Autômatos Finitos Determinísticos – Praticando... Exercício 2: Construir um AFD que reconhece a linguagem a*. M = (∑, Q, δ, qo, F) Q = { qo }, ∑ = { a }, F = { q0 } Função de Transição a δ a qo qo qo slide 31 Autômatos Finitos Determinísticos – Praticando... Exercício 3: Construir um AFD que reconhece a linguagem aa* . M = (∑, Q, δ, qo, F) Q = { qo, q1 }, ∑ = { a }, F = { q1 } Função de Transição δ a a a qo q1 qo q1 q1 q1 slide 32
  • 17. Autômatos Finitos Determinísticos – Praticando... Exercício 4: Construir um AFD que reconhece a linguagem (abb*a)* M = (∑, Q, δ, qo, F) Q = { qo, q1, q2 }, ∑ = { a, b }, F = { q0 } Função de Transição a δ a b qo q1 qrej qo b q1 q1 qrej q2 b a q2 q0 q2 q2 slide 33 Autômatos Finitos Determinísticos – Praticando... Exercício 5: Conjunto de todos as palavras com três zeros consecutivos. slide 34
  • 18. Autômatos Finitos Determinísticos – Praticando... Exercício 6: Conjunto de todas as palavras que não contém 101 como subpalavra. slide 35 Introdução à Teoria da Computação UAB/UFRPE Eduardo Araújo Oliveira http://sites.google.com/site/eaoufpe slide 36
  • 19. Introdução à Teoria da Computação UAB/UFRPE Eduardo Araújo Oliveira http://sites.google.com/site/eaoufpe slide 1 Conceitos Iniciais • Computadores atuais mais rápidos e poderosos • Modelos matemáticos • Autômatos Finitos slide 2
  • 20. Autômatos Finitos • Reconhecedor de palavras ou cadeia de caracteres • Bons modelos para computadores com capacidade de memória reduzida • Fazem parte de vários dispositivos eletro-mecânicos do dia-a-dia slide 3 Autômatos Finitos • Exemplo 1 Visão aérea de uma porta automática slide 4
  • 21. Autômatos Finitos • Exemplo 1 O controlador da porta pode estar em 2 estados: - aberto (significando porta aberta) - fechado (significando porta fechada) O controlador passa de um estado para outro dependendo do estímulo (entrada) que recebe: slide 5 Autômatos Finitos • Exemplo 1 Entradas: Existem 4 condições de entrada possíveis Frente: significando que uma pessoa está em pé sobre o tapete da frente; Retaguarda: significando que uma pessoa está em pé sobre o tapete de dentro; Ambos: significando que existem pessoas sobre os 2 tapetes; Nenhum: significando que ninguém está sobre os tapetes. slide 6
  • 22. Autômatos Finitos • Exemplo 1 Entradas: Existem 4 condições de entrada possíveis slide 7 Autômatos Finitos • Exemplo 1 Tabela de Transição slide 8
  • 23. Autômatos Finitos • Exemplo 2 Interruptor Estados: Ligado ou Desligado slide 9 Autômatos Finitos • Exemplo 3 Palavra AMOR Qualquer outra palavra deve ser descartada slide 10
  • 24. Autômatos Finitos • Exemplo 3 Tentativa de leitura da Palavra AMBIENTE slide 11 Autômatos Finitos • Controladores para: – Lavadoras de louça/roupa – Termômetros eletrônicos – Relógios digitais – Calculadoras – Máquinas de venda automática slide 12
  • 25. Autômatos Finitos • O AF é uma máquina, reconhecedora de palavras ou cadeia de caracteres, que sempre pára retornando uma resposta sim (cadeia reconhecida) ou não (cadeia não conhecida) • Podem ser classificados em: – Autômatos Finitos Determinísticos (AFD) – Autômatos Finitos Não-Determinísticos (AFND) slide 13 Autômatos Finitos Determinísticos – Definição Formal Definição formal de um Autômato Finito Determinístico: Um Autômato Finito Determinístico (AFD) M é uma 5-upla: M = (Q, Σ, δ, q0, F), onde Q: conjunto finito de estados do autômato; Σ: alfabeto de símbolos de entrada; δ: função programa ou função de transição (parcial) δ: Q × Σ → Q. Significa dizer que permanecendo em um estado e lendo um símbolo do alfabeto faz o autômato passar para outro estado ou mesmo ficar no mesmo q0: estado inicial (q0∈Q) F: conjunto de estados finais ou estados de aceitação (F⊆Q) slide 14
  • 26. Autômatos Finitos Determinísticos – Cadeias e Linguagens Um alfabeto Σ é um conjunto finito (não-vazio) de símbolos Uma cadeia (string) em um alfabeto Σ é uma seqüência finita de símbolos deste alfabeto Ex.: Alfabetos Ex.: Cadeias Σ1 = {0,1} 01001 Σ2 = {a, b, c, …, z} abracadabra slide 15 Autômatos Finitos Determinísticos – Cadeias e Linguagens Se w = w1w2…wn é uma cadeia sobre Σ, o comprimento de w, denotado por |w|, é n Ex.: |abracadabra| = 11 A cadeia de comprimento 0, é denominada cadeia nula e é representada por λ slide 16
  • 27. Autômatos Finitos Determinísticos – Cadeias e Linguagens Se u = u1u2…un e v = v1v2…vm são cadeias no alfabeto Σ, então a concatenação de u com v, denotada por uv, é definida por: uv = u1u2…unv1v2…vm Ex.: u = abra e v = cadabra ⇒ uv = abracadabra Propriedades da concatenação • uλ = λu = u • u(vw) = (uv)w • |uv| = |u| + |v| slide 17 Autômatos Finitos Determinísticos – Concatenação A concatenação da mesma cadeia várias vezes é definida por: w0 = λ, e wn+1 = wn w, para n ≥ 0 Se w = w1w2…wn é uma cadeia no alfabeto Σ, então a reversa (inversa) de w, denotada por wR, é definida por wR = wn…w2w1 Observações • λR = λ • (vw)R = wRvR slide 18
  • 28. Autômatos Finitos Determinísticos – Linguagens Seja Σ um alfabeto. Então: Σ0 = { λ } Σ1 = { w : |w| = 1 } Σ2 = { w : |w| = 2 } Σn = { w : |w| = n } Σ* = Σ0 ∪ Σ1 ∪ … ∪ Σn ∪ Σn+1 ∪ … ou seja, Σ* = { w : w é uma cadeia em Σ} slide 19 Autômatos Finitos Determinísticos – Linguagens Uma Linguagem L no alfabeto Σ é qualquer subconjunto de Σ* Ex.: Σ = { a, b } L1 = { ab, ba } L2 ={λ} L3 = { an b n : n ≥ 0 } slide 20
  • 29. Autômatos Finitos Determinísticos – Linguagens Exemplo: Seja ∑ = {a, b, c, ..., z}. Sejam A e B as linguagens sobre ∑ dadas por: A = {bom, mau} e B = {garoto, garota}, então: A ∪ B = {bom, mau, garoto, garota} A • B = {bomgaroto, bomgarota, maugaroto, maugarota} A* = {λ, bom, mau, bombom, bommau, maubom, maumau, bombombom, ...} slide 21 Autômatos Finitos Determinísticos – Representação Gráfica • Representação Gráfica slide 22
  • 30. Autômatos Finitos Determinísticos Um autômato finito M1: (diagrama de estados) M1 tem 3 estados, q1, q2, q3 ; M1 inicia no estado q1 ; M1 tem um estado final, q2 ; Os arcos que vão de um estado p/ outro chamam-se transições. slide 23 Autômatos Finitos Determinísticos - O autômato finito M1 recebe os símbolos de entrada um por um; - Depois de ler cada símbolo, M1 move-se de um estado para outro, de acordo com a transição que possui aquele símbolo como seu rótulo; - Quando M1 lê o ultimo símbolo ele produz uma saída: reconhece se M1 está no estado final não-reconhece se M1 não estiver. slide 24
  • 31. Autômatos Finitos Determinísticos Exemplo: entrada 1101 1. Inicia no estado q1. 2. Lê 1, segue transição de q1 p/ q2. 3. Lê 1, segue transição de q2 p/ q2. 4. Lê 0, segue transição de q2 p/ q3. 5. Lê 1, segue transição de q3 p/ q2. 6. Pára c/ saída reconhece. slide 25 Autômatos Finitos Determinísticos Vamos aprender! Testar: 1, 01, 11, 0101 (em M1) Percebemos que : - M1 reconhece qualquer cadeia que termine com 1 (vai p/ o estado final q2 toda vez que lê 1); - M1 não reconhece cadeias como 0, 10, 101000. slide 26
  • 32. Autômatos Finitos Determinísticos Exemplo: Autômato que reconhece a linguagem de números binários com quantidade ímpar de 1s. M = (∑, Q, δ, qo, F) Q = { qo, q1 }, ∑ = { 0, 1 }, F = { q1 } Função de Transição δ 0 1 qpar qpar qímpar qímpar qímpar qpar δ (qpar,0) = qpar ... slide 27 Autômatos Finitos Determinísticos • Um Autômato Finito nunca entra em “loop” infinito • Novos símbolos da entrada são lidos a cada aplicação da função programa, o processo de reconhecimento de qualquer cadeia pára de duas maneiras: – Aceitando ou; – rejeitando uma entrada. slide 28
  • 33. Autômatos Finitos Determinísticos • Definir um AF engloba definir – Um conjunto finito de estados; – Um alfabeto de entrada que indica os símbolos de entrada permitidos; – Um conjunto de regras de movimento que indicam como ir de um estado p/ outro, dependendo do símbolo de entrada; – Um estado escolhido como estado inicial; – Um conjunto de estados escolhidos como estados finais (de reconhecimento); slide 29 Autômatos Finitos Determinísticos – Praticando... • Exercício: suponha que o alfabeto é {0,1}. Projete um AF para reconhecer a linguagem regular composta por todas as cadeias que tem 001 como subcadeia • Por exemplo, 0010, 1001, 001 e 11111110011111 pertencem a esta linguagem, mas 11 e 0000 não slide 30
  • 34. Autômatos Finitos Determinísticos – Praticando... Exercício 2: Construir um AFD que reconhece a linguagem a*. M = (∑, Q, δ, qo, F) Q = { qo }, ∑ = { a }, F = { q0 } Função de Transição a δ a qo qo qo slide 31 Autômatos Finitos Determinísticos – Praticando... Exercício 3: Construir um AFD que reconhece a linguagem aa* . M = (∑, Q, δ, qo, F) Q = { qo, q1 }, ∑ = { a }, F = { q1 } Função de Transição δ a a a qo q1 qo q1 q1 q1 slide 32
  • 35. Autômatos Finitos Determinísticos – Praticando... Exercício 4: Construir um AFD que reconhece a linguagem (abb*a)* M = (∑, Q, δ, qo, F) Q = { qo, q1, q2 }, ∑ = { a, b }, F = { q0 } Função de Transição a δ a b qo q1 qrej qo b q1 q1 qrej q2 b a q2 q0 q2 q2 slide 33 Autômatos Finitos Determinísticos – Praticando... Exercício 5: Conjunto de todos as palavras com três zeros consecutivos. slide 34
  • 36. Autômatos Finitos Determinísticos – Praticando... Exercício 6: Conjunto de todas as palavras que não contém 101 como subpalavra. slide 35 Introdução à Teoria da Computação UAB/UFRPE Eduardo Araújo Oliveira http://sites.google.com/site/eaoufpe slide 36