05.01.2017 Views

EDITORIAL

Revista_54

Revista_54

SHOW MORE
SHOW LESS

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

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

Saved successfully!

Ooh no, something went wrong!