12.07.2015 Views

Geração Automática de Autômatos de Pilha através ... - INF-Unioeste

Geração Automática de Autômatos de Pilha através ... - INF-Unioeste

Geração Automática de Autômatos de Pilha através ... - INF-Unioeste

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

III EPAC - Encontro Paranaense <strong>de</strong> Computação ISSN:1981-8653Geração Automática <strong>de</strong> Autômatos <strong>de</strong> <strong>Pilha</strong> através <strong>de</strong>Algoritmos GenéticosAdriana Postal 1 , Allysson Chagas Carapeços 1 , Ana Paula Fredrich 1 ,Evaristo Wychoski Benfatti 1 , Josué Pereira <strong>de</strong> Castro 11 UNIOESTE - Universida<strong>de</strong> Estadual do Oeste do ParanáGrupo <strong>de</strong> Pesquisa em AlgoritmosRua Universitária, 2069. Jardim Universitário.Caixa Postal 711 - CEP 85819-110 Cascavel, PRapostal@yahoo.com.br, allyssoncc@yahoo.com.br, apfredrich@gmail.comevaristowb@gmail.com, j p castro@yahoo.com.brResumo. Neste trabalho apresentamos o módulo resolvedor <strong>de</strong> Autômatos <strong>de</strong>Duas <strong>Pilha</strong>s utilizando Algoritmos Genéticos, implementado no sistema PIRA-MIDE (Programa Interpretador e Resolvedor <strong>de</strong> Autômatos e MáquInas De Estadosfinitos), dando continuida<strong>de</strong> ao seu <strong>de</strong>senvolvimento, bem como os testesque foram realizados e os resultados obtidos sobre o módulo <strong>de</strong>senvolvido.1. IntroduçãoO objetivo <strong>de</strong>ste artigo é apresentar a implementação do módulo resolvedor <strong>de</strong> Autômatos<strong>de</strong> Duas <strong>Pilha</strong>s, que é parte do sistema PIRAMIDE [1], um sistema <strong>de</strong>senvolvido em Java[2], que está em <strong>de</strong>senvolvimento e que tem o objetivo <strong>de</strong> auxiliar o ensino <strong>de</strong> Teoria daComputação em cursos <strong>de</strong> Ciência da Computação, que até o momento já possui implementadoo simulador e o resolvedor <strong>de</strong> autômatos finitos (AFs) [1], além dos simuladores<strong>de</strong> autômatos <strong>de</strong> pilha e Máquina <strong>de</strong> Turing [3].Este artigo está organizado da seguinte forma: na seção 2 mostraremos os trabalhosrelacionados; na seção 3, <strong>de</strong>screveremos o módulo resolvedor <strong>de</strong> Autômatos <strong>de</strong>Duas <strong>Pilha</strong>s utilizando Algoritmos Genéticos (AGs); na seção 4 mostraremos os testesrealizados e a seção 5 mostrará quais serão os próximos passos na implementação <strong>de</strong>stesistema.2. Trabalhos RelacionadosApresentaremos a seguir alguns trabalhos relacionados ao problema da geração automática<strong>de</strong> autômatos. A gran<strong>de</strong> maioria dos trabalhos apresentados aqui utiliza a abordagem<strong>de</strong> gerar o autômato a partir da inferência da gramática correspon<strong>de</strong>nte à linguagem<strong>de</strong>sejada. Esta abordagem apresentou sucesso bastante limitado na maioria dasaplicações <strong>de</strong>senvolvidas, funcionando apenas para linguagens específicas ou subconjuntos<strong>de</strong> linguagens bastante restritas.Zhou e Grefenstette [4] usaram AGs para a indução <strong>de</strong> autômatos <strong>de</strong> estado finitopara quatro linguagens sobre o alfabeto binário {0, 1}, usando exemplos <strong>de</strong> sentenças109


III EPAC - Encontro Paranaense <strong>de</strong> Computação ISSN:1981-8653positivas (que <strong>de</strong>veriam ser aceitas) e negativas (que <strong>de</strong>veriam ser rejeitadas). Estaimplementação é bastante restrita, pois além do pequeno número <strong>de</strong> linguagens alvo (apenasquatro), a representação cromossômica utilizava uma estrutura <strong>de</strong> dados <strong>de</strong> comprimentofixo, limitando o número <strong>de</strong> estados em oito. O alfabeto utilizado (alfabeto binário)também restringe bastante o escopo <strong>de</strong> busca do algoritmo genético.Dupont [5] utilizou AGs para induzir autômatos. Sua implementação é um poucomais abrangente, incluindo 15 linguagens regulares diferentes. Os autores apresentamtambém uma comparação <strong>de</strong> sua implementação com outros métodos <strong>de</strong> inferência. Apesar<strong>de</strong> ser um pouco mais abrangente, o método utilizado por Dupont ainda é bastantelimitado.Sen [6] apresenta a implementação <strong>de</strong> um AG para inferência <strong>de</strong> autômatos <strong>de</strong> pilha,porém seu artigo <strong>de</strong>screve apenas um sucesso limitado para linguagens simples comoa n b n e parênteses balanceados. Sua representação cromossômica representa diretamenteos estados do autômato e as instruções <strong>de</strong> empilhamento e <strong>de</strong>sempilhamento.Wyard [7] também apresenta um AG para inferência <strong>de</strong> gramáticas na formanormal <strong>de</strong> Greibach. Porém, sua implementação tem sucesso apenas na inferência dalinguagem dos parênteses balanceados, falhando na inferência da linguagem a n b n .Lankhorst [8] apresenta um AG usado para inferir autômatos <strong>de</strong> pilha a partir <strong>de</strong>exemplos legais (ca<strong>de</strong>ias que <strong>de</strong>vem ser reconhecidas) e ilegais (ca<strong>de</strong>ias que <strong>de</strong>vem serrejeitadas) na linguagem. Além <strong>de</strong> <strong>de</strong>screver o tipo <strong>de</strong> autômato utilizado, a função fitnessdo autômato com o respectivo conjunto <strong>de</strong> exemplos da linguagem, a representação doautômato no AG e os operadores genéticos que trabalham nesta representação, ele relataos resultados dos testes para 10 linguagens, entre elas a linguagem das expressões <strong>de</strong>parênteses balanceados e aninhados, a linguagem <strong>de</strong> sentenças que contém um númeroigual <strong>de</strong> a’s e b’s, os palíndromes <strong>de</strong> dois símbolos, um conjunto <strong>de</strong> linguagens regulares,e um pequeno subconjunto da linguagem natural.Naidoo e Pillay [9] utilizam programação genética (PG) como forma <strong>de</strong> evoluirAutômatos <strong>de</strong> <strong>Pilha</strong> (APs). Nesta abordagem cada AP é representado como um grafodirecionado. O método <strong>de</strong> seleção utilizado é a seleção por torneio. Para teste <strong>de</strong>staimplementação foram utilizados um conjunto <strong>de</strong> 10 linguagens livres <strong>de</strong> contexto, e, <strong>de</strong>acordo com os autores, o sistema foi capaz <strong>de</strong> induzir APs <strong>de</strong>terminísticos e não <strong>de</strong>terminísticospara as 10 linguagens. Os autores também apresentam comparativos entre assoluções geradas pelo sistema e soluções geradas por humanos.Conforme po<strong>de</strong>-se perceber, apesar <strong>de</strong> haver várias abordagens diferentes parao problema, este apresenta-se <strong>de</strong> difícil solução, pois foram obtidas apenas soluções paralinguagens bastante específicas, com conjuntos <strong>de</strong> teste bem <strong>de</strong>terminados. Não há nenhumesquema <strong>de</strong> representação que seja genérico o suficiente para representar APs <strong>de</strong>modo a permitir a geração <strong>de</strong> qualquer linguagem livre <strong>de</strong> contexto, assim como não háheurísticas ou funções objetivo suficientemente genéricas para permitir a geração eficientedos APs.Em nossa implementação tentamos criar um resolvedor <strong>de</strong> APs que fossegenérico o suficiente para permitir a geração das mais variadas linguagens livre <strong>de</strong> contexto,e não funcionasse apenas para linguagens específicas. A primeira abordagem queescolhemos para estudo foi a da representação direta do autômato através <strong>de</strong> seus estados110


III EPAC - Encontro Paranaense <strong>de</strong> Computação ISSN:1981-8653e <strong>de</strong> suas pilhas, em vez <strong>de</strong> <strong>de</strong>scobrir o autômato pela inferência da sua gramática associada.Isto se justifica pela maior facilida<strong>de</strong> <strong>de</strong> se representar a estrutura <strong>de</strong> um autômatodo que a representação <strong>de</strong> um conjunto <strong>de</strong> regras <strong>de</strong> produção gramaticais.3. Implementação do Resolvedor <strong>de</strong> Autômatos <strong>de</strong> Duas <strong>Pilha</strong>sForam utilizadas duas abordagens na implementação do resolvedor <strong>de</strong> Autômatos <strong>de</strong> Duas<strong>Pilha</strong>s (A2P) para o sistema PIRAMIDE [1], ambas utilizando Algoritmos Genéticos(AGs).Ambas as abordagens consistem na representação dos Autômatos comocomposição <strong>de</strong> três cromossomos: cromossomo <strong>de</strong> Estado, cromossomo <strong>de</strong> Condição<strong>de</strong> Estado e cromossomo <strong>de</strong> Transição:• O cromossomo <strong>de</strong> Estado é o cromossomo que representa a lista <strong>de</strong> estados doautômato, é composto por uma lista <strong>de</strong> inteiros contendo os i<strong>de</strong>ntificadores dosestados do autômato corrente;• O cromossomo <strong>de</strong> Condição <strong>de</strong> Estado representa as condições dos estados<strong>de</strong>sse mesmo autômato, armazenando o estado inicial (<strong>de</strong>finido como umavariável inteira, contendo o i<strong>de</strong>ntificador <strong>de</strong>ste estado) e a lista <strong>de</strong> estados finais(uma lista <strong>de</strong> números inteiros contendo todos os estados finais);• O cromossomo <strong>de</strong> Transição representa o conjunto <strong>de</strong> transições do A2P, compostopor uma lista <strong>de</strong> Genes <strong>de</strong> Transição. Cada Gene <strong>de</strong> Transição é uma tuplaque <strong>de</strong>fine uma componente <strong>de</strong> transição do A2P, composta por: estado <strong>de</strong> origem,símbolo lido, símbolo <strong>de</strong>sempilhado na primeira pilha, símbolo empilhadona primeira pilha, símbolo <strong>de</strong>sempilhado na segunda pilha, símbolo empilhado nasegunda pilha e o estado <strong>de</strong> <strong>de</strong>stino.Na Figura 1 temos a representação da linguagem sobre Σ = {a, b, c, d}, L ={a n b m c m d n | m, n ≥ 0}. A Figura 1(a) mostra a representação gráfica <strong>de</strong> um A2P e aFigura 1(b) mostra como seria o cromossomo <strong>de</strong> transição para este A2P.(a) Exemplo <strong>de</strong> Autômato <strong>de</strong> Duas <strong>Pilha</strong>s(b) Representação gráfica do cromossomo <strong>de</strong> transição para 1(a)Figura 1: A2P e seu cromossomo <strong>de</strong> transiçãoAs codificações diferem apenas na forma utilizada para a representação do Gene<strong>de</strong> Transição, que tem papel principal no Autômato pelo fato do mesmo representar as111


III EPAC - Encontro Paranaense <strong>de</strong> Computação ISSN:1981-8653transições do Autômato. A primeira codificação utiliza números inteiros contendo o valorreal do dado ou um índice <strong>de</strong> referência para a tabela <strong>de</strong> símbolos. A segunda representaos dados como ca<strong>de</strong>ias <strong>de</strong> bits, todos os elementos do Gene <strong>de</strong> Transição são codificados<strong>de</strong> forma a gerar uma ca<strong>de</strong>ia <strong>de</strong> bits contendo os valores reais <strong>de</strong> cada argumento. Doisoperadores genéticos foram aplicados sobre essas representações, Mutação e Inversão:• O operador <strong>de</strong> Mutação foi utilizado sobre a representação do Gene como tuplas<strong>de</strong> inteiros, on<strong>de</strong> um ou mais símbolos são convertidos em um novo símbolo. Ofuncionamento <strong>de</strong>sse operador po<strong>de</strong> ser observado na Figura 2, na qual o quintoelemento <strong>de</strong> uma representação <strong>de</strong> transição é convertido <strong>de</strong> ‘[]’ para ‘A’;Figura 2: Operador <strong>de</strong> Mutação• O operador <strong>de</strong> Inversão foi utilizado na representação do Gene como ca<strong>de</strong>ia <strong>de</strong>bits. Sua função é inverter uma faixa <strong>de</strong> bits <strong>de</strong>ntro <strong>de</strong>sta ca<strong>de</strong>ia. O funcionamento<strong>de</strong>ste po<strong>de</strong> ser observado na Figura 3, na qual a representação <strong>de</strong> transição anterioré transformada primeiramente para um vetor binário correspon<strong>de</strong>nte, uma faixaaleatória é escolhida e então seus valores são invertidos.Figura 3: Operador <strong>de</strong> InversãoPara a função <strong>de</strong> avaliação ou função fitness (função que avaliará a eficiênciados Autômatos gerados pelo resolvedor) utilizamos a mesma representação <strong>de</strong>finida naprimeira versão do PIRAMIDE [1], mostrada na equação 1.F = 100 ∗(NSAceitas + NSRejeitadas)(NSDAceitar + NSDRejeitar)(1)Cada variável da equação 1 é <strong>de</strong>finida como:112


III EPAC - Encontro Paranaense <strong>de</strong> Computação ISSN:1981-8653NSAceitas: Número <strong>de</strong> Strings aceitas pelo autômato.NSRejeitadas: Número <strong>de</strong> Strings rejeitadas pelo autômato.NSDAceitar: Número <strong>de</strong> Strings que o autômato <strong>de</strong>veria aceitar.NSDRejeitar: Número <strong>de</strong> Strings que o autômato <strong>de</strong>veria rejeitar.Tendo como base os conceitos apresentados anteriormente, o <strong>de</strong>senvolvimentodo módulo AG para o resolvedor <strong>de</strong> A2P foi baseado em duas classes, Indivíduo ePopulação (o diagrama <strong>de</strong> classe <strong>de</strong> análise do resolvedor <strong>de</strong> A2P po<strong>de</strong> ser visto na Figura4):• A classe Populacao gerencia todos os indivíduos para uma dada execução, sendoa população do AG, ela é composta <strong>de</strong> vários Indivíduos, como po<strong>de</strong> ser visto naFigura 4 pela composição 1 .. * entre as classes Populacao e Indivíduo;• A classe Indivíduo representa cada um dos possíveis Autômatos que preten<strong>de</strong>mresolver o problema em questão. Este módulo é formado pelos três cromossomos,os dois operadores genéticos e a função Fitness, como po<strong>de</strong> ser visto na Figura4, on<strong>de</strong> a mesma é composta pelas classes CromossomoEstados (classe que representao Cromossomo <strong>de</strong> estados), CromossomoCondicaoEstado (classe querepresenta o Cromossomo <strong>de</strong> Condição <strong>de</strong> Estado) e CromossomoTransicao (representao Cromossomo <strong>de</strong> Transição), e implementa a função fitness() e os doisoperadores genéticos, Inversao() e Mutacao().Figura 4: Diagrama <strong>de</strong> classe <strong>de</strong> análiseInicialmente a População <strong>de</strong> Indivíduos é gerada aleatoriamente, e a cada novageração <strong>de</strong>sta população são aplicados os operadores genéticos com o intuito <strong>de</strong> obter113


III EPAC - Encontro Paranaense <strong>de</strong> Computação ISSN:1981-8653novos indivíduos melhores. Após o <strong>de</strong>senvolvimento do AG para o resolvedor do A2P, omesmo foi integrado ao sistema PIRAMIDE [1].4. Testes RealizadosVários testes foram realizados, dos quais mostramos aqui oito exemplos: quatro utilizamseda proprieda<strong>de</strong> <strong>de</strong>scrita em Hopcroft [10] e Brookshear [11] que diz que dada umagramática livre <strong>de</strong> contexto qualquer é possível a construção <strong>de</strong> um A2P equivalente comapenas um estado que a reconheça, e outras quatro <strong>de</strong>sconsi<strong>de</strong>ram essa proprieda<strong>de</strong>. Asbaterias <strong>de</strong> testes que utilizaram a proprieda<strong>de</strong> como afirmativa, foram realizadas parareduzir o nível <strong>de</strong> complexida<strong>de</strong> do autômato visto que duas variáveis (estado <strong>de</strong> origeme estado <strong>de</strong> <strong>de</strong>stino) <strong>de</strong>ntre as sete do Gene <strong>de</strong> Transição não precisariam mais ser consi<strong>de</strong>radaspara a aplicação dos operadores genéticos.Para cada teste foram utilizados quatro problemas, cada problema foi <strong>de</strong>scritopor <strong>de</strong>z a quinze strings que o autômato <strong>de</strong>veria reconhecer e uma quantia equivalente <strong>de</strong>strings que o mesmo <strong>de</strong>veria rejeitar. A população utilizada foi fixada em cem indivíduose cem gerações, com taxa <strong>de</strong> mutação <strong>de</strong> 100%.Dentre todos os testes realizados o melhor resultado <strong>de</strong> cada teste foi colocadono gráfico apresentado na Figura 5. Os testes <strong>de</strong> 1 a 4 empregaram a proprieda<strong>de</strong> <strong>de</strong>scritaanteriormente, os <strong>de</strong>mais são sem esta proprieda<strong>de</strong>.Figura 5: Média <strong>de</strong> Acerto da População por GeraçãoA partir da análise dos testes verificou-se que as estratégias não encontraramsoluções razoáveis, mesmo com evoluções parciais na população como mostradas nostestes 1 a 3, consi<strong>de</strong>rando que estes foram os melhores resultados, nenhum foi significativamenterelevante. Uma das possíveis justificativas para a não convergência para melhoresresultados está no fato das soluções se encontrarem em pontos únicos em um espaço114


III EPAC - Encontro Paranaense <strong>de</strong> Computação ISSN:1981-8653<strong>de</strong> busca possivelmente infinito, não existindo uma função heurística <strong>de</strong> aproximação paraeste resultado.Os testes comprovam que evoluções parciais ocorreram, mostrando que a estratégiafoi implementada <strong>de</strong> maneira correta, porém como nenhuma evolução foi significativamentegran<strong>de</strong> para tornar um indivíduo razoável em um indivíduo ótimo, o tempo<strong>de</strong>mandado por esta estratégia não é justificado. Esta estratégia comportou-se <strong>de</strong> maneirasemelhante a algoritmos “Gerar-e-Testar” [12] como po<strong>de</strong> ser verificado em gran<strong>de</strong> partedos testes (testes 4 a 8 da Figura 5), on<strong>de</strong> um indivíduo uma vez gerado dificilmenteconseguiu melhorar o seu fitness, permanecendo assim até o final das gerações.Outra justificativa para a não convergência do resolvedor <strong>de</strong> A2P é que muitasvariáveis tiveram que ser consi<strong>de</strong>radas para a representação do Gene da Transição (setevariáveis), mesmo com a aplicação da proprieda<strong>de</strong> reduzindo para cinco, como <strong>de</strong>scritoanteriormente, o número <strong>de</strong> combinações possíveis cresce em or<strong>de</strong>m fatorial conformecolocamos mais um símbolo tanto no alfabeto do autômato, como no alfabeto da pilha.Quanto maior for o espaço <strong>de</strong> busca mais dificulda<strong>de</strong>s o AG terá para encontrar uma únicasolução <strong>de</strong>ntre todas as soluções.5. Consi<strong>de</strong>rações FinaisMesmo os AGs tendo apresentado ótimos resultados na resolução <strong>de</strong> Autômatos Finitosapresentado em PIRAMIDE [1], o mesmo não po<strong>de</strong> ser dito para o resolvedor <strong>de</strong> A2P, sejapelo aumento <strong>de</strong> complexida<strong>de</strong> <strong>de</strong>ste mo<strong>de</strong>lo ou pela ausência <strong>de</strong> heurísticas admissíveis,a estratégia <strong>de</strong> AGs apresentou-se ineficaz para o problema em questão.Ainda perseguindo o objetivo <strong>de</strong> produzir um tipo <strong>de</strong> resolvedor para cada umdos mo<strong>de</strong>los <strong>de</strong> máquina, tentaremos outras abordagens <strong>de</strong> Inteligência Computacionalque possam produzir bons resultados. Dentre as abordagens que preten<strong>de</strong>mos abordar,estão os algoritmos meméticos e algoritmos <strong>de</strong> enxames <strong>de</strong> partículas.Os algoritmos meméticos utilizam uma busca local como parte do processo<strong>de</strong> evolução, o qual funciona como um refinamento a partir da posição inicial que umindivíduo ocupa no espaço do problema, <strong>de</strong>finida pelo algoritmo genético. Este processo<strong>de</strong> refinamento busca então explorar a vizinhança do indivíduo, buscando melhorar ovalor <strong>de</strong> sua adaptação, caminhando em direção a um possível ótimo local que esteja nasua vizinhança, antes <strong>de</strong> dar prosseguimento à próxima geração do algoritmo genético[13][14]. Esta abordagem po<strong>de</strong> produzir resultados melhores, uma vez que realiza umabusca local nas proximida<strong>de</strong>s <strong>de</strong> cada indivíduo, o que po<strong>de</strong> facilitar a localização dosindivíduos i<strong>de</strong>ais, ou pelo menos permitir que a evolução não fique estagnada.Enxame <strong>de</strong> partícula é uma técnica <strong>de</strong> otimização semelhante aos algoritmosgenéticos no sentido <strong>de</strong> que também trabalha com uma população <strong>de</strong> indivíduos, cadaum representando uma solução possível <strong>de</strong>ntro <strong>de</strong> um espaço <strong>de</strong> busca, porém em vez <strong>de</strong>trabalhar a informação genética codificada nos genes dos indivíduos, o enxame utilizase<strong>de</strong> informações sociais que são compartilhadas entre os elementos do enxame. Estecomportamento gera uma inteligência social coletiva e complexa, capaz <strong>de</strong> realizar tarefascomplexas que não po<strong>de</strong>riam ser realizadas por um único indivíduo isoladamente[15][16]. A utilização <strong>de</strong>sta abordagem também po<strong>de</strong>ria fornecer resultados melhores,pois a utilização do conhecimento coletivo po<strong>de</strong>ria, talvez, funcionar como uma heurística115


III EPAC - Encontro Paranaense <strong>de</strong> Computação ISSN:1981-8653direcionadora para a busca global, permitindo que a população evolua em direção ao pontoótimo <strong>de</strong>sejado.Preten<strong>de</strong>-se investigar ambas as abordagens citadas acima, na tentativa <strong>de</strong> produzirautômatos <strong>de</strong> pilha <strong>de</strong> forma automatizada. Esperamos que pelo menos uma <strong>de</strong>stasabordagens produza resultados satisfatórios.Para completar o sistema, ainda preten<strong>de</strong>-se incluir o Resolvedor <strong>de</strong> Máquina <strong>de</strong>Turing. Uma Máquina <strong>de</strong> Turing (MT) é semelhante a um autômato finito, mas com umamemória ilimitada e irrestrita [17]. A MT foi <strong>de</strong>senvolvida em 1936, pelo matemáticoinglês Alan Turing, como um mo<strong>de</strong>lo mais acurado <strong>de</strong> um computador <strong>de</strong> propósito geral.Tal mo<strong>de</strong>lo é atualmente aceito como uma formalização do conceito <strong>de</strong> procedimento,isto é, uma seqüência finita <strong>de</strong> instruções que po<strong>de</strong>m ser realizadas mecanicamente emum tempo finito. Uma MT po<strong>de</strong> fazer reconhecimento <strong>de</strong> linguagens, padrões e computarfunções. Preten<strong>de</strong>-se ainda incluir os mo<strong>de</strong>los <strong>de</strong> autômatos com saída, mais conhecidoscomo máquinas <strong>de</strong> Mealy e Máquinas <strong>de</strong> Moore [18].Referências[1] Postal, A., Casagran<strong>de</strong>, C. C., Benfatti, E. W., <strong>de</strong> Castro, J. P., and Jaskowiak, P. A., “UmSistema Híbrido Lógico-Evolucionário para Geração e Simulação <strong>de</strong> Autômatos Finitos,”Anais EPAC, UNIOESTE, Cascavel, setembro 2007, pp. 205–215.[2] Deitel, H. and Deitel, P. J., Java Como Programar, Pearson Prentice Hall, São Paulo, 6thed., 2005.[3] Benfatti, E. W., Fredrich, A. P., <strong>de</strong> Castro, J. P., and Postal, A., “PIRAMIDE –Implementação dos Módulos Simuladores para Autômato <strong>de</strong> <strong>Pilha</strong> e Máquina <strong>de</strong> TuringPadrão Utilizando Programação em Lógica,” Anais XVII EAIC, Foz do Iguaçu,novembro 2008.[4] John Joseph Grefenstette, H. H. Z., “Induction of Finite Automta by Genetic Algorithms,”Proceedings of The 1986 IEEE International Conference on Systems, Man and Cybernetics,Atlanta, GA, 1986, pp. 170–174.[5] Dupont, P., “Regular Grammatical Inference from Positive and Negative Samples by GeneticSearch: the GIG method,” 1994.[6] Sen, S. and Janakiraman, J., “Learning to construct pushdown automata for accepting <strong>de</strong>terministiccontext-free languages,” Society of Photo-Optical Instrumentation Engineers(SPIE) Conference Series, edited by G. Biswas, Vol. 1707 of Society ofPhoto-Optical Instrumentation Engineers (SPIE) Conference Series, March 1992,pp. 207–213.[7] J.Wyard, P., “Context free grammar induction using genetic algorithms,” GrammaticalInference: Theory, Applications and Alternatives, IEE Colloquium on, Apr 1993,pp. P11/1–P11/5.[8] Lankhorst, M. M., “A genetic algorithm for the induction of pushdown automata,” EvolutionaryComputation, 1995., IEEE International Conference on, Vol. 2, Nov-1 Dec1995, pp. 741–746 vol.2.[9] Naidoo, A. and Pillay, N., “Evolving pushdown automata,” SAICSIT ’07: Proceedings ofthe 2007 annual research conference of the South African institute of computer sci-116


III EPAC - Encontro Paranaense <strong>de</strong> Computação ISSN:1981-8653entists and information technologists on IT research in <strong>de</strong>veloping countries, ACM,New York, NY, USA, 2007, pp. 83–90.[10] Hopcroft, J. E., Motwani, R., and Ullman, J. D., Introduction to Automata Theory, Languages,and Computation, Addison Wesley, 2nd ed., 2001.[11] Brookshear, J. G., Theory of Computation - Formal Languages, Automata, and Complexity,Benjamin/Cummings, Redwood City, 1st ed., 1989.[12] Rabuske, R. A., Inteligência Artificial, Editora UFSC, Florianópolis, 1st ed., 1995.[13] Moscato, P., “On evolution, search, optimization, genetic algorithms and martial arts:Towards memetic algorithms,” Tech. rep., California Institute of Technology, Pasa<strong>de</strong>na,Califórnia, USA, 1989.[14] Moscato, P. and Cotta, C., “Una introduccion a los algoritmos memeticos,” Revista Iberoamericana<strong>de</strong> Inteligencia Artificial, Vol. 19, 2003, pp. 131–148.[15] Eberhart, R. C. and Kennedy, J. A., “New Optimmizer Using Particles Swarm Theory,”Proc. Sixth International Symposium on Micro Machine and Human Science, IEEEService Center, Piscataway, NJ, 1995, pp. 39–43.[16] Kennedy, J., “The Particle Swarm: Social Adaptation of Knowledge,” Proc. IEEE InternationalConference on Evolutionary Computation, IEEE Service Center, Piscataway,NJ, 1997, pp. 303–308.[17] Sipser, M., Introdução à Teoria da Computação – Tradução da 2 a edição norteamericana,Pioneira Thomson Learning, São Paulo, 2nd ed., 2007.[18] Menezes, P. F. B., Linguagens Formais e Autômatos, Sagra Luzzatto, Porto Alegre, 2n<strong>de</strong>d., 2000.117

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!