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