Propriedades das Linguagens Regulares

Wilson Rubens Galindo

Introdução
Como saber se uma linguagem é ou não regular? Que operações podem ser feitas com linguagens? Como eu sei se existe um autômato mais simples que o meu para a mesma linguagem?

Lema do bombeamento
Problema simples: faça um autômato que reconheça a seguinte linguagem anbn, para n≥1.

Lema do bombeamento
Problema simples: faça um AFND que reconheça a seguinte linguagem anbn, para n>=1. Se você conseguiu, meus parabéns, você errou em seus cálculos, se você não conseguiu, não fique triste, não existe este autômato. Pumping Lemma (estratégia utilizada para saber se uma linguagem não é regular)

Lema do bombeamento Teorema: Seja L uma linguagem regular. tais que: 1. a cadeia xykz também está em L. y≠ε |xy|<=n Para todo k>=0. para todo string w em L tal que |w|>=n. 2. podemos dividir w em três cadeias. w=xyz. . 3. Então existe uma constante n (que depende de L) tal que.

. ou seja. podemos repetir y qualquer número de vezes.Lema do bombeamento Sempre podemos encontrar um string não vazio y não muito longe do inicio de w que pode ser “bombeado”. mantendo o string resultante na linguagem L. ou excluí-lo (o caso k=0).

e z=bbb. Tome o menor tamanho possível de y. Passos de resolução: Escolha uma cadeia dessa linguagem Tomemos aaabbb Vamos analisar os casos possíveis do lema.Lema do bombeamento Exemplo: vamos provar que a linguagem anbn não é regular. |y|=1 Podemos escolher x=aa e y=a. se bombearmos a. quebraremos a lei anbn. .

violamos a linguagem. se bombearmos a. Escolhemos para a mesma cadeia x=aa. quebraremos a lei anbn. e z=bb. y=ab e z=bb. temos: aaababbb. Se considerarmos k=3.. não alteramos a linguagem.. também não conseguiremos. Tomemos agora |y|=2. e assim por diante. mas para k=2. ou seja.Lema do bombeamento Podemos escolher x=aaa e y=b. Se considerarmos k=0 e k=1. .

Lema do bombeamento Como encontramos um contra-exemplo para mostrar que anbn que quebra o teorema. então concluímos que anbn não é uma linguagem regular. .

{0n10n|n ≥ 1} {0n1m0n|n ≥ 1} {0n1m|n ≤ m} {0n12n|n ≥ 1} a. . c. b.Exercícios Prove que a seguintes linguagens a seguir não são regulares. d.

Propriedades de fechamento de LR A união de duas linguagens regulares é regular A interseção de duas linguagens regulares é regular O complemento de uma linguagem regular é regular A diferença de duas linguagens regulares é regular O reverso de uma linguagem regular é regular O fechamento de uma linguagem regular é regular A concatenação de duas linguagens regulares é regular. Um homeomorfismo de uma linguagem regular é regular Um homeomorfismo inverso de uma linguagem regular é regular .

d. q. digamos que M=L(R) e N=L(S).Fechamento sob a união União Se M e N são linguagens regulares.e. Prova: Essa prova é simples. . MUN = L(R+S). pela definição do operador + para expressões regulares. MUN também é. elas têm expressões regulares. Então. Tendo em vista que M e N são regulares.

pois assim como a união e fechamento. Seguindo o mesmo princípio da união. . provamos: Se M e N são linguagens regulares. definem as expressões regulares. LM também é.Fechamento para a concatenação Este tipo de demonstração também é simples.

então L* também é. .Fechamento sob o estrela Se L é uma linguagem regular.

Fechamento sob o complemento Você sabe calcular o complemento de uma expressão regular? .

E agora? .Fechamento sob o complemento Nem eu.

Teorema para encontrar um Autômato que aceite o complemento. .Fechamento sob o complemento Usaremos um artifício.

Fechamento sob o complemento Podemos então encontrar o complemento de uma expressão assim: Converta a expressão regular em um ε-AFND Converta este ε-AFND em AFD. Complemente os estados de aceitação do AF. . Converta o novo autômato em expressão regular.

C é exatamente igual a B. onde C= (Q. q0. ∑. F). Então Ā=L(C). δ. δ. ∑. q0. mas os estados de aceitação de B se tornaram de não aceitação de C e vice-versa. Q-F). Isto é.Fechamento sob o complemento Teorema: Seja A=L(B) para algum AFD B= (Q. .

que diz que a interseção de dois conjuntos é o conjunto de elementos que não estão no complemento de nenhum dos dois conjuntos. que veremos a seguir. Ou por autômatos.Fechamento sob a interseção Temos duas formas de provar o fechamento sob a interseção: Pela lei de DeMorgan. .

qM). FM). Obteremos seguinte autômato: A=(QL x QM. qL. δL. FL x FM) δ((p.a) = (δL(p. ∑. Onde p∈QL e q∈QM. δM(q. .Fechamento sob a interseção Sejam L e M as linguagens dos AFD AL=(QL. δM. ∑ = ∑(ΑL) U ∑(ΑΜ) Criamos um autômato A que é o autômato de andar com os dois autômatos ao mesmo tempo. (qL.a)). ∑. qM. ∑. δ. FL) e AM=(QM.a).q).

Fechamento sob a interseção Exemplo .

ou seja.... anan-1 . Exemplo: 0010R é 0100. a1. Usamos wR para representar o reverso do string w. Exemplo2: εR=ε .Reversão O reverso de uma cadeia a1a2 . an é a cadeia escrita ao contrário..

01. Ex: L={001. 111} LR={100. 10.Reversão A reversão de uma linguagem L. escrita como LR é a linguagem que consiste nos reversos de todas suas cadeias. 111} .

LR também é. isto é. Existem duas provas simples. provaremos agora pela segunda maneira. formalmente ou através de autômatos.Reversão A reversão também preserva as linguagens regulares. se L é uma linguagem regular. .

.Reversão Dada uma linguagem L que é L(A) para algum AFND qualquer. Criando um novo estado inicial p0 com transições ε para todos os estados de aceitação de A. podemos construir um autômato para LR: Invertendo todos os arcos no diagrama de transição para A. Tornando o estado inicial de A o único estado de aceitação de A.

Reversão Exemplo: .

ela substitui todos os zeros pelo string ab e substitui todos os 1’s por ε. Ex: h aplicada a 0011 = abab Esboço: h(0)h(0)h(1)h(1) = (ab)(ab)(ε)(ε) . Exemplo: A função h definida por h(0)=ab e h(1)=ε é um homomorfismo. Dado qualquer string de 0’s e 1’s.Homomorfismo Um homomorfismo de cadeias é uma função sobre cadeias que atua substituindo cada símbolo por um string específico.

Prova no livro.Homomorfismo As linguagens regulares são fechadas sob homomorfismos. .

dada a expressão regular E. Exemplo: Para a expressão (0101)* Temos a expressão (aa)* Onde L(a)=01 .Homomorfismo Inverso Aplicar um homomorfismo “ao contrário”. encontrar uma expressão que descreve a L(E) aplicada a um homomorfismo. Em outras palavras.

se a expressão w é regular. h-1(w) é regular. Em outras palavras. .Homomorfismo Inverso O homomorfismo inverso também é fechado para as linguagem regulares.

b} definido por: h(0)=a. o que é h(L)? . o que é h(L)? Se L é a linguagem L(0+12). 1. h(2)=ba O que é h(0120)? O que é h(21120)? Se L é a linguagem L(01*2). 2}. Para o alfabeto {a. h(1)=ab.Exercícios Suponha que h é o homomorfismo do alfabeto {0.

uma linguagem é vazia se: L=∅ Dado um autômato. qualquer caminho que se tome do estado inicial. nunca se alcança um estado de aceitação.Caráter vazio de LR Basicamente. .

se chegar ao estado de aceitação ao ler w. cada uma cadeia w. .Teste de pertinência em uma LR Há uma maneira simples de saber se. esta pertence a uma linguagem regular L: Produza o autômato finito A que a reconheça e em seguida rode w em A. significa que w pertence à linguagem.

Equivalência e Minimização de Autômatos .

w).w)=δ*(p0. utilizaremos uma técnica chamada “equivalência de estados” . sendo q0 e p0 estados de A e B.Equivalência de estados É difícil saber se dois autômatos A e B possuem a mesma linguagem. pois não podemos apenas considerar a situação onde δ*(q0. Para fazer uma análise abrangente.

. estão são distinguíveis por ε. Sejam p e q dois estados se um for de aceitação e o outro não.Equivalência de estados Dois estados são equivalentes quando não há características que os distinguem. Parece óbvio mas é importante. Devemos acompanhar os estados de não aceitação até que cheguem no mesmo estado.

Equivalência de estados Teste as equivalências dos estados abaixo: .

Tabela de não-equivalências do autômato do slide anterior .

Podemos utilizar uma ferramenta interessante que chame tabela de nãoequivalências de estados. que vai nos orientar para a escolha de estados equivalentes.Equivalência de estados Concluímos que não conseguimos distinguir A de E. B de H nem D de F. .

elimine qualquer estado que não possa ser acessado a partir do estado inicial. Em seguida. Construa o autômato colapsando suas as partições. e que nenhum par de estados de blocos equivalentes seja equivalente.Minimização de AFD’s Passos: Primeiro. . particione os estados restantes em blocos. de forma que todos os estados no mesmo bloco sejam equivalentes.

E}. {D. {B.Minimização de AFD’s Autômato do estado anterior minimizado.H}. Partições: ({A.F}) .

Exercícios Desenhe a tabela de distinções e o AFD mínimo para os seguintes autômatos: 0 ->A B C *D E F G H B A D D D G F G 1 A C B A F E G D .

Exercícios 0 ->A B C *D E F G H I B C D E F G H I A 1 E F H H I B B C E .