Académique Documents
Professionnel Documents
Culture Documents
PRÓ-REITORIA ACADÊMICA
COORDENAÇÃO DO CURSO DE SISTEMAS DE INFORMAÇÃO
São Luís
2007
MATHEUS SOUSA OLIVEIRA
São Luís
2007
MATHEUS SOUSA OLIVEIRA
Aprovada em / /
BANCA EXAMINADORA
___________________________________________
Prof. Marcelo Nunes Mendonça (Orientador)
___________________________________________
1º Examinador
___________________________________________
2º Examinador
4
AGRADECIMENTOS
Em especial aos meus pais Maria das Graças e Mardônio pela dedicação,
apoio e incentivo que me deram desde a hora em que me colocaram no mundo.
A todos os colegas de curso onde nos apoiamos uns nos outros para
vencermos mais esta barreira dentre os quatro longos anos letivos em que
convivemos, nas horas boas e nas horas difíceis.
RESUMO
ABSTRACT
Approach about genetic algorithms. Stand out in its origin, its form of collation and
elaboration, just like its applicabilities. It talks too a little about the biology, cause it
was from it the original idea to the genetic algorithms, more precisely from the
evolutionary theory, created by Charles Darwin. It has too the utilisation of some of
his terms in analogy to the informatics ones, by the similarity with the biologic area;
its functioning try produce the same processes found in nature, like: Selection,
Crossover, Mutation, et cetera. The GAs are optimization algorithms whose goal is to
optimize problems trying to make their resolution the more ideal possible. Through its
applicabilities, the genetic algorithms show with efficiency their potencial and power,
acting in many knowledge areas. For such motive, this work try to present some of
them in a superficial way.
LISTA DE FIGURAS
LISTA DE TABELAS
LISTA DE SIGLAS
GA Algoritmos Genéticos
GAs Algoritmos Genéticos Simples
DNA Sigla em inglês para o "ácido desoxirribonucléico"
RNA Sigla em inglês para o "ácido ribonucléico"
API Interface de Programação de Aplicativos
NP É o acrônimo em inglês para Tempo polinomial não determinístico
12
SUMÁRIO
LISTA DE FIGURAS...........................................................................................8
LISTA DE TABELAS...........................................................................................9
LISTA DE SIGLAS..............................................................................................10
1 INTRODUÇÃO.....................................................................................................12
2 BIOLOGIA BÁSICA............................................................................................15
2.1 Teoria da Evolução...........................................................................................15
2.2 Genética Básica................................................................................................17
2.3 Historia dos Algoritmos Genéticos....................................................................20
3 CONCEITOS BÁSICOS EM GÁS.......................................................................23
3.1 Entendendo Algoritmos evolucionários............................................................23
3.2 O que são algoritmos genéticos?.....................................................................26
3.3 Entendendo as terminologias para GÁS..........................................................28
4 ENTENDENDO UM GA SIMPLES......................................................................31
4.1 Como escolher parâmetros do GA...................................................................32
4.2 Representação de um cromossomo.................................................................33
4.3 Inicialização Cromossomial..............................................................................34
4.4 Função Para Cálculo da Aptidão......................................................................35
4.5 Seleção.............................................................................................................36
4.6Cruzamento ("Crossover").................................................................................37
4.7 Mutação............................................................................................................41
5 APLICABILIDADES............................................................................................43
6 CONSIDERAÇÕES FINAIS................................................................................46
REFERÊNCIAS..................................................................................................48
12
1 INTRODUÇÃO
2 BIOLOGIA BÁSICA
LINDEN, 2006, p. 24) também da geração espontânea (“a vida surge de essências
presentes no ar” LINDEN, 2006, p. 24). Darwin em varias de suas viagens visitou vários
lugares e sua grande habilidade em observar a natureza permitiu-lhe perceber que
animais de uma espécie eram ligeiramente diferentes que seus parentes em outros
ecossistemas, sendo os mesmos mais adaptáveis as necessidades e oportunidades
encontradas em seu ecossistema específico. Ao fazer um levantamento de vários
dados e a análise dos mesmos, Darwin chegou a uma conclusão de suas dúvidas
assim criando a teoria da evolução das Espécies, dando assim, origem a sua grande
obra em 1859, chamada de “A Origem das Espécies”. Por ser uma idéia inovadora para
a época, seu livro foi amplamente combatido, mas atualmente é aceito por praticamente
toda a comunidade acadêmica mundial.
Na natureza dentro de um mesmo ecossistema todos os indivíduos
competem entre si por recursos limitados, isso é o que diz a teoria da evolução, como
exemplo podemos citar água e comida por serem mais vitais para a manutenção do
organismo. Os indivíduos (animais, vegetais, insetos, etc.) dentro de uma mesma
espécie que não obtém êxito têm a tendência de ter uma prole menor, levando assim a
uma pequena probabilidade de terem seus genes propagados ao longo de sucessivas
gerações, este processo conhecemos por seleção natural.
Os indivíduos que se perpetuam com suas sucessivas combinações de suas
características podem produzir um novo indivíduo bem mais adaptado as necessidades
que o seu meio ambiente o proporciona, ao mesclar essas características positivas de
cada um dos reprodutores, este individuo tem chances maiores de sobrevivência em
relação aos outros. Este processo da se a várias combinações de indivíduos sendo as
mesmas variações de seus pais. Sendo assim, o individuo descendente é ligeiramente
diferente do seu progenitor, podendo esta diferença ser positiva ou negativa conforme
preceitua LINDEN:
Darwin afirmar que a evolução e a seleção natural das espécies faziam com
que as mesmas fossem se adaptando naturalmente de acordo com o seu ecossistema,
por falta de mais informação ele não sabia quais eram os mecanismos básicos através
dos quais essas adaptações aconteciam, pois o processo de transmissão de
informação genética ainda era desconhecido. No inicio do século XX, Gregor Johann
Mendel que era um monge agostiniano, botânico e meteorologista austríaco,
compreendeu que o processo de transmissão de características positivas, estava
associado a uma unidade básica de informação, conhecida por gene através de
pesquisas.
Durante muito tempo, mais ou menos quase um século foi necessário para a
conclusão do processo que levou à descoberta de como estas características eram
fisicamente armazenadas dentro da célula. O bioquímico Friedtich Mieschner em 1869,
concluiu que os núcleos celulares possuíam varias substancias especificas, podendo
ser separadas em duas categorias principais: proteínas e moléculas acidas. Ate aquele
18
apenas zeros e uns. Pesquisadores da área acabaram por abolir esta limitação, mesmo
assim vários cientistas ainda sim insistem em utilizar a representação binária, mesmo
existindo outras que podem se mostrar muito mais eficientes na resolução do problema
em questão.
A partir de então os algoritmos genéticos começaram a se expandir por toda
a comunidade científica, com a sua utilização puderam resolver problemas
extremamente importantes que talvez não fossem abordados de outra maneira. Como
bem assevera LINDEN:
É bem provável que alguém inventasse outra maneira de resolve-los, mas talvez
esta não fosse tão eficiente e/ou interessante quanto os algoritmos genéticos.
(LINDEN, 2006, p. 33)
Desta forma, com seu desenvolvimento veio também a utilização para fins
comerciais onde nos anos 80 surgiu pacotes comerciais utilizando algoritmos genéticos.
Evolver é considerado o primeiro pacote comercial por vários artigos, que já estava
disponível desde 1988 e que incluía um programa adicional para o Excel e uma API
(Interface de Programação de Aplicativos) para o desenvolvimento de programas que
acessassem dados provenientes de diferentes aplicativos. Atualmente podemos
encontrar vários aplicativos que tem as mesmas características.
Com isso vieram as primeiras conferências cientificas dedicadas
exclusivamente a estes tópicos na década de 80, ocasionado pelo progresso dos
algoritmos evolucionários e sua popularização no meio cientifico. Atualmente os
algoritmos genéticos obtiveram benefícios muito da interdisciplinaridade, pois cada vez
mais cientistas da computação buscam idéias em outras áreas de pesquisa para
compor suas inspirações de forma ao absorverem suas idéias possam fazer com que
os GAs sejam mais eficientes e inteligentes na resolução de problemáticas.
23
asseguram que seus resultados obterão uma resolução ideal em todas as suas
execuções.
Sendo assim podemos deduzir que se você tem um algoritmo com o tempo
de execução curto o suficiente para a solução de um problema, não haverá a
necessidade da utilização de um algoritmo evolucionário. Uma melhor aplicabilidade
para um algoritmo evolucionário que descobrimos em nossas pesquisas, seria quando
na resolução de um problema um algoritmo for demasiadamente lento, como em
problemas NP-completos, que “[...] é o subconjunto dos problemas de decisão em
NP[...]“ (WIKIPÉDIA, 2007, Disponível: http://pt.wikipedia.org/wiki/NP-completo) ou
incapaz de achar uma solução como em problemas de maximização de funções multi-
modais, então ai entraria os algoritmos evolucionários.
Vários termos foram citados até agora, as vezes até de difícil compreensão,
mas os algoritmos evolucionários são de simples implementação.
Vamos agora tentar entender melhor como os algoritmos evolucionários se
posicionam como técnicas de busca através de um esquema apresentado na Figura 4.
Existe um ramo de busca chamado de “Técnicas Aleatórias-Guiadas” onde os
algoritmos evolucionários fazem parte, isto é, eles tem componentes aleatórios, mas
utilizam informações do estado corrente para guiar a pesquisa, tendo assim uma
diferença de métodos puramente aleatórios como a técnica de Random Walk. Ao
analisar a figura podemos entender como os algoritmos evolucionários se dividem em
vários tipos distintos (marcados em cinza).
Figura 4 - Diagrama representativo dos algoritmos evolucionário como técnica de busca (LINDEN, 2006, p. 39).
26
Figura 5 - Função Hipotética com um máximo local e outro global (LINDEN, 2006, p. 40).
Anteriormente vimos que o método de hill climbing é diferente dos GAs pois
os algoritmos genéticos não ficam estagnados simplesmente pelo fato de terem
encontrado um máximo local. Na verdade quando nos referimos a este ponto, os GAs
se parecem com a evolução natural, pois ao encontrar um individuo que é
27
Linguagem natural GA
cromossomo individuo, string, cromossomo, árvore
gen características
alelo valor
locus posição
genótipo estrutura
fenótipo conjunto de parâmetros
população conjunto de pontos (indivíduos) no Espaço de Busca
geração iteração completa do GA que gera uma nova população
saída gerada pela função objetivo para um individuo da
aptidão bruta
população
Aptidão bruta normalizada, entrada para o algoritmo de
aptidão normalizada
seleção
aptidão máxima melhor individuo da população corrente
aptidão media aptidão media da população corrente
Tabela 1 - Faz uma comparação entre os termos utilizados em linguagem natura (na biologia) com a
utilizada no GA.
4 ENTENDENDO UM GA SIMPLES
31
Como acima citamos, algum dos fatores decisivos que afetam as respostas
encontradas para os problemas de GA é o tamanho da população e o número de
33
De acordo com o pesquisador Ricardo Linden uma pergunta pode nos ocorrer
quando se diz respeito à representação cromossomial, sendo esta uma indagação de
quando a representação binária não será a mais adequada.
adequadas para problemas específicos. Dentre elas podemos citar como as mais
comuns:
• Binário (EX: 010111);
• Numérico (Ex: 5,8; 9,3);
• Seqüencial (Ex: 3, 5, 4, 1, 2);
Lembremos que uma representação é de grande importância, pois ela poderá
ser a mais adequada a algum problema que viermos a resolver: Qualquer estrutura de
dados que pudermos imaginar!
Devemos entender que os operadores genéticos devem ser modificados para
serem adequados à representação apropriada.
que o segundo a função de avaliação do primeiro deve ser maior do que a do segundo
cromossomo.
Portanto devemos atentar para a importância que esta função deve refletir os
objetivos a serem alcançados em uma resolução, pois ela é gerada diretamente pelas
condições impostas apresentadas no problema.
4.5 Seleção
Indivídu Avaliação da
o Aptidão
1000 1
0111 9
1010 16
1010 36
Total 62
Tabela 3 - Exemplo de como ocorre o processo de seleção atentando para não cair no efeito
de convergência genética (tabela meramente ilustrativa).
[...] vamos perceber que se o numero de genes for impar, é impossível que as
duas partes de cada pai tenha exatamente o mesmo tamanho [...] (LINDEN,
2006, p. 67)
4.7 Mutação
5 APLICABILIDADES
6 CONSIDERAÇÕES FINAIS
possível, ai sim, poderemos encontrar a solução ideal. Apesar do GA não ser o método
mais preciso por ser um método heurístico, no momento é o mais eficiente.
Esperamos, pois, que o nosso trabalho monográfico venha contribuir para
melhorar o conhecimento acerca da aplicabilidade dos GAs em nossa área, pois é
interessante conhecer o processo para a obtenção do mesmo antes de pensarmos em
começar alguma implementação e com isso o algoritmo genético poderá chegar ao seu
total objetivo tendo um melhor desempenho.
Por fim, afirmamos que existem varias áreas em aberto dentro da pesquisa
teórica dos algoritmos genéticos, por tal motivo, tivemos como objetivo sinalizar
caminhos e não dar explicações de forma acabada com intuito de estimular outras
pesquisas. Ademias, devemos enfatizar que não há nenhum motivo plausível para
pararmos de aprender com a natureza, apesar de os GAs funcionarem muito bem na
atualidade, mas certamente a inclusão de técnicas utilizadas na natureza podem
melhorar demasiadamente o desempenho de tais algoritmos.
48
REFERÊNCIAS
LUCAS, Diogo C.. Algoritmos Genéticos: uma Introdução. Disponível em: <
http://www.inf.ufrgs.br/~alvares/INF01048IA/ApostilaAlgoritmosGeneticos.pdf>.
Acessado em: 24 abril 2007.
SILVA, Paulo Ricardo da; ZAMBONI, Rafael Régis; MARQUES, Ana Flavia. Teoria da
Evolução. Disponível em: <http://www.brasilescola.com/biologia/teoria-da-
evolucao.htm>. Acessado em: 25 julho 2007.
WIKIPEDIA, The Free Encyclopedia. John Henry Holland. Disponível em: <
http://en.wikipedia.org/wiki/John_Henry_Holland>. Acessado em: 25 Agosto 2007.