1 / 44

FAPE - Curso de Ciência da Computação

FAPE - Curso de Ciência da Computação. Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Terceira Aula - 2006/1. Conteúdo. Parte II: Linguagens regulares Autômatos Finitos Expressões Regulares Gramáticas Regulares. Introdução. Modelos computacionais – modelos formais

ciel
Download Presentation

FAPE - Curso de Ciência da Computação

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. FAPE - Curso de Ciência da Computação Aspectos Teóricos da Computação Professor: Gleifer Vaz Alves Terceira Aula - 2006/1

  2. Conteúdo • Parte II: • Linguagens regulares • Autômatos Finitos • Expressões Regulares • Gramáticas Regulares ATC-03

  3. Introdução • Modelos computacionais – modelos formais • Modelo mais simples • Máquina de estado finito – Autômato Finito • Linguagem dos Autômatos. • Linguagem dos computadores. • Língua portuguesa. ATC-03

  4. Exemplo • Problema: elaborar um modelo computacional para representar uma máquina de bebidas. ATC-03

  5. Máquina de bebidas ATC-03

  6. Sistemas de Estados Finitos • Características: estados e transições. • Um sistema de estados finitos é um modelo matemático com entradas e saídas discretas. • Pode ter um número finito e pré-definido de estados. • Cada estado tem informações limitadas, o mínimo para tomar a próxima ação. ATC-03

  7. Sistemas de Estados Finitos • Exemplo: Elevador • Não memoriza instruções anteriores; • Cada estado tem apenas as informações: andar corrente e direção do movimento; • As entradas para o sistema são requisições pendentes. ATC-03

  8. Sistemas de Estados Finitos • Diagrama de estados finitos para um elevador ATC-03

  9. Sistemas de Estados Finitos • Outros exemplos: analisadores léxicos e processadores de textos. • Sistemas de difícil manipulação: • O cérebro humano com tamanha complexidade que tal modelo se torna ineficiente. • Máquinas que exigem memória sem limite pré-definido. ATC-03

  10. Máquina de Estados Finitos • Autômatos finitos, • Um autômato finito determinístico tem a seguinte estrutura: fita a a b c c b a a transições Controle ATC-03

  11. Autômato Finito • Fita: • dispositivo de entrada do autômato, contém a informação a ser processada; • é finita; é dividida em células; • os símbolos pertencem a um alfabeto de entrada; • não é possível gravar sobre a fita e não há dispositivo de memória auxiliar. ATC-03

  12. Autômato Finito • Unidade de Controle: • indica o estado atual do autômato; • tem unidade de leitura (cabeça de leitura); • a cada leitura a cabeça move-se uma célula para a direita. ATC-03

  13. Autômato Finito • Função de Transição: • comanda as leituras e define o estado da máquina; • determina o novo estado do autômato a cada passo; • como não há memória auxiliar utiliza-se o conceito de estado para armazenar as informações necessárias. ATC-03

  14. Autômato Finito Determinístico • Um AFDM é definido pela quintupla: • M = ( ,Q,, q0, F) onde:  - alfabeto de símbolos de entrada Q – conjunto finito de estados  - função de transição : Qx Q q0 - estado inicial q0Q F - conjunto de estados terminais, F  Q ATC-03

  15. AFD - representação • A função de transição pode ser representada como um grafo direcionado. ATC-03

  16. AFD - representações • Estado inicial: q0 • Estados terminais: qf ATC-03

  17. AFD • O processamento de um autômato para uma palavra de entrada w, • consiste na aplicação da função de transição para cada símbolo de w, • da esquerda para direita, • até ocorrer uma condição de parada. ATC-03

  18. AFD - exemplo • M1 = ({a,b},{q0,q1,q2,qf},1,q0,{qf}) • Um autômato que reconhece L1: • L1 = {w | w possui inicia com a ou b, tem uma seqüência de b´s e termina com a} ATC-03

  19. AFD - exemplo ATC-03

  20. AFD - exemplo • Diagrama de estados para o • Autômato M1 ATC-03

  21. Autômato • Toda palavra é finita, logo não há loop com Autômatos finitos. • Condições de parada: • Após ler o último símbolo da fita chega-se a um estado terminal. E w é aceita. • Após ler o último símbolo da fita chega-se a um estado que não é terminal. E w é rejeitada. ATC-03

  22. Equivalência de autômatos • A linguagem aceita por um AFD M, denotada por ACEITA(M) ou L(M), é o conjunto de todas as palavras pertencentes a * que são aceitas por M. • Dois autômatos M1 e M2 são equivalentes se e somente se: • ACEITA(M1) = ACEITA(M2) ATC-03

  23. Linguagens Regulares • L é uma linguagem regular (ou do tipo 3) se e somente se é aceita por um autômato finito. ATC-03

  24. AFD - exemplos • L2 = {w | w possui um número par de a e b} b q0 q1 b a a a a b q2 q3 Tabela de transições b ATC-03

  25. AFD - exemplos • L3 = { w | w tem um número ímpar de 1} ATC-03

  26. Não-determinismo • Até o momento, computação determinística • ou seja, é possível determinar qual o próximo estado da computação, • existe um único caminho. • Em uma máquina não-determinística há diversas escolhas para o próximo estado da computação. ATC-03

  27. A.F. Não-Determinístico (AFN) • Não-determinismo é um aspecto essencial para a teoria da computação e para linguagens formais. • Sendo objeto de diversos estudos, exemplo, busca de soluções. • Qualquer AFN pode ser simulado por um AFD. ATC-03

  28. Visões do não-determinismo • Pode ser visto com um tipo de computação paralela onde processos paralelos são executados concorrentemente. Até que um desses processos seja aceito, assim toda a computação é aceita. ATC-03

  29. Visões do não-determinismo • Outra forma é ver a computação não-determinística como uma árvore de possibilidades. • A raiz da árvore é o início da computação, • Todo ponto de ramificação da árvore é o ponto da computação onde há múltiplas escolhas. • A máquina aceita se pelo menos um dos ramos termina em um estado de “aceitação”. ATC-03

  30. AFD vs. AFN início rejeita aceita aceita ou rejeita ATC-03

  31. A.F. Não-Determinístico (AFN) • AFN: a função de transição tem como resultado um conjunto de estados possíveis e não somente um único estado. ATC-03

  32. A.F. Não-Determinístico (AFN) • Além disso, a função de transição permite a utilização de transições vazias. ATC-03

  33. A.F. Não-Determinístico (AFN) • Um AFNM é definido pela quintupla: • M = ( ,Q,, q0, F) onde:  - alfabeto de símbolos de entrada Q – conjunto finito de estados  - função de transição : Q x {}  P(Q) q0 - estado inicial q0Q F - conjunto de estados terminais, F  Q ATC-03

  34. AFD vs AFN • Os elementos de um AFN são os mesmos de um AFD, com exceção da função de transição. • O processamento de um AFN para um conj. de estados ao ler um símbolo, é a união dos resultados da função de transição aplicada a cada estado possível. ATC-03

  35. AFD vs AFN • Em alguns casos a construção de um autômato não-determinístico resulta em um autômato menor que o AFD correspondente. • bem como em um autômato de fácil entendimento. • igualmente serve como boa introdução aos modelos de computação não-determinística. ATC-03

  36. AFN – exemplo: • M6 = ({a,b},{q0,q1,q2,qf},6,q0,{qf}) • Um autômato que reconhece L6: • L1 = {w | w possui aaa como sufixo } Tabela de transições ATC-03

  37. AFN - exemplo • Árvore de possibilidades ATC-03

  38. AFN – exemplo: • M7 = ({a,b},{q0,qf},7,q0,{qf}) • L7 = {w | w qq símbolo a antecede qq b}  q0 qf a b Tabela de transições ATC-03

  39. AFN – ex. com transições- • M8 = ({0,1,2},{q0,q1,qf},8,q0,{qf}) • L8 = {w | w é uma sequencia de 0 e/ou 1 e/ou 2}   ATC-03

  40. AFN – ex. com transições- ATC-03

  41. Autômato M8 • Outra construção do M8, agora sem utilizar transições- ATC-03

  42. Equivalência entre AFD e AFN • A classe dos AFD é equivalente à classe dos AFN. • Exemplo de M6. (AFN  AFD) ATC-03

  43. Exemplo - Desafio • Modelar através de autômatos o seguinte problema: • O Lobo, a cabra e o repolho. • [http://britton.disted.camosun.bc.ca/jbwolfgoat.htm] • Torres de Hanói • http://www.npd.ufes.br/hanoi/default.htm ATC-03

  44. Tarefas: listas de exercícios 2 e 3

More Related