BELÉM
2005
INSTITUTO DE ESTUDOS SUPERIORES DA AMAZÔNIA
BELÉM
2005
INSTITUTO DE ESTUDOS SUPERIORES DA AMAZÔNIA
Esta monografia foi julgada adequada para a obtenção do título de Bacharel em Engenharia
da Computação e aprovada na sua forma pelo Instituto de Estudos Superiores da Amazônia.
Data:__/__/____
Conceito:________
____________________________________________
____________________________________________
Prof. Dr. Dionne Cavalcante Monteiro
Coordenador de Engenharia da Computação
______________________________________________
Prof. Msc. Rodrigo Melo e Silva de Oliveira
UFPA
BELÉM
2005
Para nossa família, nossa eterna gratidão.
AGRADECIMENTOS
Ao nosso Coordenador do Curso Prof. Dr. Dionne Monteiro pelo estímulo e atenção que nos
concedeu durante o curso.
Ao nosso amigo Rodrigo Oliveira pelo apoio e colaboração para a realização deste.
Aos nossos Colegas e amigos em especial a Cristina, Carlos Cristiano, Shirlen e Thais do
IESAM pela amizade, companheirismo e troca de experiências.
P.
Figura 1 - Fluxograma de um algoritmo genético tradicional..................................................... 19
Quadro1 - Medida de aptidão de cada indivíduo na população corrente.................................. 21
Figura 2 - Amostragem estocástica universal............................................................................ 22
Quadro 2 - População de strings e seus valores de fitness....................................................... 23
Figura 3 - Esquema gráfico do processo de cruzamento.......................................................... 24
Figura 4 - Crossover de 1 ponto................................................................................................ 25
Figura 5 - Crossover de 2 pontos.............................................................................................. 25
Figura 6 - Crossover uniforme................................................................................................... 25
Figura 7 - Esquema do processo de mutação........................................................................... 26
Figura 8 - Gráfico da função de Schaffer .................................................................................. 28
Figura 9 – Codificação binária................................................................................................... 29
Figura 10 - Primeiro teste com o ga1.f....................................................................................... 30
Figura 11 - Segundo teste com o ga1........................................................................................ 31
Figura 12 - Terceiro teste com o ga1.f....................................................................................... 31
Figura 13 - Quarto teste com o ga1.f......................................................................................... 32
Figura 14 - Quinto teste com o ga1.f......................................................................................... 32
Figura 15 - Primeiro teste com o ga2.f....................................................................................... 33
Figura 16 - Segundo teste com o ga2.f...................................................................................... 33
Figura 17 - Terceiro teste com o ga2.f....................................................................................... 34
Figura 18 - Quarto teste com o ga2.f......................................................................................... 34
Figura 19 - Quinto teste com o ga2.f......................................................................................... 35
Figura 20 - Primeiro teste com o ga3.f....................................................................................... 35
Figura 21 - Segundo teste com o ga3.f...................................................................................... 36
Figura 22 - Terceiro teste com o ga3.f....................................................................................... 36
Figura 23 - Quarto teste com o ga3.f......................................................................................... 37
Figura 24 - Quinto teste com o ga3.f......................................................................................... 37
Figura 25 - Primeiro teste com o ga4.f....................................................................................... 38
Figura 26 - Segundo teste com o ga4.f...................................................................................... 38
Figura 27 - Terceiro teste com o ga4.f....................................................................................... 39
Figura 28 - Quarto teste com o ga4.f......................................................................................... 39
Figura 29 - Quinto teste com o ga4.f......................................................................................... 40
Quadro 3 – Erro médio do cruzamento...................................................................................... 45
SUMÁRIO .P
1 INTRODUÇÃO............................................................................................................... 10
CAPÍTULO 1 – HISTÓRICO............................................................................................. 12
1.1 ORIGEM DOS ALGORITMOS GENÉTICOS.............................................................. 13
1.2 TERMINOLOGIA DOS ALGORITMOS GENÉTICOS ................................................ 15
1.3 ALGORITMOS GENÉTICOS ..................................................................................... 16
CAPÍTULO 2 - DESCRIÇÃO DA TÉCNICA DE ALGORITMO GENÉTICO......... 19
2.1.ALGORITMO GENÉTICO TRADICIONAL....................................................... 19
2.2 COMPONENTES DE UM ALGORITMO GENÉTICO.................................................. 20
2.2.1 Problema.................................................................................................................. 20
2.2.2 Indivíduo.................................................................................................................. 20
2.2.2.1 Representação..................................................................................................... 20
2.3 OPERAÇÕES BÁSICAS.............................................................................................. 20
2.3.1 Inicialização............................................................................................................. 21
2.3.2 Avaliação................................................................................................................. 21
2.3.3 Seleção.................................................................................................................... 21
2.3.4 Reprodução............................................................................................................. 22
2.3.5.Cruzamento.............................................................................................................. 23
2.3.6 Mutação.................................................................................................................... 26
2.3.7 Atualização.............................................................................................................. 27
2.3.8 Finalização............................................................................................................... 27
2.3.9 Elitismo.................................................................................................................... 27
CAPÍTULO 3 – RESULTADOS......................................................................................... 28
3.1 TESTES....................................................................................................................... 30
3.1.1 Gráficos do ga1 f em cinco testes, cruzamento de um ponto sem elitismo..... 30
3.1.2 Gráficos do ga2.f em cinco testes, cruzamento de um ponto com elitismo..... 33
3.1.3 Gráficos do ga3.f em cinco testes, cruzamento de dois pontos sem elitismo. 35
3.1.4 Gráficos do ga4.f em cinco testes, cruzamento de dois pontos com elitismo
........................................................................................................................................... 38
3.2 RESULTADOS QUANTO A PRECISÃO E MELHOR GERAÇÃO............................... 40
3.2.1 Testes com o ga1.f ................................................................................................. 40
3.2.2 Testes com o ga2.f.................................................................................................. 41
3.2.3 Testes com o ga3.f.................................................................................................. 42
3.2.4 Testes com o ga4.f.................................................................................................. 43
3.3 CONSIDERAÇÕES SOBRE OS RESULTADOS OBTIDOS....................................... 45
2 CONSIDERAÇÕES FINAIS............................................................................................ 46
3 REFERÊNCIAS............................................................................................................... 47
RESUMO
evolucionária.
ABSTRACT
cada vez mais da natureza e do ser humano seja em forma de aprender ou de pensar. Um
evolutiva que nos leva a modelar a teoria da evolução das espécies de Darwin ao longo das
computação evolutiva.
e, ao final, é apresentada a solução ótima para o problema. Esta técnica de otimização tem
uma vantagem sobre técnicas anteriores, pois trabalha com um conjunto das possíveis
(GUERVÓS, 2005).
busca muito grande ou de difícil formulação matemática. Por isso, são utilizados em
Algoritmos Genéticos é usada para classificar imagens de satélites. Nesse tipo de problema,
seletivo, semelhante a evolução das espécies de Darwin, são empregados para se chegar à
solução que fornece conjunto de parâmetros que satisfaz os critérios de busca. Então, com
este resultado, a imagem toda pode ser classificada (CENTENO, 2005). Exemplo em
operacional de uma central hidrelétrica com diversos grupos geradores diferentes entre si.
(ALMEIDA, 2005).
FORTRAN. O desempenho dessa técnica foi validado com modificações nos parâmetros da
formulação do método conhecido como Cruzamento. Assim, este trabalho foi dividido nos
desenvolvido.
12
CAPÍTULO 1 - HISTÓRICO
A teoria da evolução foi descrita por Charles Darwin, 20 anos depois de sua viagem
pela ilha de Galápos. Estas idéias são apresentadas no livro “A origem das espécies por
meio da seleção natural”. Este livro foi bastante polêmico na época e em qualquer caso é
hereditárias nos seres vivos e a seleção natural são os dois fatores que provocam a
mudança nas gerações de espécies. Mas, Darwin não sabia qual era a base da herança,
pensava que os traços de um ser vivo eram como um fluido, e que os “fluidos” dos pais se
inseriam na descendência. Essa hipótese tinha o problema que ao final de certo tempo, uma
Foi Mendel que descobriu que as características são herdadas de forma discreta, e
essas características que podiam tomar diferentes valores, Mendel chamou de genes, e aos
valores que podiam tomar alelos. Na realidade as teorias de Mendel foram esquecidas e não
necessário para a evolução. Mais ou menos pela mesma época, o biólogo alemão Walther
cromatina do núcleo celular durante a divisão, mais adiante descobriram que as células de
cada espécie vivente tinham um número fixo e característico de cromossomos, até nos anos
50, quando Watson e Crick descobriram que a base molecular dos genes está no DNA. Os
Soares (op.cit.).
13
Todas essas descobertas, nos dias atuais, formam a teoria do neodarwinismo, que
afirma que a história da maioria das espécies está relacionada por uma série de processos
que atuam dentro das populações: reprodução, mutação, competição e seleção. Amabis;
algoritmos evolutivos, esse trata de imitar estes mecanismos para resolver os problemas
variabilidade genética e os que a aumentam sua freqüência. Amabis; Martho (op. cit.).
Seleção natural, onde os indivíduos que tenham alguma característica que os façam menos
adaptados para realizar tarefas necessárias a sua sobrevivência, terão menos probabilidade
de reproduzir-se, logo seu schemas patrimônio genético terá menos probabilidade de ser
repassado a outras gerações. Essa seleção sucede-se a muitos níveis: competição entre
representa uma alteração do código genético, que pode acontecer por múltiplas razões, são
existem substâncias mutagênicas que aumentam sua freqüência. Amabis; Martho (op. cit.).
John Holland desde pequeno, perguntava-se como a natureza conseguia criar seres
cada vez mais perfeitos, não sabia a resposta, mas tinha certa idéia de como achá-la, então
fez alguns pequenos modelos da natureza com características iguais as reais e observou
seu comportamento, para fazer suas conclusões deste feito, desde pequeno fazia
Nos anos 50, quando entrou em contato com os primeiros computadores, pode levar
a prática algumas de suas idéias, mas não encontrou um ambiente fértil para divulgá-las. Foi
no princípio dos anos 60, na universidade de Michigan, que dentro de um grupo de lógica
computacional (logic of computers), suas idéias começaram a ser testadas e a darem frutos.
Lendo livros sobre a teoria evolucionista, começou a descobrir meios de por em prática seus
propósitos de entender a natureza. Aprendeu que a evolução era uma forma de adaptação
mais poderosa que uma simples aprendizagem, e tomou a decisão de aplicar as idéias da
(GUERVÓS, 2005).
participação ativa de seus alunos, criaram as idéias que mais tarde gerariam os algoritmos
genéticos. Os objetivos em sua pesquisa para a criação dos algoritmos genéticos, segundo
naturais.
genéticos em seu trabalho. Holland não acreditava na possibilidade, pois pensava que o
problema era muito complexo para aplicar a técnica (Guervós op. cit.).
computador pessoal, o Aple II. Todas estas e outras aplicações, criadas por estudantes de
INDIVÍDUO: é aquele exemplar de uma espécie que interage com o meio ambiente.
genes.
GENE: unidade básica do cromossomo que define, de acordo com seu valor e posição, uma
SELEÇÃO NATURAL: mecanismo que garante aos indivíduos mais aptos melhores
mesma espécie.
meio ambiente.
Os Algoritmos Genéticos são técnicas de busca e otimização. Com isso, podem ser
mas mantendo uma população de estruturas a partir das quais se geram novas populações.
características:
A) Busca Codificada
B) Generalidade
D) Busca estocástica
E) Busca Cega
F) Eficiência mediana
Dav 91, Gey 97, Bur 95(citado por Lucas, 2002, p. 7):
G) Paralelismo Implícito
O Algoritmo Genético tradicional realiza, segundo Fialho 2005 (citado por Bittencourt,
Figura 1.
2.2.1 Problema
2.2.2 Indivíduo
2.2.2.1 Representação
Por exemplos:
2.3.1 Inicialização
visa fornecer maior “biodiversidade”, fundamental para garantir uma boa abrangência do
espaço de pesquisa.
2.3.2 Avaliação
Nesta fase, cada indivíduo da população é avaliado a fim de que seja determinado o
seu grau de adaptação, isto é, a nota associada ao indivíduo que avalia quão boa é a
Cromossomo x f(x)
C1 0 0 1 0 0 1 9 81
C2 0 0 0 1 0 0 4 16
2.3.3 Seleção
geração.
22
indivíduo conforme a Figura 2. Colocam-se sobre este círculo uma "roleta" com n cursores,
igualmente espaçados. Após um giro da roleta a posição dos cursores indica os indivíduos
Evidentemente, os indivíduos cujas regiões possuem maior área terão maior probabilidade
2.3.4 Reprodução
Uma vez feita à seleção será feita à reprodução na quais os indivíduos são
reproduzidos com base na aptidão, ou seja, os melhores adaptados têm maiores chances
seleção natural. E a aptidão ou fitness é a habilidade que o indivíduo possui para sobreviver
a predadores, doenças e outros obstáculos. Esta função no meio artificial é que decidirá
aptidão ou fitness e a função objetivo ou payoff poderia maximinizar este valor conforme o
Quadro 2 abaixo:
POPULAÇÃO "FITNESS"
0001 1
0110 6
1010 12
2.3.5.Cruzamento
características genéticas dos pais durante a reprodução, permitindo que elas sejam
strings que casarão e logo, também aleatoriamente, em que posição da string se processará
o cruzamento ou crossover.
binárias:
24
"A" = 0 1 1 0 1
"B" = 1 1 0 0 0
Caso seja escolhida a posição de corte K=4 após a quarta posição da string, o
negrito:
"A" = 0 1 1 0 0
"B" = 1 1 0 0 1
11001011+11011111 = 11001111
série binária desde o início do cromossomo até o primeiro ponto de cruzamento é copiada
do primeiro pai, a parte do primeiro ponto de cruzamento até o segundo ponto é copiada do
2.3.6 Mutação
Por exemplo, pode ser verificado na figura abaixo uma analogia do processo de
mutação, onde é alterada a cor dos strings nas posições "2", "4" e "7", da situação "A" para
2.3.7 Atualização
anteriormente.
2.3.8 Finalização
2.3.9 Elitismo
convergência e é também uma adição aos métodos de seleção que forçam os Algoritmos
indivíduos podem ser perdidos se eles não forem selecionados para a reprodução ou se
CAPÍTULO 3 – RESULTADOS
ga1.f, ga2.f, ga3.f e ga4.f (Universidade...2005) que modelam um Algoritmo Genético para
obter o máximo de uma função, com cruzamentos de 1 e 2 pontos com ou sem elitismo.
Problema:
máximos locais), denotados pelas delimitações de cores variadas. O máximo dessa função
é representado pelo ponto central de cor vermelha, que é próximo do ponto (0,0). Essa
função aptidão que mede o fitness de cada indivíduo é a própria função de Schaffer. A taxa
faixa é -100 a 100 para x e y, o método de seleção do tipo roleta, com máximo de 10.000
Cada código foi testado cinco vezes cada, a fim de observar o comportamento do
3.1 TESTES
Figura
Figura 15 - Primeiro teste com o ga2.f
Fonte: Autoria, própria, 2005
3.1.3 Gráficos do ga3.f em cinco testes, cruzamento de dois pontos sem elitismo:
3.1.4 Gráficos do ga4.f em cinco testes, cruzamento de dois pontos com elitismo:
-teste 1 (figura 9)
Melhor geração: 48
Valor do Máximo: 1
Seqüência: 01111111111111111111111101000000000000000000011000
Valor do Máximo: 1.
Seqüência: 01111111111111111111110100111111111111111111100101
42
Valor do Máximo: 1
Seqüência: 10000000000000000000000001000000000000000000000001
Valor do Máximo: 1.
Seqüência: 01111111111111111111111110111111111111111111110110
Valor do Máximo: 1
Seqüência: 01111111111111111111101011000000000000000000010110
Seqüência: 10000000000010001100011100111111111111111001110001
Seqüência:01111111111111011011110000111111111101010101010100
Melhor geração: 28
Seqüência: 01111111111011001101000011000000000001011001100110
Seqüência:10000011001000100000010101000001010000011110001100
Seqüência:10000000000000111010011010111111111101100100110001
Valor do Máximo: 1.
Seqüência: 01111111111111111111010111000000000000000000000001
Melhor geração: 66
Seqüência:01111110101001010111001010111110000110111101111000
Valor do Máximo: 1.
Seqüência:10000000000000000000011101000000000000000000001010
Valor do Máximo: 1
Seqüência: 01111111111111111111101101000000000000000000000110
Valor do Máximo: 1
Seqüência:01111111111111111111010111000000000000000000000001
45
Observa-se que no caso do ga1, nem sempre se pode encontrar o ponto máximo da
função apenas máximo locais. Quando foi usado o cruzamento de 2 pontos, a resposta foi
em todos os casos.
Observando a tabela 1, que coloca a média de erro nos testes de cada caso,
observamos que nos casos sem elitismo o erro médio é maior dos que nos casos com
elitismo e que nos casos sem elitismo, entre os algoritmos sem elitismo o que teve o menor
2 CONSIDERAÇÕES FINAIS
genéticos aplicados. Dentre os casos analisados, o cruzamento de dois pontos foi o que
apresentou melhor desempenho, pois em todos os testes realizados com este caso,
com que o homem busque cada vez mais as melhores respostas ou soluções para cada
REFERÊNCIAS
<http://www.ppg.uem.br/Docs/ctf/Agronomia/2002/44_035_02_Adair%20Catarina_Utilizacao
em 25 mar. 2005.
2005.
http://www.inf.ufrgs.br/~alvares/INF01048IA/MaterialProva2/ApostilaAlgoritmosGeneticos.pdf
jun.2005.
SOARES, José Luís. Biologia: volume único. São Paulo: Scipione, 1997. p.280-282.