33
1 Problemas Numéricos com Problemas Numéricos com Representação por Representação por Números Reais Números Reais Prof. Marco Aurélio C. Pacheco

1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

Embed Size (px)

Citation preview

Page 1: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

1

Problemas Numéricos com Problemas Numéricos com Representação por Números Representação por Números

ReaisReais

Prof. Marco Aurélio C. Pacheco

Page 2: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

2

Algoritmos Genéticos Algoritmos Genéticos Otimização CombinatorialOtimização Combinatorial

São problemas onde a busca da solução depende da avaliação de diversas combinações (ORDEM) dos elementos considerados

– Problema do Caixeiro Viajante

– Problemas de Planejamento Industrial

– Problemas de Alocação de Recursos

– GrafosGrafos representam relações de precedência e representam relações de precedência e valores: valores: ColorirColorir, Particionar, Percorrer

Page 3: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

3

Problema de Colorir o GrafoProblema de Colorir o Grafo

1-5

9-158-107-13

4-9 5-6 6-7

2-8 3-4

Regras:– Colorir os nós do grafo de

modo a maximizar a soma total dos pesos.

– Pares de nós conectados por um arco não podem possuir a mesma cor

I-Ppeso

índice

Page 4: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

4

Algoritmo GulosoAlgoritmo Guloso

Considera apenas uma das possíveis soluções, colorindo os nós em ordem decrescente de peso.

Nós em ordem decrescente de peso:(9, 7, 8, 4, 2, 6, 5, 1, 3)

1-5

9-158-107-13

4-9 5-6 6-7

2-8 3-4

Page 5: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

5

Algoritmo GulosoAlgoritmo Guloso

Considera apenas uma das possíveis soluções, colorindo os nós em ordem decrescente de peso.

Nós em ordem decrescente de peso:(9, 7, 8, 4, 2, 6, 5, 1, 3)

1-5

9-158-107-13

4-9 5-6 6-7

2-8 3-4

Page 6: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

6

Algoritmo GulosoAlgoritmo Guloso

Considera apenas uma das possíveis soluções, colorindo os nós em ordem decrescente de peso.

Nós em ordem decrescente de peso:(9, 7, 8, 4, 2, 6, 5, 1, 3)

1-5

9-158-107-13

4-9 5-6 6-7

2-8 3-4

Solução Ótima p/ 1 cor:(9, 4, 2) Pi = 32

Page 7: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

7

Algoritmo GulosoAlgoritmo Guloso

Considera apenas uma das possíveis soluções, colorindo os nós em ordem decrescente de peso.

Nós em ordem decrescente de peso:(9, 7, 8, 4, 2, 6, 5, 1, 3)

Solução Ótima p/ 2 cores:(9, 4, 2) e ( 7, 6, 5)

Pi = 32 + 26

1-5

9-158-107-13

4-9 5-6 6-7

2-8 3-4

Page 8: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

8

Aplicando o Algoritmo GulosoAplicando o Algoritmo Guloso

2-8

7-15

1-12

3-14

4-135-9

6-10

Nós em ordem decrescente de peso:(7, 3, 4, 1, 6, 5, 2)

Page 9: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

9

Aplicando o Algoritmo GulosoAplicando o Algoritmo Guloso

2-8

7-15

1-12

3-14

4-135-9

6-10

Nós em ordem decrescente de peso:(7, 3, 4, 1, 6, 5, 2)

Algoritmo Guloso começa e para no nó 77

Page 10: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

10

Aplicando o Algoritmo GulosoAplicando o Algoritmo Guloso

2-8

7-15

1-12

3-14

4-135-9

6-10

Nós em ordem decrescente de peso:(7, 3, 4, 1, 6, 5, 2)

Soluções Ótimas:– 1 cor: (1, 5, 3)

– 2 cores: (2, 4, 6)

Page 11: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

11

Características do ProblemaCaracterísticas do Problema

A modificação dos pesos, número de cores e arcos, altera radicalmente a solução do problema.

Estratégias como o algoritmo guloso não funcionam bem para todos os problemas de colorir o grafo.

Heurísticas (Ex: avaliar número de arcos ou pesos de nós vizinhos antes colorir um nó) podem não ser eficientes para grandes espaços de busca.

Algoritmos Genéticos oferecem uma solução (sub-ótima ou ótima) para qualquer problema de colorir o grafo.

Page 12: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

12

Componentes de um Algoritmo GenéticoComponentes de um Algoritmo Genético

1. Problema1. Problema2. 2. RepresentaçãoRepresentação3. Decodificação3. Decodificação4. Avaliação4. Avaliação5. Operadores5. Operadores6. Técnicas6. Técnicas7. Parâmetros7. Parâmetros

Page 13: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

13

Tentando a Representação Tentando a Representação BináriaBinária

Cada nó do grafo é representado por um campo (gene) no cromossoma:Símbolo do Campo Cor do nó

Podemos usar a representação binária. Para apenas 1 cor :0 não colorido 1 colorido

Cromossoma 0 1 0 1 1 0 0 0 1 Nó 1 2 3 4 5 6 7 8 9

1-5

9-158-107-13

4-9 5-6 6-7

2-8 3-4

Page 14: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

14

Avaliando Representação Avaliando Representação BináriaBinária

C é um cromossoma ILEGAL ILEGAL. Inicialização, crossover e mutação vão gerar soluções

ilegais. Seria necessário um módulo reparador de cromossomas

ou eliminá-los. Além disso, representação binária permite soluções

sub-ótimas: C 0 1 0 1 0 0 0 0 0

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.

1-5

9-158-107-13

4-9 5-6 6-7

2-8 3-4

Page 15: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

15

Representação Baseada em Representação Baseada em OrdemOrdem

Algoritmo Guloso representa solução por lista ordenada GA Híbrido Técnicas de GA + Algoritmo Guloso Algoritmo Guloso:

– Cria uma lista de nós (ordem decrescente de peso)

– Constrói a solução: atribui ao próximo nó da lista uma cor legal

Algoritmo Genético – Cria uma lista (nós em ordem qualquer)

– Constrói a solução: atribui ao próximo nó da lista uma cor legal

Page 16: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

16

ExemploExemplo

1-5

9-158-107-13

4-9 5-6 6-7

2-8 3-4

Cromossoma = listaC1 (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)

Page 17: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

17

ExemploExemplo

1-5

9-158-107-13

4-9 5-6 6-7

2-8 3-4

Cromossoma = listaC1 (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)

Page 18: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

18

ExemploExemplo

1-5

9-158-107-13

4-9 5-6 6-7

2-8 3-4

Cromossoma = listaC1 (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)

Page 19: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

19

ExemploExemplo

1-5

9-158-107-13

4-9 5-6 6-7

2-8 3-4

Cromossoma = listaC1 (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)

Page 20: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

20

ExemploExemplo

1-5

9-158-107-13

4-9 5-6 6-7

2-8 3-4

Cromossoma = listaC1 (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)

Page 21: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

21

ExemploExemplo

1-5

9-158-107-13

4-9 5-6 6-7

2-8 3-4

Cromossoma = listaC1 (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)

C1 C2 C3 resultam na solução ótima p/ 1 cor:(9, 4, 2) Pi = 32

Informação codificada é a ordem relativa dos nósordem relativa dos nós

Page 22: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

22

Operadores GenéticosOperadores Genéticos

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, 88,, 4, 2, 3, 5, 1, 88)

F2 (2, 66, 7, 4, 9, 66, 5, 1, 3)

Descendentes são cromossomas ilegais: nós repetidos e ausência de determinados nós.

Crossover e mutação devem garantir uma lista válida de todos os nós

Page 23: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

23

Modelagem do Algoritmo GenéticoModelagem do Algoritmo Genético

1. 1. ProblemaProblema• Problema de Colorir o Grafo Problema de Colorir o Grafo

2. Representação2. Representação• Permutação dos índices dos nósPermutação dos índices dos nós

3. Decodificação3. Decodificação• Da esquerda para direita, atribui uma cor válida ao próximo nóDa esquerda para direita, atribui uma cor válida ao próximo nó

4. Avaliação4. Avaliação• Pi

5. Operadores5. Operadores• Crossover Uniforme Baseado em Ordem Crossover Uniforme Baseado em Ordem Mutação por EmbaralhamentoMutação por Embaralhamento

Page 24: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

24

Crossover Uniforme Baseado Crossover Uniforme Baseado em Ordemem Ordem

Recombina ordem e posição dos genes

Dados dos genitores P1 e P2,, criar descendente F1; Gere um padrão de bits do comprimento dos genitores; Preencha F1, copiando o genitor P1 nas posições em que o

padrão é igual a “1”; Faça uma lista dos elementos de P1 associados com os bits

“0” do padrão; Permute estes elementos de modo que eles apareçam na

mesma ordem em que aparecem em P2 ;

Preencha as lacunas de F1 com os elementos ordenados no passo anterior;

Page 25: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

25

ExemploExemplo

1 2 3 4 5 6 7 88 6 4 2 7 5 3 1

0 1 1 0 1 1 0 0

P1

P2

Padrão

- 2 3 - 5 6 - -8 - - 2 - - 3 1

F1

F2

8 2 3 4 5 6 7 18 4 5 2 6 7 3 1

F1

F2

Elementos de P1 associados a “0”: 1, 4, 7, 8. Ordenados segundo P2 : 8, 4, 7, 1

Elementos de P2 associados a “1”: 6, 4, 7, 5. Ordenados segundo P1 : 4, 5, 6, 7

Page 26: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

26

Mutação por EmbaralhamentoMutação por Embaralhamento

Seleciona aleatoriamente uma sub-lista do cromossoma Embaralha sub-lista

1 2 3 4 5 6 7 8 9

1 2 3 6 4 8 7 5 9

Page 27: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

27

Módulo de Avaliação

Função de Avaliação: Avaliador do problema de

colorir o grafo Pi

Módulo de População

Técnica de Representação: Lista de nós

Técnica Inicialização da População: Permutação aleatória

Técnica Eliminação da População: Elimina o último

Técnica de Reprodução: Steady State s/ duplicados

Gap Testar de 5 em 5

Técnica de Seleção de Genitores: Roleta

Técnica de Aptidão: Normalização Linear (100 a 1)

Técnica de Parametrização: Interpolar taxa de incremento (0,2 a

1,2)

Population Size: 100

Total de Indivíduos: 4000 Módulo de Reprodução

Técnica de Seleção de Operadores: Roleta

Operadores: Crossover Uniforme Baseado em

Ordem

Mutação por Embaralhamento

Técnica de Parametrização: Interpolar Pesos dos Operadores

de (60 40) a (30 70)

GA6-1

Page 28: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

28

Problema de Colorir o GrafoProblema de Colorir o Grafo

Grafo com 100 nós 100! permutações diferentes 3 cores possíveis Listagem descreve o grafo através de:

(índice_n, peso, (lista de nós conectados))(1 62 (20 58 74 82))

(2 183 (6 12 20 28 29 32 51 53 70 79 84 94))

(3 247 (1 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))

Page 29: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

29

Busca AleatóriaBusca Aleatória

Muitas vezes não temos como comparar os resultados obtidos por um GA.

Nestes casos, podemos usar a busca aleatória como base de comparação.

Gera-se uma curva média de desempenho para a busca aleatória com o mesmo número de tentativas que o GA.

Um GA com desempenhando abaixo da busca exaustiva deve provavelmente conter erros de modelagem e/ou programação.

Page 30: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

30

Busca AleatóriaBusca Aleatóriaprocedure busca_aleatória

begin

t = 0 ; primeira geração

inicializa P(t) ; população inicial aleatória

avalia P(t) ; calcula f(i) p/ cada indivíduo

salva_melhor de P(t) ; salva melhor indivíduo

while (not total_indivíduos) do

begin

t = t + 1 ; próxima geração

inicializa P(t) ; população aleatória

avalia P(t) ; calcula f(i) p/ cada indivíduo

compara_melhor P(t) com melhor P(t-1)

salva_melhor

end

end

Page 31: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

31

Page 32: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

32

Resultados do GA 6-1Resultados do GA 6-1

GA 6-1 é em média 7,4% melhor que a busca aleatória

após 4000 tentativas:

– média GA 6-1= 1030010300; média busca aleatória=96009600

GA 6-1 é em média 7,4% melhor que a Algoritmo Guloso:

– máximo do Alg. Guloso= 95909590

GA 6-2 com pop_size=1200 e total_indivíduos=10000

encontrou avaliação=1059410594

Page 33: 1 Problemas Numéricos com Representação por Números Reais Prof. Marco Aurélio C. Pacheco

33

ConclusõesConclusões

Representação baseada em ordem ocorre na maioria dos problemas reais que envolvem planejamento

Representação estabelece ordem de alocação Lista ordenada não corresponde diretamente a um grafo

colorido

Decodificador transforma cromossoma em solução e permite implementar regras restritivas do problema sem alterar o GA

Lista SoluçãoDecodificador