460 likes | 629 Views
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
E N D
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 ATC-03
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
Exemplo • Problema: elaborar um modelo computacional para representar uma máquina de bebidas. ATC-03
Máquina de bebidas ATC-03
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
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
Sistemas de Estados Finitos • Diagrama de estados finitos para um elevador ATC-03
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
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
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
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
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
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 q0Q F - conjunto de estados terminais, F Q ATC-03
AFD - representação • A função de transição pode ser representada como um grafo direcionado. ATC-03
AFD - representações • Estado inicial: q0 • Estados terminais: qf ATC-03
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
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
AFD - exemplo ATC-03
AFD - exemplo • Diagrama de estados para o • Autômato M1 ATC-03
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
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
Linguagens Regulares • L é uma linguagem regular (ou do tipo 3) se e somente se é aceita por um autômato finito. ATC-03
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
AFD - exemplos • L3 = { w | w tem um número ímpar de 1} ATC-03
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
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
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
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
AFD vs. AFN início rejeita aceita aceita ou rejeita ATC-03
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
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
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 q0Q F - conjunto de estados terminais, F Q ATC-03
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
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
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
AFN - exemplo • Árvore de possibilidades ATC-03
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
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
AFN – ex. com transições- ATC-03
Autômato M8 • Outra construção do M8, agora sem utilizar transições- ATC-03
Equivalência entre AFD e AFN • A classe dos AFD é equivalente à classe dos AFN. • Exemplo de M6. (AFN AFD) ATC-03
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