A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Inteligência Computacional para Otimização Marcone Jamilson Freitas Souza Departamento de Computação Universidade Federal de Ouro Preto

Apresentações semelhantes


Apresentação em tema: "Inteligência Computacional para Otimização Marcone Jamilson Freitas Souza Departamento de Computação Universidade Federal de Ouro Preto"— Transcrição da apresentação:

1 Inteligência Computacional para Otimização Marcone Jamilson Freitas Souza Departamento de Computação Universidade Federal de Ouro Preto http://www.iceb.ufop.br/prof/marcone

2 Classificação dos métodos heurísticos Construtivos Constroem uma solução passo a passo, elemento por elemento de refinamento Consistem em melhorar uma solução, através de modificações em seus elementos

3 Heurística de construção gulosa (Heurística clássica) Funcionamento: Constrói uma solução, elemento por elemento A cada passo é adicionado um único elemento candidato O candidato escolhido é o melhor segundo um certo critério O método se encerra quando todos os elementos candidatos foram analisados

4 Uma heurística construtiva gulosa para o Problema da Mochila PessoaPeso (Kg)Benefício Benefício/ Peso cruzeirense14000 Recém-graduado6010,017 ATLETICANO10030,030 Professor de geografia8040,050 Morena olhos verdes7530,040 Loira burra6020,030 Marcone90100,111 1º Passo: Calcular a relação benefício/peso

5 Uma heurística construtiva gulosa para o Problema da Mochila PessoaPeso (Kg)Benefício Benefício/ Peso Marcone90100,111 Professor de geografia8040,050 Morena olhos verdes7530,040 Loira burra6020,030 ATLETICANO10030,030 Recém-graduado6010,017 cruzeirense14000 2º Passo: Ordenar os elementos

6 Uma heurística construtiva gulosa para o Problema da Mochila PessoaPeso (Kg)Benefício Benefício/ Peso Marcone90100,111 Professor de geografia8040,050 Morena olhos verdes7530,040 Loira burra6020,030 ATLETICANO10030,030 Recém-graduado6010,017 cruzeirense14000 3º Passo: Escolher o elemento que produzir a maior relação benefício/peso, e que respeite a capacidade do barco

7 Uma heurística construtiva gulosa para o Problema da Mochila PessoaPeso (Kg)Benefício Benefício/ Peso Marcone90100,111 Professor de geografia8040,050 Morena olhos verdes7530,040 Loira burra6020,030 ATLETICANO10030,030 Recém-graduado6010,017 cruzeirense14000 4º Passo: Repetir o passo anterior até que nenhum elemento possa ser colocado no barco sem ultrapassar a capacidade deste.

8 Uma heurística construtiva gulosa para o Problema da Mochila PessoaPeso (Kg)Benefício Benefício/ Peso Marcone90100,111 Professor de geografia8040,050 Morena olhos verdes7530,040 Loira burra6020,030 ATLETICANO10030,030 Recém-graduado6010,017 cruzeirense14000 4º Passo: Repetir o passo anterior até que nenhum elemento possa ser colocado no barco sem ultrapassar a capacidade deste.

9 Heurística de construção gulosa * Considera-se um problema de maximização

10 Exemplificando a aplicação da heurística construtiva gulosa

11

12 Um modelo de programação matemática para o Problema da Mochila Sejam: n elementos c = capacidade da mochila b i = benefício do elemento i p i = peso do elemento i Variável de decisão:

13 Um modelo de programação matemática para o Problema da Mochila

14 Problema do Caixeiro Viajante Dado um conjunto de cidades e uma matriz de distâncias entre elas PCV consiste em encontrar uma rota para um Caixeiro Viajante tal que este: parta de uma cidade origem passe por todas as demais cidades uma única vez retorne à cidade origem ao final do percurso percorra a menor distância possível Rota conhecida como ciclo hamiltoniano

15 Problema do Caixeiro Viajante

16

17 Formulação Matemática para o Problema do Caixeiro Viajante Dados de entrada: Cidades: Conjunto de cidades d ij = distância entre as cidades i e j Variáveis de decisão: x ij = 1 se a aresta (i,j) será usada; 0, caso contrário f ij = quantidade de fluxo de i para j Função objetivo:

18 Formulação Matemática para o Problema do Caixeiro Viajante 1. De cada cidade i só sai uma aresta: 2. A cada cidade j só chega uma aresta: i i Restrições:

19 Formulação Matemática para o Problema do Caixeiro Viajante 3. O fluxo que chega a uma cidade i menos o que sai é igual a uma unidade: 4. O fluxo máximo em cada aresta é igual a n-1, onde n é o número de cidades: ff - 1 i 5. Integralidade e não negatividade:

20 Problema do Caixeiro Viajante: Complexidade Considerando PCV simétrico (d ij = d ji ), para n cidades há (n-1)!/2 rotas possíveis Para n = 20 cidades, há 10 16 rotas possíveis. Um computador que avalia uma rota em 10 -8 segundos gastaria cerca de 19 anos para encontrar a melhor solução por enumeração completa Métodos de enumeração implícita, tais como branch-and-bound, embutidos em solvers, podem reduzir significativamente este tempo Não há garantia de que isso sempre ocorra

21 Problema do Caixeiro Viajante Complexidade Para dimensões mais elevadas, a resolução por métodos de programação matemática é proibitiva em termos de tempos computacionais PCV é da classe NP-difícil: não existem algoritmos exatos que o resolvam em tempo polinomial À medida que n cresce, o tempo cresce exponencialmente PCV é resolvido por meio de heurísticas: Procedimentos que seguem uma intuição para resolver o problema (forma humana de resolver o problema, fenômenos naturais, processos biológicos, etc.) Não garantem a otimalidade da solução final Em geral, produzem soluções finais de boa qualidade rapidamente

22 Heurísticas construtivas para o Problema do Caixeiro Viajante Vizinho mais próximo Idéia central: Construir uma rota passo a passo, adicionando à solução corrente a cidade mais próxima (e ainda não visitada) da última cidade inserida Inserção mais barata Idéia central: Construir uma rota passo a passo, partindo de rota inicial envolvendo 3 cidades e adicionar a cada passo, a cidade k (ainda não visitada) entre a ligação (i, j ) de cidades já visitadas, cujo custo de inserção seja o mais barato

23 PCV – Vizinho mais Próximo Exemplo - Passo 1 1 4 ijd ij 611 622 636 646 652 3 2 5 6 Cid.123456 1021491 2205972 3150386 4493026 5978202 6126620 Distância Total = 1 1

24 PCV – Vizinho mais Próximo Exemplo - Passo 2 1 4 ijd ij 122 131 144 159 3 2 5 6 Cid.123456 1021491 2205972 3150386 4493026 5978202 6126620 Distância Total = 1 + 1 = 2 1 1

25 PCV – Vizinho mais Próximo Exemplo - Passo 3 1 4 ijd ij 325 343 358 3 2 5 6 Cid.123456 1021491 2205972 3150386 4493026 5978202 6126620 Distância Total = 2 + 3 = 5 1 1 3

26 PCV – Vizinho mais Próximo Exemplo - Passo 4 1 4 ijd ij 429 452 3 2 5 6 Cid.123456 1021491 2205972 3150386 4493026 5978202 6126620 Distância Total = 5 + 2 = 7 1 1 3 2

27 PCV – Vizinho mais Próximo Exemplo - Passo 5 1 4 ijd ij 527 3 2 5 6 Cid.123456 1021491 2205972 3150386 4493026 5978202 6126620 Distância Total = 7 + 7 = 14 1 1 3 2 7

28 PCV – Vizinho mais Próximo Exemplo – Passo final: Inserção forçada 1 4 3 2 5 6 Cid.123456 1021491 2205972 3150386 4493026 5978202 6126620 Distância Total = 14 + 2 = 16 1 1 3 2 7 2

29 Complexidade da heurística construtiva do vizinho mais próximo aplicada ao PCV 1 2 3 4... N Iteração Número de avaliações 1N-1 2N-2... N-11 N1 Total1 + N(N-1)/2 N-1

30 Heurística da Inserção Mais Barata para o Problema do Caixeiro Viajante Inserção mais barata Idéia central: Construir uma rota passo a passo, partindo de rota inicial envolvendo 3 cidades (obtidas por um método qualquer) e adicionar a cada passo, a cidade k (ainda não visitada) entre a ligação (i, j ) de cidades já visitadas, cujo custo de inserção seja o mais barato

31 Heurística da Inserção Mais Barata para o Problema do Caixeiro Viajante k t u j r i Cid.123456 1021491 2205972 3150386 4493026 5978202 6126620 d ij d ir d ri

32 k t u j r i Cid.123456 1021491 2205972 3150386 4493026 5978202 6126620 d ij d ir d ri Custo da inserção = d ik + d kj - d ij d ik d kj Heurística da Inserção Mais Barata para o Problema do Caixeiro Viajante

33 PCV – Inserção mais Barata Exemplo - Passo 1 1 4 3 2 5 6 Cid.123456 1021491 2205972 3150386 4493026 5978202 6126620 Distância Total = 11 2 7 2

34 PCV – Inserção mais Barata Exemplo - Passo 2 1 4 ikjd ik + d kj – d ij 6121 + 2 – 2 = 1 6326 + 5 – 2 = 9 6426 + 9 – 2 = 3 2152 + 9 – 7 = 4 2355 + 8 – 7 = 6 2459 + 2 – 7 = 4 5169 + 1 – 2 = 8 5368 + 6 – 2 = 12 5462 + 6 – 2 = 6 3 2 5 6 Cid.123456 1021491 2205972 3150386 4493026 5978202 6126620 Distância Total = 11 + 1 = 12 2 7 2 1 2

35 PCV – Inserção mais Barata Exemplo - Passo 3 1 4 ikjd ik + d kj – d ij 6316 + 1 – 1 = 6 6416 + 4 – 1 = 9 1321 + 5 – 2 = 4 1424 + 9 – 2 = 11 2355 + 8 – 7 = 6 2459 + 2 – 7 = 4 5368 + 6 – 2 = 12 5462 + 6 – 2 = 6 3 2 5 6 Cid.123456 1021491 2205972 3150386 4493026 5978202 6126620 Distância Total = 12 + 4 = 16 7 2 1 2 5 1

36 PCV – Inserção mais Barata Exemplo – Passo final 1 4 ikjd ik + d kj – d ij 6416 + 4 – 1 = 9 1434 + 3 – 1 = 6 3423 + 9 – 5 = 7 2459 + 2 – 7 = 4 5462 + 6 – 2 = 6 3 2 5 6 Cid.123456 1021491 2205972 3150386 4493026 5978202 6126620 Distância Total = 16 + 4 = 20 7 2 1 5 1 9 2

37 PCV – Inserção mais Barata Exemplo – Solução final 1 3 2 5 6 Cid.123456 1021491 2205972 3150386 4493026 5978202 6126620 Distância Total = 16 + 4 = 20 2 1 5 1 9 2 s = (6 1 3 2 4 5) 4

38 Complexidade da heurística construtiva da inserção mais barata aplicada ao PCV 3 4 5 2 6 j i k Custo da inserção = d ik +d jk -d ij

39 Complexidade da heurística construtiva da inserção mais barata aplicada ao PCV Iteração Número de avaliações 13(N - 3) 24(N - 4)... i-2i(N-i)... N-3(N – 1)(N-(N-1)) Total

40 Comparação entre as heurísticas construtivas para o PCV MétodoComplexidade Tempo (s) Vizinho mais próximo 1,8x10 -6 Inserção mais barata 9,1x10 -6 Exemplo para n = 20 cidades Supor uma avaliação executada em 10 -8 segundos

41 Comparação entre as heurísticas construtivas para o PCV MétodoComplexidade Tempo (s) Vizinho mais próximo 0,005 Inserção mais barata 1,665 Exemplo para n = 1000 cidades Supor uma avaliação executada em 10 -8 segundos

42 Comparação entre as heurísticas construtivas para o PCV MétodoComplexidade Tempo (s) Vizinho mais próximo 0,5 Inserção mais barata 1665 Exemplo para n = 10000 cidades Supor uma avaliação executada em 10 -8 segundos

43 Problema de Roteamento de Veículos Dados de entrada: Um depósito Uma frota de veículos, com base no depósito Um conjunto de clientes A demanda dos clientes Uma matriz de distâncias D = (d ij ) entre depósito e clientes e entre pares de clientes Cidades = depósito U Clientes PRV consiste em encontrar um conjunto de rotas para os veículos tal que: Cada rota comece e termine no depósito Cada cliente seja atendido por um único veículo A capacidade (capVeic) dos veículos seja respeitada A distância total percorrida seja a menor possível

44 Problema de Roteamento de Veículos dep A B C D E (18) [3] [9] [7] [5] [6] Demanda capacidade dos veículos

45 Problema de Roteamento de Veículos dep A B C D E [6] [3] [9] [7] [5] Demanda (18) capacidade dos veículos

46 Formulação Matemática para o Problema de Roteamento de Veículos Dados de entrada: Cidades: Conjunto formado por Depósito e Clientes d ij = distância entre as cidades i e j demanda i = demanda da cidade i (demanda dep = 0) Variáveis de decisão: x ij = 1 se a aresta (i,j) será usada; 0, caso contrário f ij = quantidade de fluxo de i para j Função objetivo:

47 Formulação Matemática para o Problema de Roteamento de Veículos 1. De cada cidade i, exceto o depósito (1), só sai um veículo: 2. A cada cidade j, exceto o depósito (1), só chega um veículo: i i Restrições: 3. O número de veículos que saem do depósito é igual ao que chegam ao depósito: dep

48 Formulação Matemática para o Problema de Roteamento de Veículos 4. Ao passar por uma cidade j, exceto o depósito, o veículo deve atender a demanda dessa cidade, isto é, deve deixar demanda(j) unidades de produto na cidade j; 5. O fluxo máximo em cada aresta não pode superar a capacidade do veículo: ff - demanda j j 6. Integralidade e não negatividade:

49 Adaptação da Heurística do Vizinho mais próximo para o Problema de Roteamento de Veículos com frota homogênea Idéia básica: Passo 1: Partir do depósito com um novo veículo e ir até a cidade mais próxima ainda não visitada; Passo 2: Determinar a cidade mais próxima da última cidade inserida na rota e verificar se é possível atender sua demanda; Passo 3: Se for possível atender a demanda dessa cidade, adicioná-la à rota. Caso contrário, retornar ao depósito e voltar ao Passo 1.

50 Heurística Construtiva do Vizinho mais Próximo Aplicada ao PRV 3 4 5 2 6 j i k (9) (12) (13) (4) (10) [50] (3) (7) (10) (5) (10)

51 Heurística Construtiva de Clark & Wright para o Problema de Roteamento de Veículos com frota homogênea Idéia básica: Colocar um veículo atendendo cada cliente, isto é, considerar n veículos saindo do depósito, atendendo cada qual a um único cliente e retornando ao depósito; Unir as rotas de cada veículo com base no conceito de economia À medida que se reduz a distância total percorrida, o número de veículos necessários também é reduzido

52 Heurística Construtiva de Clark & Wright para o Problema de Roteamento de Veículos com frota homogênea 0 i j Economia (saving) s ij = d i0 + d 0j - d ij (a) Rota inicial(b) Rota combinada i e j devem ser clientes das extremidades das rotas i j 0

53 5 4 1 2 3 27 32 52 43 34 28 20 52 43 32 27 24 28 13 38 d i0 d j0 d ij S ij s ij = d i0 + d j0 - d ij

54 d i0 d j0 d ij S ij 5 4 1 2 3 27 24 28 13 38 27 28 24 13 38 5 4 1 2 3 27 32 52 43 34 28 20 52 43 32 27 24 28 13 38

55 d i0 d j0 d ij S ij 5 4 1 2 3 27 24 13 27 28 24 13 38 34

56 d i0 d j0 d ij S ij 5 4 1 2 3 27 13 28 24 13 38 34 27


Carregar ppt "Inteligência Computacional para Otimização Marcone Jamilson Freitas Souza Departamento de Computação Universidade Federal de Ouro Preto"

Apresentações semelhantes


Anúncios Google