1 / 33

LFA: Unidade 03 – Parte B

LFA: Unidade 03 – Parte B. Engenharia/Ciência da Computação Prof. François profrancois@yahoo.com.br. Equivalência entre AFN e AFD. Teorema: Equivalência entre AFD e AFN A classe dos AFD é equivalente à classe dos AFN.

lowell
Télécharger la présentation

LFA: Unidade 03 – Parte B

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. LFA:Unidade 03 – Parte B Engenharia/Ciência da Computação Prof. François profrancois@yahoo.com.br

  2. Equivalência entre AFN e AFD • Teorema: Equivalência entre AFD e AFN • A classe dos AFD é equivalente à classe dos AFN. • A prova consiste em mostrar que para todo AFN M é possível construir um AFD M’ que realiza o mesmo processamento, ou seja, M’ simula M. • A demonstração apresenta um algoritmo para converter um AFN qualquer em um AFD equivalente.

  3. Equivalência entre AFN e AFD • A idéia central do algoritmo é a construção de estados de M’ que simulem as diversas combinações de estados de M. • A transformação contrária - construir um AFN a partir de um AFD - não necessita ser demonstrada, uma vez que decorre trivialmente das definições (Por quê? Porque a função programa  do AFN contém a função programa ’ do AFD). • Seja M = (, Q, , q0, F) um AFN qualquer e seja M’ = (’, Q’, ’, <q0>, F’) um AFD construído a partir de M como se segue:

  4. Equivalência entre AFN e AFD • Q’ :Conjunto de todas as combinações, sem repetições, de estados de Q, as quais são denotadas por <q1q2...qn> onde qi  Q para i em {1, 2, ..., n}. Note-se que a ordem dos elementos não identifica mais combinações. Por exemplo: <quqv> = <qvqu>. • ’ : Tal que ’(<q1...qn>, a) = <p1...pm> sss  ({q1, ..., qn}, a) = {p1, ..., pm}, ou seja, um estado de M’ representa uma imagem de todos os estados alternativos de M. • <q0>:Estado inicial. • F’ :Conjunto de todos os estados <q1q2...qn>  Q’ tal que alguma componente qi  F, para i  {1, 2, ..., n}.

  5. Equivalência entre AFN e AFD • PROVA: • A demonstração de que o AFD M’ simula o processamento do AFN M é dada por indução sobre o tamanho da palavra. Deve-se provar que, para uma palavra qualquer w de : • ’(<q0>, w) = <q1...qu> sse ({q0}, w) = {q1, ..., qu} • (A prova está no livro, na página 58). • Exemplo: Construção de um AFD a partir de um AFN. • Seja o AFN M6 = ({a,b}, {q0, q1, q2, qf}, 6, q0, {qf}), dado no exemplo anterior e representado abaixo:

  6. Equivalência entre AFN e AFD

  7. Equivalência entre AFN e AFD • O AFD M6’ = ({a, b}, Q’, ’, <q0>, F’), construído conforme o algoritmo dado é:

  8. Equivalência entre AFN e AFD • onde: • Q’ = {<q0>,<q1>,<q2>,<qf>,<q0q1>,<q0q2>, ...,<q0q1q2qf>} • F’ = {<qf>,<q0qf>,<q1qf>,...,<q0q1q2qf>} • 6’ = É tal conforme os valores dados na tabela abaixo:

  9. Equivalência entre AFN e AFD

  10. Equivalência entre AFN e AFD • No grafo que representa M6’, acima, p0, p1, p2 e pf denotam respectivamente <q0>, <q0q1>, <q0q1q2>, <q0q1q2qf>.

  11. AF com Movimento vazio • Autômato Finito com Movimento Vazio • Movimentos vazios constituem uma generalização dos AFN e são transições que ocorrem sem que haja a leitura de símbolo algum • Os movimentos vazios podem ser interpretados como um não-determinismo interno do autômato, que é encapsulado. • A não ser por uma eventual mudança de estados, nada mais pode ser observado sobre um movimento vazio.. • Qualquer AF pode ser simulado por um autômato finito não-determinístico

  12. AF com Movimento vazio • Definição: Autômato Finito com Movimento Vazio (AF) • Um autômato finito não-determinístico e com movimento vazio (AFN), ou simplesmente autômato finito com movimento vazio (AF), é uma quíntupla: • M = (, Q, , q0, F), • onde:

  13. AF com Movimento vazio •  - Alfabeto de símbolos de entrada • Q - Conjunto finito de estados possíveis do autômato •  - Função programa ou função de transição : Q x ( {})  2Q, parcial. • q0 - Estado inicial tal que q0  Q • F - Conjunto de estados finais, tais que F  Q. • Portanto os componentes do AF são os mesmos do AFN, com exceção da função programa (ver figura abaixo).

  14. AF com Movimento vazio

  15. AF com Movimento vazio • O processamento dos AF é similar ao dos AFN. Por analogia o processamento de uma transição para uma entrada vazia também é não-determinística. Assim um AF ao processar uma entrada vazia assume simultaneamente os estados de origem e destino da transição. • Exemplo: Autômato Finito com Movimento Vazio • O AF M7 = ({a,b}, {q0, qf}, 7, q0, {qf}), representado na figura abaixo reconhece a linguagem L7 ={ w | qualquer símbolo a antecede qualquer símbolo b }, onde 7 é representada na forma da tabela:

  16. AF com Movimento vazio

  17. AF com Movimento vazio

  18. Computação Vazia • Seja M = (, Q, , q0, F) um autômato finito com movimentos vazios. • a) A Computação Vazia ou Função Fecho Vazio, a partir de um estado, denotada por:  : Q  2Q , e é indutivamente definida como segue: •  (q) ={q}, se (q, ) é indefinida; •  (q) ={q} U (q, ) U (Up(p)), caso contrário; • b) a Computação Vazia ou Função Fecho Vazio, a partir de um conjunto de estados finito, denotada por:

  19. Computação Vazia • * : 2Q 2Q • é tal que • * (P) = Uqp (q) • Lembrar que * e  são agrupadas em . • Considere o autômato finito com movimentos vazios do exemplo anterior. • Então:  (q0) = {q0, qf } •  (qf) = {qf} • ({q0,qf) = {q0, qf }

  20. Computação Vazia • A computação de um autômato finito com movimentos vazios, para uma palavra de entrada w, consiste na sucessiva aplicação da função programa para cada símbolo de w (da esquerda para a direita), cada passo de aplicação intercalado com computações vazias, até ocorrer uma condição de parada. Assim, para cada conjunto de estados alternativos assumido pelo autômato, antes de processar a próxima transição, é necessário determinar todos os demais estados atingíveis exclusivamente por movimentos vazios.

  21. Computação Vazia • Definição - Função Programa Estendida, Computação • Seja M = (, Q, , q0, F) um autômato finito com movimentos vazios. A Função Programa Estendida ou Computação de M, denotada por: • * : 2Q x * 2Q • é a função programa: : Q x ( U {})  2Q • estendida para um conjunto finito de estados e para uma palavra e é indutivamente definida como segue:

  22. Computação Vazia • *(P,) =  (P) • *(P,wa) =  (R) onde R={r|r (s,a) e s *(P,w)} • A parada do processamento, a linguagem aceita e a rejeitada é igual à do AFN • ACEITA(M)={w | *({qo}, w) ∩ F ≠Ф} • REJEITA(M)={w | *({qo}, w) ∩ F = Ф ou *({qo}, w) é indefinida}

  23. Computação Vazia • Exemplo de Computação Vazia • Considere a seguinte linguagem sobre o alfabeto { a, b, c}, La = {w | w possui como sufIxo a ou bb ou ccc} • O autômato finito com movimentos vazios:

  24. Computação Vazia • O autômato descrito acima M8 = ({ a, b, c}, {q0, q1, q2, q3, q4, q5, q6, qf}, 8, q0, {qf}) • é tal que ACEITA(M8) = L8 • E em relação à computação vazia, vale que, por exemplo:, •  ({q0}) = {q0, q1, q2, q4} • E a computação da entrada abb é:

  25. Computação Vazia • *({qo},abb) =  ({r |r (s,b) e s *({q0},ab)}) (1) • Sendo que • *({qo},ab) =  ({r |r (s,b) e s *({q0},a)}) (2) • E • *({qo},a) =  ({r |r (s,a) e s *({q0}, )}) (3) • Como • *({qo}, ) =  ({q0})={q0, q1, q2, q4}

  26. Computação Vazia • O qual considerado em (3): • *({qo},a) = })={q0, q1, q2, q4,qf} • O qual considerado em (2): • *({qo},ab) = })={q0, q1, q2, q3,q4} • O qual considerado em (1): • *({qo},abb) = })={q0, q1, q2, q3, q4, qf}

  27. Computação Vazia • Equivalência entre AFN e AFN • Seja M = (, Q, , q0, F) um AFN. E MN = (, Q, , q0, FN ) um autômato construído a partir de M como segue: • a) N: Q x  2Q é tq N (q,a) = * ({q},a) • b) FN é o conjunto de todos os estados q pertencentes a Q tq:  (q) ∩ F ≠Ф (todos os estados que atingem estados finais via computações vazias).

  28. Computação Vazia • EXEMPLO - Construção de AFN a partir de AFN • Considere o autômato finito com movimentos vazios M9 na figura abaixo::

  29. Computação Vazia • E 9 dado por

  30. Computação Vazia • Assim o automato M9 = ({a, b}, {q0, q1, q2}, 9, qo, {q2}) • E o correspondente AFN: • M9N = ({a, b}, {q0, q1, q2}, 9N, qo, FN) é construído assim: • FN = {q0, q1, q2, pois: •  (q0) = {q0, q1, q2} •  (q1) = {q1, q2} •  (q2) = {q2}

  31. Computação Vazia • Na construção de 9N note-se que: • 9*({q0}, ))={q0, q1, q2} • 9*({q1}, ))={q1, q2} • 9*({q2}, ))={q2} • Assim, 9N é tq: • 9N (q0,a)= 9*({q0},a)=  ({r |r (s,a) e s *({q0}, )})= {q0, q1, q2}

  32. Computação Vazia • 9N (q0,b)= 9*({q0},b)=  ({r |r (s,b) e s *({q0}, )})= {q1, q2} • 9N (q1,a)= 9*({q1},a)=  ({r |r (s,a) e s *({q1}, )})= {q2} • 9N (q1,b)= 9*({q1},b)=  ({r |r (s,b) e s *({q1}, )})= {q1, q2} • 9N (q2,a)= 9*({q2},a)=  ({r |r (s,a) e s *({q2}, )})= {q2}

  33. Computação Vazia • 9N (q2,b)= 9*({q2},b)=  ({r |r (s,b) e s *({q2}, )}) é indefinida • E o AFN equivalente é:

More Related