Uploaded by Luiz Felipe

Aula Propriedades LR

advertisement
Universidade Federal do Maranhão
Centro de Ciências Exatas e Tecnologias
Engenharia da Computação
Bruno Feres de Souza
Disciplina: Linguagens Formais e Autômatos
Código: EECP0020
20 de março de 2023
Bruno Feres de Souza (UFMA-CCET-ECP)
Linguagens Formais e Autômatos
20 de março de 2023
1 / 30
Conteúdo programático
Elementos de matemática discreta
Conceitos básicos de linguagens
Linguagens regulares e autômatos finitos
Linguagens livres de contexto e autômatos de pilha
Linguagens sensı́veis ao contexto e Máquinas de Turing com fita limitada
Linguagens recursivas e Máquinas de Turing com finta infinita
Linguagens recursivamente enumeráveis
Bruno Feres de Souza (UFMA-CCET-ECP)
Linguagens Formais e Autômatos
20 de março de 2023
2 / 30
Linguagens regulares e autômatos finitos
Sumário
Introdução
Sistema de estados finitos
Autômato finito determinı́stico
Autômato finito não-determinı́stico
Expressão regular
Gramática regular
Propriedades das linguagens regulares
Autômato finito com saı́da1
Bibliografia
1
Este tópico não será coberto nestes slides. Recomendo estudo diretamente na
referência descrita na bibliografia.
Bruno Feres de Souza (UFMA-CCET-ECP)
Linguagens Formais e Autômatos
20 de março de 2023
3 / 30
Linguagens regulares e autômatos finitos
Propriedades das Linguagens Regulares
Propriedades
No estudo de Linguagens Regulares, geralmente algumas questões são
analisadas, a saber:
1
2
3
4
Como se determinar se uma linguagem é regular?
Como verificar se uma Linguagem Regular é infinita ou finita (ou até
mesmo vazia)?
É possı́vel analisar duas Linguagens Regulares e concluir se são iguais ou
diferentes?
A Classe de Linguagens Regulares é fechada para as operações de união,
concatenação, intersecção e complemento?
Bruno Feres de Souza (UFMA-CCET-ECP)
Linguagens Formais e Autômatos
20 de março de 2023
4 / 30
Linguagens regulares e autômatos finitos
Propriedades das Linguagens Regulares
QUESTÃO 1: A linguagem é/não é regular?
Como se determinar se umA linguagem é/não é regular?
É regular: basta construir um Autômato Finito que a reconheça.
Não é regular: pode-se fazaer uso do Lema do Bombeamento.
Bruno Feres de Souza (UFMA-CCET-ECP)
Linguagens Formais e Autômatos
20 de março de 2023
5 / 30
Linguagens regulares e autômatos finitos
Propriedades das Linguagens Regulares
QUESTÃO 1: A linguagem é/não é regular?
O Lema do Bombeamento tem a seguinte intuição:
Se a linguagem L é regular, então há um Autômato Finito M que a
reconheça. M possui n estados.
Se o autômato M aceita uma cadeia w de tamanho maior ou igual a n,
então algum estado q de M é visitado mais de uma vez. Ou seja, há um
ciclo na função programa que passa por q.
A cadeia w pode ser divida em três partes w = uvz, tal que |uv | ≤ n,
|v | ≥ 1 e v reconhecida pelo ciclo em M. Portanto, uv i z, para qualquer
i ≥ 0 é aceita pelo por M, executando o ciclo i vezes.
Verifique a intuição no autômato abaixo:
Bruno Feres de Souza (UFMA-CCET-ECP)
Linguagens Formais e Autômatos
20 de março de 2023
6 / 30
Linguagens regulares e autômatos finitos
Propriedades das Linguagens Regulares
QUESTÃO 1: A linguagem é/não é regular?
Formalmente, o Lema do Bombeamento é assim enunciado:
Seja L é uma linguagem regular. Então existe uma constante n tal
que qualquer palavra w ∈ L com |w | ≥ n pode ser decomposta como
w = uvz, com |uv | ≤ n e v ≥ 1, tal que wi = uv i z ∈ L, para qualquer
i ≥ 0.
Bruno Feres de Souza (UFMA-CCET-ECP)
Linguagens Formais e Autômatos
20 de março de 2023
7 / 30
Linguagens regulares e autômatos finitos
Propriedades das Linguagens Regulares
QUESTÃO 1: A linguagem é/não é regular?
O Lema do Bombeamento é utilizado para demonstrar que uma certa
linguagem não é regular.
De maneira geral, a prova por contradição utilizando este lemma
segue quatro passos, a saber:
1
2
3
4
Escolher o valor de n.
Dado n, escolher w ∈ L com |w | ≥ n.
Escolher a decomposição w = uvz, sujeito a |uv | ≤ n e a |v | ≥ 1.
Escolher i tal que a cadeia wi = uv i z bombeada não esteja em L.
Bruno Feres de Souza (UFMA-CCET-ECP)
Linguagens Formais e Autômatos
20 de março de 2023
8 / 30
Linguagens regulares e autômatos finitos
Propriedades das Linguagens Regulares
QUESTÃO 1: A linguagem é/não é regular?
Algumas recomendações podem ser úteis quando da aplicação dos quatro passos:
No passo 1, valores pequenos de n geralmente são adequados, pois limitam as possibilidades da cadeia uv escolhida posteriormente.
No passo 2, a cadeia w deve ser escolhida de tal forma a restringir ainda
mais a futura escolha de u, v e z, com vista a produzir uma violação do
Lema do Bombeamento.
No passo 3, deve-se verificar todas as possibilidades de combinação para
u, v e z.
No passo 4, é necessário testar alguns valores de i, inclusive o 0, para
encontrar uma contradição na aplicação do lema.
Bruno Feres de Souza (UFMA-CCET-ECP)
Linguagens Formais e Autômatos
20 de março de 2023
9 / 30
Linguagens regulares e autômatos finitos
Propriedades das Linguagens Regulares
QUESTÃO 1: A linguagem é/não é regular?
Como exemplo da aplicação do Lema do Bombeamento, considere a
linguagem L = {ww R : w ∈ {a, b}∗ }.
Para demostrar que L não é regular, pode-se escolher n = 2 e
w = aabbaa. Observe que com n e w assim definidos, a subcadeia v
de w será a ou aa.
Desta forma, independente de qual dos dois v utilizar, sempre será
possı́vel encontrar um valor de i tal que wi = uv i z não esteja em L.
Note o seguinte: com as escolhas n = 2, w = aaaa, v = aa não seria
possı́vel violar o Lemma do Bombeamento, sendo necessária avaliar
outros cenários. Tal fato enfatiza a necessidade de uma boa escolha
dos valores.
Bruno Feres de Souza (UFMA-CCET-ECP)
Linguagens Formais e Autômatos
20 de março de 2023
10 / 30
Linguagens regulares e autômatos finitos
Propriedades das Linguagens Regulares
QUESTÃO 1: A linguagem é/não é regular?
Como exercı́cio, demonstre, utilizando o Lema do Bombeamento, que
as seguintes linguagens não são regulares:
1
2
3
4
5
6
7
8
9
10
11
12
13
L = {an b n : n ≥ 0}
L = { w ∈ {a, b}∗ : na (w ) < nb (w )}
L = {(ab)n ak : n > k, k ≥ 0}
L = {an : n é um quadrado perfeito}
L = {an b k c n+k : n, k ≥ 0}
L = {an b l : n 6= l}
L = {an b l ak : k ≥ n + l}
L = {an b l ak : k 6= n + l}
L = {an b l ak : n = l ou l 6= k}
L = {an b l : n ≤ l}
L = {w ∈ {a, b}∗ : na (w ) 6= nb (w )}
L = {ww : w ∈ {a, b}∗ }
L = {www R : w ∈ {a, b}∗ }
Bruno Feres de Souza (UFMA-CCET-ECP)
Linguagens Formais e Autômatos
20 de março de 2023
11 / 30
Linguagens regulares e autômatos finitos
Propriedades das Linguagens Regulares
QUESTÃO 2: A Linguagem Regular é finita ou infinita?
Como verificar se uma Linguagem Regular L é infinita ou finita (ou até
mesmo vazia)?
Vazia: se, e somente se, o autômato M, que possui n estados e reconhece L, não aceita palavra alguma w tal que |w | < n.
Finita: se, e somente se, M não aceita palavra alguma tal que n ≤
|w | < 2n.
Infinita: se, e somente se, M aceita uma palavra alguma tal que n ≤
|w | < 2n.
Por exemplo, linguagem reconhecida pelo autômato abaixo é vazia,
finita ou infinita?
Bruno Feres de Souza (UFMA-CCET-ECP)
Linguagens Formais e Autômatos
20 de março de 2023
12 / 30
Linguagens regulares e autômatos finitos
Propriedades das Linguagens Regulares
QUESTÃO 3: Duas Linguagens Regulares são iguais?
É possı́vel analisar duas Linguagens Regulares e concluir se são iguais
ou diferentes?
Se M1 e M2 são Autômatos Finitos, então existe um algoritmo para
determinar se ACEITA(M1 ) = ACEITA(M2 ).
Pode-se utilizar o algoritmo de Minimização de um Autômato Finito.
Bruno Feres de Souza (UFMA-CCET-ECP)
Linguagens Formais e Autômatos
20 de março de 2023
13 / 30
Linguagens regulares e autômatos finitos
Propriedades das Linguagens Regulares
QUESTÃO 3: Duas Linguagens Regulares são iguais?
O algoritmo de minimização tem por objetivo gerar um Autômato
Finito equivalente com o menor número possı́vel de estados.
O Autômato Finito Mı́nimo é único.
Assim, dois autômatos distintos que aceitam a mesma linguagem são
reduzidos ao mesmo Autômato Finito Mı́nimo.
Bruno Feres de Souza (UFMA-CCET-ECP)
Linguagens Formais e Autômatos
20 de março de 2023
14 / 30
Linguagens regulares e autômatos finitos
Propriedades das Linguagens Regulares
QUESTÃO 3: Duas Linguagens Regulares são iguais?
Para o algoritmo ser aplicado, três pré-requisitos devem ser observados:
1
2
3
O autômato de entrada deve ser determinı́stico.
O autômato não pode ter estados inacessı́veis.
A função programa deve ser total.
Caso algum pré-requisito não seja atendido, as seguintes correções devem ser realizadas:
1
2
3
Gerar o autômato equivalente.
Eliminar estados inacessı́veis e suas correspondentes transições.
Introduzir um estado extra e incluir as transições não previstas.
Bruno Feres de Souza (UFMA-CCET-ECP)
Linguagens Formais e Autômatos
20 de março de 2023
15 / 30
Linguagens regulares e autômatos finitos
Propriedades das Linguagens Regulares
QUESTÃO 3: Duas Linguagens Regulares são iguais?
Suponha um Autômato Finito Determı́stico M = (Σ, Q, δ, q0 , F ). Os
passos do algoritmo de minimização são os seguinte:
1
2
3
4
5
Tabela dos estados não-equivalentes.
Marcação dos estados trivialmente não-equivalentes.
Marcação dos estados não-equivalentes.
Unificação dos estados equivalentes.
Exclusão dos estados inúteis.
Bruno Feres de Souza (UFMA-CCET-ECP)
Linguagens Formais e Autômatos
20 de março de 2023
16 / 30
Linguagens regulares e autômatos finitos
Propriedades das Linguagens Regulares
QUESTÃO 3: Duas Linguagens Regulares são iguais?
Para explicar o algoritmo, considere o autômato abaixo:
Bruno Feres de Souza (UFMA-CCET-ECP)
Linguagens Formais e Autômatos
20 de março de 2023
17 / 30
Linguagens regulares e autômatos finitos
Propriedades das Linguagens Regulares
QUESTÃO 3: Duas Linguagens Regulares são iguais?
Passo 1: Tabela dos estados não-equivalentes.
Bruno Feres de Souza (UFMA-CCET-ECP)
Linguagens Formais e Autômatos
20 de março de 2023
18 / 30
Linguagens regulares e autômatos finitos
Propriedades das Linguagens Regulares
QUESTÃO 3: Duas Linguagens Regulares são iguais?
Passo 2: Marcação dos estados trivialmente não-equivalentes.
Bruno Feres de Souza (UFMA-CCET-ECP)
Linguagens Formais e Autômatos
20 de março de 2023
19 / 30
Linguagens regulares e autômatos finitos
Propriedades das Linguagens Regulares
QUESTÃO 3: Duas Linguagens Regulares são iguais?
Passo 3: Marcação dos estados não-equivalentes.
Analisa-se cada par não marcado na tabela.
Por exemplo, considere o par {q0 , q4 }:
se q2 6≡ q3 =⇒ q0 ≡
6 q4 para o sı́mbolo a.
se q1 ≡
6 q2 =⇒ q0 ≡
6 q4 para o sı́mbolo a.
As regras geradas são utilizadas para marcar a tabela de não-equivalentes.
A cada novo par analisado, as regras anteriores são verificadas e, se
disparadas, a tabela é atualizada e as regras são reavaliadas.
Bruno Feres de Souza (UFMA-CCET-ECP)
Linguagens Formais e Autômatos
20 de março de 2023
20 / 30
Linguagens regulares e autômatos finitos
Propriedades das Linguagens Regulares
QUESTÃO 3: Duas Linguagens Regulares são iguais?
Passo 3: Marcação dos estados não-equivalentes.
Bruno Feres de Souza (UFMA-CCET-ECP)
Linguagens Formais e Autômatos
20 de março de 2023
21 / 30
Linguagens regulares e autômatos finitos
Propriedades das Linguagens Regulares
QUESTÃO 3: Duas Linguagens Regulares são iguais?
Passo 4: Unificação dos estados equivalentes.
Bruno Feres de Souza (UFMA-CCET-ECP)
Linguagens Formais e Autômatos
20 de março de 2023
22 / 30
Linguagens regulares e autômatos finitos
Propriedades das Linguagens Regulares
QUESTÃO 3: Duas Linguagens Regulares são iguais?
Passo 5: Exclusão dos estados inúteis.
Um estado é considerado inútil se eé é não-final e a partir do mesmo
não é possı́vel atingir um estado final.
No exemplo apresentado, não há estados inúteis.
Bruno Feres de Souza (UFMA-CCET-ECP)
Linguagens Formais e Autômatos
20 de março de 2023
23 / 30
Linguagens regulares e autômatos finitos
Propriedades das Linguagens Regulares
QUESTÃO 4: Linguagens Regulares são fechadas para
diversas operações?
Linguagens Regulares são fechadas para as seguintes operações:
União
Concatenação
Complemento
Intersecção
Bruno Feres de Souza (UFMA-CCET-ECP)
Linguagens Formais e Autômatos
20 de março de 2023
24 / 30
Linguagens regulares e autômatos finitos
Propriedades das Linguagens Regulares
QUESTÃO 4: Linguagens Regulares são fechadas para
diversas operações?
Linguagens Regulares são fechadas para a operação de União:
Decorre trivialmente da definição de Expressões Regulares.
Bruno Feres de Souza (UFMA-CCET-ECP)
Linguagens Formais e Autômatos
20 de março de 2023
25 / 30
Linguagens regulares e autômatos finitos
Propriedades das Linguagens Regulares
QUESTÃO 4: Linguagens Regulares são fechadas para
diversas operações?
Linguagens Regulares são fechadas para a operação de Concatenação:
Decorre trivialmente da definição de Expressões Regulares.
Bruno Feres de Souza (UFMA-CCET-ECP)
Linguagens Formais e Autômatos
20 de março de 2023
26 / 30
Linguagens regulares e autômatos finitos
Propriedades das Linguagens Regulares
QUESTÃO 4: Linguagens Regulares são fechadas para
diversas operações?
Linguagens Regulares são fechadas para a operação de Complemento:
Considere o Autômato Finito Determinı́stico M = (Σ, Q, δ, q0 , F ), que
reconhece a Linguagem Regular L.
A ideia consiste em inverter as condições de ACEITA/REJEITA de M
para reconhecer L.
Pode-se construir um autômato M 0 = (Σ, Q 0 , δ 0 , q0 , F 0 ), que reconheça
L, da seguinte forma:
Q 0 = Q ∪ {d}
F 0 = Q0 − F
δ 0 é como δ, mais as seguintes transições, para cada a ∈ Σ:
δ 0 (q, a) = d, se δ(q, a) não é definida
δ 0 (d, a) = d
Bruno Feres de Souza (UFMA-CCET-ECP)
Linguagens Formais e Autômatos
20 de março de 2023
27 / 30
Linguagens regulares e autômatos finitos
Propriedades das Linguagens Regulares
QUESTÃO 4: Linguagens Regulares são fechadas para
diversas operações?
Linguagens Regulares são fechadas para a operação de Intersecção:
Sejam L1 e L2 Linguagens Regulares. Então, pela Lei de De Morgan, a
igualdade abaixo é válida:
L1 ∩ L2 = (L1 ∪ L2 )
Como a classe de Linguagens Regulares é fechada para as operações de
União e Complemento, então ela também é fechada para a intersecção.
Bruno Feres de Souza (UFMA-CCET-ECP)
Linguagens Formais e Autômatos
20 de março de 2023
28 / 30
Linguagens regulares e autômatos finitos
Propriedades das Linguagens Regulares
Bibliografia
1
MENEZES, Paulo B. Linguagens formais e autômatos. 6ª ed. Porto
Alegre: Bookman, 2011.
Capı́tulos 3 e 4.
Bruno Feres de Souza (UFMA-CCET-ECP)
Linguagens Formais e Autômatos
20 de março de 2023
29 / 30
Linguagens regulares e autômatos finitos
Propriedades das Linguagens Regulares
Dúvidas?
Bruno Feres de Souza (UFMA-CCET-ECP)
Linguagens Formais e Autômatos
20 de março de 2023
30 / 30
Download