Você está na página 1de 25

Algoritmos Genticos - Captulo 10

Representao Baseada em Ordem

Prof. Ricardo Linden

Conceitos bsicos

Existe uma classe de problemas que no consiste de


otimizao numrica, mas sim de otimizao
combinatorial;

Estes problemas podem ser resolvidos perfeitamente


atravs de GAs;

Estes problemas so em geral NP-completos, o que


significa que seu espao de busca , para efeitos
prticos, considerado como infinito;

Duas instncias tpicas deste caso so o problema de


colorir um grafo e o problema do caixeiro viajante.

Algoritmos Genticos

Problemas Tpicos

Colorir um grafo:
Termos um grafo com n ns, cada um com um peso
distinto;
So dadas k cores para colorir este grafo (k<n).
Objetivo:
conseguir o maior escore possvel
somando os pesos dos ns coloridos;
Ns adjacentes no podem receber a mesma cor.
Caixeiro viajante:
Um caixeiro que tem de visitar n cidades;
No se pode passar duas vezes por nenhuma delas;
Objetivo: percorrer a menor distncia possvel.
Algoritmos Genticos

Representao

No dois casos que melhor representam a necessidade


desta representao, estamos interessados na ordem
em que o problema resolvido;

Queremos uma representao que contenha todos os


ns (ou cidades) colocados em uma ordem;

Conseqncia:
representao em lista;
Cada cromossomo contm todos os elementos
presentes no problema (todas as cidades ou todos
os ns do grafo).
Algoritmos Genticos

Representao

Exemplos:
( 1 4 6 5 2 3 7), (1 2 3 4 5 6 7) e (7 5 3 1 2 4 6) so
exemplos de cromossomos vlidos para um
problema envolvendo sete ns.
( 1 6 2 5 7 4) no um cromossomo vlido, visto
que o elemento 3 no est presente na nossa lista;
(1 4 6 5 2 3 3 7) no um cromossomo vlido, pois
o elemento 3 aparece duas vezes na nossa lista.

Algoritmos Genticos

Avaliao

A funo de avaliao, como j discutido anteriormente, deve


representar a qualidade de cada um dos cromossomos;

Caixeiro viajante: some a distncia entre a cidade contida no gene


i cidade contida no gene i+1, i=0,1,...,n-1;

Colorir um grafo:
tomaremos os ns um a um, na ordem fornecida pelo
cromossomo;
designar-lhes-emos a primeira cor possvel;
Se houver alguma cor possvel, somaremos seu peso;

Agora s faltam os operadores...


Algoritmos Genticos

Crossover baseado em ordem

Verso especial do operador de crossover de dois


pontos e de crossover uniforme;
Necessrio modificar operadores de modo que sempre
geremos filhos vlidos dentro deste novo formato de
representao
no podemos simplesmente copiar posies do
primeiro pai quando sortearmos um 1 e copiarmos
posies do segundo pai quando sortearmos um 0;
poderamos gerar um cromossomo com elementos
repetidos.

Algoritmos Genticos

Crossover baseado em ordem

A idia de ordenao relativa leva a um novo conceito


de esquema para a representao baseada em ordem.
Um esquema, agora, toda sub-lista de nosso
cromossomo;
Os don't cares correspondem a simplesmente ignorar a
posio original de cada n do cromossomo;
Exemplos de esquemas para o pai 1 da figura do
slide anterior so (1 6 7), (1 4 3 2), (1 5), (6 4 7), etc.
Note que no colocamos mais os coringas (*).

Algoritmos Genticos

Crossover baseado em ordem


1.

A partir desta nova viso dos cromossomos, genes e


esquemas, podemos chegar ao seguinte algoritmo
para atuao do crossover baseado em ordem que
modifica o crossover de dois pontos:
1.
2.
3.
4.
5.

Selecione dois pontos de corte


Copie para o filho 1 os elementos do pai 1
Faa uma lista dos elementos do pai 1 fora dos pontos de
corte.
Permute esta lista de forma que os elementos apaream na
mesma ordem que no pai 2
Coloque estes elementos nos espaos do pai 1 na ordem
gerada no passo anterior
Analogia Repita o processo para gerar o filho 2,
substituindo o pai 1 pelo 2 e vice-versa

Algoritmos Genticos

Crossover baseado em ordem

Como o crossover de dois pontos binrio, o nmero de esquemas


que este operador pode manter limitado;
H uma verso anloga ao funcionamento do crossover uniforme,
que o seguinte:
1. Gere uma string de bits aleatria do mesmo tamanho que os
elementos (assim como no crossover uniforme)
2. Copie para o filho 1 os elementos do pai 1 referentes quelas
posies onde a string de bits possui um 1
3. Faa uma lista dos elementos do pai 1 referentes a zeros da
string de bits
4. Permute esta lista de forma que os elementos apaream na
mesma ordem que no pai 2
5. Coloque estes elementos nos espaos do pai 1 na ordem
gerada no passo anterior
Analogia Repita o processo para gerar o filho 2, substituindo
o pai 1 pelo 2 e vice-versa

Algoritmos Genticos

10

Crossover baseado em ordem

Exemplo (omitindo o passo de analogia)

Algoritmos Genticos

11

Edge Recombination

Existem outras maneiras de fazer o crossover de dois


cromossomos baseados em ordem;

Possibilidade
recombinao
recombination), ou ER;

Conceito bsico:
Informao importante em um cromossomo no a
ordenao dos ns;
Importantes so as arestas entre ns;
Filhos gerados pelo crossover devem ser baseados
na arestas entre os ns, e no na ordenao relativa
entre eles.

de

Algoritmos Genticos

arestas

(edge

12

Edge Recombination

1.
2.
3.

4.

Algoritmo bsico:
Monte a lista de arestas existentes em cada um dos dois pais.
Escolha o n inicial de um dos pais.
Escolha uma dentre as arestas vlidas para o n escolhido,
seguindo as seguintes recomendaes:
a. Escolha o n ou cidade com menor nmero de arestas vlidas
b. Se houver um empate, escolha uma dentre as vencedoras
aleatoriamente.
c. Se no houver arestas vlidas para o n escolhido, escolha
qualquer uma aleatoriamente.
Repita o processo at que no haja mais ns a escolher.

Algoritmos Genticos

13

Edge Recombination

Experimentos que indicam que a taxa de falha, em que


no temos nenhuma aresta para escolher muito baixa
(cerca de 1%);

Operador ER preserva caractersticas estruturais do


grafo subjacente nossa representao, ao preservar
as arestas entre os ns que o formam.

Algoritmos Genticos

14

Crossover de mapeamento parcial

Pode ser visto como um crossover de permutaes;


Idia bsica:
trocar uma seqncia intermediria entre os dois
pais
garantindo no processo que ambos os filhos
recebero o conjunto completo de ns existentes.
Algoritmo:
1. Escolhem-se dois pontos de corte aleatoriamente
nos pais
2. Faz-se o mapeamento de cada n entre os pontos
de corte do primeiro pai com o do segundo pai.
3. Em cada pai, ns fazemos a inverso das posies
entre os elementos do mapeamento.

Algoritmos Genticos

15

Mutao baseada em ordem

Mutao realiza mudanas locais em cromossomos;


Na representao baseada em ordem:
no h bits a inverter;
no podemos designar valores aleatoriamente pois
poderamos ter repeties de alguns ns enquanto
outros ficariam de fora
temos que operar com diversos genes de um
mesmo cromossomo simultaneamente.
Existem trs maneiras bsicas de faz-lo:
permutao de elementos;
mistura de sub-listas;
a inverso de sub-lista.
Algoritmos Genticos

16

Mutao baseada em ordem

permutao de elementos:
escolhem-se dois elementos ao acaso dentro do
nosso cromossomo;
trocam-se as suas posies.

Elementos Selecionados

Algoritmos Genticos

17

Mutao baseada em ordem

Mistura de sublistas:
Escolhem-se dois pontos de corte dentro do nosso
cromossomo;
Estes pontos delimitaro uma sub-lista.
Faz-se uma permutao aleatria dos elementos
desta sub-lista.

Pontos de Corte

Algoritmos Genticos

18

Mutao baseada em ordem

Inverso de sub-lista:
Similar mistura de sub-lista;
Inverte-se a lista sorteada, ao invs de se realizar
uma mistura aleatria dos seus elementos.

Pontos de Corte

Algoritmos Genticos

Era ltimo,
virou primeiro
Era segundo,
virou penltimo

19

Outros operadores de mutao

Idia: substituir (ou combinar) os operadores


puramente aleatrios por outros mutao que tenham
embutidas funes de otimizao local;

A cada aplicao de um operador de mutao, ser


encontrado um mximo local da funo de avaliao;

Se usarmos elitismo, garantimos que o desempenho


do GA ser pelo menos igual a de um mtodo de
otimizao local inicializado no ponto corrente.

Algoritmos Genticos

20

Outros operadores de mutao

Operador de otimizao local o chamado 2-opt:


verifica todos os pares de ns ou cidades existentes
dentro do cromossomo;
calcule qual seria a avaliao do cromossomo caso
este par fosse invertido;
faa a inverso que garante o maior ganho de
avaliao para o cromossomo corrente.
consiste
em um algoritmo de hill climbing,
otimizando a funo de avaliao dentro desta
vizinhana;
nmero de pares ordenados verificados:
C 2n

n!
n(n 1)

2!(n 2)!
2

Algoritmos Genticos

21

Outros operadores de mutao

Mtodo pode ser expandido para avaliar combinaes


de mais cidades dentro da populao, o que nos daria
os mtodos 3-opt, 4-opt, etc;

Propiciam uma anlise de uma vizinhana maior a


cada iterao e por conseguinte, podem encontrar
solues mais promissoras;

Quando aumentamos em um o nmero de elementos


nas combinaes, multiplicamos o nmero de
indivduos avaliados por um fator proporcional a n;

Tamanho da vizinhana cresce rapidamente e faz com


que o GA possa se tornar excessivamente lento.
Algoritmos Genticos
22

Operador Inver-Over

O operador Inver-Over um operador que trabalha de forma


isolada, substituindo tanto o operador de crossover quanto o de
mutao;
Ele aplica uma forte seleo sobre os indivduos e usa um ou dois
pais a cada iterao;
Operador Inver-Over aplicado a todos os pais, ao invs de uma
seleo de pais feita por algum mecanismo aleatrio;
equivalente, de certa forma, a um processo de busca local,
otimizando as conexes localmente para melhorar o indivduo
corrente ao mximo.
GAs que usam o operador Inver-Over costumam ser velozes e
precisos, tendo atingido um resultado muito prximo da soluo
tima em vrios casos de teste;
no h um estudo terico formal que prove que esta situao
se repetir em todos os problemas possveis.

Algoritmos Genticos

23

Operador Inver-Over

Algoritmo bsico:
Selecione um pai Si da populaao.
S Si
Selecione aleatoriamente um n c de S
Repita
Selecione um nmero p s aleatoriamente
Se ps<p ento
Sorteie um n c direita de c
Seno
Sorteie outro indivduo S 2 da populao
c' n adjacente a c em S 2.
Fim Se

(continua...)
Algoritmos Genticos

24

Operador Inver-Over
Algoritmo Bsico (cont)
Se c adjacente a c ento
Saia do loop
Fim Se
Inverta a seleo do n c at o n c
em S
c c
Se
avaliao(S)
melhor
que
avaliao(Si) ento
Si S
Fim Se
Fim Repita

Algoritmos Genticos

25

Você também pode gostar