Fome e Abundância: Um Paradoxo Brasileiro?

17 a 22 de outubro de 2016

Trabalho 7250

ISSN 2237-9045
Instituição Universidade Federal de Viçosa
Nível Graduação
Modalidade Pesquisa
Área de conhecimento Ciências Exatas e Tecnológicas
Área temática Teoria e Tecnologia da informação
Setor Instituto de Ciências Exatas e Tecnológicas
Bolsa FUNARBIC/FUNARBE
Conclusão de bolsa Sim
Apoio financeiro FUNARBE
Primeiro autor Samuel José Jardim da Silva
Orientador MARCUS HENRIQUE SOARES MENDES
Título Regressão Simbólica via Programação Genética
Resumo Uma das questões centrais da computação é atribuída a Arthur Samuel na década de 50 na qual se questiona como computadores podem fazer o que precisa ser feito, sem exatamente terem sido programados para fazê-lo? Para tanto existem métodos para o aprendizado de máquina descritos na literatura, como por exemplo: inteligência artificial, sistemas de auto-organização e sistemas de auto-melhoria, redes neurais e computação evolucionária. Tais metodologias são capazes de resolver problemas complexos particularmente problemas descontínuos, multimodais, com ótimos isolados e/ou variáveis de decisão mistas. Dentre estas metodologias, uma que vem sendo utilizada para a resolução de problemas de otimização é a computação evolucionária, a qual foi baseada na teoria da evolução das espécies. Neste projeto consistiu-se no estudo e implementação de uma técnica da computação evolucionária, a programação genética, sendo aplicada na resolução problemas relacionados à regressão simbólica de forma que se consiga encontrar uma solução partindo de um conjunto de dados sem que seja definida uma função específica. O algoritmo foi implementado em linguagem C e possui uma estrutura de dados em árvore representando uma solução para o problema, pela qual é capaz de representar funções matemáticas de forma que possam ser manipuladas pelo algoritmo. As formas de manipulação mais comuns em programação genética são cruzamento, mutação e seleção. O cruzamento mistura duas árvores de modo que resulte dois filhos, a mutação perturba uma árvore gerando outra diferente e a seleção preserva os indivíduos mais aptos para a próxima geração, desta forma o algoritmo evolui a cada geração de indivíduos até encontrar uma solução muito boa. Assim, testes foram feitos para verificar a qualidade do algoritmo proposto usando as funções de benchmark Salustowicz e Unrapped Ball, por um conjunto de dados, por uma série histórica e por uma função de teste. Os resultados obtidos foram: para a função Salustowicz o algoritmo encontrou a solução com fitness de 7.84590866*10-4 e para o conjunto de validação de 6.70941311*10-4; para a função Unrapped Ball resultou em um fitness de 5.257594911*10-3 e validação de 5.919258172*10-3; para a função de teste obteve-se um fitness de 0.700438532779 e para o conjunto de validação de 0.157594496601; para o conjunto de dados o algoritmo encontrou a solução com fitness de 3.334*10-7 e para o conjunto de validação de 4.494*10-10; para a série histórica o algoritmo retornou a solução com o fitness de 3.839947491692 e validação com 19.052621220755 e a altura da árvore de 33. A fitness é a medida que representa quão boa é uma solução sendo uma medida em relação a um erro, então quanto mais próximo de zero, melhor é a solução. Portanto, o algoritmo encontrou boas soluções para as funções de benchmark e o conjunto de dados com valores bem pequenos, porém o algoritmo encontrou dificuldade com a série histórica.
Palavras-chave Programação Genética, Otimização, Algoritmo Evolucionário
Forma de apresentação..... Painel, Oral
Gerado em 0,68 segundos.