1 / 34

Ling. Formais e Autômatos AFN- ε

Ling. Formais e Autômatos AFN- ε. Tópicos. Autômatos finitos. AF com ε -transições. AF com ε -transições. Definição O autômato finito com ε -transições permite transições sobre ε , a string vazia

barid
Download Presentation

Ling. Formais e Autômatos AFN- ε

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. Ling. Formais e AutômatosAFN-ε

  2. Tópicos Autômatos finitos AF com ε-transições

  3. AF com ε-transições • Definição • O autômato finito com ε-transições permite transições sobre ε, a string vazia • O AFN-ε tem permissão para fazer uma transição espontaneamente, sem receber um símbolo de entrada • Conveniência de programação q0 q1 ε

  4. AF com ε-transições • Definição • Um autômato finito com ε-transições consiste em: • Um conjunto finito de estados: Q • Um conjunto finito de símbolos de entrada: Σ • Uma função de transição que toma como argumentos um estado em Q e um elemento de Σ U {ε}: δ • Um estado inicial (que está em Q) • Um conjunto de estados finais F (F é um subconjunto de Q)

  5. AF com ε-transições • Notação: A = (Q, Σ, δ, q0, F)

  6. Exemplo 1 • Construir um AFN que reconheça as palavras-chave web e ebay Como ele poderia ser construído?

  7. Exemplo 1 • Construir um AFN que reconheça as palavras-chave web e ebay • 1.º passo: Construímos uma seqüência completa de estados para cada palavra-chave, como se fosse a única palavra que o autômato precisasse reconhecer

  8. Exemplo 1 • Construir um AFN que reconheça as palavras-chave web e ebay • O AFN abaixo reconhece a palavra-chave web q0 q1 q2 q3 w e b

  9. Exemplo 1 • Construir um AFN que reconheça as palavras-chave web e ebay • O AFN abaixo reconhece a palavra-chave ebay q4 q5 q6 q7 q8 e b a y

  10. Exemplo 1 • Construir um AFN que reconheça as palavras-chave web e ebay • 2.º passo: Adicionamos um novo estado inicial com ε-transições para os estados iniciais dos autômatos anteriores, que correspondem a cada uma das palavras-chave!

  11. Exemplo 1 • Construir um AFN que reconheça as palavras-chave web e ebay q0 q1 q2 q3 w e b ε Início ε q4 q5 q6 q7 q8 e b a y Acabamos de construir um AFN com ε-transições!

  12. Exemplo 2 L = { w | qualquer símbolo a antecede qualquer símbolo b } Como seria o AFN-ε que aceita essa linguagem?

  13. Exemplo 2 L = { w | qualquer símbolo a antecede qualquer símbolo b } q0 q1 ε b a

  14. ε-fechamento de um estado • Definição informal • Usamos o ε-fechamento em um estado q seguindo todas as transições saindo de q rotuladas por ε. Porém, quando chegamos a outros estados seguindo ε, acompanhamos as transições ε que saem desses estados, e assim por diante, encontrando eventualmente todo estado que pode ser alcançado a partir de q ao longo de qualquer caminho cujos arcos são todos rotulados por ε.

  15. ε-fechamento de um estado • Definição formal • O estado q está em ECLOSE(q). Se o estado p está em ECLOSE(q), e existe uma transição do estado p para o estado r rotulada por ε, então r está em ECLOSE(q). Mais precisamente, se δ é a função de transição do AFN-ε envolvido, e p está em ECLOSE(q), então ECLOSE(q) também contém todos os estados em δ(p, ε).

  16. ε-fechamento de um estado • ECLOSE(1) = { ? } 2 3 6 ε ε ε 1 b ε 4 5 7 ε a

  17. ε-fechamento de um estado • ECLOSE(1) = { 1, 2, 3, 4, 6 } 2 3 6 ε ε ε 1 b ε 4 5 7 ε a

  18. AF com ε-transições • Considerações • Dado qualquer AFN-εE, podemos encontrar um AFD D que aceita a mesma linguagem que E. • Para eliminar as ε-transições, aplica-se uma construção muito parecida com a construção de conjuntos, pois os estados de D são subconjuntos dos estados de E. • A única diferença é que devemos incorporar as ε-transições de E, o que fazemos por meio do mecanismo do ε-fechamento (ECLOSE).

  19. Ling. Formais e AutômatosExp. regulares

  20. Tópicos Expressões regulares Introdução Operadores

  21. Linguagens regulares • De acordo com a Hierarquia de Chomsky, as linguagens regulares constituem a classe de linguagens mais simples, sendo possível desenvolver algoritmos de reconhecimento, de geração ou de conversão entre formalismos de pouca complexidade, de grande eficácia e de fácil implementação. • Entretanto, as linguagens regulares possuem fortes limitações de expressividade.

  22. Linguagens regulares Um autômato finito reconhece uma linguagem regular!

  23. Expressões regulares • Toda linguagem regular pode ser descrita por uma expressão regular • Uma expressão regular é definida a partir de conjuntos (linguagens) básicos e operações de concatenação e de união

  24. Expressões regulares • Ø é uma expressão regular e denota o conjunto { } • Ε é uma expressão regular e denota o conjunto {ε} • Para cada aЄΣ, a é uma expressão regular e denota o conjunto { a } • Se r e s são expressões regulares denotando os conjuntos R e S, então (r+s), (rs) e (r*) são expressões regulares e denotam os conjuntos RUS, RS e R*, respectivamente

  25. Expressões regulares • Alfabeto: Σ = { 0, 1 } • 00 é expressão regular se 0 é expressão regular • L(0) L(0) = { 0 } { 0 } = { 0 } • 0+1 é expressão regular se 0 é expressão regular e 1 é expressão regular • L(0) U L(1) = { 0 } U { 1 } = { 0, 1 } = Σ • 0* é expressão regular se 0 é expressão regular • L(0)* = { 0 }* = { ε, 0, 00, 000, 0000, ... }

  26. Expressões regulares • Precedência: • * , + • 0+1* • L(0) U L(1)* = { 0 } U L(1)* = { 0 } U { 1 }* = { 0 } U { ε, 1, 11, ...}= = { 0, ε, 1, 11, ... } • Abreviamos rr* por r+ • 00*11*22* = 0+1+2+

  27. Exemplo 1 • Considerando o alfabeto Σ={ 0, 1 } E1 = (0+1)* 00 (0+1)* O que E1 representa?

  28. Exemplo 1 • Considerando o alfabeto Σ={ 0, 1 } E1 = (0+1)* 00 (0+1)* = L(E1) = L((0+1)*) . L(0) . L(0) . L((0+1)*) = {0, 1}* . {00} . {0, 1}* Uma string que tenha, pelo menos, 2 zeros consecutivos!

  29. Exemplo 2 • Considerando o alfabeto Σ={ 0, 1 } E2 = ((0+1) (0+1))* O que E2 representa?

  30. Exemplo 2 • Considerando o alfabeto Σ={ 0, 1 } E2 = ((0+1) (0+1))* = L(E2) = L((0+1) (0+1))* = (L(0+1) . L(0+1))* = = ({0,1} {0,1})* = {ε, 00, 01, 10, 11}* Cadeias que tenham comprimento par! (ou ε)

  31. Expressões regulares AF Determinístico AF Não Determinístico Expressões Regulares

  32. Expressões regulares • Simplificações • Associação • Distribuição • Equivalência de fecho

  33. Expressões regulares • Seja r uma expressão regular. Então existe um AF não determinístico com ε-transições que aceita r.

  34. Sérgio Donizetti Zorzo zorzo@dc.ufscar.br Paulo R. M. Cereda paulo_cereda@dc.ufscar.br Universidade Federal de São Carlos

More Related