SlideShare uma empresa Scribd logo
1 de 62
Baixar para ler offline
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
4 – Propriedades das
                  Linguagens Regulares
     4.1        Bombeamento para as LR
     4.2        Investigação se é LR
     4.3        Operações Fechadas sobre as LR
     4.4        Investigação se uma LR é Vazia, Finita ou Infinita
     4.5        Igualdade de LR
     4.6        Minimização de um Autômato Finito




Linguagens Formais e Autômatos - P. Blauth Menezes                   3
4 – Propriedades das LR
Linguagens Formais e Autômatos - P. Blauth Menezes   4
4 Propriedades das LR
◆    LR podem ser representadas por formalismos
     • pouca complexidade

     • grande eficiência

     • fácil implementação

◆    Entretanto, por ser uma classe relativamente simples
     • é restrita e limitada

     • fácil definir linguagens não-regulares



Linguagens Formais e Autômatos - P. Blauth Menezes          5
◆    Assim, algumas questões sobre LR necessitam ser
     analisadas
     • como determinar se uma linguagem é regular?

     • é fechada para operações de união, concatenação e intersecção?

     • como verificar se uma LR é infinita, finita ou vazia?

     • é possível analisar duas LR e concluir se são iguais ou diferentes?




Linguagens Formais e Autômatos - P. Blauth Menezes                           6
◆    Análise de cada propriedade
     • desenvolvida para um dos formalismos estudados
     • para os demais: é suficiente traduzi-los

                                                     ER




                                  AFD                AFN   AFNε




                                                     GR


Linguagens Formais e Autômatos - P. Blauth Menezes                7
Obs: Autômato Finito × Complexidade de Algoritmos
Autômatos finitos pertencem à classe de algoritmos

     • mais eficientes em termos de tempo de processamento
     • supondo que toda a entrada necessita ser lida
        ∗ se relaxada, podem-se imaginar formalismos mais eficientes
        ∗ exemplo: reconhecer a linguagem Σ* (por quê?)

Qq autômato finito que solucione um problema é igualmente eficiente

     • a menos de eventual redundância de estados
     • não influi no tempo de processamento

Redundância de estados pode ser facilmente eliminada

     • Autômato Finito (Determinístico) Mínimo


Linguagens Formais e Autômatos - P. Blauth Menezes                     8
4 – Propriedades das
                  Linguagens Regulares
     4.1        Bombeamento para as LR
     4.2        Investigação se é LR
     4.3        Operações Fechadas sobre as LR
     4.4        Investigação se uma LR é Vazia, Finita ou Infinita
     4.5        Igualdade de LR
     4.6        Minimização de um Autômato Finito




Linguagens Formais e Autômatos - P. Blauth Menezes                   9
4.1 Bombeamento para as LR
◆    Lema do Bombeamento
     • útil no estudo das propriedades das LR

◆    Idéia básica
     • se uma linguagem é regular, então
        ∗ é aceita por um AFD com n estados

     • se o autômato reconhece w de comprimento maior ou igual a n
        ∗ assume algum estado q mais de uma vez
        ∗ existe um ciclo na função programa que passa por q



Linguagens Formais e Autômatos - P. Blauth Menezes                   10
◆    w pode ser dividida em três subpalavras w = u v z
     •  u v  ≤ n,  v  ≥ 1

     • v é a parte de w reconhecida pelo ciclo

     • tal ciclo pode ser executado (bombeado) zero ou mais vezes
        ∗ para qualquer i ≥ 0, u vi z, é aceita pelo autômato



                                                         v

                                            u                z
                   q0                                q           qf



Linguagens Formais e Autômatos - P. Blauth Menezes                    11
Lema do Bombeamento para as LR
Se L é LR, então:

     • existe uma constante n tal que,
     • para qualquer palavra w de L onde  w  ≥ n,
     • w pode ser definida como w = u v z
        ∗  u v  ≤ n,
        ∗ v≥1

     • sendo que, para todo i ≥ 0, u vi z é palavra de L

Prova: (direta)
Se L é uma LR, então existe um AFD M = (Σ, Q, δ, q0, F) tal que

                                                     ACEITA(M) = L


Linguagens Formais e Autômatos - P. Blauth Menezes                   12
Suponha que

     •   n é o cardinal de Q
     •   existe w = a1a2…am palavra de L de comprimento m tal que m ≥ n
     •   δ(q0, a1) = q1
     •   …
     •   δ(qm-1, am) = qm

Como m ≥ n, então existem r e s com 0 ≤ r < s ≤ n tais que

     •   q r = qs
     •   δ(q0, a1…ar) = qr
     •   δ(qr, ar+1…as ) = qs
     •   δ(qs , as+1…am) = qm

ou seja, o autômato passa mais de uma vez no estado qr = qs


Linguagens Formais e Autômatos - P. Blauth Menezes                    13
Sejam:

     • u = a1…ar
     • v = ar+1…as
     • z = as+1…am

Como r < s ≤ n, então:
                                           v≥1     e   uv≤n

Como qr = qs , então:

     • v é reconhecida em um ciclo

Portanto, para todo i ≥ 0, u vi z é palavra de L




Linguagens Formais e Autômatos - P. Blauth Menezes                14
Exp: Bombeamento para as Linguagens Regulares



                                  a                       b            a
                  q0                                 q1           q2       qf
                                                              b
     • n=4
     • para w = abbba ???
        ∗ q r = qs = ??
        ∗ u = ??
        ∗ v = ??
        ∗ z = ??




Linguagens Formais e Autômatos - P. Blauth Menezes                              15
Exp: Bombeamento para as Linguagens Regulares



                                  a                       b            a
                  q0                                 q1           q2       qf
                                                              b
     • n=4
     • para w = abbba
        ∗ q r = qs = q1
        ∗ u=a
        ∗ v = bb
        ∗ z = ba




Linguagens Formais e Autômatos - P. Blauth Menezes                              16
◆    Diversos bombeamentos???
     • duplo bombeamento: { anbm  n ≥ 0 e m ≥ 0 }

     • triplo bombeamento: { anbmar  n ≥ 0, m ≥ 0 e r ≥ 0 }




Linguagens Formais e Autômatos - P. Blauth Menezes             17
4 – Propriedades das
                  Linguagens Regulares
     4.1        Bombeamento para as LR
     4.2        Investigação se é LR
     4.3        Operações Fechadas sobre as LR
     4.4        Investigação se uma LR é Vazia, Finita ou Infinita
     4.5        Igualdade de LR
     4.6        Minimização de um Autômato Finito




Linguagens Formais e Autômatos - P. Blauth Menezes               18
4.2 Investigação se é LR
◆    Mostrar que é LR
     • representar usando um dos formalismos regulares

◆    Mostrar que não é LR
     • desenvolvida para cada caso

     • ferramenta útil Lema do Bombeamento




Linguagens Formais e Autômatos - P. Blauth Menezes       19
Exp: Linguagem Não-Regular
               L = { w  w possui o mesmo número de símbolos a e b }

Por absurdo. Suponha que L é regular

     • existe AFD M com n estados que aceita L

Seja w = anbn sendo  w  = 2n ≥ n. Logo (Bombeamento) w = u v z tq

     • uv≤n
     • v≥1
     • para todo i ≥ 0, u vi z é palavra de L

Absurdo !!! Como  u v  ≤ n

     • u v é composta exclusivamente por símbolos a
     • u v2 z não pertence a L (número de a será maior que o de b)
Linguagens Formais e Autômatos - P. Blauth Menezes                     20
4 – Propriedades das
                  Linguagens Regulares
     4.1        Bombeamento para as LR
     4.2        Investigação se é LR
     4.3        Operações Fechadas sobre as LR
     4.4        Investigação se uma LR é Vazia, Finita ou Infinita
     4.5        Igualdade de LR
     4.6        Minimização de um Autômato Finito




Linguagens Formais e Autômatos - P. Blauth Menezes               21
4.3 Operações Fechadas sobre as LR
◆    Operações sobre LR podem ser usadas para
     • álgebra de LR
        ∗ construir novas linguagens a partir de linguagens conhecidas
     • provar propriedades
     • construir algoritmos

◆    Classe de Linguagens Regulares é fechada para
     •   união
     •   concatenação
     •   complemento
     •   intersecção

Linguagens Formais e Autômatos - P. Blauth Menezes                       22
Teorema: Operações Fechadas sobre as Linguagens
         Regulares
A Classe das Linguagens Regulares é fechada para

     •   união
     •   concatenação
     •   complemento
     •   intersecção

Prova:
União & Concatenação
Decorrem trivialmente da definição de expressão regular (por quê?)




Linguagens Formais e Autômatos - P. Blauth Menezes                   23
Complemento: (direta)
Suponha L, LR sobre Σ*. Então existe AFD

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

tal que ACEITA(M) = L

Idéia

         inverter condições ACEITA/REJEITA de M para reconhecer ~L

     • como fazer?

     • e se δ for não-total (rejeitar por indefinição)?




Linguagens Formais e Autômatos - P. Blauth Menezes                          24
Construção do AFD MC tal que ACEITA(MC) = ~L
                     MC = (Σ, QC, δC, q0, FC)

     • QC = Q ∪ { d }                                                        (suponha d ∉ Q)

     • FC = QC - F

     • δC é como δ, adicionando as transições (para todo a ∈ Σ e q ∈ Q)
       ∗ δC(q, a) = d se δ(q, a) não é definida
       ∗ δC(d, a) = d

Claramente, o autômato finito MC é tal que

           ACEITA(MC) = ~L                           ou seja   ACEITA(MC) = REJEITA(M)




Linguagens Formais e Autômatos - P. Blauth Menezes                                        25
Intersecção: (direta)
Suponha L1 e L2 LR
Propriedade de DeMorgan para conjuntos

                                             L1 ∩ L2 = ~(~L1 ∪ ~L2)

Como a Classe das LR é fechada para complemento e união

     • então também é fechada para a intersecção




Linguagens Formais e Autômatos - P. Blauth Menezes                    26
Exp: Complemento
                            M = ({ a, b }, { q0, q1, q2, qf }, δ, q0, { qf })

                                            a               a,b        a,b
                                  q0                 q1           q2         qf


             MC = ({ a, b }, { q0, q1, q2, qf, d }, δC, q0, { q0, q1, q2, d })

                                            a               a,b        a,b
                                 q0                  q1           q2         qf


                                            b                          a,b
                                                             d

                                                      a,b


Linguagens Formais e Autômatos - P. Blauth Menezes                                27
4 – Propriedades das
                  Linguagens Regulares
     4.1        Bombeamento para as LR
     4.2        Investigação se é LR
     4.3        Operações Fechadas sobre as LR
     4.4        Investigação se uma LR é Vazia, Finita ou Infinita
     4.5        Igualdade de LR
     4.6        Minimização de um Autômato Finito




Linguagens Formais e Autômatos - P. Blauth Menezes               28
4.4 Investigação se uma LR é Vazia,
    Finita ou Infinita
Teorema: Linguagem Regular Vazia, Finita ou Infinita
Se L é LR aceita por um autômato finito M = (Σ, Q, δ, q0, F) com n
estados, então L é

Vazia sse M não aceita qualquer palavra w tal que  w  < n

Finita sse M não aceita qualquer palavra w tal que n ≤  w  < 2n

Infinita sse M aceita palavra w tal que n ≤  w  < 2n




Linguagens Formais e Autômatos - P. Blauth Menezes                   29
Prova:
                  Infinita sse M aceita palavra w tal que n ≤  w  < 2n

(⇐ direta)

Verificar se M aceita alguma palavra w tal que n ≤  w  < 2n

     • processar o autômato para todas as entradas neste intervalo
     • se existe w ∈ L pode ser definida como w = u v z
        ∗ uv≤n
        ∗ v≥1

     • para todo i ≥ 0, u vi z é palavra de L

Logo, L é infinita


Linguagens Formais e Autômatos - P. Blauth Menezes                         30
Infinita sse M aceita palavra w tal que n ≤  w  < 2n

(⇒)

Se L é infinita, então existe w tal que  w  ≥ n

Duas possibilidades

Caso 1 (direta):  w  < 2n

     • prova está completa




Linguagens Formais e Autômatos - P. Blauth Menezes                         31
Caso 2 (por absurdo):  w  ≥ 2n
Suponha que
  • não existe palavra de comprimento menor que 2n
  • w é a menor palavra tal que  w  ≥ 2n
w pode ser definida como w = u v z
  • uv≤n e v≥1
  • em, particular, 1 ≤  v  ≤ n
Logo, u z é palavra de L. Absurdo!!!

     •  u z  ≥ 2n
        ∗ contradiz a suposição: w a menor palavra tal que  w  ≥ 2n

     •  u z  < 2n
        ∗ n ≤  u z  < 2n (pois  u v z  ≥ 2n, 1 ≤  v  ≤ n)
        ∗ contradiz a suposição: não existe w tal que n ≤  w  < 2n

Linguagens Formais e Autômatos - P. Blauth Menezes                      32
Vazia sse M não aceita qualquer palavra w tal que  w  < n

Processa M para todas as palavras de comprimento menor que n

Se rejeita todas as palavras: linguagem vazia

     • detalhamento da prova: exercício




Linguagens Formais e Autômatos - P. Blauth Menezes                       33
Finita sse M não aceita qualquer palavra w tal que n ≤  w  < 2n

(por contraposição)

                                               (p ↔ q) ⇔ (¬p ↔ ¬q)

Mesma prova do caso Infinita (por que?)




Linguagens Formais e Autômatos - P. Blauth Menezes                        34
Exp: Linguagem Regular Infinita



                                                                       b
                                                     a        a
                                   q0                    q1       qf



A linguagem é infinita sse aceita palavra w tal que n ≤  w  < 2n

     • aabaa é aceita
     • 3 ≤  aabaa  < 6

Logo, a linguagem é infinita


Linguagens Formais e Autômatos - P. Blauth Menezes                         35
4 – Propriedades das
                  Linguagens Regulares
     4.1        Bombeamento para as LR
     4.2        Investigação se é LR
     4.3        Operações Fechadas sobre as LR
     4.4        Investigação se uma LR é Vazia, Finita ou Infinita
     4.5        Igualdade de LR
     4.6        Minimização de um Autômato Finito




Linguagens Formais e Autômatos - P. Blauth Menezes               36
4.5 Igualdade de Linguagens
    Regulares
◆    Teorema mostra que
     • existe um algoritmo para verificar se dois autômatos finitos são
       equivalentes
        ∗ reconhecem a mesma linguagem

◆    Importante conseqüência
     • existe um algoritmo que permite verificar se duas implementações
       são equivalentes



Linguagens Formais e Autômatos - P. Blauth Menezes                        37
Teorema: Igualdade de Linguagens Regulares
Se M1 e M2 são AF, então existe um algoritmo para determinar se

                                         ACEITA(M1) = ACEITA(M2)

Prova: (direta)
Suponha M1 e M2 AF tais que ACEITA(M1) = L1 e ACEITA(M2) = L2

Portanto, é possível construir um AF M3 tal que ACEITA(M3) = L3

                                       L3 = (L1 ∩ ~L2) ∪ (~L1 ∩ L2)

Claramente, L1 = L2 sse L3 é vazia

     • existe um algoritmo para verificar se uma LR é vazia




Linguagens Formais e Autômatos - P. Blauth Menezes                    38
4 – Propriedades das
                  Linguagens Regulares
     4.1        Bombeamento para as LR
     4.2        Investigação se é LR
     4.3        Operações Fechadas sobre as LR
     4.4        Investigação se uma LR é Vazia, Finita ou Infinita
     4.5        Igualdade de LR
     4.6        Minimização de um Autômato Finito




Linguagens Formais e Autômatos - P. Blauth Menezes               39
4.6 Minimização de um AF
◆    Simulador de AFD
     • exercício

     • algoritmo que controla
        ∗ mudança de estado do autômato
        ∗ cada símbolo lido da entrada

     • tempo de processamento para aceitar ou rejeitar
        ∗ diretamente proporcional ao tamanho da entrada




Linguagens Formais e Autômatos - P. Blauth Menezes         40
◆    Complexidade de algoritmos
     • autômatos finitos pertencem à classe de algoritmos mais eficientes
        ∗ em termos de tempo de processamento
        ∗ supondo que toda a fita de entrada necessita ser lida

◆    Tempo de processamento
     • não depende do autômato considerado
     • qualquer AFD
        ∗ que reconheça a linguagem
        ∗ terá a mesma eficiência

◆    Otimização possível
     • minimização do número de estados


Linguagens Formais e Autômatos - P. Blauth Menezes                      41
◆    AFD Mínimo ou Autômato Finito Mínimo
     • AFD equivalente, com o menor número de estados possível

◆    Minimização em algumas aplicações especiais
     • não necessariamente o menor custo de implementação

     • exemplo: circuitos lógicos ou redes lógicas
        ∗ pode ser desejável introduzir estados intermediários
        ∗ de forma a melhorar eficiência ou facilitar ligações físicas

     • prever variáveis específicas da aplicação

◆    Autômato finito mínimo é único
     • a menos de isomorfismo
     • diferenciando-se, eventualmente, na identificação dos estados

Linguagens Formais e Autômatos - P. Blauth Menezes                       42
◆    Algoritmo de minimização
     • unifica os estados equivalentes

◆    Estados equivalentes
     • processamento de uma entrada qualquer
     • a partir de estados equivalentes
     • resulta na mesma condição de aceita/

Def: Estados Equivalentes
M = (Σ, Q, δ, q0, F) AFD qualquer
q e p de Q são Estados Equivalentes sse, para qualquer w ∈ Σ*

                                               δ(q, w)   e   δ(p, w)

resultam simultaneamente em estados finais, ou não-finais
Linguagens Formais e Autômatos - P. Blauth Menezes                     43
Def: Autômato Finito Mínimo
L linguagem regular. O Autômato Finito Mínimo é um AFD

                                           Mm = (Σ, Qm, δm, q0m, Fm)

tal que

     • ACEITA(Mm) = L

     • para qualquer AFD M = (Σ, Q, δ, q0, F) tal que ACEITA(M) = L

                                                     #Q ≥ #Qm




Linguagens Formais e Autômatos - P. Blauth Menezes                     44
Obs: Pré-Requisitos do Algoritmo de Minimização
     • determinístico
     • estados alcançáveis a partir do estado inicial
     • função programa total

◆    Caso não satisfaça algum dos pré-requisitos
     • gerar um autômato determinístico equivalente
        ∗ algoritmos de tradução apresentados nos teoremas

     • eliminar estados inacessíveis (e transições): exercício
     • função programa total
        ∗ introduzir um estado não-final d
        ∗ incluir transições não-previstas, tendo d como estado destino
        ∗ incluir um ciclo em d para todos os símbolos do alfabeto

Linguagens Formais e Autômatos - P. Blauth Menezes                        45
◆    Algoritmo de minimização
     • identifica os estados equivalentes por exclusão

     • tabela de estados
        ∗ marca estados não-equivalentes
        ∗ entradas não-marcadas: estados equivalentes




Linguagens Formais e Autômatos - P. Blauth Menezes       46
Def: Algoritmo de Minimização
M = (Σ, Q, δ, q0, F) AFD que satisfaz aos pré-requisitos

Passo 1: Construção da Tabela: relaciona estados distintos

                                         q1


                                         q2


                                        ...
                                         qn


                                          d


                                                     q0   q1   ...   qn-1   qn


Linguagens Formais e Autômatos - P. Blauth Menezes                               47
Passo 2: Marcação dos Estados Trivialmente Não-Equivalentes
  • pares do tipo { estado final, estado não-final }

Passo 3: Marcação dos Estados Não-Equivalentes
Para { qu, qv } não-marcado e a ∈ Σ, suponha que
                                     δ(qu, a) = pu   e   δ(qv , a) = pv
     • p u = pv
        ∗ q u é equivalente a qv para a: não marcar

     • p u ≠ pv e { pu, pv } não está marcado
        ∗ { qu, qv } incluído na lista encabeçada por { pu, pv }

     • p u ≠ pv e { pu, pv } está marcado
        ∗ { qu, qv } não é equivalente: marcar
        ∗ se { qu, qv } encabeça uma lista: marcar todos os pares da lista
           (e, recursivamente, se algum par da lista encabeça outra lista)

Linguagens Formais e Autômatos - P. Blauth Menezes                        48
Passo 4: Unificação dos Estados Equivalentes
Pares não-marcados são equivalentes

     • equivalência de estados é transitiva

     • pares de estados não-finais equivalentes
        ∗ um único estado não-final

     • pares de estados finais equivalentes
        ∗ um único estado final

     • se algum dos estados equivalentes é inicial
        ∗ estado unificado é inicial

     • transições com origem (destino) em um estado equivalente
         ∗ origem (destino) no estado unificado


Linguagens Formais e Autômatos - P. Blauth Menezes                49
Passo 5: Exclusão dos Estados Inúteis
q é um estado inútil

     • não-final
     • a partir de q não é possível atingir um estado final
     • d (se incluído) é inútil

Transições com origem ou destino em estado inútil

     • excluir

Algoritmo para excluir os estados inúteis

     • exercício




Linguagens Formais e Autômatos - P. Blauth Menezes            50
Exp: Minimização
                                                         b
                                        q0                           q1       a
                                                         b
                                     a


                                        q2                           q3
                                                     b       b
                                    a                                     a
                                             b                   b
                                                     a       a
                                        q4                           q5


Pré-requisitos de minimização ???


Linguagens Formais e Autômatos - P. Blauth Menezes                                51
Passo 1. Construção da tabela

Passo 2. Marcação dos pares { estado final, estado não-final }

                                      q1


                                      q2


                                      q3


                                      q4


                                      q5


                                                     q0   q1   q2   q3   q4



Linguagens Formais e Autômatos - P. Blauth Menezes                            52
Passo 3. Análise dos pares de estado não-marcados
{ q0, q4 }

                                          δ(q0, a) = q2 δ(q0, b) = q1
                                          δ(q4, a) = q3 δ(q4, b) = q2

     • { q1, q2 } e { q2, q3 } são não-marcados
        ∗ inclui { q0, q4 } nas listas de { q1, q2 } e { q2, q3 }

{ q0, q5 }

                                          δ(q0, a) = q2 δ(q0, b) = q1
                                          δ(q5, a) = q2 δ(q5, b) = q3

     • { q1, q3 } é não-marcado (e { q2, q2 } é trivialmente equivalente)
        ∗ inclui { q0, q5 } na lista de { q1, q3 }

Linguagens Formais e Autômatos - P. Blauth Menezes                          53
{ q1, q2 }

                                          δ(q1, a) = q1 δ(q1, b) = q0
                                          δ(q2, a) = q4 δ(q2, b) = q5

     • { q1, q4 } é marcado: marca { q1, q2 }
     • { q1, q2 } encabeça uma lista: marca { q0, q4 }

{ q1, q3 }

                                          δ(q1, a) = q1 δ(q1, b) = q0
                                          δ(q3, a) = q5 δ(q3, b) = q4

     • { q1, q5 } e { q0, q4 } são marcados: marca { q1, q3 }
     • { q1, q3 } encabeça uma lista: marca { q0, q5 }


Linguagens Formais e Autômatos - P. Blauth Menezes                      54
{ q2, q3 }

                                          δ(q2, a) = q4 δ(q2, b) = q5
                                          δ(q3, a) = q5 δ(q3, b) = q4

     • { q4, q5 } é não-marcado: inclui { q2, q3 } na lista de{ q4, q5 }

{ q4, q5 }

                                          δ(q4, a) = q3 δ(q4, b) = q2
                                          δ(q5, a) = q2 δ(q5, b) = q3

     • { q2, q3 } é não-marcado: inclui { q4, q5 } na lista de{ q2, q3 }




Linguagens Formais e Autômatos - P. Blauth Menezes                         55
q1                                                  {q0, q5}


           q2                                                  {q0, q4}


           q3                                                  {q0, q4}   {q4, q5}


           q4


           q5                                                  {q2, q3}


                      q0          q1         q2      q3   q4




Linguagens Formais e Autômatos - P. Blauth Menezes                                   56
q1                                            {q0, q5}


                      q2                                            {q0, q4}


                      q3                                            {q0, q4}   {q4, q5}


                      q4


                      q5                                            {q2, q3}


                               q0        q1          q2   q3   q4



Passo 4. { q2, q3 } e { q4, q5 } são não-marcados

     •   q 23: unificação dos estados q2 e q3
     •   q 45: unificação dos estados finais q4 e q5



Linguagens Formais e Autômatos - P. Blauth Menezes                                        57
Autômato mínimo resultante
                              b                                                    b
           q0                                        q1       a         q0             q1    a
                              b                                                    b
        a                                                           a


           q2                                        q3             q23
                      b                b
       a                                                  a       a,b
                b                               b                            a,b
                      a                a
           q4                                        q5             q45




Linguagens Formais e Autômatos - P. Blauth Menezes                                          58
Teorema: Autômato Finito Mínimo
O autômato construído usando o algoritmo de minimização

     • AFD com menor número de estados que aceita a linguagem


Teorema: Unicidade do Autômato Finito Mínimo
AFD mínimo de uma linguagem

     • único, a menos de isomorfismo




Linguagens Formais e Autômatos - P. Blauth Menezes              59
◆    Isomorfismo de AFD
     • diferenciam-se, eventualmente, na identificação dos estados

     • definição formal: não será apresentada

     • como um autômato finito mínimo é único, a menos de isomorfismo
        ∗ usual ser referido como o (e não como um) autômato mínimo




Linguagens Formais e Autômatos - P. Blauth Menezes                   60
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                              61
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                         62

Mais conteúdo relacionado

Mais procurados

Redes de computadores II - 3.Roteamento
Redes de computadores II - 3.RoteamentoRedes de computadores II - 3.Roteamento
Redes de computadores II - 3.RoteamentoMauro Tapajós
 
Material Modelagem - Prof. Marcos Alexandruk
Material Modelagem - Prof. Marcos AlexandrukMaterial Modelagem - Prof. Marcos Alexandruk
Material Modelagem - Prof. Marcos AlexandrukHebert Alquimim
 
Aula 7 expressão regular
Aula 7   expressão regularAula 7   expressão regular
Aula 7 expressão regularwab030
 
Natural language processing
Natural language processingNatural language processing
Natural language processingBasha Chand
 
Lexical Analyzer Implementation
Lexical Analyzer ImplementationLexical Analyzer Implementation
Lexical Analyzer ImplementationAkhil Kaushik
 
Trabalho de fim de curso final 2014
Trabalho de fim de curso final 2014Trabalho de fim de curso final 2014
Trabalho de fim de curso final 2014Mariano Liunda
 
Natural language processing
Natural language processingNatural language processing
Natural language processingKarenVacca
 
Introdução à linguística - linguagem, língua e linguística
Introdução à linguística - linguagem, língua e linguísticaIntrodução à linguística - linguagem, língua e linguística
Introdução à linguística - linguagem, língua e linguísticaMaria Glalcy Fequetia Dalcim
 
Texto literário e texto não literário
Texto literário e texto não literárioTexto literário e texto não literário
Texto literário e texto não literárioDon Veneziani
 
Linguagens não recursivamente enumeráveis e Hierarquia de Chomsky
Linguagens não recursivamente enumeráveis e Hierarquia de ChomskyLinguagens não recursivamente enumeráveis e Hierarquia de Chomsky
Linguagens não recursivamente enumeráveis e Hierarquia de ChomskyMarcos Paulo Maia dos Santos
 
A Origem da Língua Portuguesa
A Origem da Língua PortuguesaA Origem da Língua Portuguesa
A Origem da Língua PortuguesaAFMO35
 

Mais procurados (20)

Redes de computadores II - 3.Roteamento
Redes de computadores II - 3.RoteamentoRedes de computadores II - 3.Roteamento
Redes de computadores II - 3.Roteamento
 
Material Modelagem - Prof. Marcos Alexandruk
Material Modelagem - Prof. Marcos AlexandrukMaterial Modelagem - Prof. Marcos Alexandruk
Material Modelagem - Prof. Marcos Alexandruk
 
01 introducao e conceitos basicos
01   introducao e conceitos basicos01   introducao e conceitos basicos
01 introducao e conceitos basicos
 
2 maquina de post
2 maquina de post2 maquina de post
2 maquina de post
 
Aula 7 expressão regular
Aula 7   expressão regularAula 7   expressão regular
Aula 7 expressão regular
 
Expressões Regulares: Teoria e Prática
Expressões Regulares: Teoria e PráticaExpressões Regulares: Teoria e Prática
Expressões Regulares: Teoria e Prática
 
Concepões de língua, linguagem, norma e fala
Concepões de língua, linguagem, norma e falaConcepões de língua, linguagem, norma e fala
Concepões de língua, linguagem, norma e fala
 
Natural language processing
Natural language processingNatural language processing
Natural language processing
 
Lexical Analyzer Implementation
Lexical Analyzer ImplementationLexical Analyzer Implementation
Lexical Analyzer Implementation
 
Compiladores 3
Compiladores 3Compiladores 3
Compiladores 3
 
Trabalho de fim de curso final 2014
Trabalho de fim de curso final 2014Trabalho de fim de curso final 2014
Trabalho de fim de curso final 2014
 
Variação Linguística
Variação LinguísticaVariação Linguística
Variação Linguística
 
Linguagens Formais
Linguagens FormaisLinguagens Formais
Linguagens Formais
 
Natural language processing
Natural language processingNatural language processing
Natural language processing
 
Introdução à linguística - linguagem, língua e linguística
Introdução à linguística - linguagem, língua e linguísticaIntrodução à linguística - linguagem, língua e linguística
Introdução à linguística - linguagem, língua e linguística
 
Linguagem lua
Linguagem luaLinguagem lua
Linguagem lua
 
Texto literário e texto não literário
Texto literário e texto não literárioTexto literário e texto não literário
Texto literário e texto não literário
 
Saussure vida e obra
Saussure   vida e obraSaussure   vida e obra
Saussure vida e obra
 
Linguagens não recursivamente enumeráveis e Hierarquia de Chomsky
Linguagens não recursivamente enumeráveis e Hierarquia de ChomskyLinguagens não recursivamente enumeráveis e Hierarquia de Chomsky
Linguagens não recursivamente enumeráveis e Hierarquia de Chomsky
 
A Origem da Língua Portuguesa
A Origem da Língua PortuguesaA Origem da Língua Portuguesa
A Origem da Língua Portuguesa
 

Semelhante a Propriedades das Linguagens Regulares

07 propriedades e reconhecimento das linguagens livres do contexto
07   propriedades e reconhecimento das linguagens livres do contexto07   propriedades e reconhecimento das linguagens livres do contexto
07 propriedades e reconhecimento das linguagens livres do contextoComputação Depressão
 
08 linguagens recursivamente enumeraveis e sensiveis ao contexto
08   linguagens recursivamente enumeraveis e sensiveis ao contexto08   linguagens recursivamente enumeraveis e sensiveis ao contexto
08 linguagens recursivamente enumeraveis e sensiveis ao contextoComputação Depressão
 
Aula 9 propriedadedas linguagensregulares
Aula 9   propriedadedas linguagensregularesAula 9   propriedadedas linguagensregulares
Aula 9 propriedadedas linguagensregulareswab030
 
linguagens regulares na ciencia da computação.pdf
linguagens regulares na ciencia da computação.pdflinguagens regulares na ciencia da computação.pdf
linguagens regulares na ciencia da computação.pdfjonathan509395
 

Semelhante a Propriedades das Linguagens Regulares (8)

07 propriedades e reconhecimento das linguagens livres do contexto
07   propriedades e reconhecimento das linguagens livres do contexto07   propriedades e reconhecimento das linguagens livres do contexto
07 propriedades e reconhecimento das linguagens livres do contexto
 
02 linguagens e gramaticas
02   linguagens e gramaticas02   linguagens e gramaticas
02 linguagens e gramaticas
 
06 linguagens livres do contexto
06   linguagens livres do contexto06   linguagens livres do contexto
06 linguagens livres do contexto
 
08 linguagens recursivamente enumeraveis e sensiveis ao contexto
08   linguagens recursivamente enumeraveis e sensiveis ao contexto08   linguagens recursivamente enumeraveis e sensiveis ao contexto
08 linguagens recursivamente enumeraveis e sensiveis ao contexto
 
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
 
Aula 9 propriedadedas linguagensregulares
Aula 9   propriedadedas linguagensregularesAula 9   propriedadedas linguagensregulares
Aula 9 propriedadedas linguagensregulares
 
linguagens regulares na ciencia da computação.pdf
linguagens regulares na ciencia da computação.pdflinguagens regulares na ciencia da computação.pdf
linguagens regulares na ciencia da computação.pdf
 

Mais 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
 

Mais 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
 

Propriedades das Linguagens Regulares

  • 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. 4 – Propriedades das Linguagens Regulares 4.1 Bombeamento para as LR 4.2 Investigação se é LR 4.3 Operações Fechadas sobre as LR 4.4 Investigação se uma LR é Vazia, Finita ou Infinita 4.5 Igualdade de LR 4.6 Minimização de um Autômato Finito Linguagens Formais e Autômatos - P. Blauth Menezes 3
  • 4. 4 – Propriedades das LR Linguagens Formais e Autômatos - P. Blauth Menezes 4
  • 5. 4 Propriedades das LR ◆ LR podem ser representadas por formalismos • pouca complexidade • grande eficiência • fácil implementação ◆ Entretanto, por ser uma classe relativamente simples • é restrita e limitada • fácil definir linguagens não-regulares Linguagens Formais e Autômatos - P. Blauth Menezes 5
  • 6. Assim, algumas questões sobre LR necessitam ser analisadas • como determinar se uma linguagem é regular? • é fechada para operações de união, concatenação e intersecção? • como verificar se uma LR é infinita, finita ou vazia? • é possível analisar duas LR e concluir se são iguais ou diferentes? Linguagens Formais e Autômatos - P. Blauth Menezes 6
  • 7. Análise de cada propriedade • desenvolvida para um dos formalismos estudados • para os demais: é suficiente traduzi-los ER AFD AFN AFNε GR Linguagens Formais e Autômatos - P. Blauth Menezes 7
  • 8. Obs: Autômato Finito × Complexidade de Algoritmos Autômatos finitos pertencem à classe de algoritmos • mais eficientes em termos de tempo de processamento • supondo que toda a entrada necessita ser lida ∗ se relaxada, podem-se imaginar formalismos mais eficientes ∗ exemplo: reconhecer a linguagem Σ* (por quê?) Qq autômato finito que solucione um problema é igualmente eficiente • a menos de eventual redundância de estados • não influi no tempo de processamento Redundância de estados pode ser facilmente eliminada • Autômato Finito (Determinístico) Mínimo Linguagens Formais e Autômatos - P. Blauth Menezes 8
  • 9. 4 – Propriedades das Linguagens Regulares 4.1 Bombeamento para as LR 4.2 Investigação se é LR 4.3 Operações Fechadas sobre as LR 4.4 Investigação se uma LR é Vazia, Finita ou Infinita 4.5 Igualdade de LR 4.6 Minimização de um Autômato Finito Linguagens Formais e Autômatos - P. Blauth Menezes 9
  • 10. 4.1 Bombeamento para as LR ◆ Lema do Bombeamento • útil no estudo das propriedades das LR ◆ Idéia básica • se uma linguagem é regular, então ∗ é aceita por um AFD com n estados • se o autômato reconhece w de comprimento maior ou igual a n ∗ assume algum estado q mais de uma vez ∗ existe um ciclo na função programa que passa por q Linguagens Formais e Autômatos - P. Blauth Menezes 10
  • 11. w pode ser dividida em três subpalavras w = u v z •  u v  ≤ n,  v  ≥ 1 • v é a parte de w reconhecida pelo ciclo • tal ciclo pode ser executado (bombeado) zero ou mais vezes ∗ para qualquer i ≥ 0, u vi z, é aceita pelo autômato v u z q0 q qf Linguagens Formais e Autômatos - P. Blauth Menezes 11
  • 12. Lema do Bombeamento para as LR Se L é LR, então: • existe uma constante n tal que, • para qualquer palavra w de L onde  w  ≥ n, • w pode ser definida como w = u v z ∗  u v  ≤ n, ∗ v≥1 • sendo que, para todo i ≥ 0, u vi z é palavra de L Prova: (direta) Se L é uma LR, então existe um AFD M = (Σ, Q, δ, q0, F) tal que ACEITA(M) = L Linguagens Formais e Autômatos - P. Blauth Menezes 12
  • 13. Suponha que • n é o cardinal de Q • existe w = a1a2…am palavra de L de comprimento m tal que m ≥ n • δ(q0, a1) = q1 • … • δ(qm-1, am) = qm Como m ≥ n, então existem r e s com 0 ≤ r < s ≤ n tais que • q r = qs • δ(q0, a1…ar) = qr • δ(qr, ar+1…as ) = qs • δ(qs , as+1…am) = qm ou seja, o autômato passa mais de uma vez no estado qr = qs Linguagens Formais e Autômatos - P. Blauth Menezes 13
  • 14. Sejam: • u = a1…ar • v = ar+1…as • z = as+1…am Como r < s ≤ n, então: v≥1 e uv≤n Como qr = qs , então: • v é reconhecida em um ciclo Portanto, para todo i ≥ 0, u vi z é palavra de L Linguagens Formais e Autômatos - P. Blauth Menezes 14
  • 15. Exp: Bombeamento para as Linguagens Regulares a b a q0 q1 q2 qf b • n=4 • para w = abbba ??? ∗ q r = qs = ?? ∗ u = ?? ∗ v = ?? ∗ z = ?? Linguagens Formais e Autômatos - P. Blauth Menezes 15
  • 16. Exp: Bombeamento para as Linguagens Regulares a b a q0 q1 q2 qf b • n=4 • para w = abbba ∗ q r = qs = q1 ∗ u=a ∗ v = bb ∗ z = ba Linguagens Formais e Autômatos - P. Blauth Menezes 16
  • 17. Diversos bombeamentos??? • duplo bombeamento: { anbm  n ≥ 0 e m ≥ 0 } • triplo bombeamento: { anbmar  n ≥ 0, m ≥ 0 e r ≥ 0 } Linguagens Formais e Autômatos - P. Blauth Menezes 17
  • 18. 4 – Propriedades das Linguagens Regulares 4.1 Bombeamento para as LR 4.2 Investigação se é LR 4.3 Operações Fechadas sobre as LR 4.4 Investigação se uma LR é Vazia, Finita ou Infinita 4.5 Igualdade de LR 4.6 Minimização de um Autômato Finito Linguagens Formais e Autômatos - P. Blauth Menezes 18
  • 19. 4.2 Investigação se é LR ◆ Mostrar que é LR • representar usando um dos formalismos regulares ◆ Mostrar que não é LR • desenvolvida para cada caso • ferramenta útil Lema do Bombeamento Linguagens Formais e Autômatos - P. Blauth Menezes 19
  • 20. Exp: Linguagem Não-Regular L = { w  w possui o mesmo número de símbolos a e b } Por absurdo. Suponha que L é regular • existe AFD M com n estados que aceita L Seja w = anbn sendo  w  = 2n ≥ n. Logo (Bombeamento) w = u v z tq • uv≤n • v≥1 • para todo i ≥ 0, u vi z é palavra de L Absurdo !!! Como  u v  ≤ n • u v é composta exclusivamente por símbolos a • u v2 z não pertence a L (número de a será maior que o de b) Linguagens Formais e Autômatos - P. Blauth Menezes 20
  • 21. 4 – Propriedades das Linguagens Regulares 4.1 Bombeamento para as LR 4.2 Investigação se é LR 4.3 Operações Fechadas sobre as LR 4.4 Investigação se uma LR é Vazia, Finita ou Infinita 4.5 Igualdade de LR 4.6 Minimização de um Autômato Finito Linguagens Formais e Autômatos - P. Blauth Menezes 21
  • 22. 4.3 Operações Fechadas sobre as LR ◆ Operações sobre LR podem ser usadas para • álgebra de LR ∗ construir novas linguagens a partir de linguagens conhecidas • provar propriedades • construir algoritmos ◆ Classe de Linguagens Regulares é fechada para • união • concatenação • complemento • intersecção Linguagens Formais e Autômatos - P. Blauth Menezes 22
  • 23. Teorema: Operações Fechadas sobre as Linguagens Regulares A Classe das Linguagens Regulares é fechada para • união • concatenação • complemento • intersecção Prova: União & Concatenação Decorrem trivialmente da definição de expressão regular (por quê?) Linguagens Formais e Autômatos - P. Blauth Menezes 23
  • 24. Complemento: (direta) Suponha L, LR sobre Σ*. Então existe AFD M = (Σ, Q, δ, q0, F) tal que ACEITA(M) = L Idéia inverter condições ACEITA/REJEITA de M para reconhecer ~L • como fazer? • e se δ for não-total (rejeitar por indefinição)? Linguagens Formais e Autômatos - P. Blauth Menezes 24
  • 25. Construção do AFD MC tal que ACEITA(MC) = ~L MC = (Σ, QC, δC, q0, FC) • QC = Q ∪ { d } (suponha d ∉ Q) • FC = QC - F • δC é como δ, adicionando as transições (para todo a ∈ Σ e q ∈ Q) ∗ δC(q, a) = d se δ(q, a) não é definida ∗ δC(d, a) = d Claramente, o autômato finito MC é tal que ACEITA(MC) = ~L ou seja ACEITA(MC) = REJEITA(M) Linguagens Formais e Autômatos - P. Blauth Menezes 25
  • 26. Intersecção: (direta) Suponha L1 e L2 LR Propriedade de DeMorgan para conjuntos L1 ∩ L2 = ~(~L1 ∪ ~L2) Como a Classe das LR é fechada para complemento e união • então também é fechada para a intersecção Linguagens Formais e Autômatos - P. Blauth Menezes 26
  • 27. Exp: Complemento M = ({ a, b }, { q0, q1, q2, qf }, δ, q0, { qf }) a a,b a,b q0 q1 q2 qf MC = ({ a, b }, { q0, q1, q2, qf, d }, δC, q0, { q0, q1, q2, d }) a a,b a,b q0 q1 q2 qf b a,b d a,b Linguagens Formais e Autômatos - P. Blauth Menezes 27
  • 28. 4 – Propriedades das Linguagens Regulares 4.1 Bombeamento para as LR 4.2 Investigação se é LR 4.3 Operações Fechadas sobre as LR 4.4 Investigação se uma LR é Vazia, Finita ou Infinita 4.5 Igualdade de LR 4.6 Minimização de um Autômato Finito Linguagens Formais e Autômatos - P. Blauth Menezes 28
  • 29. 4.4 Investigação se uma LR é Vazia, Finita ou Infinita Teorema: Linguagem Regular Vazia, Finita ou Infinita Se L é LR aceita por um autômato finito M = (Σ, Q, δ, q0, F) com n estados, então L é Vazia sse M não aceita qualquer palavra w tal que  w  < n Finita sse M não aceita qualquer palavra w tal que n ≤  w  < 2n Infinita sse M aceita palavra w tal que n ≤  w  < 2n Linguagens Formais e Autômatos - P. Blauth Menezes 29
  • 30. Prova: Infinita sse M aceita palavra w tal que n ≤  w  < 2n (⇐ direta) Verificar se M aceita alguma palavra w tal que n ≤  w  < 2n • processar o autômato para todas as entradas neste intervalo • se existe w ∈ L pode ser definida como w = u v z ∗ uv≤n ∗ v≥1 • para todo i ≥ 0, u vi z é palavra de L Logo, L é infinita Linguagens Formais e Autômatos - P. Blauth Menezes 30
  • 31. Infinita sse M aceita palavra w tal que n ≤  w  < 2n (⇒) Se L é infinita, então existe w tal que  w  ≥ n Duas possibilidades Caso 1 (direta):  w  < 2n • prova está completa Linguagens Formais e Autômatos - P. Blauth Menezes 31
  • 32. Caso 2 (por absurdo):  w  ≥ 2n Suponha que • não existe palavra de comprimento menor que 2n • w é a menor palavra tal que  w  ≥ 2n w pode ser definida como w = u v z • uv≤n e v≥1 • em, particular, 1 ≤  v  ≤ n Logo, u z é palavra de L. Absurdo!!! •  u z  ≥ 2n ∗ contradiz a suposição: w a menor palavra tal que  w  ≥ 2n •  u z  < 2n ∗ n ≤  u z  < 2n (pois  u v z  ≥ 2n, 1 ≤  v  ≤ n) ∗ contradiz a suposição: não existe w tal que n ≤  w  < 2n Linguagens Formais e Autômatos - P. Blauth Menezes 32
  • 33. Vazia sse M não aceita qualquer palavra w tal que  w  < n Processa M para todas as palavras de comprimento menor que n Se rejeita todas as palavras: linguagem vazia • detalhamento da prova: exercício Linguagens Formais e Autômatos - P. Blauth Menezes 33
  • 34. Finita sse M não aceita qualquer palavra w tal que n ≤  w  < 2n (por contraposição) (p ↔ q) ⇔ (¬p ↔ ¬q) Mesma prova do caso Infinita (por que?) Linguagens Formais e Autômatos - P. Blauth Menezes 34
  • 35. Exp: Linguagem Regular Infinita b a a q0 q1 qf A linguagem é infinita sse aceita palavra w tal que n ≤  w  < 2n • aabaa é aceita • 3 ≤  aabaa  < 6 Logo, a linguagem é infinita Linguagens Formais e Autômatos - P. Blauth Menezes 35
  • 36. 4 – Propriedades das Linguagens Regulares 4.1 Bombeamento para as LR 4.2 Investigação se é LR 4.3 Operações Fechadas sobre as LR 4.4 Investigação se uma LR é Vazia, Finita ou Infinita 4.5 Igualdade de LR 4.6 Minimização de um Autômato Finito Linguagens Formais e Autômatos - P. Blauth Menezes 36
  • 37. 4.5 Igualdade de Linguagens Regulares ◆ Teorema mostra que • existe um algoritmo para verificar se dois autômatos finitos são equivalentes ∗ reconhecem a mesma linguagem ◆ Importante conseqüência • existe um algoritmo que permite verificar se duas implementações são equivalentes Linguagens Formais e Autômatos - P. Blauth Menezes 37
  • 38. Teorema: Igualdade de Linguagens Regulares Se M1 e M2 são AF, então existe um algoritmo para determinar se ACEITA(M1) = ACEITA(M2) Prova: (direta) Suponha M1 e M2 AF tais que ACEITA(M1) = L1 e ACEITA(M2) = L2 Portanto, é possível construir um AF M3 tal que ACEITA(M3) = L3 L3 = (L1 ∩ ~L2) ∪ (~L1 ∩ L2) Claramente, L1 = L2 sse L3 é vazia • existe um algoritmo para verificar se uma LR é vazia Linguagens Formais e Autômatos - P. Blauth Menezes 38
  • 39. 4 – Propriedades das Linguagens Regulares 4.1 Bombeamento para as LR 4.2 Investigação se é LR 4.3 Operações Fechadas sobre as LR 4.4 Investigação se uma LR é Vazia, Finita ou Infinita 4.5 Igualdade de LR 4.6 Minimização de um Autômato Finito Linguagens Formais e Autômatos - P. Blauth Menezes 39
  • 40. 4.6 Minimização de um AF ◆ Simulador de AFD • exercício • algoritmo que controla ∗ mudança de estado do autômato ∗ cada símbolo lido da entrada • tempo de processamento para aceitar ou rejeitar ∗ diretamente proporcional ao tamanho da entrada Linguagens Formais e Autômatos - P. Blauth Menezes 40
  • 41. Complexidade de algoritmos • autômatos finitos pertencem à classe de algoritmos mais eficientes ∗ em termos de tempo de processamento ∗ supondo que toda a fita de entrada necessita ser lida ◆ Tempo de processamento • não depende do autômato considerado • qualquer AFD ∗ que reconheça a linguagem ∗ terá a mesma eficiência ◆ Otimização possível • minimização do número de estados Linguagens Formais e Autômatos - P. Blauth Menezes 41
  • 42. AFD Mínimo ou Autômato Finito Mínimo • AFD equivalente, com o menor número de estados possível ◆ Minimização em algumas aplicações especiais • não necessariamente o menor custo de implementação • exemplo: circuitos lógicos ou redes lógicas ∗ pode ser desejável introduzir estados intermediários ∗ de forma a melhorar eficiência ou facilitar ligações físicas • prever variáveis específicas da aplicação ◆ Autômato finito mínimo é único • a menos de isomorfismo • diferenciando-se, eventualmente, na identificação dos estados Linguagens Formais e Autômatos - P. Blauth Menezes 42
  • 43. Algoritmo de minimização • unifica os estados equivalentes ◆ Estados equivalentes • processamento de uma entrada qualquer • a partir de estados equivalentes • resulta na mesma condição de aceita/ Def: Estados Equivalentes M = (Σ, Q, δ, q0, F) AFD qualquer q e p de Q são Estados Equivalentes sse, para qualquer w ∈ Σ* δ(q, w) e δ(p, w) resultam simultaneamente em estados finais, ou não-finais Linguagens Formais e Autômatos - P. Blauth Menezes 43
  • 44. Def: Autômato Finito Mínimo L linguagem regular. O Autômato Finito Mínimo é um AFD Mm = (Σ, Qm, δm, q0m, Fm) tal que • ACEITA(Mm) = L • para qualquer AFD M = (Σ, Q, δ, q0, F) tal que ACEITA(M) = L #Q ≥ #Qm Linguagens Formais e Autômatos - P. Blauth Menezes 44
  • 45. Obs: Pré-Requisitos do Algoritmo de Minimização • determinístico • estados alcançáveis a partir do estado inicial • função programa total ◆ Caso não satisfaça algum dos pré-requisitos • gerar um autômato determinístico equivalente ∗ algoritmos de tradução apresentados nos teoremas • eliminar estados inacessíveis (e transições): exercício • função programa total ∗ introduzir um estado não-final d ∗ incluir transições não-previstas, tendo d como estado destino ∗ incluir um ciclo em d para todos os símbolos do alfabeto Linguagens Formais e Autômatos - P. Blauth Menezes 45
  • 46. Algoritmo de minimização • identifica os estados equivalentes por exclusão • tabela de estados ∗ marca estados não-equivalentes ∗ entradas não-marcadas: estados equivalentes Linguagens Formais e Autômatos - P. Blauth Menezes 46
  • 47. Def: Algoritmo de Minimização M = (Σ, Q, δ, q0, F) AFD que satisfaz aos pré-requisitos Passo 1: Construção da Tabela: relaciona estados distintos q1 q2 ... qn d q0 q1 ... qn-1 qn Linguagens Formais e Autômatos - P. Blauth Menezes 47
  • 48. Passo 2: Marcação dos Estados Trivialmente Não-Equivalentes • pares do tipo { estado final, estado não-final } Passo 3: Marcação dos Estados Não-Equivalentes Para { qu, qv } não-marcado e a ∈ Σ, suponha que δ(qu, a) = pu e δ(qv , a) = pv • p u = pv ∗ q u é equivalente a qv para a: não marcar • p u ≠ pv e { pu, pv } não está marcado ∗ { qu, qv } incluído na lista encabeçada por { pu, pv } • p u ≠ pv e { pu, pv } está marcado ∗ { qu, qv } não é equivalente: marcar ∗ se { qu, qv } encabeça uma lista: marcar todos os pares da lista (e, recursivamente, se algum par da lista encabeça outra lista) Linguagens Formais e Autômatos - P. Blauth Menezes 48
  • 49. Passo 4: Unificação dos Estados Equivalentes Pares não-marcados são equivalentes • equivalência de estados é transitiva • pares de estados não-finais equivalentes ∗ um único estado não-final • pares de estados finais equivalentes ∗ um único estado final • se algum dos estados equivalentes é inicial ∗ estado unificado é inicial • transições com origem (destino) em um estado equivalente ∗ origem (destino) no estado unificado Linguagens Formais e Autômatos - P. Blauth Menezes 49
  • 50. Passo 5: Exclusão dos Estados Inúteis q é um estado inútil • não-final • a partir de q não é possível atingir um estado final • d (se incluído) é inútil Transições com origem ou destino em estado inútil • excluir Algoritmo para excluir os estados inúteis • exercício Linguagens Formais e Autômatos - P. Blauth Menezes 50
  • 51. Exp: Minimização b q0 q1 a b a q2 q3 b b a a b b a a q4 q5 Pré-requisitos de minimização ??? Linguagens Formais e Autômatos - P. Blauth Menezes 51
  • 52. Passo 1. Construção da tabela Passo 2. Marcação dos pares { estado final, estado não-final } q1 q2 q3 q4 q5 q0 q1 q2 q3 q4 Linguagens Formais e Autômatos - P. Blauth Menezes 52
  • 53. Passo 3. Análise dos pares de estado não-marcados { q0, q4 } δ(q0, a) = q2 δ(q0, b) = q1 δ(q4, a) = q3 δ(q4, b) = q2 • { q1, q2 } e { q2, q3 } são não-marcados ∗ inclui { q0, q4 } nas listas de { q1, q2 } e { q2, q3 } { q0, q5 } δ(q0, a) = q2 δ(q0, b) = q1 δ(q5, a) = q2 δ(q5, b) = q3 • { q1, q3 } é não-marcado (e { q2, q2 } é trivialmente equivalente) ∗ inclui { q0, q5 } na lista de { q1, q3 } Linguagens Formais e Autômatos - P. Blauth Menezes 53
  • 54. { q1, q2 } δ(q1, a) = q1 δ(q1, b) = q0 δ(q2, a) = q4 δ(q2, b) = q5 • { q1, q4 } é marcado: marca { q1, q2 } • { q1, q2 } encabeça uma lista: marca { q0, q4 } { q1, q3 } δ(q1, a) = q1 δ(q1, b) = q0 δ(q3, a) = q5 δ(q3, b) = q4 • { q1, q5 } e { q0, q4 } são marcados: marca { q1, q3 } • { q1, q3 } encabeça uma lista: marca { q0, q5 } Linguagens Formais e Autômatos - P. Blauth Menezes 54
  • 55. { q2, q3 } δ(q2, a) = q4 δ(q2, b) = q5 δ(q3, a) = q5 δ(q3, b) = q4 • { q4, q5 } é não-marcado: inclui { q2, q3 } na lista de{ q4, q5 } { q4, q5 } δ(q4, a) = q3 δ(q4, b) = q2 δ(q5, a) = q2 δ(q5, b) = q3 • { q2, q3 } é não-marcado: inclui { q4, q5 } na lista de{ q2, q3 } Linguagens Formais e Autômatos - P. Blauth Menezes 55
  • 56. q1 {q0, q5} q2 {q0, q4} q3 {q0, q4} {q4, q5} q4 q5 {q2, q3} q0 q1 q2 q3 q4 Linguagens Formais e Autômatos - P. Blauth Menezes 56
  • 57. q1 {q0, q5} q2 {q0, q4} q3 {q0, q4} {q4, q5} q4 q5 {q2, q3} q0 q1 q2 q3 q4 Passo 4. { q2, q3 } e { q4, q5 } são não-marcados • q 23: unificação dos estados q2 e q3 • q 45: unificação dos estados finais q4 e q5 Linguagens Formais e Autômatos - P. Blauth Menezes 57
  • 58. Autômato mínimo resultante b b q0 q1 a q0 q1 a b b a a q2 q3 q23 b b a a a,b b b a,b a a q4 q5 q45 Linguagens Formais e Autômatos - P. Blauth Menezes 58
  • 59. Teorema: Autômato Finito Mínimo O autômato construído usando o algoritmo de minimização • AFD com menor número de estados que aceita a linguagem Teorema: Unicidade do Autômato Finito Mínimo AFD mínimo de uma linguagem • único, a menos de isomorfismo Linguagens Formais e Autômatos - P. Blauth Menezes 59
  • 60. Isomorfismo de AFD • diferenciam-se, eventualmente, na identificação dos estados • definição formal: não será apresentada • como um autômato finito mínimo é único, a menos de isomorfismo ∗ usual ser referido como o (e não como um) autômato mínimo Linguagens Formais e Autômatos - P. Blauth Menezes 60
  • 61. 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 61
  • 62. 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 62