Você está na página 1de 27

Meta-Heurísticas em

Otimização Combinatória
Tema 12
Algoritmos Genéticos

Profª Laura Bahiense


Teorias Evolucionárias:
Histórico (1/2)

Até meados do século XIX muitos naturalistas acreditavam


que cada espécie havia sido criada separadamente através de
geração espontânea

O trabalho do naturalista sueco Carolus Linnaeus sobre a


classificação biológica de organismos despertou o interesse
pela similaridade entre certas espécies, levando a acreditar na
existência de uma certa relação entre elas

Depois veio o trabalho do biólogo francês Jean Baptiste


Lamark sobre a Teoria Evolucionária baseada no uso e desuso
de órgãos

E o trabalho do economista inglês Thomas Robert Malthus


afirmando que fatores ambientais, como doenças e carência de
alimentos, influenciavam no crescimento das populações

Profa Laura Bahiense 2/27 Meta-heurísticas em Otimização Combinatória Algoritmos Genéticos


Teorias Evolucionárias:
Histórico (2/2)

Após anos de observações e experimentos, o naturalista


britânico Charles Darwin apresentou, em 1858, sua teoria
de evolução através da Teoria da Seleção Natural:
trabalho intitulado “On the Origin of Species by Means of
Natural Selection”, com grande influência na biologia,
botânica, zoologia, filosofia e no pensamento religioso,
filosófico e político da época

Em 1865, o monge agostiniano, botânico e meteorologista


austríaco, Gregor Johann Mendel publica dois artigos
contendo as leis da hereditariedade, hoje chamadas Leis
de Mendel, que regem a transmissão dos caracteres
hereditários

Profa Laura Bahiense 3/27 Meta-heurísticas em Otimização Combinatória Algoritmos Genéticos


Genética Populacional e
Primeiras Simulações Computacionais

1930-1940 – Princípio básico de Genética Populacional:

Demonstrou-se que a variabilidade entre indivíduos em uma


população de organismos que se reproduzem sexualmente é
produzida pela mutação e pela recombinação genética

1950-1980 – Primeiras simulações computacionais:

Muitos biólogos começaram a desenvolver simulações


computacionais de sistemas genéticos

Profa Laura Bahiense 4/27 Meta-heurísticas em Otimização Combinatória Algoritmos Genéticos


Algoritmos Genéticos:
Histórico
1975 – John H. Holland:
Publicação do livro “Adaptation in Natural and Artificial
Systems”
Ênfase em sistemas classificadores e aprendizado de
máquina

1989 – Goldberg:
Publicação do livro “Genetic algorithms in search,
optimization, and machine learning”
Ênfase em Otimização

Profa Laura Bahiense 5/27 Meta-heurísticas em Otimização Combinatória Algoritmos Genéticos


Algoritmos Genéticos:
Definição
Professor John Koza:

“The genetic algorithm is a probabilistic search algorithm


that iteratively transforms a set (called a population) of
mathematical objects (typically fixed-length binary
character strings), each with an associated fitness value,
into a new population of offspring objects using the
Darwinian principle of natural selection and using
operations that are patterned after naturally occurring
genetic operations, such as crossover (sexual
recombination) and mutation.”

Profa Laura Bahiense 6/27 Meta-heurísticas em Otimização Combinatória Algoritmos Genéticos


Algoritmos Genéticos × Matemática

Algoritmo Genético Problema Matemático

Indivíduo Solução

População Conjunto de soluções

Cromossomo Codificação de uma solução

Aptidão (Fitness) Qualidade da solução

Gene Cada elemento que forma a solução

Profa Laura Bahiense 7/27 Meta-heurísticas em Otimização Combinatória Algoritmos Genéticos


Algoritmos Genéticos:
Características Gerais

Baseiam-se nos mecanismos da seleção natural e da genética

A cada iteração (geração) os princípios de seleção e reprodução


(cruzamento) são aplicados a uma população de indivíduos
(cromossomos), gerando novos indivíduos

Pode haver mutação nos indivíduos

Os indivíduos com maior adaptação têm maiores chances de se


reproduzir

Cromossomos podem ser representados por vetores binários,


inteiros ou reais

Profa Laura Bahiense 8/27 Meta-heurísticas em Otimização Combinatória Algoritmos Genéticos


Algoritmos Genéticos:
Algoritmo Básico
Seja P uma população inicial de indivíduos

Repita
 Obtenha novos indivíduos N a partir da população P por:
 Cruzamentos, com probabilidade Pcruzamento :
 Selecione pares de indivíduos em P
 Produza filhos de cada par
 Mutação, com probabilidade Pmutação :
 Selecione indivíduos de P
 Produza filhos de forma assexuada

 Atualize P selecionando indivíduos de P  N

Até satisfazer (Critério de Parada)


Retornar o indivíduo (cromossomo) mais adaptado de P
Profa Laura Bahiense 9/27 Meta-heurísticas em Otimização Combinatória Algoritmos Genéticos
Algoritmos Genéticos:
Indivíduos ou Cromossomos
O cromossomo é formado por genes

Os possíveis valores de cada gene são chamados de alelos

A posição do gene no cromossomo é chamada de locus

locus 1 locus 3

gene
1 1 0 1 0 1
alelo 1 alelo 0

A representação de um cromossomo pode ser: binária, inteira ou real

Profa Laura Bahiense 10/27 Meta-heurísticas em Otimização Combinatória Algoritmos Genéticos


Algoritmos Genéticos:
Exemplos de codificação
Vetor de bits: cada bit pode representar um elemento que pertence
(alelo = 1) ou não (alelo = 0) a uma solução

Vetor de inteiros: usado para problemas onde as soluções são


representadas por permutações (p.ex., TSP)

Profa Laura Bahiense 11/27 Meta-heurísticas em Otimização Combinatória Algoritmos Genéticos


Algoritmos Genéticos:
População
Conjunto de indivíduos (soluções) pertencentes a uma certa geração

A primeira população é geralmente gerada de forma aleatória

O tamanho da população afeta o desempenho e a eficiência do AG:

População pequena:

 Pequena cobertura do espaço de busca

População grande:

 Previne a convergência prematura para ótimos locais


 Porém, demanda maior tempo de processamento

Profa Laura Bahiense 12/27 Meta-heurísticas em Otimização Combinatória Algoritmos Genéticos


Algoritmos Genéticos:
Manutenção da População
Manter a população P com n elementos

Manter, de uma geração para outra, os nelite melhores indivíduos

Remover da população os indivíduos menos adaptados

Utilizar métodos probabilísticos para selecionar os indivíduos da


população

Profa Laura Bahiense 13/27 Meta-heurísticas em Otimização Combinatória Algoritmos Genéticos


Algoritmos Genéticos:
Função de Aptidão
Responsável pela avaliação de um indivíduo da população: ela
quantifica o quão bom é um indivíduo em relação aos demais

Intimamente ligada à função objetivo que caracteriza o problema a


ser resolvido

Pode ser a própria função objetivo ou um mapeamento desta que não


distorça a qualidade relativa dos indivíduos

Quanto mais próximo de uma solução ótima para o problema, diz-se


que mais apto é o indivíduo

Profa Laura Bahiense 14/27 Meta-heurísticas em Otimização Combinatória Algoritmos Genéticos


Algoritmos Genéticos:
Métodos de Seleção para atualização da população
Método da Roleta
Cada indivíduo da população é representado por uma fatia na roleta

O tamanho dessa fatia é proporcional ao valor da função de aptidão


do indivíduo

Indivíduos com maior aptidão recebem uma porção maior da roleta

A roleta é executada tantas vezes quanto for o número de indivíduos


da população

Desvantagem: pode levar a um grande número de cópias de um bom


indivíduo, diminuindo a diversidade da população

Profa Laura Bahiense 15/27 Meta-heurísticas em Otimização Combinatória Algoritmos Genéticos


Algoritmos Genéticos:
Métodos de Seleção para atualização da população
Método da Roleta – Exemplo

Profa Laura Bahiense 16/27 Meta-heurísticas em Otimização Combinatória Algoritmos Genéticos


Algoritmos Genéticos:
Métodos de Seleção para atualização da população
Método do Torneio
Primeiramente são escolhidos aleatoriamente m indivíduos da
população

Desses m, seleciona-se aquele com o maior valor da função de aptidão

Esse processo é repetido tantas vezes quanto for o número de


indivíduos da população a ser gerada

Profa Laura Bahiense 17/27 Meta-heurísticas em Otimização Combinatória Algoritmos Genéticos


Algoritmos Genéticos:
Métodos de Seleção para atualização da população
Método do Ranking
Primeiramente os indivíduos da população são ordenados de acordo
com seus valores da função de aptidão. Esta ordenação é chamada de
ranking

A cada indivíduo é associado um peso, proporcional à sua posição no


ranking

Assim, o indivíduo mais adaptado terá mais chance de ser escolhido


para a próxima população, pois a ele será atribuído o maior peso

Analogamente, o indivíduo menos adaptado terá a menor chance de


escolha

Profa Laura Bahiense 18/27 Meta-heurísticas em Otimização Combinatória Algoritmos Genéticos


Algoritmos Genéticos:
Seleção para aplicação dos operadores genéticos

Selecionar de maneira aleatória

Seleção baseada na aptidão (fitness)

Um mesmo indivíduo pode fazer parte de vários cruzamentos ou


várias mutações

Profa Laura Bahiense 19/27 Meta-heurísticas em Otimização Combinatória Algoritmos Genéticos


Algoritmos Genéticos:
Operadores genéticos
Baseados nos fenômenos que ocorrem na evolução natural

Transformam a população através de sucessivas gerações

Necessários para que a população se diversifique e, ao mesmo tempo,


mantenha características de adaptação adquiridas pelas gerações
anteriores

São aplicados a cada iteração, após os mecanismos de seleção, de


acordo com uma probabilidade

São responsáveis por novos indivíduos na população

São os operadores de cruzamento e mutação


Profa Laura Bahiense 20/27 Meta-heurísticas em Otimização Combinatória Algoritmos Genéticos
Algoritmos Genéticos:
Operadores genéticos – Cruzamento
O cruzamento (crossover) é o operador genético mais importante

O cruzamento é o operador responsável pela recombinação de características


dos pais durante a reprodução, permitindo que as próximas gerações
herdem essas características

A troca de informações entre indivíduos bem adaptados pode gerar


indivíduos ainda melhores, contribuindo para a convergência do algoritmo
para soluções de boa qualidade

É aplicado de acordo com a probabilidade Pcruzamento

Pcruzamento alta  mais rapidamente novos indivíduos serão introduzidos na


população  isto pode gerar um efeito indesejado pois a maior parte da
população será substituída podendo ocorrer perda de indivíduos de alta
aptidão

Pcruzamento baixa  o algoritmo pode se tornar muito lento

Profa Laura Bahiense 21/27 Meta-heurísticas em Otimização Combinatória Algoritmos Genéticos


Algoritmos Genéticos:
Cruzamento – Pontos de Corte
Pontos de corte devem ser estabelecidos e a partir deles as informações genéticas
dos pais são trocadas

Podem ser definidos de várias maneiras. As mais comuns são:


Um-ponto:
 Um único ponto de corte é escolhido aleatoriamente entre todos os
genes do cromossomo. As informações anteriores a este ponto em um
dos pais são ligadas às informações posteriores à este ponto no outro pai
Multi-pontos:
 Segmentos dos cromossomos pais, determinados pelos vários pontos de
corte, são trocados
Uniforme:
 Não utiliza pontos de corte, mas determina, através de um parâmetro
global, qual a probabilidade de cada gene ser trocado entre os pais

Profa Laura Bahiense 22/27 Meta-heurísticas em Otimização Combinatória Algoritmos Genéticos


Algoritmos Genéticos:
Cruzamento – Exemplo com Corte em 1 ponto

1 1 0 1 0 1 1 1 0 1 0 0

pais filhos

1 0 0 1 0 0 1 0 0 1 0 1

p=2 p=2

Profa Laura Bahiense 23/27 Meta-heurísticas em Otimização Combinatória Algoritmos Genéticos


Algoritmos Genéticos:
Cruzamento – Exemplo com Corte em k pontos

01 1 10 1 0 1 0 01 1 1 1 0

pais filhos

1 0 0 01 10 0 1 01 0 01 0 1

p1 = 1 p2 = 2 p3 = 4 p1 = 1 p2 = 2 p3 = 4

Profa Laura Bahiense 24/27 Meta-heurísticas em Otimização Combinatória Algoritmos Genéticos


Algoritmos Genéticos:
Operadores genéticos – Mutação
A mutação é necessária para a introdução e manutenção da
diversidade genética da população

Altera arbitrariamente um ou mais genes do cromossomo escolhido,


fornecendo meios para introdução de novos indivíduos na população

Com a mutação, assegura-se que a probabilidade de se chegar a


qualquer ponto do espaço de busca nunca será nula

Permite escapar de ótimos locais

É aplicado de acordo com uma probabilidade Pmutação

Pmutação alta  a busca torna-se essencialmente aleatória

Profa Laura Bahiense 25/27 Meta-heurísticas em Otimização Combinatória Algoritmos Genéticos


Algoritmos Genéticos:
Mutação – Exemplo

1 1 0 1 0 1

1 1 1 1 0 1

Profa Laura Bahiense 26/27 Meta-heurísticas em Otimização Combinatória Algoritmos Genéticos


Algoritmos Genéticos:
Referências
Holland, J. H. – Adaptation in Natural and Artificial Systems.
Cambridge, MA: MIT Press. Second Edition (1992)

Goldberg, D. E. – Genetic Algorithms in Search, Optimization, and


Machine Learning. Reading, MA: Addison-Wesley (1989)

Davis, L. D. – Handbook of Genetic Algorithms. New York: Van


Nostrand Reinhold, 1991

Mitchell, M. – Genetic Algorithms: An Overview, Complexity, 1 (1) 31-


39, 1995

Profa Laura Bahiense 27/27 Meta-heurísticas em Otimização Combinatória Algoritmos Genéticos

Você também pode gostar