Você está na página 1de 13

GA em Otimizao

Combinatorial

Problemas onde a busca da soluo depende da


avaliao de diversas combinaes (ORDEM) dos
elementos considerados

Problem a do Caixeiro Viajante


Problem as de Planejamento
Problem as de Cronogram as
Alocao de Salas
Grafos: Colorir,
Colorir Particionar, Percorrer

Problema de Colorir o Grafo


ndice
I-P

1-5

2-8

3-4

4-9

5-6

6-7

7-13

8-10

9-15

peso

Regras:
Colorir os ns do grafo de
modo a maximizar a soma
total dos pesos.
Pares de ns conectados por
um arco no podem possuir
a mesma cor

Algoritmo Guloso

Considera apenas uma das


possveis solues,
colorindo os ns em ordem
decrescente de peso.
Ns em ordem
decrescente de peso:

1-5

2-8

3-4

4-9

5-6

6-7

7-13

8-10

9-15

1-5

2-8

3-4

4-9

5-6

6-7

7-13

8-10

9-15

(9, 7, 8, 4, 2, 6, 5, 1, 3)

Soluo tima p/ 1 cor:


(9, 4, 2) Pi = 32

Algoritmo Guloso

Considera apenas uma das


possveis solues,
colorindo os ns em ordem
decrescente de peso.
Ns em ordem
decrescente de peso:
(9, 7, 8, 4, 2, 6, 5, 1, 3)

Soluo tima p/ 1 cor:


(9, 4, 2) Pi = 32

Algoritmo Guloso

Considera apenas uma das


possveis solues,
colorindo os ns em ordem
decrescente de peso.
Ns em ordem
decrescente de peso:

1-5

2-8

3-4

4-9

5-6

6-7

7-13

8-10

9-15

1-5

2-8

3-4

4-9

5-6

6-7

7-13

8-10

9-15

(9, 7, 8, 4, 2, 6, 5, 1, 3)

Soluo tima p/ 1 cor:


(9, 4, 2) Pi = 32

Algoritmo Guloso

Considera apenas uma das


possveis solues,
colorindo os ns em ordem
decrescente de peso.
Ns em ordem
decrescente de peso:
(9, 7, 8, 4, 2, 6, 5, 1, 3)

Soluo tima p/ 2 cores:


(9, 4, 2) e ( 7, 6, 5)
Pi = 32 + 26

Aplicando o Algoritmo Guloso

Ns em ordem
decrescente de peso:

2-8

1-12

(7, 3, 4, 1, 6, 5, 2)

3-14

6-10

7-15

4-13

5-9

Aplicando o Algoritmo Guloso

Ns em ordem
decrescente de peso:

2-8

1-12

(7, 3, 4, 1, 6, 5, 2)

Algoritmo Guloso comea


e para no n 7

3-14

6-10

7-15

4-13

5-9

Aplicando o Algoritmo Guloso

Ns em ordem
decrescente de peso:

2-8

1-12

(7, 3, 4, 1, 6, 5, 2)

Solues timas:

3-14

6-10

7-15

1 cor: (1, 5, 3)
2 cores: (2, 4, 6)
4-13

5-9

Caractersticas do Problema

A modificao dos pesos, nmero de cores e arcos,


altera radicalmente a soluo do problema.
Estratgias como o algoritmo guloso no funcionam
bem para todos os problemas de colorir o grafo.
Heursticas (Ex: a valiar nmero de arcos ou pesos
de ns vizinhos antes colorir um n) podem no ser
eficientes para grandes espaos de busca.
Algoritmos Genticos oferecem uma soluo (subtima ou tima) para qualquer problema de colorir o
grafo.

Componentes de um Algoritmo Gentico


1. Problema
2. Representao
3. Decodificao
4. Avaliao
5. Operadores
6. Tcnicas
7. Parmetros

Tentando a Representao
Binria

Cada n do grafo representado por um campo


(gene) no cromossoma:
Smbolo do Campo Cor do n

Podemos usar a representao binria. Para apenas


1 cor :
0 no colorido

1 colorido

1-5

2-8

3-4

4-9

5-6

6-7

7-13

8-10

9-15

Cromossoma 0 1 0 1 1 0 0 0 1
N

1 2 3 4 5 6 7 8 9

Avaliando Representao
Binria

C um cromossoma ILEGAL
ILEGAL.
Inicializao, crossover e mutao vo gerar solues
ilegais.
Seria necessrio um mdulo reparador de cromossomas
Representao binria permite solues
sub-timas:
1-5
3-4
2-8
C 010100000
N

1 2 3 4 5 6 7 8 9

C ainda poderia ter o n 6, ou 8 ou 9


colorido e ser legal.

4-9

5-6

6-7

7-13

8-10

9-15

Representao Baseada em
Ordem

GA Hbrido Tcnicas de GA + Algoritmo Guloso


Algoritmo Guloso:
Cria uma lista de ns (ordem decrescente de peso)
Constri a soluo: atribui ao prximo n da lista uma cor
legal

Algoritmo Gentico
Cria uma lista (ns em ordem qualquer)
Constri a soluo: atribui ao prximo n da lista uma cor
legal

Exemplo

Cromossoma = lista
C1 (9, 7, 8, 4, 2, 6, 5, 1, 3)
C2 (2, 3, 7, 4, 9, 6, 5, 1, 8)
C3 (4, 5, 1, 2, 9, 6, 8, 7, 3)

2-8

3-4

4-9

5-6

6-7

7-13

8-10

9-15

C1 C2 C3 resultam na
soluo tima p/ 1 cor:
(9, 4, 2) Pi = 32

1-5

Informao codificada a
ordem relativa dos n
n s

Operadores Genticos

Testando o Crossover de 1 ponto:


P1 (9, 7, 8, 4, 2, 6, 5, 1, 3)
P2 (2, 6, 7, 4, 9, 3, 5, 1, 8)
F1 (9, 7, 8, 4, 2, 3, 5, 1, 8)
F2 (2, 6, 7, 4, 9, 6, 5, 1, 3)

Descendentes so cromossomas ilegais: ns


repetidos e ausncia de determinados ns.
Crossover e mutao devem garantir uma lista vlida
de todos os ns

Modelagem do Algoritmo Gentico


1. Problema

Problema de Colorir o Grafo


2. Representao

Permutao dos ndices dos ns


3. Decodificao

Da esquerda para direita, atribui uma cor vlida ao prximo n


4. Avaliao
Pi
5. Operadores
Crossover Uniforme Baseado em Ordem

Mutao por Embaralhamento

Crossover Uniforme Baseado


em Ordem

Dados dos genitores P1 e P2, , criar descendente F1;


Gere um padro de bits do mesmo comprimento que os
genitores;
Preencha F1, copiando o genitor P1 nas posies em que
o padro igual a 1;
Faa uma lista dos elementos de P1 associados com os
bits 0 do padro;
Permute estes elementos de modo que eles apaream na
mesma ordem em que aparecem em P2 ;
Preencha as lacunas de F1 com os elementos ordenados
no passo anterior;

Exemplo
P2

1
8

2
6

3
4

4
2

5
7

6
5

7
3

8
1

Padro

F1

2
-

3
-

5
-

6
-

P1

F2

Elementos de P 1 associados a 0: 1, 4, 7, 8.

Ordenados segundo P 2 : 8, 4, 7, 1

Elementos de P 2 associados a 1: 6, 4, 7, 5.

Ordenados segundo P 1 : 4, 5, 6, 7

F1
F2

8
8

2
4

3
5

4
2

5
6

6
7

7
3

1
1

Mutao por Embaralhamento

Seleciona aleatoriamente uma sub-lista do


cromossoma
Embaralha sub-lista

10

Md ulo de Av aliao
Funo de Avaliao:

GA6-1

Md ulo de Populao
T cnica de Representao:

Lista de ns

T cnica Inicializao da Populao:

Permutao aleatria

T cnica Eliminao da Populao:

Elimina o ltimo

T cnica de Reproduo:

Steady State s/ duplicados

Gap

Testar de 5 em 5

T cnica de Seleo de Genitores:

Roleta

T cnica de Aptido:

Normalizao Linear (100 a 1)

T cnica de Parametrizao:

Interpolar taxa de incremento (0,2 a 1,2)

Population Size:

Avaliador do problema de
colorir o grafo Pi

Total de Indivduos:
Md ulo de Reproduo

100
4000

T cnica de Seleo de Operadores:

Roleta

Operadores:

Crossover Uniforme Baseado em Ordem

Mutao por Embaralhamento

T cnica de Parametrizao:

Interpolar Pesos dos Operadores

de (60 40) a (30 70)

Problema de Colorir o Grafo

Grafo com 100 ns 100! permutaes diferentes


3 cores possveis
Listagem descreve o grafo atravs de:
(ndice_n, peso (lista de ns conectados))

(1
62 (20 58 74 82))
(2
183 (6 12 20 28 29 32 51 53 70 79 84 94))
(3
247 (18 24 33 50 88 92))
....................
...........
(99 254 (29 52 53 67 75 80 84 89))
(100 145 (15 20 22 29 34 44 60 87))

11

Busca Aleatria

Muitas vezes no temos como comparar os


resultados obtidos por um GA.
Nestes casos, podemos usar a busca exaustiva
como base de comparao.
Gera-se uma curva mdia de desempenho para a
busca aleatria com o mesmo nmero de tentativas
que o GA.
Um modelo de GA desempenhando abaixo da busca
exaustiva deve prova velmente conter erros de
modelagem e/ou programao.

Busca Aleatria
procedure busca_aleatria
begin
t=0
; primeira gerao
inicializa P(t)
; populao inicial aleatria
av alia P(t)
; calcula f(i) p/ cada indivduo
salv a_melhor de P(t)
; salva melhor indivduo
while (not total_indivduos) do
begin
t =t + 1
; prxima gerao
inicializa P(t)
; populao aleatria
av alia P(t)
; calcula f(i) p/ cada indivduo
compara_melhor P(t) com melhor P(t-1)
salv a_melhor
end
end

12

Resultados do GA 66-1

GA 6-1 em mdia 7,4% que a busca aleatria aps


4000 tentativas:
mdia GA 6-1= 10300
10300; mdia busca aleatria=9600
9600

GA 6-1 em mdia 7,4% que a Algoritmo Guloso:


mximo do Alg. Guloso= 9590

GA 6-2 com pop_size=1200 e total_indivduos=10000


encontrou avaliao=10594
10594

13

Você também pode gostar