110 likes | 231 Views
3 AUTÓMATOS FINITOS. AUTÓMATOS FINITOS. Sistemas com um número finito de estados: Elevador Circuitos booleanos Jogos de tabuleiro Computadores Cérebro humano Etc. Como definir uma linguagem com um autómato finito?
E N D
AUTÓMATOS FINITOS • Sistemas com um número finito de estados: • Elevador • Circuitos booleanos • Jogos de tabuleiro • Computadores • Cérebro humano • Etc. • Como definir uma linguagem com um autómato finito? • Construir um autómato finito que verifique se uma palavra pertence à linguagem
Dispositivo de controlo dos estados de A AUTÓMATOS FINITOS DETERMINISTAS • Um autómato finitoé um 5-tuplo A=(Q,I, ,q0,F) em que: • Q é um conjunto finito não vazio, cujos elementos se designam estados; • I é um alfabeto, designado por alfabeto do autómato; • :QxIQ é uma função, designada por função de transição; • q0 é um estado designado por estado inicial; • F é um subconjunto não vazio de Q, cujos elementos se designam por estados terminais. Fita de “input” direcção do movimento cabeça de leitura
AUTÓMATOS FINITOS DETERMINISTAS • A função denota um conjunto finito de transições de estado válidas para o autómato • Os autómatos finitos que aceitam/rejeitam palavras também se designam por aceitadores finitos. • Exemplo • A=(Q,I, ,q0,F) onde • Q={q0,q1,q2} F={q2} I={a,b} • (q0,a)=q1 (q1,a)=q0 (q2,a)=q2 • (q0,b)=q2 (q1,b)=q2 (q2,b)=q2 • As transições de estado também podem ser descritas através de uma tabela de transições.
AUTÓMATOS FINITOS DETERMINISTAS • Os autómatos finitos também podem ser representados através de diagramas de transição, ou seja, grafos orientados etiquetados cujos vértices são representados por: • etiquetado com o identificador do estado inicial, • etiquetado com um identificador de estado terminal • etiquetado com um estado não inicial e não terminal • e cujas arestas são etiquetadas com o símbolo lido do alfabeto. • Seja A=(Q,I,d,q0,F) um autómato finito. Descrição instantânea de A é um par (q,w) em que q é o estado de A e w é a sequência de símbolos ainda não lidos.
AUTÓMATOS FINITOS DETERMINISTAS • Seja A=(Q,I, ,q0,F) um autómato finito. Próxima descrição instantânea é a função P : Q x I*Q x I* tal que • se (q,w1) está definido, então P(q,w) é ((q,w1),’w), onde ‘w é w sem w[1]; • se não, P(q,w) não está definido. • Seja 0 uma descrição instantânea inicial de um autómato finito A=(Q,I, ,q0,F). Computação finita de A é uma sequência de descrições instantâneas 0,1,…,n tal que, • Para todo 0in, P(i) está definido; • Para todo 1in, i é P (i-1) e • P(n) não está definido.
AUTÓMATOS FINITOS DETERMINISTAS • As descrições instantâneas em Fx{} designam-se descrições instantâneas terminais. • As descrições instantâneas em {q0}xI* são descrições instantâneas iniciais. • Seja 0 uma descrição instantânea inicial de um autómato finito A=(Q,I,,q0,F). Computação infinita de A é uma sucessão de descrições instantâneas 0,1,… tal que, • Para todo 0in, P(i) está definido e • Para todo i>0, i é P(i-1). • Para representar a transição de uma descrição instantânea para P() escrevemos P(). • Escreve-se 1n para indicar que existe uma sucessão de descrições instantâneas 1,2,…, n tal que, • Para todo 1in, P(i) está definido e • Para todo i > 1, i é P(i-1).
AUTÓMATOS FINITOS DETERMINISTAS • Sejam A=(Q,I, ,q0,F) um autómato finito e w uma palavra em I*. w diz-se classificadapor A se e só se a computação iniciada na descrição instantânea (q0,w) for finita. • Sejam A=(Q,I, ,q0,F) um autómato finito e w uma palavra em I*. Se a descrição instantânea terminal da computação de w for (q,), com qF, então diz-se que w é aceite por A, se não, diz-se que w é rejeitada por A. • Uma linguagem sobre um alfabeto diz-se aceite por um autómato finito se coincide com o conjunto de palavras aceites pelo autómato finito. • A linguagem aceite pelo autómato finito, A=(Q, I, , q0,F),é definida por • L(A):={wI*: (q0,w) (q,) para algum qF}
AUTÓMATOS FINITOS DETERMINISTAS • Uma linguagem L sobre um alfabeto diz-se reconhecida por um autómato finito se L coincide com o conjunto das palavras aceites pelo autómato finito e Lc coincide com o conjunto das palavras rejeitadas pelo autómato finito. • Obs.: Lc=I*-L onde I é o alfabeto da linguagem. • Execícios • Construa autómatos finitos que aceitem as seguintes linguagens: • L(a(a+b)*); • L((a+b)*abb); • L(b(a+b)*aa).