SlideShare une entreprise Scribd logo
1  sur  58
Télécharger pour lire hors ligne
Linguagens Formais e
                       Autômatos
                                            P. Blauth Menezes
                                                     blauth@inf.ufrgs.br

                   Departamento de Informática Teórica
                     Instituto de Informática / UFRGS




Linguagens Formais e Autômatos - P. Blauth Menezes                         1
Linguagens Formais e Autômatos
                                                     P. Blauth Menezes

                      1       Introdução e Conceitos Básicos
                      2       Linguagens e Gramáticas
                      3       Linguagens Regulares
                      4       Propriedades das Linguagens Regulares
                      5       Autômato Finito com Saída
                      6       Linguagens Livres do Contexto
                      7       Propriedades e Reconhecimento das Linguagens
                              Livres do Contexto
                      8       Linguagens Recursivamente Enumeráveis e
                               Sensíveis ao Contexto
                      9       Hierarquia de Classes e Linguagens e Conclusões




Linguagens Formais e Autômatos - P. Blauth Menezes                              2
6 – Propriedades e
           Reconhecimento das LLC
     7.1 Propriedades das LLC
         7.1.1 Investigação se é LLC
         7.1.2 Operações Fechadas sobre as LLC
         7.1.3 Investigação se é Vazia, Finita ou Infinita
     7.2 Algoritmos de Reconhecimento
         7.2.1 Autômato com Pilha como Reconhecedor
         7.2.2 Algoritmo de Cocke-Younger-Kasami
         7.2.3 Algoritmo de Early


Linguagens Formais e Autômatos - P. Blauth Menezes           3
7 – Propriedades e
           Reconhecimento das LLC
Linguagens Formais e Autômatos - P. Blauth Menezes   4
7 Propriedades e
  Reconhecimento das LLC
◆    A Classe das LLC
     • mais geral que a das Regulares

     • mas ainda é relativamente restrita




Linguagens Formais e Autômatos - P. Blauth Menezes   5
◆    Fácil definir linguagens que não são LLC
     • Palavra duplicada
        ∗ { ww  w é palavra sobre { a, b } }
        ∗ analogia com questões similares de linguagens de programação
        ∗ exemplo: declaração de uma variável antes do seu uso

     • Triplo balanceamento
        ∗ { anbncn  n ≥ 0 }
        ∗ importante limitação das LLC
        ∗ (propositalmente) incomum nas linguagens de programação
        ∗ se-então-senão é uma estrutura deste tipo? Exercício

     • usando Autômato com Pilha
        ∗ fácil intuir por que não são LLC


Linguagens Formais e Autômatos - P. Blauth Menezes                   6
◆    Assim
     • como determinar se uma linguagem é LLC?

     • é fechada para operações
        ∗ união?
        ∗ intersecção?
        ∗ concatenação?
        ∗ complemento?

     • como verificar se uma linguagem livre do contexto é
        ∗ infinita
        ∗ finita (ou até mesmo vazia)?




Linguagens Formais e Autômatos - P. Blauth Menezes           7
◆    Algumas questões não possuem solução
     computacional
     • não existe algoritmo capaz de
        ∗ analisar duas LLC quaisquer
        ∗ concluir se são iguais ou diferentes

◆    Uma palavra pertence ou não a uma linguagem ?
     • uma das principais questões relacionadas com LF

◆    Algoritmos de reconhecimento
     • válidos para qualquer linguagem da classe
     • importante: quantidade de recursos que o algoritmo necessita
        ∗ tempo & espaço


Linguagens Formais e Autômatos - P. Blauth Menezes                    8
◆    Algoritmos construídos a partir de uma GLC
     • Autômato com Pilha Descendente
     • Algoritmo de Cocke-Younger-Kasami
     • Algoritmo de Early

◆    Reconhecedores que usam autômato com pilha
     • muito simples
     • em geral, ineficientes
     • tempo de processamento é proporcional a kw
        ∗ w palavra de entrada
        ∗ k depende do autômato




Linguagens Formais e Autômatos - P. Blauth Menezes    9
◆    Existem algoritmos mais eficientes
     • não baseados em AP
        ∗ tempo de processamento proporcional a w3
        ∗ até menos

     • tempo proporcional a w3: não é provado
        ∗ se é efetivamente necessário
        ∗ para que um algoritmo genérico reconheça LLC




Linguagens Formais e Autômatos - P. Blauth Menezes       10
6 – Propriedades e
           Reconhecimento das LLC
     7.1 Propriedades das LLC
         7.1.1 Investigação se é LLC
         7.1.2 Operações Fechadas sobre as LLC
         7.1.3 Investigação se é Vazia, Finita ou Infinita
     7.2 Algoritmos de Reconhecimento
         7.2.1 Autômato com Pilha como Reconhecedor
         7.2.2 Algoritmo de Cocke-Younger-Kasami
         7.2.3 Algoritmo de Early


Linguagens Formais e Autômatos - P. Blauth Menezes           11
7.1 Propriedades das LLC
7.1.1             Investigação se é LLC
◆    Para mostrar que é LLC
     • expressá-la usando os formalismos livre do contexto
        ∗ Gramática Livre do Contexto
        ∗ Autômato com Pilha

◆    Demonstração de que não é LLC
     • realizada caso a caso
     • Lema do Bombeamento para as LLC
        ∗ útil no estudo das propriedades
        ∗ pode ser usado para verificar se não é LLC

Linguagens Formais e Autômatos - P. Blauth Menezes           12
Teorema: Bombeamento para as LLC
Se L é uma LLC, então

     • existe uma constante n tal que
     • para qualquer palavra w ∈ L onde w ≥ n,
     • w pode ser definida como w = u x v y z
        ∗ x v y ≤ n,
        ∗ x y ≥ 1
     • para todo i ≥ 0, u xi v yi z é palavra de L

Prova:
Uma maneira é usando gramáticas na Forma Normal de Chomsky

     • se a gramática possui s variáveis
     • pode-se assumir que n = 2s
     • prova não será detalhada

Linguagens Formais e Autômatos - P. Blauth Menezes           13
◆    Para w = u x v y z tal que x y ≥ 1
     • x ou y pode ser a palavra vazia (mas não ambas)

     • resulta em bombeamentos não balanceados
        ∗ linguagens regulares

     • duplo bombeamento balanceado
        ∗ importante característica das LLC

     • “duplo balanceamento”: { anbn  n ≥ 0 }

     • “palavra e sua reversa”: { wwr  w pertence a { a, b }* }




Linguagens Formais e Autômatos - P. Blauth Menezes                 14
◆    Conclusões a partir dos lemas do bombeamento
     • regulares são capazes de expressar
        ∗ apenas bombeamentos
        ∗ sem qualquer balanceamento

     • livres do contexto são capazes de expressar
         ∗ bombeamentos balanceados
         ∗ dois a dois

     • livres do contexto não são capazes de expressar
         ∗ triplo bombeamento balanceado




Linguagens Formais e Autômatos - P. Blauth Menezes       15
Exp: Triplo Balanceamento - L = { an bn cn  n ≥ 0 }
Prova por absurdo. Suponha que L é LLC
Então existe uma gramática na Forma Normal de Chomsky G
  • com s variáveis
  • gera palavras não-vazias de L
  • sejam r = 2s e w = ar br cr

Pelo bombeamento, w pode ser definida como w = u x v y z
  • x v y ≤ r
  • x y ≥ 1
  • para todo i ≥ 0, u xi v yi z é palavra de L

Absurdo!!!.

     • Por que?

Linguagens Formais e Autômatos - P. Blauth Menezes         16
De fato, como x v y ≤ r

     • não é possível supor que x y possui símbolos a e c

     • quaisquer ocorrências de a e c
        ∗ estão separadas por, pelo menos, r ocorrências de b

     • x y jamais possuirá ocorrências de a, b e c simultaneamente
        ∗ aplicação do bombeamento
        ∗ pode desbalancear as ocorrências de a, b e c




Linguagens Formais e Autômatos - P. Blauth Menezes                   17
6 – Propriedades e
           Reconhecimento das LLC
     7.1 Propriedades das LLC
         7.1.1 Investigação se é LLC
         7.1.2 Operações Fechadas sobre as LLC
         7.1.3 Investigação se é Vazia, Finita ou Infinita
     7.2 Algoritmos de Reconhecimento
         7.2.1 Autômato com Pilha como Reconhecedor
         7.2.2 Algoritmo de Cocke-Younger-Kasami
         7.2.3 Algoritmo de Early


Linguagens Formais e Autômatos - P. Blauth Menezes           18
7.1.2             Operações Fechadas sobre as LLC
◆    Operações sobre linguagens podem ser usadas para
     • construir novas linguagens
        ∗ a partir de linguagens conhecidas
        ∗ definindo-se uma álgebra

     • provar propriedades
     • construir algoritmos

◆    Classe das LLC
     •   União ✔
     •   concatenação ✔
     •   intersecção ✘
     •   complemento ✘

Linguagens Formais e Autômatos - P. Blauth Menezes      19
Teorema: Operações Fechadas sobre LLC
     • União
     • Concatenação

Prova:
União: (direta)                                      AP + não-determinismo (GLC: exercício)

Suponha L1 e L2, LLC. Então, existem AP

    M1 = (Σ1, Q1, δ1, q01, F1, V1)                      e   M2 = (Σ2, Q2, δ2, q02, F2, V2)

tais que ACEITA(M1) = L1 e ACEITA(M2) = L2




Linguagens Formais e Autômatos - P. Blauth Menezes                                           20
Seja M3                                (suponha que Q1 ∩ Q2 ∩ { q0 } = ∅ e V1 ∩ V2 = ∅)

            M3 = (Σ1 ∪ Σ2, Q1 ∪ Q2 ∪ { q0 }, δ3, q0, F1 ∪ F2, V1 ∪ V2)



                                            ( ε, ε, ε)
                                                         q01      M1

                                      q0


                                                         q02      M2
                                            ( ε, ε, ε)

Claramente, M3 reconhece L1 ∪ L2

Linguagens Formais e Autômatos - P. Blauth Menezes                                   21
Concatenação: (direta)                                                 GLC (AP: exercício)

Suponha L1 e L2, LLC. Então, existem GLC

                    G1 = (V1, T1, P1, S1)            e     G2 = (V2, T2, P2, S2)

tais que GERA(G1) = L1 e GERA(G2) = L2

Seja G3                                                  (suponha que V1 ∩ V2 ∩ { S } = ∅)

            G3 = (V1 ∪ V2 ∪ { S }, T1 ∪ T2, P1 ∪ P2 ∪ { S → S1 S2 }, S)

Claramente qualquer palavra gerada por G3 terá, como

     • prefixo, uma palavra de L1
     • sufixo, uma palavra de L2

Logo, L1 L2 é LLC

Linguagens Formais e Autômatos - P. Blauth Menezes                                      22
◆    Teorema a seguir mostra que a Classe das LLC não é
     fechada para
     • intersecção
     • complemento

◆    Aparentemente, uma contradição
     • foi verificado que, se L é LLC
        ∗ existe AP M tal que ACEITA(M) = L e REJEITA(M) = ~L
        ∗ rejeita qualquer palavra que não pertença a L

     • teorema a seguir
        ∗ se L é LLC
        ∗ não se pode afirmar que ~L também é LLC




Linguagens Formais e Autômatos - P. Blauth Menezes              23
◆    Assim
     • é possível um AP rejeitar o complemento de uma LLC
     • embora nem sempre seja possível aceitar o complemento

◆    Explicação intuitiva: AP
     • aceita se pelo menos um dos caminhos alternativos aceita
                                                     aceita


                                                              rejeita

                                                              ...
                                                                        rejeita


Linguagens Formais e Autômatos - P. Blauth Menezes                                24
◆    Inversão de aceita/rejeita
     • situação continua sendo de aceitação



                                                     rejeita


                                                               aceita

                                                               ...
                                                                        aceita



Linguagens Formais e Autômatos - P. Blauth Menezes                               25
Teorema: Operações Não-Fechadas sobre Linguagens
         Livres do Contexto
     • Intersecção
     • Complemento

Prova:
Intersecção: (direta)                                                       contra-exemplo
Sejam LLC

 L1 = { anbncm  n ≥ 0 e m ≥ 0 }                       e    L2 = { ambncn  n ≥ 0 e m ≥ 0 }

Intersecção de L1 com L2, não é LLC

                                             L3 = { anbncn  n ≥ 0 }



Linguagens Formais e Autômatos - P. Blauth Menezes                                        26
Complemento: (direta)                                Conseqüência direta (por quê?)

Intersecção pode ser representada em termos da união e do
complemento

Classe das LLC não é fechada para a operação de intersecção

     • como é fechada para a união
     • não se pode afirmar que é fechada para o complemento




Linguagens Formais e Autômatos - P. Blauth Menezes                               27
6 – Propriedades e
           Reconhecimento das LLC
     7.1 Propriedades das LLC
         7.1.1 Investigação se é LLC
         7.1.2 Operações Fechadas sobre as LLC
         7.1.3 Investigação se é Vazia, Finita ou Infinita
     7.2 Algoritmos de Reconhecimento
         7.2.1 Autômato com Pilha como Reconhecedor
         7.2.2 Algoritmo de Cocke-Younger-Kasami
         7.2.3 Algoritmo de Early


Linguagens Formais e Autômatos - P. Blauth Menezes           28
7.1.3             Investigação se é Vazia, Finita ou Infinita


Teorema: LLC Vazia, Finita ou Infinita
Prova: Suponha L LLC
Vazia: (direta)
Seja G = (V, T, P, S), GLC tal que GERA(G) = L
Seja GSI = (VSI, TSI, PSI, S)

     • equivalente a G
     • excluindo os símbolos inúteis

Se PSI for vazio, então L é vazia



Linguagens Formais e Autômatos - P. Blauth Menezes              29
Finita e Infinita: (direta)
Seja G = (V, T, P, S) GLC tal que GERA(G) = L
Seja GFNC = (VFNC, TFNC, PFNC, S) equivalente na FN de Chomsky
Se existe A variável tal que

     • A → BC                                                     A no lado esquerdo
     • X → YA ou X → AY                                              A no lado direito
     • existe um ciclo em A

                                                     A ⇒+ α A β

     • A é capaz de gerar palavras de qualquer tamanho
     • L é infinita

Caso não exista tal A, então L é finita


Linguagens Formais e Autômatos - P. Blauth Menezes                                  30
6 – Propriedades e
           Reconhecimento das LLC
     7.1 Propriedades das LLC
         7.1.1 Investigação se é LLC
         7.1.2 Operações Fechadas sobre as LLC
         7.1.3 Investigação se é Vazia, Finita ou Infinita
     7.2 Algoritmos de Reconhecimento
         7.2.1 Autômato com Pilha como Reconhecedor
         7.2.2 Algoritmo de Cocke-Younger-Kasami
         7.2.3 Algoritmo de Early


Linguagens Formais e Autômatos - P. Blauth Menezes           31
7.2 Algoritmos de Reconhecimento
◆    Podem ser classificados como
     • Top-Down ou Preditivo
        ∗ constrói uma árvore de derivação
        ∗ a partir da raiz (símbolo inicial da gramática)
        ∗ com ramos em direção às folhas (terminais)

     • Bottom-Up
        ∗ oposto do top-down
        ∗ parte das folhas
        ∗ construindo a árvore de derivação em direção à raiz



Linguagens Formais e Autômatos - P. Blauth Menezes              32
6 – Propriedades e
           Reconhecimento das LLC
     7.1 Propriedades das LLC
         7.1.1 Investigação se é LLC
         7.1.2 Operações Fechadas sobre as LLC
         7.1.3 Investigação se é Vazia, Finita ou Infinita
     7.2 Algoritmos de Reconhecimento
         7.2.1 Autômato com Pilha como Reconhecedor
         7.2.2 Algoritmo de Cocke-Younger-Kasami
         7.2.3 Algoritmo de Early


Linguagens Formais e Autômatos - P. Blauth Menezes           33
7.2.1             Autômato com Pilha como Reconhecedor
◆    Reconhecedores usando AP
     • construção relativamente simples e imediata

     • relação quase direta entre produções e as transições do AP

     • algoritmos
        ∗ top-down
        ∗ simula derivação mais à esquerda
        ∗ não-determinismo: produções alternativas da gramática




Linguagens Formais e Autômatos - P. Blauth Menezes                  34
◆    Foi visto que qq LLC pode ser especificada por um AP
     • a partir de uma Gramática na Forma Normal de Greibach
        ∗ cada produção gera exatamente um terminal
        ∗ geração de w: w etapas de derivação

     • cada variável: pode ter diversas produções associadas
        ∗ AP testa as diversas alternativas
        ∗ número de passos para reconhecer w: proporcional a kw
        ∗ aproximação de k: metade da média de produções das variáveis

     • portanto, o AP construído
        ∗ tempo de reconhecimento proporcional ao expoente em w
        ∗ pode ser muito ineficiente para entradas mais longas




Linguagens Formais e Autômatos - P. Blauth Menezes                  35
◆    Autômato com Pilha Descendente
     • forma alternativa de construir AP

     • igualmente simples e com o mesmo nível de eficiência
        ∗ a partir de uma GLC sem recursão à esquerda
        ∗ simula a derivação mais à esquerda

     • algoritmo
        ∗ inicialmente, empilha o símbolo inicial
        ∗ topo = variável: substitui, (não-determinismo), por todas as
          produções da variável
        ∗ topo = terminal: testa se é igual ao próximo símbolo da entrada




Linguagens Formais e Autômatos - P. Blauth Menezes                          36
Def: Algoritmo: Autômato com Pilha Descendente
GLC G = (V, T, P, S), sem recursão à esquerda

                             M = (T, { q0, q1, qf }, δ, q0, { qf }, V ∪ T)

     •   δ(q0, ε, ε) = { (q1, S) }
     •   δ(q1, ε, A) = { (q1, α)  A → α ∈ P }                                             A de V
     •   δ(q1, a, a) = { (q1, ε) }                                                         a de T
     •   δ(q1, ?, ?) = { (qf, ε) }

                                            (ε, ε, S)                     (?, ?, ε)
                               q0                                 q1                  qf



                                                     (ε, A1, α1) ... (ε, Au, αu)
                                                      (a1, a1, ε) ... (av, av, ε)

Linguagens Formais e Autômatos - P. Blauth Menezes                                             37
Exp: AP Descendente: Duplo Balanceamento
L = { anbn  n ≥ 1 }

     • G = ({ S }, { a, b }, P, S)                                  GLC sem recursão à esquerda
     • P = { S → aSb  ab }

Autômato com pilha descendente

                     M = ({ a, b }, { q0, q1, qf }, δ, q0, { qf }, { S, a, b })

                                          (ε, ε, S)                    (?, ?, ε)
                           q0                                  q1                   qf



                                                     (ε, S, aSb), (ε, S, ab)
                                                        (a, a, ε), (b, b, ε)

Linguagens Formais e Autômatos - P. Blauth Menezes                                           38
6 – Propriedades e
           Reconhecimento das LLC
     7.1 Propriedades das LLC
         7.1.1 Investigação se é LLC
         7.1.2 Operações Fechadas sobre as LLC
         7.1.3 Investigação se é Vazia, Finita ou Infinita
     7.2 Algoritmos de Reconhecimento
         7.2.1 Autômato com Pilha como Reconhecedor
         7.2.2 Algoritmo de Cocke-Younger-Kasami
         7.2.3 Algoritmo de Early


Linguagens Formais e Autômatos - P. Blauth Menezes           39
7.1.2             Algoritmo de Cocke-Younger-Kasami
◆    Algoritmo de Cocke-Younger-Kasami
     • desenvolvido independentemente por J. Cocke, D. H. Younger e T.
       Kasami, em 1965

     • a partir de uma GLC na Forma Normal de Chomsky
        ∗ gera bottom-up todas as árvores de derivação da entrada w
        ∗ tempo de processamento proporcional a w3

     • idéia básica
        ∗ tabela triangular de derivação
        ∗ célula: raízes que podem gerar a correspondente sub-árvore




Linguagens Formais e Autômatos - P. Blauth Menezes                     40
Def: Algoritmo de Cocke-Younger-Kasami ou CYK
     • G = (V, T, P, S)                                             GLC na Forma Normal de Chomsky
     • w = a1a2…an entrada                                                      Vrs células da tabela


                                                                     conjunto de raízes para as
                                                                     árvores de derivação da
                                                                     subpalavra a2...an
                            s




                                        a1           a2       ...    an


                                                          r


Linguagens Formais e Autômatos - P. Blauth Menezes                                                 41
Etapa 1: variáveis que geram diretamente terminais (A → a)

  para             r variando de 1 até n
  faça             Vr1 = { A  A → ar ∈ P }

Etapa 2: produções que geram duas variáveis (A → BC)

  para  s variando de 2 até n
  faça  para      r variando de 1 até n - s + 1
     faça  Vr s   =   ∅
        para      k variando de 1 até s - 1
        faça      Vrs  = Vrs  ∪ { A  A → BC ∈ P, B ∈ Vrk
                  e C ∈ V(r+k)(s-k) }
     • limite de iteração para r é (n - s + 1): a tabela é triangular
     • Vrk e V(r+k)(s-k) são as raízes das sub-árvores de Vrs
     • célula vazia: não gera qualquer sub-árvore
Linguagens Formais e Autômatos - P. Blauth Menezes                      42
Etapa 3: condição de aceitação da entrada.

     • símbolo inicial pertence à V1n                (raiz de toda palavra)
        ∗ aceita




Linguagens Formais e Autômatos - P. Blauth Menezes                       43
Exp: Algoritmo de Cocke-Younger-Kasami
     • G = ({ S, A }, { a, b }, P, S)
     • P = { S → AA  AS  b, A → SA  AS  a }

                        S,A                          Como S é raiz da árvore de derivação,
                                                     a entrada é aceita

                        S,A        S,A


                        S,A         S        S,A


                        S,A         A          S     S,A


                          A         S          A     A     S


                          a          b         a      a    b


Linguagens Formais e Autômatos - P. Blauth Menezes                                           44
6 – Propriedades e
           Reconhecimento das LLC
     7.1 Propriedades das LLC
         7.1.1 Investigação se é LLC
         7.1.2 Operações Fechadas sobre as LLC
         7.1.3 Investigação se é Vazia, Finita ou Infinita
     7.2 Algoritmos de Reconhecimento
         7.2.1 Autômato com Pilha como Reconhecedor
         7.2.2 Algoritmo de Cocke-Younger-Kasami
         7.2.3 Algoritmo de Early


Linguagens Formais e Autômatos - P. Blauth Menezes           45
7.1.3             Algoritmo de Early
◆    Algoritmo de Early
     • desenvolvido em 1968

     • possivelmente o mais rápido algoritmo para LLC

     • tempo de processamento proporcional a
        ∗ em geral: w3
        ∗ gramáticas não-ambíguas: w2
        ∗ muitas gramáticas de interesse prático: w




Linguagens Formais e Autômatos - P. Blauth Menezes      46
◆    Algoritmo top-down
     • a partir de uma GLC sem produções vazias

     • parte do símbolo inicial

     • executa sempre a derivação mais à esquerda

     • cada ciclo gera um terminal
        ∗ comparado com o símbolo da entrada
        ∗ sucesso -> construção do conjunto de produções que,
          potencialmente, pode gerar o próximo símbolo




Linguagens Formais e Autômatos - P. Blauth Menezes              47
Def: Algoritmo de Early
     • G = (V, T, P, S)                              GLC sem produções vazias

     • w = a1a2…an                                      palavra a ser verificada

     • marcador "•”
        ∗ antecedendo a posição, em cada produção, que será analisada
        ∗ na tentativa de gerar o próximo símbolo terminal

     • sufixo "/u" adicionado a cada produção
        ∗ indica o u-ésimo ciclo em que passou a ser considerada




Linguagens Formais e Autômatos - P. Blauth Menezes                            48
Etapa 1: construção de D0: primeiro conjunto de produções

     • produções que partem de S                                     (1)

     • produções que podem ser aplicadas                             (2)
        ∗ em sucessivas derivações mais à esquerda (a partir de S)

  D0 = ∅
  para   toda S → α ∈ P                                              (1)
  faça   D0 = D0 ∪ { S → •α/0 }
  repita para   toda A → •Bβ/0 ∈ D0                                  (2)
      faça   para toda B → φ ∈ P
         faça   D0 = D0 ∪ { B → •φ/0 }
  até que o cardinal de D0 não aumente



Linguagens Formais e Autômatos - P. Blauth Menezes                    49
Etapa 2: construção dos demais conjuntos de produção
   • n = w conjuntos de produção a partir de D0
   • ao gerar ar, constrói Dr: produções que podem gerar ar+1

  para   r variando de 1 até n                                  (1)
  faça   Dr = ∅;
     para    toda A → α•arβ/s ∈ Dr-1                            (2)
     faça    Dr = Dr ∪ { A → αar•β/s };
     repita
         para    toda A → α•Bβ/s ∈ Dr                           (3)
         faça    para toda B → φ ∈ P
             faça Dr = Dr ∪ { B → •φ/r }
         para    toda A → α•/s de Dr                            (4)
         faça    para toda B → β•Aφ/k ∈ Ds
             faça    Dr = Dr ∪ { B → βA•φ/k }
     até que o cardinal de Dr não aumente

Linguagens Formais e Autômatos - P. Blauth Menezes               50
(1) cada ciclo gera um conjunto de produções Dr

(2) gera o símbolo ar

(3) produções que podem derivar o próximo símbolo

(4) uma subpalavra de w foi reduzida à variável A
      ∗ inclui em Dr todas as produções de Ds que referenciaram •A;




Linguagens Formais e Autômatos - P. Blauth Menezes                    51
Etapa 3: condição de aceitação da entrada.

     • uma produção da forma S → α•/0 pertence a Dn
        ∗ w foi aceita

     • S → α•/0 é uma produção que
        ∗ parte do símbolo inicial S
        ∗ foi incluída em D0 ("/0")
        ∗ todo o lado direito da produção foi analisado com sucesso
        ∗ ("•" está no final de α)




Linguagens Formais e Autômatos - P. Blauth Menezes                    52
◆    Otimização do Algoritmo de Early
     • ciclos repita-até
        ∗ podem ser restritos exclusivamente às produções recentemente
          incluídas em Dr ou em D0 ainda não-analisadas.




Linguagens Formais e Autômatos - P. Blauth Menezes                   53
Exp: Algoritmo de Early: Expressão Simples
"Expressão simples" da linguagem Pascal

     • G = ({ E, T, F }, { +, ∗, [, ], x }, P, E), na qual:
     • P = { E → T  E+T, T → F  T∗F, F → [E]  x }

Reconhecimento da palavra x∗x

D0:

     •   E → •T/0                                                 produções que partem
     •   E → •E+T/0                                                     do símbolo inicial
     •   T → •F/0                                    produções que podem ser aplicadas
     •   T → •T∗F/0                                       em derivação mais à esquerda
     •   F → •[E]/0                                            a partir do símbolo inicial
     •   F → •x/0

Linguagens Formais e Autômatos - P. Blauth Menezes                                      54
D1: reconhecimento de x em x∗x

     •   F → x•/0                                                                 x foi reduzido a F
     •   T → F•/0                                             inclui todas as produções de D0 que
     •   T → T•∗F/0                                       referenciaram •F direta ou indiretamente
     •   E → T•/0                                                          movendo o marcador "•"
     •   E → E•+T/0                                                       um símbolo para a direita



D2: reconhecimento de ∗ em x∗x

     • T → T∗•F/0                                           gerou ∗; o próximo será gerado por F
     • F → •[E]/2                                             inclui todas as produções de P que
     • F → •x/2                                      podem gerar o próximo terminal a partir de F•



Linguagens Formais e Autômatos - P. Blauth Menezes                                                55
D3: reconhecimento de x em x∗x

     •   F → x•/2                                       x foi reduzido à F
     •   T → T∗F•/0 incluído de D2 (pois F → x•/2); entrada reduzida à T
     •   E → T•/0 incluído de D0 (pois T → T*F•/0); entrada reduzida à E
     •   T → T•∗F/0                     incluído de D0 (pois T → T∗F•/0)
     •   E → E•+T/0                        incluído de D0 (pois E → T•/0)



Como w = x∗x foi reduzida a E e como E → T•/0 pertence a D3

     • entrada aceita




Linguagens Formais e Autômatos - P. Blauth Menezes                      56
Linguagens Formais e Autômatos
                                                     P. Blauth Menezes

                      1       Introdução e Conceitos Básicos
                      2       Linguagens e Gramáticas
                      3       Linguagens Regulares
                      4       Propriedades das Linguagens Regulares
                      5       Autômato Finito com Saída
                      6       Linguagens Livres do Contexto
                      7       Propriedades e Reconhecimento das Linguagens
                              Livres do Contexto
                      8       Linguagens Recursivamente Enumeráveis e
                               Sensíveis ao Contexto
                      9       Hierarquia de Classes e Linguagens e Conclusões

Linguagens Formais e Autômatos - P. Blauth Menezes                              57
Linguagens Formais e
                       Autômatos
                                            P. Blauth Menezes
                                                     blauth@inf.ufrgs.br

                   Departamento de Informática Teórica
                     Instituto de Informática / UFRGS




Linguagens Formais e Autômatos - P. Blauth Menezes                         58

Contenu connexe

Tendances

8ano 08 atividades de fixacao.pdf de música cpii
8ano 08 atividades de fixacao.pdf de música cpii8ano 08 atividades de fixacao.pdf de música cpii
8ano 08 atividades de fixacao.pdf de música cpiiFabiana Rabello
 
Dança na escola expressão pelo movimento
Dança na escola expressão pelo movimentoDança na escola expressão pelo movimento
Dança na escola expressão pelo movimentoMarleila Barros
 
3. PPT - Tomada de Decisão Responsável.pptx
3. PPT - Tomada de Decisão Responsável.pptx3. PPT - Tomada de Decisão Responsável.pptx
3. PPT - Tomada de Decisão Responsável.pptxErlissonPinheiro
 
arte-planejamento-6-ano-www.leonardoportal.com-.docx
arte-planejamento-6-ano-www.leonardoportal.com-.docxarte-planejamento-6-ano-www.leonardoportal.com-.docx
arte-planejamento-6-ano-www.leonardoportal.com-.docxJoaoAlves319493
 
Projeto interdisciplinar flash mob
Projeto interdisciplinar flash mobProjeto interdisciplinar flash mob
Projeto interdisciplinar flash mobpibiduergsmontenegro
 
Projeto metodo fonico
Projeto metodo fonicoProjeto metodo fonico
Projeto metodo fonicoNeemias
 
A arte urbana novo..22
A arte urbana novo..22A arte urbana novo..22
A arte urbana novo..22Turmasthera
 
Linguagem lingua e código
Linguagem lingua  e códigoLinguagem lingua  e código
Linguagem lingua e códigoPaulinha Iacks
 
Tabelas com critérios de avaliação da atividade educacional
Tabelas com critérios  de avaliação da atividade educacionalTabelas com critérios  de avaliação da atividade educacional
Tabelas com critérios de avaliação da atividade educacionalGloria Maria Silva
 
Plano de aula 1: Pinturas que Contam Histórias I: Arte Rupestre, Arte Egípcia...
Plano de aula 1: Pinturas que Contam Histórias I: Arte Rupestre, Arte Egípcia...Plano de aula 1: Pinturas que Contam Histórias I: Arte Rupestre, Arte Egípcia...
Plano de aula 1: Pinturas que Contam Histórias I: Arte Rupestre, Arte Egípcia...Ana Beatriz Cargnin
 
Prática indissociabilidade ensino, pesquisa e extensão
Prática   indissociabilidade ensino, pesquisa e extensãoPrática   indissociabilidade ensino, pesquisa e extensão
Prática indissociabilidade ensino, pesquisa e extensãoAndréa Kochhann
 
Pauta formativa pnaic 7º encontro
Pauta formativa pnaic   7º encontroPauta formativa pnaic   7º encontro
Pauta formativa pnaic 7º encontrotaboao
 
Competencias socio emocionais e o projeto de vida
Competencias socio emocionais e o projeto de vidaCompetencias socio emocionais e o projeto de vida
Competencias socio emocionais e o projeto de vidaDilaonlemere
 
As capacidades linguísticas da alfabetização
As capacidades linguísticas da alfabetizaçãoAs capacidades linguísticas da alfabetização
As capacidades linguísticas da alfabetizaçãoproletramentoalfa
 
Parte 2 linguística geral chomsky - apresentação 2012
Parte 2   linguística geral chomsky - apresentação 2012Parte 2   linguística geral chomsky - apresentação 2012
Parte 2 linguística geral chomsky - apresentação 2012Mariana Correia
 
Norma padrão brasileira desembaraçando alguns nós - carlos al
Norma padrão brasileira   desembaraçando alguns nós - carlos alNorma padrão brasileira   desembaraçando alguns nós - carlos al
Norma padrão brasileira desembaraçando alguns nós - carlos alMarina Panciarelli
 
Aula07- 7º Ano - viagem no tempo: da caverna para o meu quarto
Aula07- 7º Ano - viagem no tempo: da caverna para o meu quartoAula07- 7º Ano - viagem no tempo: da caverna para o meu quarto
Aula07- 7º Ano - viagem no tempo: da caverna para o meu quartoLindomar Araujo
 

Tendances (20)

8ano 08 atividades de fixacao.pdf de música cpii
8ano 08 atividades de fixacao.pdf de música cpii8ano 08 atividades de fixacao.pdf de música cpii
8ano 08 atividades de fixacao.pdf de música cpii
 
Dança na escola expressão pelo movimento
Dança na escola expressão pelo movimentoDança na escola expressão pelo movimento
Dança na escola expressão pelo movimento
 
3. PPT - Tomada de Decisão Responsável.pptx
3. PPT - Tomada de Decisão Responsável.pptx3. PPT - Tomada de Decisão Responsável.pptx
3. PPT - Tomada de Decisão Responsável.pptx
 
arte-planejamento-6-ano-www.leonardoportal.com-.docx
arte-planejamento-6-ano-www.leonardoportal.com-.docxarte-planejamento-6-ano-www.leonardoportal.com-.docx
arte-planejamento-6-ano-www.leonardoportal.com-.docx
 
Projeto interdisciplinar flash mob
Projeto interdisciplinar flash mobProjeto interdisciplinar flash mob
Projeto interdisciplinar flash mob
 
Música popular
Música popularMúsica popular
Música popular
 
Projeto metodo fonico
Projeto metodo fonicoProjeto metodo fonico
Projeto metodo fonico
 
Word:Projeto Interdisciplinar com músicas- Vem cantar comigo! – Modelo editável
Word:Projeto Interdisciplinar com músicas- Vem cantar comigo! – Modelo editávelWord:Projeto Interdisciplinar com músicas- Vem cantar comigo! – Modelo editável
Word:Projeto Interdisciplinar com músicas- Vem cantar comigo! – Modelo editável
 
A arte urbana novo..22
A arte urbana novo..22A arte urbana novo..22
A arte urbana novo..22
 
Linguagem lingua e código
Linguagem lingua  e códigoLinguagem lingua  e código
Linguagem lingua e código
 
Tabelas com critérios de avaliação da atividade educacional
Tabelas com critérios  de avaliação da atividade educacionalTabelas com critérios  de avaliação da atividade educacional
Tabelas com critérios de avaliação da atividade educacional
 
Plano de aula 1: Pinturas que Contam Histórias I: Arte Rupestre, Arte Egípcia...
Plano de aula 1: Pinturas que Contam Histórias I: Arte Rupestre, Arte Egípcia...Plano de aula 1: Pinturas que Contam Histórias I: Arte Rupestre, Arte Egípcia...
Plano de aula 1: Pinturas que Contam Histórias I: Arte Rupestre, Arte Egípcia...
 
Prática indissociabilidade ensino, pesquisa e extensão
Prática   indissociabilidade ensino, pesquisa e extensãoPrática   indissociabilidade ensino, pesquisa e extensão
Prática indissociabilidade ensino, pesquisa e extensão
 
Pauta formativa pnaic 7º encontro
Pauta formativa pnaic   7º encontroPauta formativa pnaic   7º encontro
Pauta formativa pnaic 7º encontro
 
Competencias socio emocionais e o projeto de vida
Competencias socio emocionais e o projeto de vidaCompetencias socio emocionais e o projeto de vida
Competencias socio emocionais e o projeto de vida
 
As capacidades linguísticas da alfabetização
As capacidades linguísticas da alfabetizaçãoAs capacidades linguísticas da alfabetização
As capacidades linguísticas da alfabetização
 
Parte 2 linguística geral chomsky - apresentação 2012
Parte 2   linguística geral chomsky - apresentação 2012Parte 2   linguística geral chomsky - apresentação 2012
Parte 2 linguística geral chomsky - apresentação 2012
 
Norma padrão brasileira desembaraçando alguns nós - carlos al
Norma padrão brasileira   desembaraçando alguns nós - carlos alNorma padrão brasileira   desembaraçando alguns nós - carlos al
Norma padrão brasileira desembaraçando alguns nós - carlos al
 
Aula07- 7º Ano - viagem no tempo: da caverna para o meu quarto
Aula07- 7º Ano - viagem no tempo: da caverna para o meu quartoAula07- 7º Ano - viagem no tempo: da caverna para o meu quarto
Aula07- 7º Ano - viagem no tempo: da caverna para o meu quarto
 
Educação e novas tecnologias slides
Educação e novas tecnologias slidesEducação e novas tecnologias slides
Educação e novas tecnologias slides
 

Similaire à 07 propriedades e reconhecimento das linguagens livres do contexto

Similaire à 07 propriedades e reconhecimento das linguagens livres do contexto (10)

04 propriedades das linguagens regulares
04   propriedades das linguagens regulares04   propriedades das linguagens regulares
04 propriedades das linguagens regulares
 
01 introducao e conceitos basicos
01   introducao e conceitos basicos01   introducao e conceitos basicos
01 introducao e conceitos basicos
 
09 hierarquia de classes e linguagens e conclusoes
09   hierarquia de classes e linguagens e conclusoes09   hierarquia de classes e linguagens e conclusoes
09 hierarquia de classes e linguagens e conclusoes
 
06 linguagens livres do contexto
06   linguagens livres do contexto06   linguagens livres do contexto
06 linguagens livres do contexto
 
Introdução a Programação em Lógica e Prolog
Introdução a Programação em Lógica e PrologIntrodução a Programação em Lógica e Prolog
Introdução a Programação em Lógica e Prolog
 
03 linguagens regulares
03   linguagens regulares03   linguagens regulares
03 linguagens regulares
 
05 automato finito com saida
05   automato finito com saida05   automato finito com saida
05 automato finito com saida
 
Linguagens Formais
Linguagens FormaisLinguagens Formais
Linguagens Formais
 
02 linguagens e gramaticas
02   linguagens e gramaticas02   linguagens e gramaticas
02 linguagens e gramaticas
 
O corretor gramatical CoGrOO - IX Evidosol
O corretor gramatical CoGrOO - IX EvidosolO corretor gramatical CoGrOO - IX Evidosol
O corretor gramatical CoGrOO - IX Evidosol
 

Plus de Computação Depressão

Sd08 (si) sistemas de arquivos distribuídos
Sd08 (si)   sistemas de arquivos distribuídosSd08 (si)   sistemas de arquivos distribuídos
Sd08 (si) sistemas de arquivos distribuídosComputação Depressão
 
Sd02 (si) gerenciamento de entrada e saída
Sd02 (si)   gerenciamento de entrada e saídaSd02 (si)   gerenciamento de entrada e saída
Sd02 (si) gerenciamento de entrada e saídaComputação Depressão
 

Plus de Computação Depressão (20)

Sd08 (si) sistemas de arquivos distribuídos
Sd08 (si)   sistemas de arquivos distribuídosSd08 (si)   sistemas de arquivos distribuídos
Sd08 (si) sistemas de arquivos distribuídos
 
Sd06 (si) exclusão mútua
Sd06 (si)   exclusão mútuaSd06 (si)   exclusão mútua
Sd06 (si) exclusão mútua
 
Sd05 (si) relógios e sincronização
Sd05 (si)   relógios e sincronizaçãoSd05 (si)   relógios e sincronização
Sd05 (si) relógios e sincronização
 
Sd04 (si) comunicação em sd
Sd04 (si)   comunicação em sdSd04 (si)   comunicação em sd
Sd04 (si) comunicação em sd
 
Sd03 (si) conceitos básicos de sd
Sd03 (si)   conceitos básicos de sdSd03 (si)   conceitos básicos de sd
Sd03 (si) conceitos básicos de sd
 
Sd02 (si) gerenciamento de entrada e saída
Sd02 (si)   gerenciamento de entrada e saídaSd02 (si)   gerenciamento de entrada e saída
Sd02 (si) gerenciamento de entrada e saída
 
Sd01 (si) sistemas de arquivos
Sd01 (si)   sistemas de arquivosSd01 (si)   sistemas de arquivos
Sd01 (si) sistemas de arquivos
 
Sd07 (si) eleição
Sd07 (si)   eleiçãoSd07 (si)   eleição
Sd07 (si) eleição
 
Ufbamat2013
Ufbamat2013Ufbamat2013
Ufbamat2013
 
Ufbaingles2013
Ufbaingles2013Ufbaingles2013
Ufbaingles2013
 
Ufbagab mat 2013
Ufbagab mat 2013Ufbagab mat 2013
Ufbagab mat 2013
 
Ufbagab ingles2013
Ufbagab ingles2013Ufbagab ingles2013
Ufbagab ingles2013
 
Ufbagab fis 2013
Ufbagab fis 2013Ufbagab fis 2013
Ufbagab fis 2013
 
Ufbafisqui2013
Ufbafisqui2013Ufbafisqui2013
Ufbafisqui2013
 
Ufbagab qui 2013
Ufbagab qui 2013Ufbagab qui 2013
Ufbagab qui 2013
 
Questesdetecnologia ano2002
Questesdetecnologia ano2002Questesdetecnologia ano2002
Questesdetecnologia ano2002
 
Questesdematemtica ano2003
Questesdematemtica ano2003Questesdematemtica ano2003
Questesdematemtica ano2003
 
Questesdematemtica ano2002
Questesdematemtica ano2002Questesdematemtica ano2002
Questesdematemtica ano2002
 
Questesdefundamentos ano2003
Questesdefundamentos ano2003Questesdefundamentos ano2003
Questesdefundamentos ano2003
 
Questesdefundamentos ano2002
Questesdefundamentos ano2002Questesdefundamentos ano2002
Questesdefundamentos ano2002
 

07 propriedades e reconhecimento das linguagens livres do contexto

  • 1. Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1
  • 2. Linguagens Formais e Autômatos P. Blauth Menezes 1 Introdução e Conceitos Básicos 2 Linguagens e Gramáticas 3 Linguagens Regulares 4 Propriedades das Linguagens Regulares 5 Autômato Finito com Saída 6 Linguagens Livres do Contexto 7 Propriedades e Reconhecimento das Linguagens Livres do Contexto 8 Linguagens Recursivamente Enumeráveis e Sensíveis ao Contexto 9 Hierarquia de Classes e Linguagens e Conclusões Linguagens Formais e Autômatos - P. Blauth Menezes 2
  • 3. 6 – Propriedades e Reconhecimento das LLC 7.1 Propriedades das LLC 7.1.1 Investigação se é LLC 7.1.2 Operações Fechadas sobre as LLC 7.1.3 Investigação se é Vazia, Finita ou Infinita 7.2 Algoritmos de Reconhecimento 7.2.1 Autômato com Pilha como Reconhecedor 7.2.2 Algoritmo de Cocke-Younger-Kasami 7.2.3 Algoritmo de Early Linguagens Formais e Autômatos - P. Blauth Menezes 3
  • 4. 7 – Propriedades e Reconhecimento das LLC Linguagens Formais e Autômatos - P. Blauth Menezes 4
  • 5. 7 Propriedades e Reconhecimento das LLC ◆ A Classe das LLC • mais geral que a das Regulares • mas ainda é relativamente restrita Linguagens Formais e Autômatos - P. Blauth Menezes 5
  • 6. Fácil definir linguagens que não são LLC • Palavra duplicada ∗ { ww  w é palavra sobre { a, b } } ∗ analogia com questões similares de linguagens de programação ∗ exemplo: declaração de uma variável antes do seu uso • Triplo balanceamento ∗ { anbncn  n ≥ 0 } ∗ importante limitação das LLC ∗ (propositalmente) incomum nas linguagens de programação ∗ se-então-senão é uma estrutura deste tipo? Exercício • usando Autômato com Pilha ∗ fácil intuir por que não são LLC Linguagens Formais e Autômatos - P. Blauth Menezes 6
  • 7. Assim • como determinar se uma linguagem é LLC? • é fechada para operações ∗ união? ∗ intersecção? ∗ concatenação? ∗ complemento? • como verificar se uma linguagem livre do contexto é ∗ infinita ∗ finita (ou até mesmo vazia)? Linguagens Formais e Autômatos - P. Blauth Menezes 7
  • 8. Algumas questões não possuem solução computacional • não existe algoritmo capaz de ∗ analisar duas LLC quaisquer ∗ concluir se são iguais ou diferentes ◆ Uma palavra pertence ou não a uma linguagem ? • uma das principais questões relacionadas com LF ◆ Algoritmos de reconhecimento • válidos para qualquer linguagem da classe • importante: quantidade de recursos que o algoritmo necessita ∗ tempo & espaço Linguagens Formais e Autômatos - P. Blauth Menezes 8
  • 9. Algoritmos construídos a partir de uma GLC • Autômato com Pilha Descendente • Algoritmo de Cocke-Younger-Kasami • Algoritmo de Early ◆ Reconhecedores que usam autômato com pilha • muito simples • em geral, ineficientes • tempo de processamento é proporcional a kw ∗ w palavra de entrada ∗ k depende do autômato Linguagens Formais e Autômatos - P. Blauth Menezes 9
  • 10. Existem algoritmos mais eficientes • não baseados em AP ∗ tempo de processamento proporcional a w3 ∗ até menos • tempo proporcional a w3: não é provado ∗ se é efetivamente necessário ∗ para que um algoritmo genérico reconheça LLC Linguagens Formais e Autômatos - P. Blauth Menezes 10
  • 11. 6 – Propriedades e Reconhecimento das LLC 7.1 Propriedades das LLC 7.1.1 Investigação se é LLC 7.1.2 Operações Fechadas sobre as LLC 7.1.3 Investigação se é Vazia, Finita ou Infinita 7.2 Algoritmos de Reconhecimento 7.2.1 Autômato com Pilha como Reconhecedor 7.2.2 Algoritmo de Cocke-Younger-Kasami 7.2.3 Algoritmo de Early Linguagens Formais e Autômatos - P. Blauth Menezes 11
  • 12. 7.1 Propriedades das LLC 7.1.1 Investigação se é LLC ◆ Para mostrar que é LLC • expressá-la usando os formalismos livre do contexto ∗ Gramática Livre do Contexto ∗ Autômato com Pilha ◆ Demonstração de que não é LLC • realizada caso a caso • Lema do Bombeamento para as LLC ∗ útil no estudo das propriedades ∗ pode ser usado para verificar se não é LLC Linguagens Formais e Autômatos - P. Blauth Menezes 12
  • 13. Teorema: Bombeamento para as LLC Se L é uma LLC, então • existe uma constante n tal que • para qualquer palavra w ∈ L onde w ≥ n, • w pode ser definida como w = u x v y z ∗ x v y ≤ n, ∗ x y ≥ 1 • para todo i ≥ 0, u xi v yi z é palavra de L Prova: Uma maneira é usando gramáticas na Forma Normal de Chomsky • se a gramática possui s variáveis • pode-se assumir que n = 2s • prova não será detalhada Linguagens Formais e Autômatos - P. Blauth Menezes 13
  • 14. Para w = u x v y z tal que x y ≥ 1 • x ou y pode ser a palavra vazia (mas não ambas) • resulta em bombeamentos não balanceados ∗ linguagens regulares • duplo bombeamento balanceado ∗ importante característica das LLC • “duplo balanceamento”: { anbn  n ≥ 0 } • “palavra e sua reversa”: { wwr  w pertence a { a, b }* } Linguagens Formais e Autômatos - P. Blauth Menezes 14
  • 15. Conclusões a partir dos lemas do bombeamento • regulares são capazes de expressar ∗ apenas bombeamentos ∗ sem qualquer balanceamento • livres do contexto são capazes de expressar ∗ bombeamentos balanceados ∗ dois a dois • livres do contexto não são capazes de expressar ∗ triplo bombeamento balanceado Linguagens Formais e Autômatos - P. Blauth Menezes 15
  • 16. Exp: Triplo Balanceamento - L = { an bn cn  n ≥ 0 } Prova por absurdo. Suponha que L é LLC Então existe uma gramática na Forma Normal de Chomsky G • com s variáveis • gera palavras não-vazias de L • sejam r = 2s e w = ar br cr Pelo bombeamento, w pode ser definida como w = u x v y z • x v y ≤ r • x y ≥ 1 • para todo i ≥ 0, u xi v yi z é palavra de L Absurdo!!!. • Por que? Linguagens Formais e Autômatos - P. Blauth Menezes 16
  • 17. De fato, como x v y ≤ r • não é possível supor que x y possui símbolos a e c • quaisquer ocorrências de a e c ∗ estão separadas por, pelo menos, r ocorrências de b • x y jamais possuirá ocorrências de a, b e c simultaneamente ∗ aplicação do bombeamento ∗ pode desbalancear as ocorrências de a, b e c Linguagens Formais e Autômatos - P. Blauth Menezes 17
  • 18. 6 – Propriedades e Reconhecimento das LLC 7.1 Propriedades das LLC 7.1.1 Investigação se é LLC 7.1.2 Operações Fechadas sobre as LLC 7.1.3 Investigação se é Vazia, Finita ou Infinita 7.2 Algoritmos de Reconhecimento 7.2.1 Autômato com Pilha como Reconhecedor 7.2.2 Algoritmo de Cocke-Younger-Kasami 7.2.3 Algoritmo de Early Linguagens Formais e Autômatos - P. Blauth Menezes 18
  • 19. 7.1.2 Operações Fechadas sobre as LLC ◆ Operações sobre linguagens podem ser usadas para • construir novas linguagens ∗ a partir de linguagens conhecidas ∗ definindo-se uma álgebra • provar propriedades • construir algoritmos ◆ Classe das LLC • União ✔ • concatenação ✔ • intersecção ✘ • complemento ✘ Linguagens Formais e Autômatos - P. Blauth Menezes 19
  • 20. Teorema: Operações Fechadas sobre LLC • União • Concatenação Prova: União: (direta) AP + não-determinismo (GLC: exercício) Suponha L1 e L2, LLC. Então, existem AP M1 = (Σ1, Q1, δ1, q01, F1, V1) e M2 = (Σ2, Q2, δ2, q02, F2, V2) tais que ACEITA(M1) = L1 e ACEITA(M2) = L2 Linguagens Formais e Autômatos - P. Blauth Menezes 20
  • 21. Seja M3 (suponha que Q1 ∩ Q2 ∩ { q0 } = ∅ e V1 ∩ V2 = ∅) M3 = (Σ1 ∪ Σ2, Q1 ∪ Q2 ∪ { q0 }, δ3, q0, F1 ∪ F2, V1 ∪ V2) ( ε, ε, ε) q01 M1 q0 q02 M2 ( ε, ε, ε) Claramente, M3 reconhece L1 ∪ L2 Linguagens Formais e Autômatos - P. Blauth Menezes 21
  • 22. Concatenação: (direta) GLC (AP: exercício) Suponha L1 e L2, LLC. Então, existem GLC G1 = (V1, T1, P1, S1) e G2 = (V2, T2, P2, S2) tais que GERA(G1) = L1 e GERA(G2) = L2 Seja G3 (suponha que V1 ∩ V2 ∩ { S } = ∅) G3 = (V1 ∪ V2 ∪ { S }, T1 ∪ T2, P1 ∪ P2 ∪ { S → S1 S2 }, S) Claramente qualquer palavra gerada por G3 terá, como • prefixo, uma palavra de L1 • sufixo, uma palavra de L2 Logo, L1 L2 é LLC Linguagens Formais e Autômatos - P. Blauth Menezes 22
  • 23. Teorema a seguir mostra que a Classe das LLC não é fechada para • intersecção • complemento ◆ Aparentemente, uma contradição • foi verificado que, se L é LLC ∗ existe AP M tal que ACEITA(M) = L e REJEITA(M) = ~L ∗ rejeita qualquer palavra que não pertença a L • teorema a seguir ∗ se L é LLC ∗ não se pode afirmar que ~L também é LLC Linguagens Formais e Autômatos - P. Blauth Menezes 23
  • 24. Assim • é possível um AP rejeitar o complemento de uma LLC • embora nem sempre seja possível aceitar o complemento ◆ Explicação intuitiva: AP • aceita se pelo menos um dos caminhos alternativos aceita aceita rejeita ... rejeita Linguagens Formais e Autômatos - P. Blauth Menezes 24
  • 25. Inversão de aceita/rejeita • situação continua sendo de aceitação rejeita aceita ... aceita Linguagens Formais e Autômatos - P. Blauth Menezes 25
  • 26. Teorema: Operações Não-Fechadas sobre Linguagens Livres do Contexto • Intersecção • Complemento Prova: Intersecção: (direta) contra-exemplo Sejam LLC L1 = { anbncm  n ≥ 0 e m ≥ 0 } e L2 = { ambncn  n ≥ 0 e m ≥ 0 } Intersecção de L1 com L2, não é LLC L3 = { anbncn  n ≥ 0 } Linguagens Formais e Autômatos - P. Blauth Menezes 26
  • 27. Complemento: (direta) Conseqüência direta (por quê?) Intersecção pode ser representada em termos da união e do complemento Classe das LLC não é fechada para a operação de intersecção • como é fechada para a união • não se pode afirmar que é fechada para o complemento Linguagens Formais e Autômatos - P. Blauth Menezes 27
  • 28. 6 – Propriedades e Reconhecimento das LLC 7.1 Propriedades das LLC 7.1.1 Investigação se é LLC 7.1.2 Operações Fechadas sobre as LLC 7.1.3 Investigação se é Vazia, Finita ou Infinita 7.2 Algoritmos de Reconhecimento 7.2.1 Autômato com Pilha como Reconhecedor 7.2.2 Algoritmo de Cocke-Younger-Kasami 7.2.3 Algoritmo de Early Linguagens Formais e Autômatos - P. Blauth Menezes 28
  • 29. 7.1.3 Investigação se é Vazia, Finita ou Infinita Teorema: LLC Vazia, Finita ou Infinita Prova: Suponha L LLC Vazia: (direta) Seja G = (V, T, P, S), GLC tal que GERA(G) = L Seja GSI = (VSI, TSI, PSI, S) • equivalente a G • excluindo os símbolos inúteis Se PSI for vazio, então L é vazia Linguagens Formais e Autômatos - P. Blauth Menezes 29
  • 30. Finita e Infinita: (direta) Seja G = (V, T, P, S) GLC tal que GERA(G) = L Seja GFNC = (VFNC, TFNC, PFNC, S) equivalente na FN de Chomsky Se existe A variável tal que • A → BC A no lado esquerdo • X → YA ou X → AY A no lado direito • existe um ciclo em A A ⇒+ α A β • A é capaz de gerar palavras de qualquer tamanho • L é infinita Caso não exista tal A, então L é finita Linguagens Formais e Autômatos - P. Blauth Menezes 30
  • 31. 6 – Propriedades e Reconhecimento das LLC 7.1 Propriedades das LLC 7.1.1 Investigação se é LLC 7.1.2 Operações Fechadas sobre as LLC 7.1.3 Investigação se é Vazia, Finita ou Infinita 7.2 Algoritmos de Reconhecimento 7.2.1 Autômato com Pilha como Reconhecedor 7.2.2 Algoritmo de Cocke-Younger-Kasami 7.2.3 Algoritmo de Early Linguagens Formais e Autômatos - P. Blauth Menezes 31
  • 32. 7.2 Algoritmos de Reconhecimento ◆ Podem ser classificados como • Top-Down ou Preditivo ∗ constrói uma árvore de derivação ∗ a partir da raiz (símbolo inicial da gramática) ∗ com ramos em direção às folhas (terminais) • Bottom-Up ∗ oposto do top-down ∗ parte das folhas ∗ construindo a árvore de derivação em direção à raiz Linguagens Formais e Autômatos - P. Blauth Menezes 32
  • 33. 6 – Propriedades e Reconhecimento das LLC 7.1 Propriedades das LLC 7.1.1 Investigação se é LLC 7.1.2 Operações Fechadas sobre as LLC 7.1.3 Investigação se é Vazia, Finita ou Infinita 7.2 Algoritmos de Reconhecimento 7.2.1 Autômato com Pilha como Reconhecedor 7.2.2 Algoritmo de Cocke-Younger-Kasami 7.2.3 Algoritmo de Early Linguagens Formais e Autômatos - P. Blauth Menezes 33
  • 34. 7.2.1 Autômato com Pilha como Reconhecedor ◆ Reconhecedores usando AP • construção relativamente simples e imediata • relação quase direta entre produções e as transições do AP • algoritmos ∗ top-down ∗ simula derivação mais à esquerda ∗ não-determinismo: produções alternativas da gramática Linguagens Formais e Autômatos - P. Blauth Menezes 34
  • 35. Foi visto que qq LLC pode ser especificada por um AP • a partir de uma Gramática na Forma Normal de Greibach ∗ cada produção gera exatamente um terminal ∗ geração de w: w etapas de derivação • cada variável: pode ter diversas produções associadas ∗ AP testa as diversas alternativas ∗ número de passos para reconhecer w: proporcional a kw ∗ aproximação de k: metade da média de produções das variáveis • portanto, o AP construído ∗ tempo de reconhecimento proporcional ao expoente em w ∗ pode ser muito ineficiente para entradas mais longas Linguagens Formais e Autômatos - P. Blauth Menezes 35
  • 36. Autômato com Pilha Descendente • forma alternativa de construir AP • igualmente simples e com o mesmo nível de eficiência ∗ a partir de uma GLC sem recursão à esquerda ∗ simula a derivação mais à esquerda • algoritmo ∗ inicialmente, empilha o símbolo inicial ∗ topo = variável: substitui, (não-determinismo), por todas as produções da variável ∗ topo = terminal: testa se é igual ao próximo símbolo da entrada Linguagens Formais e Autômatos - P. Blauth Menezes 36
  • 37. Def: Algoritmo: Autômato com Pilha Descendente GLC G = (V, T, P, S), sem recursão à esquerda M = (T, { q0, q1, qf }, δ, q0, { qf }, V ∪ T) • δ(q0, ε, ε) = { (q1, S) } • δ(q1, ε, A) = { (q1, α)  A → α ∈ P } A de V • δ(q1, a, a) = { (q1, ε) } a de T • δ(q1, ?, ?) = { (qf, ε) } (ε, ε, S) (?, ?, ε) q0 q1 qf (ε, A1, α1) ... (ε, Au, αu) (a1, a1, ε) ... (av, av, ε) Linguagens Formais e Autômatos - P. Blauth Menezes 37
  • 38. Exp: AP Descendente: Duplo Balanceamento L = { anbn  n ≥ 1 } • G = ({ S }, { a, b }, P, S) GLC sem recursão à esquerda • P = { S → aSb  ab } Autômato com pilha descendente M = ({ a, b }, { q0, q1, qf }, δ, q0, { qf }, { S, a, b }) (ε, ε, S) (?, ?, ε) q0 q1 qf (ε, S, aSb), (ε, S, ab) (a, a, ε), (b, b, ε) Linguagens Formais e Autômatos - P. Blauth Menezes 38
  • 39. 6 – Propriedades e Reconhecimento das LLC 7.1 Propriedades das LLC 7.1.1 Investigação se é LLC 7.1.2 Operações Fechadas sobre as LLC 7.1.3 Investigação se é Vazia, Finita ou Infinita 7.2 Algoritmos de Reconhecimento 7.2.1 Autômato com Pilha como Reconhecedor 7.2.2 Algoritmo de Cocke-Younger-Kasami 7.2.3 Algoritmo de Early Linguagens Formais e Autômatos - P. Blauth Menezes 39
  • 40. 7.1.2 Algoritmo de Cocke-Younger-Kasami ◆ Algoritmo de Cocke-Younger-Kasami • desenvolvido independentemente por J. Cocke, D. H. Younger e T. Kasami, em 1965 • a partir de uma GLC na Forma Normal de Chomsky ∗ gera bottom-up todas as árvores de derivação da entrada w ∗ tempo de processamento proporcional a w3 • idéia básica ∗ tabela triangular de derivação ∗ célula: raízes que podem gerar a correspondente sub-árvore Linguagens Formais e Autômatos - P. Blauth Menezes 40
  • 41. Def: Algoritmo de Cocke-Younger-Kasami ou CYK • G = (V, T, P, S) GLC na Forma Normal de Chomsky • w = a1a2…an entrada Vrs células da tabela conjunto de raízes para as árvores de derivação da subpalavra a2...an s a1 a2 ... an r Linguagens Formais e Autômatos - P. Blauth Menezes 41
  • 42. Etapa 1: variáveis que geram diretamente terminais (A → a) para r variando de 1 até n faça Vr1 = { A  A → ar ∈ P } Etapa 2: produções que geram duas variáveis (A → BC) para s variando de 2 até n faça para r variando de 1 até n - s + 1 faça Vr s   =   ∅ para k variando de 1 até s - 1 faça Vrs  = Vrs  ∪ { A  A → BC ∈ P, B ∈ Vrk e C ∈ V(r+k)(s-k) } • limite de iteração para r é (n - s + 1): a tabela é triangular • Vrk e V(r+k)(s-k) são as raízes das sub-árvores de Vrs • célula vazia: não gera qualquer sub-árvore Linguagens Formais e Autômatos - P. Blauth Menezes 42
  • 43. Etapa 3: condição de aceitação da entrada. • símbolo inicial pertence à V1n (raiz de toda palavra) ∗ aceita Linguagens Formais e Autômatos - P. Blauth Menezes 43
  • 44. Exp: Algoritmo de Cocke-Younger-Kasami • G = ({ S, A }, { a, b }, P, S) • P = { S → AA  AS  b, A → SA  AS  a } S,A Como S é raiz da árvore de derivação, a entrada é aceita S,A S,A S,A S S,A S,A A S S,A A S A A S a b a a b Linguagens Formais e Autômatos - P. Blauth Menezes 44
  • 45. 6 – Propriedades e Reconhecimento das LLC 7.1 Propriedades das LLC 7.1.1 Investigação se é LLC 7.1.2 Operações Fechadas sobre as LLC 7.1.3 Investigação se é Vazia, Finita ou Infinita 7.2 Algoritmos de Reconhecimento 7.2.1 Autômato com Pilha como Reconhecedor 7.2.2 Algoritmo de Cocke-Younger-Kasami 7.2.3 Algoritmo de Early Linguagens Formais e Autômatos - P. Blauth Menezes 45
  • 46. 7.1.3 Algoritmo de Early ◆ Algoritmo de Early • desenvolvido em 1968 • possivelmente o mais rápido algoritmo para LLC • tempo de processamento proporcional a ∗ em geral: w3 ∗ gramáticas não-ambíguas: w2 ∗ muitas gramáticas de interesse prático: w Linguagens Formais e Autômatos - P. Blauth Menezes 46
  • 47. Algoritmo top-down • a partir de uma GLC sem produções vazias • parte do símbolo inicial • executa sempre a derivação mais à esquerda • cada ciclo gera um terminal ∗ comparado com o símbolo da entrada ∗ sucesso -> construção do conjunto de produções que, potencialmente, pode gerar o próximo símbolo Linguagens Formais e Autômatos - P. Blauth Menezes 47
  • 48. Def: Algoritmo de Early • G = (V, T, P, S) GLC sem produções vazias • w = a1a2…an palavra a ser verificada • marcador "•” ∗ antecedendo a posição, em cada produção, que será analisada ∗ na tentativa de gerar o próximo símbolo terminal • sufixo "/u" adicionado a cada produção ∗ indica o u-ésimo ciclo em que passou a ser considerada Linguagens Formais e Autômatos - P. Blauth Menezes 48
  • 49. Etapa 1: construção de D0: primeiro conjunto de produções • produções que partem de S (1) • produções que podem ser aplicadas (2) ∗ em sucessivas derivações mais à esquerda (a partir de S) D0 = ∅ para toda S → α ∈ P (1) faça D0 = D0 ∪ { S → •α/0 } repita para toda A → •Bβ/0 ∈ D0 (2) faça para toda B → φ ∈ P faça D0 = D0 ∪ { B → •φ/0 } até que o cardinal de D0 não aumente Linguagens Formais e Autômatos - P. Blauth Menezes 49
  • 50. Etapa 2: construção dos demais conjuntos de produção • n = w conjuntos de produção a partir de D0 • ao gerar ar, constrói Dr: produções que podem gerar ar+1 para r variando de 1 até n (1) faça Dr = ∅; para toda A → α•arβ/s ∈ Dr-1 (2) faça Dr = Dr ∪ { A → αar•β/s }; repita para toda A → α•Bβ/s ∈ Dr (3) faça para toda B → φ ∈ P faça Dr = Dr ∪ { B → •φ/r } para toda A → α•/s de Dr (4) faça para toda B → β•Aφ/k ∈ Ds faça Dr = Dr ∪ { B → βA•φ/k } até que o cardinal de Dr não aumente Linguagens Formais e Autômatos - P. Blauth Menezes 50
  • 51. (1) cada ciclo gera um conjunto de produções Dr (2) gera o símbolo ar (3) produções que podem derivar o próximo símbolo (4) uma subpalavra de w foi reduzida à variável A ∗ inclui em Dr todas as produções de Ds que referenciaram •A; Linguagens Formais e Autômatos - P. Blauth Menezes 51
  • 52. Etapa 3: condição de aceitação da entrada. • uma produção da forma S → α•/0 pertence a Dn ∗ w foi aceita • S → α•/0 é uma produção que ∗ parte do símbolo inicial S ∗ foi incluída em D0 ("/0") ∗ todo o lado direito da produção foi analisado com sucesso ∗ ("•" está no final de α) Linguagens Formais e Autômatos - P. Blauth Menezes 52
  • 53. Otimização do Algoritmo de Early • ciclos repita-até ∗ podem ser restritos exclusivamente às produções recentemente incluídas em Dr ou em D0 ainda não-analisadas. Linguagens Formais e Autômatos - P. Blauth Menezes 53
  • 54. Exp: Algoritmo de Early: Expressão Simples "Expressão simples" da linguagem Pascal • G = ({ E, T, F }, { +, ∗, [, ], x }, P, E), na qual: • P = { E → T  E+T, T → F  T∗F, F → [E]  x } Reconhecimento da palavra x∗x D0: • E → •T/0 produções que partem • E → •E+T/0 do símbolo inicial • T → •F/0 produções que podem ser aplicadas • T → •T∗F/0 em derivação mais à esquerda • F → •[E]/0 a partir do símbolo inicial • F → •x/0 Linguagens Formais e Autômatos - P. Blauth Menezes 54
  • 55. D1: reconhecimento de x em x∗x • F → x•/0 x foi reduzido a F • T → F•/0 inclui todas as produções de D0 que • T → T•∗F/0 referenciaram •F direta ou indiretamente • E → T•/0 movendo o marcador "•" • E → E•+T/0 um símbolo para a direita D2: reconhecimento de ∗ em x∗x • T → T∗•F/0 gerou ∗; o próximo será gerado por F • F → •[E]/2 inclui todas as produções de P que • F → •x/2 podem gerar o próximo terminal a partir de F• Linguagens Formais e Autômatos - P. Blauth Menezes 55
  • 56. D3: reconhecimento de x em x∗x • F → x•/2 x foi reduzido à F • T → T∗F•/0 incluído de D2 (pois F → x•/2); entrada reduzida à T • E → T•/0 incluído de D0 (pois T → T*F•/0); entrada reduzida à E • T → T•∗F/0 incluído de D0 (pois T → T∗F•/0) • E → E•+T/0 incluído de D0 (pois E → T•/0) Como w = x∗x foi reduzida a E e como E → T•/0 pertence a D3 • entrada aceita Linguagens Formais e Autômatos - P. Blauth Menezes 56
  • 57. Linguagens Formais e Autômatos P. Blauth Menezes 1 Introdução e Conceitos Básicos 2 Linguagens e Gramáticas 3 Linguagens Regulares 4 Propriedades das Linguagens Regulares 5 Autômato Finito com Saída 6 Linguagens Livres do Contexto 7 Propriedades e Reconhecimento das Linguagens Livres do Contexto 8 Linguagens Recursivamente Enumeráveis e Sensíveis ao Contexto 9 Hierarquia de Classes e Linguagens e Conclusões Linguagens Formais e Autômatos - P. Blauth Menezes 57
  • 58. Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 58