autômato finito não determinístico (afn)

Upload: gabriel-lemos

Post on 18-Jul-2015

291 views

Category:

Documents


0 download

TRANSCRIPT

Autmato Finito No Determinstico (AFN) O no-determinismo uma importante generalizao dos modelos de mquinas, sendo de fundamentalimportncianoestudodateoriadacomputaoedateoriadaslinguagensformais. Nem sempre a facilidade do no-determinismo aumenta o poder de reconhecimento de linguagens deumaclassedeautmatos.Porexemplo,conformesermostradoadiante,qualquerAutmato Finito No-Determinstico pode ser simulado por um Autmato Finito Determinstico. Afacilidadedono-determinismoparaautmatosfinitosinterpretadacomosegue:a funo programa, ao processar uma entrada composta pelo estado corrente e o smbolo lido, tem comoresultadoumconjuntodenovosestados.Vistoqueumamquinacompostaporfita, unidadedecontroleeprograma;pode-seafirmarqueumAFNassumeumconjuntodeestados alternativos,comosehouvesseumamultiplicaodaunidadedecontrole,umaparacada alternativa, processando independentemente, sem compartilhar recursos com as demais. Assim, o processamentodeumcaminhonoinfluinoestado,smbololidoeposiodacabeadeleitura dos demais caminhos alternativos. Observe que, ao contrrio do que acontece nos AFDs, nos AFNs, um mesmo smbolo pode serlidoapartirdeumdadoestadoparadoisoumaisestados.Isto,podehavermaisdeuma transio, a partir de um mesmo estado, com o mesmo smbolo a ser lido. Um AFN uma quntupla M = (E, Q, o, q0, F), onde: E = Alfabeto Q = Conjunto finito de estados o = Funo de transio ou programa. ( o: Q x E 2Q ) q0= estado inicial do AF. (q0 e Q) F = Conjunto de estados finais. F _Q Funo de Transio ou Programa (o) uma funo total. Ou seja, definida para todos os elementos do domnio Q x E. Ex.:Dado o AFN M1 q p2pNp1 a a a ... estado anterior smbolo lido conjunto de novos estados qoq1q21 1 0 1 1 Cada uma das suas partes poderia ter sido representada separadamente: Alfabeto = {0,1} Conjunto de Estados = {q0, q1, q2} Estado Inicial = q0 Conjunto de Estados Finais = {q0, q2} Funo de Transio ou Programa: o01A funo de transio ou programa sempre estar definida para todo o domnio.Nopiorcaso,oresultadodelaseroconjuntovazio,que tambm um elemento do conjunto das partes de Q.q0C{q1, q2} q1{q2}C q2C{q1, q2} OBS.:Todo AFD um AFN, mas nem todo AFN um AFD. Funo de Transio ou Programa Estendida a Palavras (o*) o*(q, c) = {q} o*(q, aw) = {p| - r e o(q, a) e p e o*(r, w)} Para provar formalmente se uma palavra w aceita por um AFN qualquer M = (E, Q, o, q0, F), deve ser verificado se o*(q0, w) F = C. Ou seja, o conjunto de estados onde possvel parar noautmato,apsaleituradapalavraw,deveteralgumestadoemcomumcomoconjuntode estados finais deste. Caso se desejeprovarque uma palavra aceita, basta provarpor um dos caminhos que ela lida e aceita. Para se provar que uma palavra no aceita por um autmato, deve-se provar por todos os caminhos possveis que ela no pode ser aceita. Funo de Transio ou Programa Estendida a Conjunto de Estados (o) Dado um conjunto de estados P = {p1, ... , pN} e um smbolo a de um alfabeto, a funo de transioouprogramaestendidaaoconjuntodeestadosP,denotadaporo(P,a),auniodos resultados da aplicao da funo programa a cada um dos elementos de P. Ou seja: o(P, a) = o(p1, a)...o(pN, a) Converso de AFN para AFD Para todo e qualquer AFN, possvel encontrar um AFD que seja equivalente a ele, ou seja, que reconhea a mesma linguagem reconhecida pelo AFN. Dado um AFN M1 = (E, Q, o, q0, F), possvel encontrar um AFD M1 = (E, Q, o, {q0}, F), onde: Q= 2Q F= {p e Q | p F = C} Ao final do processo de converso, todos os estados que no fazem parte de um caminho que leve doestadoinicial{q0}aqualquerumdosfinaisdevesereliminado,paraqueoautmatoseja minimizado.Ouseja,seumestadonoconsegueseratingidoapartirdoinicial,ouaindaseele no d acesso a um estado final, ele pode ser desprezado. Ex.:DadooAFNM1abaixo,podemosencontrarumAFDM2quesejaequivalenteaele.A linguagem aceita por eles deve ser L = { w e {a, b}* | a sufixo de w }. Construo do AFD M2: Q = { C, {q0}, {q1}, {q0, q1} } F = { {q1}, {q0, q1} } oaB CCC {q0}{q0, q1}{q0} {q1}CC {q0, q1}{q0, q1}{q0}

OsestadosCe{q1} podemsereliminados, poisambosnopodem ser atingidos a partir do estado inicial ({q0}). Os estados restantes, agora, podem ser renomeados. qoq1a, b a b b {q1} {q0,q1} C {q0} a, b a, b a a b b {q0,q1} {q0} a a b q1 q0 a a b