Você está na página 1de 68

Sistemas Inteligentes if684

Germano Vasconcelos
gcv@cin.ufpe.br
Pgina da Disciplina:
www.cin.ufpe.br/~f684/EC

111
Algoritmos
Genticos

22
Algoritmos Genticos

n Tcnicas de busca e otimizao


n Metfora da evoluo das espcies de
Charles Darwin
n Desenvolvido por Holland (1975) et al
n Popularizado por Goldberg (1989)

33
Histria - Pr-darwinianos

T. Malthus (~1800)
Pastor anglicano e
economista
Idia de economia da
natureza
J. Lamarck Milico e
naturalista (1809)
Criou a expresso
biologia
Evoluo, baseada em
uso e desuso e
hereditariedade

44
Histria: Teoria da Evoluo
n 1859 - Charles Darwin publica
o livro A Origem das Espcies:
.
As espcies evoluem pelo
principio da seleo natural e
sobrevivncia do mais apto

Charles
Darwin

55
Histria: Teoria da Evoluo
n 1865- Gregor Mendel apresenta
experimentos do cruzamento
gentico de ervilhas
. w Pai da gentica
Gregor
Mendel
n ATeoria da Evoluo comeou a
partir da conceituao integrada
da seleo natural com a
gentica
66
Conceitos de AG
n Indivduo
w Simples membro da populao
w Nos AGs, uma possvel soluo
n Cromossomo e Genoma
w Coleo de genes
w Estrutura de dados que codifica a soluo
n Gentipo
Em biologia, a composio gentica no
genoma
Nos AGs, a informao no cromossomo ou
genoma
77
Conceitos de AG
n Fentipo:
w Objeto ou estrutura construda a partir das
informaes do gentipo
w o cromossomo decodificado
Exemplo: Se o cromossomo codifica as dimenses
de um edifcio, ento o fentipo o edifcio
construdo
n Gene:
w Codifica um simples parmetro do problema

88
Otimizao
n Busca da melhor soluo para um
problema
w Tentar vrias solues e usar a informao para
conseguir solues cada vez melhores
n Exemplo de otimizao:
w Telespectador ajusta a antena da televiso para
otimizar a imagem buscando vrias solues
at alcanar a melhor
w Empacotador coloca os objetos em uma caixa
de forma a otimizar a ocupao do espao

99
Otimizao

n As tcnicas de otimizao geralmente


apresentam:

Espao de busca: onde esto todas as


possveis solues do problema

Funo objetivo: para avaliar as solues


produzidas associando uma nota

10
10
Caractersticas dos
Algoritmos Genticos
n um algoritmo estocstico ( no
determinstico)
n Trabalha com uma populao de
solues simultaneamente
n Utiliza informaes de custo e
recompensa

11
11
Caractersticas dos
Algoritmos Genticos (II)
n Fceis de implementao em
computadores
n Adaptam-se bem a computadores
paralelos
n Facilmente hibridizados com outras
tcnicas
n Funcionam com parmetros contnuos
ou discretos

12
12
Algoritmos Genticos
(Conceitos Bsicos)
n AG manipula uma populao de
indivduos
n Individuos so possveis solues do
problema
n Indivduos so combinados (crossover)
produzindo filhos que podem sofrer ou
no mutao
n Populaes evoluem em sucessivas
geraes at encontrar a soluo tima
13
13
Aplicaes
n Otimizao de funes numricas em geral
n Otimizao combinatria
w Problema do caixeiro viajante
w Problema de empacotamento
w Alocao de recursos (job shop schedulling)
n Aprendizado de mquina
n Problemas difceis de otimizao quando
no existe tcnica exata para resolver o
problema ou o custo elevado
n Busca de solues em previso de sries
temporais
14
14
Algoritmo Gentico Tradicional
Algoritmo bsico:
Gerar populao inicial
while critrio-de-parada do
Escolher cromossomos reprodutores
Fazer o crossover dos reprodutores
Gerar mutaes
Avaliar aptides e atualizar a populao
end-while

Parmetros importantes:
tamanho da populao
critrio de seleo
funo de aptido
critrio de cruzamento (crossover)
taxa de mutao
critrio de sobrevivncia dos cromossomos
critrio de parada (estabilizao da populao, impossibilidade de melhorar a melhor
soluo, nmero de geraes)
15
15
Algoritmo Gentico Tradicional
Funo de aptido:
utilizada para quantificar a qualidade gentica dos cromossomos,
correspondendo funo de custo em problemas de otimizao
combinatria.
utilizada para selecionar os indivduos reprodutores.
utilizada para decidir se um cromossomo gerado atravs de um
crossover substitui ou no um cromossomo reprodutor.

Crossover: operao probabilstica (originalmente), onde os indivduos


mais adaptados tm maior chance de participar

Crossover uniforme: cada bit de um filho gerado escolhendo-se


aleatoriamente um dos pais e repetindo-se o bit do pai escolhido

16
15
Algoritmo Gentico Tradicional
Crossover de um ponto:
reprodutores: 2 cromossomos de n bits
a = (a1,,ak,,an) b = (b1,,bk,,bn)
operao: k {1,,n} aleatrio
filhos:
(a1,,ak,bk+1,,bn) (b1,,bk,ak+1,,an)

Crossover de dois (ou mais) pontos

Crossover por fuso: como o uniforme, mas a probabilidade de escolha de


cada pai proporcional sua aptido

Utilizar consenso no crossover: repetir bits comuns aos dois reprodutores

17
15
Algoritmo Gentico Tradicional
Mutao: normalmente implementada com a complementao de bits da
populao.

Seleo aleatria dos bits a serem modificados: percentual muito baixo do


total de bits na populao de cromossomos.

Mutao o mecanismo para introduzir diversidade na populao.

Critrios de atualizao da populao podem tambm permitir que pais e


filhos permaneam na populao, removendo-se sempre os menos aptos,
sendo possvel a utilizao de cromossomos pais e filhos como
reprodutores.

18
15
Indivduo
n Cromossomo
w Estrutura de dados que representa uma
possvel soluo para o problema
w Os parmetros do problema de otimizao
so representados por cadeias de valores
w Exemplos:
Vetores de reais, (2.345, 4.3454, 5.1, 3.4)
Cadeias de bits, (111011011)
Vetores de inteiros, (1,4,2,5,2,8)
ou outra estrutura de dados
19
17
Individuo (II)
Aptido
Nota associada que avalia a soluo
representada pelo individuo
Aptido pode ser:
Igual funo objetivo
Resultado do escalonamento da funo
objetivo

20
18
Problema 1

Problema: Use um AG para 1000


encontrar o ponto mximo da
funo: 800

600

400
com x sujeito as seguintes 200
restries:
0
0 5 10 15 20 25 30
x inteiro
21
16
Cromossomo do Problema 1
n Cromossomos binrios com 5 bits:
0 = 00000
31 = 11111
n Aptido
w Neste problema, pode ser a prpria funo
objetivo
w Exemplo:
aptido(00011) = f(3) = 9

22
19
Seleo
Seleo
Imitao da seleo natural
Os melhores indivduos (maior aptido)
so selecionados para gerar filhos atravs
de crossover e mutao
Dirige o AG para as melhores regies do
espao de busca
Tipos mais comuns de seleo
Proporcional aptido (Roleta)
Torneio
23
20
Populao Inicial do Problema 1
aleatria (mas quando possvel, o conhecimento da aplicao
pode ser utilizado para definir populao inicial)

cromossomos x f(x) Prob. de seleo


A 1 =1 1 0 0 1 25 625 54,5%
Pop. A 2 =0 1 1 1 1 15 225 19,6%
inicial
A 3 =0 1 1 1 0 14 196 17,1%
A 4 =0 1 0 1 0 10 100 8,7%

Probabilidade de seleo
proporcional a aptido
24
21
Seleo Proporcional
Aptido (Roleta)
Pais selecionados

A1 = 1 1 0 0 1

A2 = 0 1 1 1 1

A2 = 0 1 1 1 1

A1 = 1 1 0 0 1

25
22
Seleo por Torneio

n Escolhe-se n (de 4, escolhe-se


tipicamente 2, por exemplo) indivduos
aleatoriamente da populao e o
melhor selecionado

26
23
Crossover e Mutao

Combinam ou modificam pais


selecionados para produo de filhos
Principais mecanismos de busca do AG
Permite explorar reas desconhecidas
do espao de busca

27
24
Crossover de 1 Ponto

O Ponto de corte
O crossover aplicado com escolhido
uma dada probabilidade 1 1 0 0 1 aleatriamente
Pais
denominada taxa de 01111
crossover (60% a 90%)
11011
Filhos
01101

Se o crossover aplicado os pais trocam suas caldas gerando


dois filhos, caso contrrio os dois filhos sero cpias exatas
dos pais.
28
25
Mutao

Mutao inverte os valores dos bits Antes da 0 1 1 0 1


mutao
A mutao aplicada com dada Depois 0 0 1 0 1
probabilidade, denominada taxa de Aqui, apenas o
mutao (~1%), em cada um dos bits
2o.bit passou no
do cromossomo
teste de
probabilidade

A taxa de mutao em geral deve ser baixa, o suficiente para


assegurar a diversidade de cromossomos na populao

29
26
A primeira gerao
do Problema 1
Pais Filhos
crossover mutao
A1 = 1 1 0 0 1 11011 11011
A2 = 0 1 1 1 1 01101 00101
Nova
pop.
crossover mutao
A2 = 0 1 1 1 1 01111 10111
A1 = 1 1 0 0 1 11001 11001

30
27
A primeira gerao
do Problema 1 (II)

cromossomos

31
28
As demais geraes
do Problema 1

Segunda
Gerao

Terceira
Gerao
32
29
As demais geraes
do Problema 1 (II)

Quarta
Gerao

Quinta
Gerao

33
30
Outros Crossovers
n Crossover de 2-pontos

Considerado melhor que o crossover de 1 ponto.

34
31
Crossover de n-Pontos

Crossover de 4-pontos

35
32
Crossover Uniforme

Mscara de
bits aleatria1 1 0 1 0 1 1 0 1 0
pai 1 1 1 1 0 1 1 0 1 1 0

filho 1 1 1 1 0 0 1 0 1 1 0

pai 2 0 1 1 0 0 0 1 1 0 0

O filho1 tem 50% de chance de levar um bit do pai1 e


50% de chance de levar um bit de pai2

O filho2 leva o que sobra de pai1 e pai2

36
33
Elitismo
O crossover ou mutao podem
destruir o melhor indivduo
Por que perder a melhor soluo
encontrada?
Elitismo transfere a cpia do melhor
indviduo para a gerao seguinte

37
43
Critrios de Parada
n Nmero de geraes
n Encontrou a soluo (quando esta
conhecida)
n Perda de diversidade

n Convergncia
w nas ltimas k geraes no houve
melhoria na aptido

38
45
O Problema da Mochila

39
46
Problema da Mochila

40
46
Problema da Mochila

41
46
Problema da Mochila

42
46
Problema da Mochila

43
46
Problema da Mochila - Cromossomos Invlidos

44
46
Problema da Mochila - Reparao

45
46
Problema da Mochila - Reparao

46
46
Problema da Mochila - Penalizao

47
46
Problema da Mochila - Penalizao

48
46
Exerccio -
Mochila

w Objetivo: Maximizar Z=somatorio Preco_j*s_j (j = 1 a 6) (s_j = [0 ou 1]) sujeita a somatorio Volume_j*s_j (j = 1 a 6)


<= 50
w a) Proponha uma funo de aptido, para verificar o custo de cada cromossomo
w R:
w b) Faa a codificao de 4 cromossomos e calcule a funo de aptido
w R:
w R:
w c) Faa o crossover entre os dois pares de cromossomos codificados no item anterior (ponto de corte na segunda
casa)
w R:
w R:
w d) Gere os descendentes (4 descendentes)
w R:
w R:
w e) Aplique mutao nos descendentes em dois genes (3 e 5 casa)
w R:
w f) Aplique a funo de aptido nos filhos gerados mostrando a melhor soluo
w R:
w R:

49
46
Exerccio -
Mochila

w Objetivo: Maximizar Z=somatorio Preco_j*s_j (j = 1 a 6) (s_j = [0 ou 1]) sujeita a somatorio Volume_j*s_j (j = 1 a 6)


<= 50
w a) Proponha uma funo de aptido, para verificar o custo de cada cromossomo
w R: Z=somatorio Preco_j*s_j (j = 1 a 6) (s_j = [0 ou 1])
w b) Faa a codificao de 4 cromossomos e calcule a funo de aptido
w R: [1 1 0 0 0 0] , [0 1 1 1 0 0] , [0 1 0 1 1 0] , [1 0 0 0 1 0]
w R: R$3.700 , R$3.550 , R$2.400 , R$2.850
w c) Faa o crossover entre os dois pares de cromossomos codificados no item anterior (ponto de corte na segunda
casa)
w R: Seleo por roleta = [1 1 0 0 0 0], [1 0 0 0 1 0] , [1 1 0 0 0 0] , [1 1 0 0 0 0]
w R: Crossover Pais: [1 1 | 0 0 0 0] , [1 0 | 0 0 1 0] , [1 1 | 0 0 0 0] , [1 1 | 0 0 0 0]
w d) Gere os descendentes (4 descendentes)
w R: Filhos: [1 1 | 0 0 1 0] , [1 0 | 0 0 0 0] , [1 1 | 0 0 0 0] , [1 1 | 0 0 0 0]
w R: Filhos (ajustados): [1 0 0 0 1 0] , [1 0 0 0 0 0] , [1 0 0 0 0 0] , [1 0 0 0 0 0] (da esquerda para
direita, para cada bit=1, inclua o item na mochila se somado ao volume dos j inclusos no excede o
volume limite)
w e) Aplique mutao nos descendentes em dois genes (3 e 5 casa)
w R: [1 0 0 0 1 0] , [1 0 0 0 1 0] , [1 0 0 0 0 0] , [1 0 0 0 0 0]
w f) Aplique a funo de aptido nos filhos gerados mostrando a melhor soluo
w R: R$2.850 , R$2.850 , R$2.500,00 , R$2.500,00
w R: [1 0 0 0 1 0]
50
46
Exerccio 3
n Encontrar valor de x para o qual a funo f(x)
= x2 - 3x + 4 assume o valor mnimo
w Assumir que x [-10, +10]
w Codificar X como vetor binrio
w Criar uma populao inicial com 4 indivduos
w Aplicar Mutao com taxa de 1%
w Aplicar Crossover com taxa de 60%
w Usar seleo por torneio
w Usar 5 geraes.

51
46
Referncias 1
Obitko, Marek, 1998, Ermelindo Pinheiro Manoel (Verso em Portugus)
http://www.obitko.com/tutorials/genetic-algorithms/portuguese/resources.php

1. Goldberg, David E.. Genetic Algorithms in Search, Optimization, and Machine


Learning. EUA:Addison-Wesley, 1989.
2. Para uma discusso sobre as formas de representao do espao de busca,
veja: Goldberg, David E.. Genetic Algorithms in Search, Optimization, and
Machine Learning. EUA:Addison-Wesley, 1989. pgina 80
3. Veja em Goldberg, David E.. Genetic Algorithms in Search, Optimization, and
Machine Learning. EUA:Addison-Wesley, 1989. pgina 121 uma comparao
sobre diversas formas de seleo.
4. Veja em Goldberg, David E.. Genetic Algorithms in Search, Optimization, and
Machine Learning. EUA:Addison-Wesley, 1989. pgina 147 para ver outras
orperaes que podem ser aplicadas nos indivduos para a reproduo.
5. KOZA, J.R.. Genetic Programming: On the Programming of Computers by
Means of Natural Selection. [S.l.]:MIT Press, 1992.
6. Poli, R., Langdon, W. B., McPhee, N. F.. A Field Guide to Genetic
Programming. [S.l.]:freely available via Lulu.com, 2008

52
47
Referncias 2
ENCORE, the EvolutioNary COmputation REpository network
Rede Repositrio de Computao Evolucionria
ftp://alife.santafe.edu/pub/USER-AREA/EC/ (tem tambm alguns outros ns)
FAQ - The Hitch-Hiker's Guide to Evolutionary Computation
O guia Hitch-Hiker sobre Computao Evolucionria
ftp://alife.santafe.edu/pub/USER-AREA/EC/FAQ/www/index.html
FAQ - Genetic programming
Perguntas mais freqentes sobre Programao Gentica
http://www-dept.cs.ucl.ac.uk/research/genprog/gp2faq/
gp2faq.html
The Genetic Algorithms Archive - many links, information about
mailing list, some fun stuff
Arquivo de Algoritmos Genticos - vrios links, informaes sobre
listas, e algum material divertido
http://www.aic.nrl.navy.mil:80/galist/
Artificial Life Online - Vida Artificial Online - links.
Se voc est procurando por material introdutrio, veja aqui
http://alife.santafe.edu/
53
48
Caixeiro Viajante
Dado um conjunto de cidades, encontrar uma rota de menor custo, que
passe por todas as cidades apenas uma vez

3 4

10
2
1 5

7
8
9 6
Caixeiro Viajante
w Cromossoma
Representa uma trajetria
w 9 8 4 5 6 7 1 3 2 10

Funo Objetivo:
3 4
Distncia Total Percorrida

10
2
1 5

7
8
9 6

55
46
Caixeiro Viajante
w Crossover de 2 pontos

w Pais:
w 9 8 4 | 5 6 7 | 1 3 2 10
w 8 7 1 | 2 3 10 | 9 5 4 6

w Filhos:
Cromossomas Invlidos
w 9 8 4 | 2 3 10 | 1 3 2 10
w 871|567 |9546

Cidades Repetidas

56
46
Caixeiro Viajante - Uma Soluo
w Fazer o crossover normalmente entre os dois pontos
w Trocado um vrtice do pai 1 por um vrtice do pai 2 para cada posio
entre os pontos, cada uma destas trocas define um mapeamento. Se o
vrtice i estava na posio k no pai 1, o vrtice j estava na posio k no
pai 2, e a posio k est entre os dois pontos de corte, i est mapeado em
j e viceversa;
w Aps crossover normal, provavelmente sero geradas rotas invlidas;
w Para corrigir substitui-se todos os vrtices repetidos que esto fora dos
pontos de corte pelos vrtices aos quais eles esto mapeados;
w Pais:
w 9 8 4 | 5 6 7 | 1 3 2 10
w 8 7 1 | 2 3 10 | 9 5 4 6
w Operador troca a cadeia de nmeros entre os dois pontos de corte, e repete as cidades dos pais
que no so repetidas:
w 9 8 4 | 2 3 10 | 1 x x x
w 8x1|567 |9x4x
w A troca entre os pontos de crossover define alguns mapeamentos:
w 2 5, 3 6, 10 7

w As cidades repetidas dos cromossomas originais so substitudas pelas cidades mapeadas:


w 9 8 4 | 2 3 10 | 1 6 5 7
w 8 10 1 | 5 6 7 | 9 2 4 3
57
46
Exerccio- Caixeiro Viajante

Dado um conjunto de cidades, encontrar uma


rota de menor custo, que passe por todas as
cidades apenas uma vez

w O grafo mostra a ligao entre 5 cidades e as respectivas distncias em


quilmetros:
w O objetivo encontrar uma rota de menor custo usando um algoritmo gentico
w a) Proponha uma maneira de codificar os cromossomos.
w b) Defina uma funo de aptido para avaliar a qualidade dos cromossomos
w c) Gere dois cromossomos e avalie a aptido deles
w d) Realize o cruzamento entre os cromossomos
w e) Aplique uma mutao em um gene dos cromossomos
w f) Aplique a funo de aptido nos descendentes gerados verificando se a
soluo encontrada melhor ou no

58
46
Problema 2

Achar o mximo da funo utilizando


Algoritmos Genticos,

Restrita ao intervalo:

59
34
Problema 2 (II)
Mximo global
3,0
Mximo local
f(x ) =x sen(10x ) + 1

2,0

1,0

0,0

-1,0
-1,0 -0,5 0,0 0,5 1,0 1,5 2,0
x
Mximo global:
x = 1,85055
f(x) = 2,85027 60
35
Problema 2 (III)

n Funo multimodal com vrios pontos


de mximo.
n um problema de otimizao global
(encontrar o mximo global)
n No pode ser resolvido pela grande
maioria dos mtodos de otimizao
convencional.
n H muitos mtodos de otimizao local,
mas para otimizao global so poucos.
61
36
Cromossomo do Problema 2
n Representar o nico parmetro (varivel
x) na forma de um cromossomo:
w Quantos bits dever ter o cromossomo?
w Quanto mais bits melhor preciso nmerica
w Longos cromossomos so difceis de
manipular
w Para cada decimal necessrio 3,3 bits
w Cromossomo com 22 bits
1000101110110101000111

62
37
O Cromossomo Problema 2 (II)

n Decodificao
w cromossomo = 1000101110110101000111
w b10=(1000101110110101000111)2 = 2288967
w Valor de x precisa estar no intervalo [-1,0; 2,0]

63
38
As Geraes do Problema 2
3,0
2,5 Populao Inicial
f(x) =x seno(10x) + 1.0

2,0
1,5
1,0
0,5
0,0
-0,5
-1,0
-1,0 -0,5 0,0 0,5 1,0 1,5 2,0
x
Populao gerada aleatriamente
64
39
As Geraes do Problema 2 (II)
3,0
2,5 Primeira Gerao
f(x) =x sen(10x) + 1.0

2,0
1,5
1,0
0,5
0,0
-0,5
-1,0
-1,0 -0,5 0,0 0,5 1,0 1,5 2,0
x
Pouca melhoria
65
40
As Geraes do Problema 2 (III)
3,0

2,5
Gerao 25
f (x) = x sen(10 x) + 1.0

2,0

1,5

1,0

0,5

0,0

-0,5

-1,0
-1,0 -0,5 0,0 0,5 1,0 1,5 2,0
x
A maioria dos indivduos encontraram o mximo global
66
41
As Geraes do Problema 2 (IV)

3,0 Mdia
Melhor
2,5
Funo objetivo

2,0

1,5

1,0

0,5
0 5 10 15 20 25
Gerao

Na gerao 15 o AG j encontrou o ponto mximo


67
42
Elitismo no Problema 2
3,0
AG com elitismo
2,8 AG sem elitismo

2,6
Funo objetivo

2,4

2,2

2,0
0 5 10 15 20 25
Gerao

AG com elitismo melhor ?


68
44

Você também pode gostar