Vous êtes sur la page 1sur 44

Propriedades das Linguagens Regulares

Wilson Rubens Galindo

Introduo
Como saber se uma linguagem ou no regular? Que operaes podem ser feitas com linguagens? Como eu sei se existe um autmato mais simples que o meu para a mesma linguagem?

Lema do bombeamento
Problema simples: faa um autmato que reconhea a seguinte linguagem anbn, para n1.

Lema do bombeamento
Problema simples: faa um AFND que reconhea a seguinte linguagem anbn, para n>=1. Se voc conseguiu, meus parabns, voc errou em seus clculos, se voc no conseguiu, no fique triste, no existe este autmato. Pumping Lemma (estratgia utilizada para saber se uma linguagem no regular)

Lema do bombeamento
Teorema: Seja L uma linguagem regular. Ento existe uma constante n (que depende de L) tal que, para todo string w em L tal que |w|>=n, podemos dividir w em trs cadeias, w=xyz, tais que:
1. 2. 3.

y |xy|<=n Para todo k>=0, a cadeia xykz tambm est em L.

Lema do bombeamento
Sempre podemos encontrar um string no vazio y no muito longe do inicio de w que pode ser bombeado; ou seja, podemos repetir y qualquer nmero de vezes, ou exclu-lo (o caso k=0), mantendo o string resultante na linguagem L.

Lema do bombeamento
Exemplo: vamos provar que a linguagem anbn no regular. Passos de resoluo:
Escolha uma cadeia dessa linguagem Tomemos aaabbb Vamos analisar os casos possveis do lema. Tome o menor tamanho possvel de y, |y|=1 Podemos escolher x=aa e y=a, e z=bbb, se bombearmos a, quebraremos a lei anbn.

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

Lema do bombeamento
Como encontramos um contra-exemplo para mostrar que anbn que quebra o teorema, ento conclumos que anbn no uma linguagem regular.

Exerccios
Prove que a seguintes linguagens a seguir no so regulares. {0n10n|n 1} {0n1m0n|n 1} {0n1m|n m} {0n12n|n 1}

a. b. c. d.

Propriedades de fechamento de LR
A unio de duas linguagens regulares regular A interseo de duas linguagens regulares regular O complemento de uma linguagem regular regular A diferena de duas linguagens regulares regular O reverso de uma linguagem regular regular O fechamento de uma linguagem regular regular A concatenao de duas linguagens regulares regular. Um homeomorfismo de uma linguagem regular regular Um homeomorfismo inverso de uma linguagem regular regular

Fechamento sob a unio


Unio
Se M e N so linguagens regulares, MUN tambm . Prova: Essa prova simples. Tendo em vista que M e N so regulares, elas tm expresses regulares; digamos que M=L(R) e N=L(S). Ento, MUN = L(R+S), pela definio do operador + para expresses regulares. q.e.d.

Fechamento para a concatenao


Este tipo de demonstrao tambm simples, pois assim como a unio e fechamento, definem as expresses regulares. Seguindo o mesmo princpio da unio, provamos: Se M e N so linguagens regulares, LM tambm .

Fechamento sob o estrela


Se L uma linguagem regular, ento L* tambm .

Fechamento sob o complemento

Voc sabe calcular o complemento de uma expresso regular?

Fechamento sob o complemento

Nem eu. E agora?

Fechamento sob o complemento

Usaremos um artifcio, Teorema para encontrar um Autmato que aceite o complemento.

Fechamento sob o complemento


Podemos ento encontrar o complemento de uma expresso assim:
Converta a expresso regular em um -AFND Converta este -AFND em AFD. Complemente os estados de aceitao do AF. Converta o novo autmato em expresso regular.

Fechamento sob o complemento


Teorema:
Seja A=L(B) para algum AFD B= (Q, , , q0, F). Ento =L(C), onde C= (Q, , , q0, Q-F).

Isto , C exatamente igual a B, mas os estados de aceitao de B se tornaram de no aceitao de C e vice-versa.

Fechamento sob a interseo


Temos duas formas de provar o fechamento sob a interseo: Pela lei de DeMorgan, que diz que a interseo de dois conjuntos o conjunto de elementos que no esto no complemento de nenhum dos dois conjuntos. Ou por autmatos, que veremos a seguir.

Fechamento sob a interseo


Sejam L e M as linguagens dos AFD AL=(QL, , L, qL, FL) e AM=(QM, , M, qM, FM). = (L) U () Criamos um autmato A que o autmato de andar com os dois autmatos ao mesmo tempo. Obteremos seguinte autmato: A=(QL x QM, , , (qL, qM), FL x FM) ((p,q),a) = (L(p,a), M(q,a)). Onde pQL e qQM.

Fechamento sob a interseo


Exemplo

Reverso
O reverso de uma cadeia a1a2 ... an a cadeia escrita ao contrrio, ou seja, anan-1 ... a1. Usamos wR para representar o reverso do string w. Exemplo: 0010R 0100. Exemplo2: R=

Reverso
A reverso de uma linguagem L, escrita como LR a linguagem que consiste nos reversos de todas suas cadeias. Ex:
L={001, 10, 111} LR={100, 01, 111}

Reverso
A reverso tambm preserva as linguagens regulares; isto , se L uma linguagem regular, LR tambm . Existem duas provas simples, formalmente ou atravs de autmatos, provaremos agora pela segunda maneira.

Reverso
Dada uma linguagem L que L(A) para algum AFND qualquer, podemos construir um autmato para LR:
Invertendo todos os arcos no diagrama de transio para A. Tornando o estado inicial de A o nico estado de aceitao de A. Criando um novo estado inicial p0 com transies para todos os estados de aceitao de A.

Reverso
Exemplo:

Homomorfismo
Um homomorfismo de cadeias uma funo sobre cadeias que atua substituindo cada smbolo por um string especfico. Exemplo:
A funo h definida por h(0)=ab e h(1)= um homomorfismo. Dado qualquer string de 0s e 1s, ela substitui todos os zeros pelo string ab e substitui todos os 1s por .
Ex: h aplicada a 0011 = abab Esboo: h(0)h(0)h(1)h(1) = (ab)(ab)()()

Homomorfismo
As linguagens regulares so fechadas sob homomorfismos. Prova no livro.

Homomorfismo Inverso
Aplicar um homomorfismo ao contrrio. Em outras palavras, dada a expresso regular E, encontrar uma expresso que descreve a L(E) aplicada a um homomorfismo. Exemplo:
Para a expresso (0101)* Temos a expresso (aa)* Onde L(a)=01

Homomorfismo Inverso
O homomorfismo inverso tambm fechado para as linguagem regulares. Em outras palavras, se a expresso w regular, h-1(w) regular.

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

Carter vazio de LR
Basicamente, uma linguagem vazia se:
L=
Dado um autmato, qualquer caminho que se tome do estado inicial, nunca se alcana um estado de aceitao.

Teste de pertinncia em uma LR


H uma maneira simples de saber se, cada uma cadeia w, esta pertence a uma linguagem regular L:
Produza o autmato finito A que a reconhea e em seguida rode w em A, se chegar ao estado de aceitao ao ler w, significa que w pertence linguagem.

Equivalncia e Minimizao de Autmatos

Equivalncia de estados
difcil saber se dois autmatos A e B possuem a mesma linguagem, pois no podemos apenas considerar a situao onde *(q0,w)=*(p0,w), sendo q0 e p0 estados de A e B. Para fazer uma anlise abrangente, utilizaremos uma tcnica chamada equivalncia de estados

Equivalncia de estados
Dois estados so equivalentes quando no h caractersticas que os distinguem. Parece bvio mas importante. Sejam p e q dois estados se um for de aceitao e o outro no, esto so distinguveis por . Devemos acompanhar os estados de no aceitao at que cheguem no mesmo estado.

Equivalncia de estados
Teste as equivalncias dos estados abaixo:

Tabela de no-equivalncias do autmato do slide anterior

Equivalncia de estados
Conclumos que no conseguimos distinguir A de E, B de H nem D de F. Podemos utilizar uma ferramenta interessante que chame tabela de noequivalncias de estados, que vai nos orientar para a escolha de estados equivalentes.

Minimizao de AFDs
Passos:
Primeiro, elimine qualquer estado que no possa ser acessado a partir do estado inicial. Em seguida, particione os estados restantes em blocos, de forma que todos os estados no mesmo bloco sejam equivalentes, e que nenhum par de estados de blocos equivalentes seja equivalente. Construa o autmato colapsando suas as parties.

Minimizao de AFDs
Autmato do estado anterior minimizado. Parties: ({A,E}, {B,H}, {D,F})

Exerccios
Desenhe a tabela de distines e o AFD mnimo para os seguintes autmatos: 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

Exerccios
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