Curso: Ciência da Computação   Linguagens Formais e Autômatos               Aula 9Propriedade das Linguagens Regulares
Notas de AulaAspectos Teóricos da Computação   2/16
Linguagens RegularesUma das principais características das linguagens regulares é o fato deserem representadas por formali...
Bombeamento para as Linguagens RegularesA ideia do bombeamento é a seguinte:●   Se uma linguagem é regular, então é aceita...
Bombeamento para as Linguagens RegularesSe L é uma linguagem regular, então:existe uma constante n tal que,para qualquer p...
ExemploConsidere o autômato abaixo.Qual é a linguagem aceita?                                b          q0   a        q1  ...
ExemploConsidere o autômato abaixo.                                 b           q0   a        q1              q2      a   ...
Analisando ainda o nosso autômatoConsidere o autômato abaixo.                                b          q0   a        q1  ...
Investigação se é Linguagem RegularPara mostrar que uma linguagem é regular, ésuficiente representá-la usando um dosformal...
Linguagem Não RegularA seguinte linguagem sobre {a,b} é não regular:L={w|w possui o mesmo número de símbolos a e b}A prova...
Operações Fechadas sobre as Linguagens RegularesOperações sobre linguagens podem ser usadas para:●   Construir novas lingu...
Operação ComplementoRelembrando: O complemento de um conjuntosão todos os elementos que pertencem aoconjunto universo mas ...
Operação Complemento    Suponha que L é uma linguagem regular sobre ∑ *. Então existe um AFD:           M = (∑, Q, δ,q0, F...
ExemploConsidere o AFD: M = ({a,b}, {q0,q1,q2,qf},δ,q0,{qf})                 q0    a        q1     a,b      q2     a,b   q...
Ler●   Seçao 4.1, 4.2, 4.3 do livro.                   Aspectos Teóricos da Computação   15/16
Exercícios1. Desenvolva o AFDC que aceita a LC a linguagem aceita pelo autômato abaixo: Toda string que   começa por a e t...
Próximos SlideShares
Carregando em…5
×

Aula 9 propriedadedas linguagensregulares

1.888 visualizações

Publicada em

Publicada em: Educação
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Aula 9 propriedadedas linguagensregulares

  1. 1. Curso: Ciência da Computação Linguagens Formais e Autômatos Aula 9Propriedade das Linguagens Regulares
  2. 2. Notas de AulaAspectos Teóricos da Computação 2/16
  3. 3. Linguagens RegularesUma das principais características das linguagens regulares é o fato deserem representadas por formalismos de pouca complexidade, grandeeficiência e fácil implementação.No entanto por ser simples é restrita e limitada, sendo fácil definirlinguagens não regulares.(a)Assim alguma questões sobre linguagens regulares necessitam ser analisadas.(b)Como determinar se uma linguagem é regular?(c)A Classe das Linguagens Regulares é fechada para operações de união, concatenação e intersecção (ou seja, a oepração de duas linguagens regulares resulta em uma linguagem regular)?(d)Como verificar se uma linguagem regular é infinita ou finita (ou até mesmo vazia)?(e)É possível analisar duas linguagens regulares quaisquer e concluir se são iguais ou diferentes? Vamos responder essas questõesda Computação conteúdo. Aspectos Teóricos com esse 3/16
  4. 4. Bombeamento para as Linguagens RegularesA ideia do bombeamento é a seguinte:● Se uma linguagem é regular, então é aceita por um autômato finito determinístivo o qual possui um número finito e predefinido de n estados;● Se o autômato reconhece uma entrada w de comprimento maio ou igual ao número de estados n, obrigatoriamente o autômato assume algum estado q mais de uma vez e, portanto, existe um ciclo na função programa que passa por q;● Logo, w pode ser dividida em três subpalavras w=uvz tal que |uv| ≤ n, |v| ≥ 1 e onde v é a parte de w reconhecida pelo ciclo;● Claramente, tal ciclo pode ser executado (“bombeado”) zero ou mais vezes. Portanto, para qualquer i ≥ 0, uviz, é aceita pelo autômato (ou seja, é palavra da linguagem) v u z q0 q qf Aspectos Teóricos da Computação 4/16
  5. 5. Bombeamento para as Linguagens RegularesSe L é uma linguagem regular, então:existe uma constante n tal que,para qualquer palavra w de L onde |w| ≥ n,w pode ser definida como w = uvz onde:|uv| ≤ n,|v| ≥ 1sendo que, para todo i ≥ 0, uviz é palavra de L. Aspectos Teóricos da Computação 5/16
  6. 6. ExemploConsidere o autômato abaixo.Qual é a linguagem aceita? b q0 a q1 q2 a qf b Aspectos Teóricos da Computação 6/16
  7. 7. ExemploConsidere o autômato abaixo. b q0 a q1 q2 a qf babb*an=4no caso particular de w = abbba, vale que:|w| = 5qr=qs=q1u=a, v=bb, z=ba Aspectos Teóricos da Computação 7/16
  8. 8. Analisando ainda o nosso autômatoConsidere o autômato abaixo. b q0 a q1 q2 a qf babb*aEsse autômato pode ter menos estados parareconhecer a mesma linguage?5 minutos para pensar. Aspectos Teóricos da Computação 8/16
  9. 9. Investigação se é Linguagem RegularPara mostrar que uma linguagem é regular, ésuficiente representá-la usando um dosformalismos apresentados anteriormente –Autômato Finito, Expressão Regular ouGramática Regular)No entanto para mostrar que uma linguagem nãoé regular temos que fazer a verificação caso acaso. Aspectos Teóricos da Computação 9/16
  10. 10. Linguagem Não RegularA seguinte linguagem sobre {a,b} é não regular:L={w|w possui o mesmo número de símbolos a e b}A prova que segue é por absurdo.Suponha que L é regular, Então existe um AFD com n estados queaceita L.Seja w=anbn palavra de L sendo |w|=2n ≥ n. Logo, pelo lema anterior –Bombeamento para as Linguagens Regulares – w pode ser definidacomo w=uvz tal que: |uv| ≤ n |v| ≥ 1sendo que, para todo i ≥ 0, uviz é palavra de L, o que é um absurdo,pois, como |uv| ≤ n, uv obrigatoriamente é composta exclusivamente porsímbolos a. Neste caso, por exemplo, uv2z não pertence a L, pois onúmero de símbolos a será maior que o número de símbolos b. Aspectos Teóricos da Computação 10/16
  11. 11. Operações Fechadas sobre as Linguagens RegularesOperações sobre linguagens podem ser usadas para:● Construir novas linguagens regulares a partir de linguagens regulares conhecidas (definida uma álgebra);● Provar propriedades;● Construir algoritmos.Uma importante característica da Classe de LinguagensRegulares é ser fechada para diversas operações, comdestaque para:● União;● Concatenação;● Complemento;● Intersecção. Aspectos Teóricos da Computação 11/16
  12. 12. Operação ComplementoRelembrando: O complemento de um conjuntosão todos os elementos que pertencem aoconjunto universo mas não pertencem aoconjunto.Por exemplo:Seja um linguagem L definida sobre ∑ = {a,b}Ela é identificada pelo AFD abaixo q0 a q1 a,b q2 a,b qfConstrua um AFD que aceite somente aspalavras que não são aceitas por L.Exercício. Aspectos Teóricos da Computação 12/16
  13. 13. Operação Complemento Suponha que L é uma linguagem regular sobre ∑ *. Então existe um AFD: M = (∑, Q, δ,q0, F) tal que: ACEITA(M) = L A ideia do que segue consiste em inverter as condições de ACEITA/REJEITA de Mpara reconhecer ~L. Entretanto, com M pode rejeitar por indefinição é necessáriomodificar o autômato, garantindo que somente irá parar ao terminar de ler toda aentrada. Para tal, é suficiente introduzir um novo estado não-final d. o qual será destinode todas as transições originalmente indefinidas. Um ciclo em d para todos os símbolosdo alfabeto garante que o autômato terminará de ler toda a entrada. Por fim, a inversãodas condições ACEITA/REJEITA pode ser obtida transformando os estados finais em nãofinais e vice-versa. A construção do AFD: MC = (∑, QC, δC, q0, FC) tal que: ACEITA(MC) = ~Lé como segue (suponha d não pertence a Q). QC = QU{d} FC = Q C – FδC é como δ , com as seguintes transições adicionais (para todo a Є ∑ e q Є Q):δC(q,a) = d se δC(q,a) não é definidaδC(d,a) = dClaramente, o autômato finito MC construído acima é tal que:ACEITA(MC) = ~L ou seja ACEITA(MC) = REJEITA(M) Aspectos Teóricos da Computação 13/16
  14. 14. ExemploConsidere o AFD: M = ({a,b}, {q0,q1,q2,qf},δ,q0,{qf}) q0 a q1 a,b q2 a,b qfQual é a linguagem aceita por esse autômato?L = a(a+b)(a+b)Vamos construir o AFD que reconhece a linguagem complemento~L, que são todas as palavras que não são aceitas por M.MC = ({a,b}, {q0,q1,q2,qf,d},δC,q0,{q0,q1,q2,d}ACEITA(MC) = ~L ou seja ACEITA(MC) = REJEITA(M) q0 a q1 a,b q2 a,b qf b a,b d a,b Aspectos Teóricos da Computação 14/16
  15. 15. Ler● Seçao 4.1, 4.2, 4.3 do livro. Aspectos Teóricos da Computação 15/16
  16. 16. Exercícios1. Desenvolva o AFDC que aceita a LC a linguagem aceita pelo autômato abaixo: Toda string que começa por a e tiver dois as é aceita e toda string que começa por b e tiver dois bs é aceita. q0 b a q2 a q1 bb a qf2. (Exercício 4.2 do livro texto) Para cada linguagem abaixo, desenvolva um correspondente autômato finito e exemplifique o lema do bombeamento para linguagens regulares de forma a ilustrar a existência de mais de um bombeamento (a) {anbm | n ≥ 0 e m ≥ 0} (b) {anbmar | n ≥ 0, m ≥ 0 e r ≥ 0}3. Prove que as linguagens não são regulares (suponha que n Є N e m Є N): (a) {ww | w é palavra de {a,b}*}. (b) {w | (w=anbm ou w=ambn), n ≥ m} Aspectos Teóricos da Computação 16/16

×