Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
TEMA DA CAPA<br />
PROGRAMAÇÃO GENÉTICA<br />
Este percurso é o seguinte:<br />
"Visit: 0, city 7"<br />
"Visit: 1, city 2"<br />
"Visit: 2, city 5"<br />
"Visit: 3, city 1"<br />
"Visit: 4, city 10"<br />
"Visit: 5, city 9"<br />
"Visit: 6, city 12"<br />
"Visit: 7, city 4"<br />
"Visit: 8, city 3"<br />
"Visit: 9, city 6"<br />
"Visit: 10, city 11"<br />
"Visit: 11, city 8"<br />
É também gerado um gráfico com as evoluções da<br />
aptidão média e da aptidão do melhor elemento de cada<br />
geração. A tendência para a distância média da população é<br />
de diminuição mas, como se pode observar, há oscilações.<br />
Em cada geração as crias recebem parte do seu cromossoma<br />
do pai e outra parte da mãe. Depois ainda poderá sofrer<br />
mutações genéticas. Os filhos podem ser menos aptos do<br />
que os pais. Contudo, devido à pressão da seleção natural,<br />
apenas os mais aptos passam os seus genes e a tendência<br />
é de uma melhoria da aptidão média com o tempo.<br />
A PG apenas necessita de uma forma de gerar soluções<br />
iniciais e uma fórmula de avaliação de soluções (função<br />
objetivo). Tudo o resto é feito de forma evolutiva sem que<br />
seja necessário incorporar nenhum conhecimento do domínio<br />
em que se está a trabalhar.<br />
Aconselho os leitor a correr o programa com variação<br />
dos parâmetros de entrada e poderá observar que a PG é<br />
muito robusta, sendo capaz de gerar boas soluções para<br />
uma vasta gama de parâmetros (tamanho da população,<br />
mutação, cruzamento, etc.).<br />
Aplicações correntes para a PG incluem:<br />
<br />
<br />
<br />
<br />
<br />
projeto de circuitos elétricos e eletrónicos;<br />
programar robots ou drones;<br />
desenvolvimento de programas em linguagens específicas<br />
de domínio;<br />
geração automática de programas; e<br />
correção automática de erros em programas.<br />
Pensamos que alguns aspetos da Inteligência Artificial<br />
serão cada vez mais incorporados em programas convencionais.<br />
Por exemplo se se incorporar funções objetivo nos<br />
programas será possível elaborar análises estatísticas entre<br />
os dados do programa, os parâmetros selecionados e a função<br />
objetivo. Desta forma poder-se-á conseguir escrever<br />
programas cujos resultados são progressivamente melhores<br />
à medida que são executados mais vezes.<br />
E ainda...<br />
A PG é um campo muito vasto e apenas aflorámos o<br />
assunto. Duas das áreas que mais curiosas são:<br />
Evolução das aptidões média e do melhor elemento.<br />
Como se pode verificar, a solução proposta foi encontrada<br />
ao fim de 5 gerações. Entre a primeira e a última gerações<br />
a aptidão média da população melhorou 47,88% e a do<br />
indivíduo mais apto 43,13%.<br />
Conclusões<br />
A PG é um paradigma muito intrigante e com grande<br />
potencial e que, como acabámos de ver, é fácil de implementar.<br />
Muitas vezes é uma forma computacionalmente leve de<br />
resolver problemas para os quais:<br />
<br />
<br />
AUTOR<br />
poderá não haver algoritmos; ou<br />
conhecimentos para os resolver.<br />
<br />
<br />
Bibliografia<br />
funções objetivo multi-dimensionais; e<br />
a paralelização e distribuição numa rede ser possível<br />
sem alterações ao algoritmo.<br />
Lee Jacobson and Burak Kanber, Genetic Algorithms<br />
in Java Basics, Apress, 2015.<br />
Riccardo Poli, William B. Langdon and Nicholas F.<br />
McPhee, A Field Guide to Genetic Programming, published<br />
via http://lulu.com and freely available at http://www.gp-fieldguide.org.uk,<br />
2008. (With contributions by J. R. Koza)<br />
Rick Riolo, Ekaterina Vladislavleva, Marylyn D. Ritchie<br />
and Jason H. Moore, Genetic Programming Theory and<br />
Practice X, Springer, 2013.<br />
Escrito por Ricardo Cristóvão Miranda<br />
Código disponível em: github.com/ricardoMiranda/haskellGeneticTSP<br />
12