Heuristicas e metaheuristicas
description
Transcript of Heuristicas e metaheuristicas
![Page 1: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/1.jpg)
Heurís'cas e Metaheurís'cas Thiago F. Noronha
Apresentação do curso
Belo Horizonte, 2012
![Page 2: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/2.jpg)
Heurís'cas e Metaheurís'cas
• Professor do departamento de Ciência da computação da UFMG • Áreas de pesquisa:
– Projeto de algoritmos para problemas de o'mização combinatória
ICEx, sala 4049, email: [email protected]
Belo Horizonte, 2012
![Page 3: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/3.jpg)
OBJETIVOS
Este curso visa apresentar técnicas fundamentais e avançadas para a construção de heurís'cas eficientes para problemas de o'mização, que surgem em diversas áreas do conhecimento.
Heurís'cas e Metaheurís'cas
Heurísticas e Metaheurísticas
![Page 4: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/4.jpg)
PROBLEMAS DE OTIMIZAÇÃO
• Muitos problemas consistem na busca da melhor configuração de um conjunto de variáveis para obter certos objeFvos.
• As variáveis podem ser discretas ou conHnuas. • Dentre os problemas que podem ser modelados com variáveis discretas encontram-‐se os problemas de oFmização combinatória.
• O conjunto de todas as possíveis atribuições de valores às variáveis do problema é chamado de espaço de busca.
Heurís'cas e Metaheurís'cas
HeurísFcas e MetaheurísFcas
![Page 5: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/5.jpg)
PROBLEMAS DE OTIMIZAÇÃO
• Exemplos de aplicações em computação: • Compiladores • Banco de dados • Redes de computadores • Engenharia de soTware • Biologia computacional • Visão computacional • Projetos de circuitos integrados • Ajuste de parâmetros de algoritmos
• Além de uma infinidade de outras aplicações em todas as áreas da engenharia.
Heurís'cas e Metaheurís'cas
HeurísFcas e MetaheurísFcas
![Page 6: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/6.jpg)
HEURÍSTICAS
• Muitas vezes, não é possível resolver o problema de oFmização de forma exata. • O problema é muito diYcil de se modelar. • O problema não tem solução polinomial. • Os recursos (e.x.memória e CPU) são limitados. • A quanFdade de dados a serem processados é muito grande.
• Os algoritmos heurísFcos fornecem uma solução viável para o problema, mas não garantem que ela seja óFma.
Heurís'cas e Metaheurís'cas
HeurísFcas e MetaheurísFcas
![Page 7: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/7.jpg)
EMENTA
• Complexidade de algoritmos e de problemas.
• Heurís'cas: – HeurísFcas ConstruFvas gulosas; – Algoritmos AproximaFvos; – HeurísFcas de Transformação (ou Redução); – HeurísFcas de Arredondamento Aleatorizado;
• Vizinhanças e espaço de busca • Heurís'cas de busca
• Metaheurís'cas
• Pesquisa cienTfica no desenvolvimento de heurís'cas.
HEURÍSTICAS Heurís'cas e Metaheurís'cas
HeurísFcas e MetaheurísFcas
![Page 8: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/8.jpg)
AVALIAÇÃO
• TR -‐ Resumo de arFgos e capítulos de livros (10 pontos) – Sobre técnicas de construção de heurísFcas
• TA -‐ Apresentação de um arFgo (10 pontos) – Sobre alguma aplicação de heurísFcas em computação ou engenharia
• TI -‐ Trabalhos de implementação (30 pontos) – Três trabalhos de implementação valendo 10 pontos cada
• TP -‐ Pesquisa sobre heurísFcas para um problema de oFmização (50 pontos)
– Formalização do problema – Pesquisa bibliográfica sobre heurísFcas para o problema – Implementação de uma heurísFca para o problema – Implementação da sua heurísFca para o problema – Realização de experimentos computacionais – Redação de um relatório técnico experimental (arFgo)
Heurís'cas e Metaheurís'cas
Avaliação
HeurísFcas e MetaheurísFcas
![Page 9: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/9.jpg)
PRÉ-REQUISITOS
• Obrigatórios: • AEDS II (DCC 004)
• Desejáveis: • Gostar de programar
– Preferencialmente em C/C++; • AEDS III (DCC 005) • Pesquisa Operacional (DCC 035)
Heurís'cas e Metaheurís'cas
Pré-‐Requisitos
HeurísFcas e MetaheurísFcas
![Page 10: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/10.jpg)
BIBLIOGRAFIA
• Introduc'on to Algorithms • Cormen, Leiserson, Rivest, e Stein
• Local Search in Combinatorial Op'miza'on • Aarts e Lenstra
• Stochas'c Local Search: Founda'ons and Applica'ons • Hoos e Stützle
• Metaheuris'cs: from Design to Implementa'on • Talbi
Heurís'cas e Metaheurís'cas
Bibliografia
HeurísFcas e MetaheurísFcas
![Page 11: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/11.jpg)
BIBLIOGRAFIA
• Algorithms • Sedgewick
• Search Methods • Burke e Kendall
• Handbook of Metaheuris'cs • Glover e Kochenberger
• Tabu Search • Glover e Laguna
• Outros livros e ar'gos
Heurís'cas e Metaheurís'cas
Bibliografia
HeurísFcas e MetaheurísFcas
![Page 12: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/12.jpg)
PRÉ-REQUISITOS
• Obrigado Dario Aloise e Laura Bahiense por terem me cedido vários dos slides que uso a seguir.
Heurís'cas e Metaheurís'cas
Agradecimentos
HeurísFcas e MetaheurísFcas
![Page 13: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/13.jpg)
Heurís'cas e Metaheurís'cas Thiago F. Noronha
Revisão de Teoria da Complexidade
Belo Horizonte, 2012
![Page 14: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/14.jpg)
• Um algoritmo é uma sequência finita de instruções não ambíguas que podem ser executadas em um computador para se resolver algum problema.
• HeurísFcas são algoritmos que nem sempre retornam a resposta (solução) exata para o problema que elas tratam.
Heurís'cas e Metaheurís'cas
Introdução
![Page 15: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/15.jpg)
• Um algoritmo é uma seqüência finita de instruções não ambíguas que podem ser executadas em um computador para se resolver algum problema.
• HeurísFcas são algoritmos que nem sempre retornam a resposta (solução) exata para o problema que elas tratam. – Entretanto, espera-‐se que a resposta seja próxima da solução exata do problema.
Heurís'cas e Metaheurís'cas
Introdução
![Page 16: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/16.jpg)
• Um algoritmo é uma seqüência finita de instruções não ambíguas que podem ser executadas em um computador para se resolver algum problema.
• HeurísFcas são algoritmos que nem sempre retornam a resposta (solução) exata para o problema que elas tratam. – Entretanto, espera-‐se que a resposta seja próxima da solução exata do problema.
• UFlizamos heurísFcas em vários casos – Quando o tempo gasto pelo melhor algoritmo que existe para o problema é maior que
o disponível. – Quando a quanFdade de memória necessária para se resolver o problema é maior que
a quanFdade de memória disponível. – Quando não se sabe como resolver o problema de forma exata.
Heurís'cas e Metaheurís'cas
Introdução
![Page 17: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/17.jpg)
• Estuda a complexidade inerente aos problemas computacionais e aos algoritmos que resolvem estes problemas.
• Complexidade de Algoritmos – Quais são os requisitos de tempo e de memória de um determinado
algoritmo em função do tamanho da entrada?
• Complexidade de problemas – Qual é a complexidade do algoritmo de menor complexidade que
resolve o problema?
Heurís'cas e Metaheurís'cas
Teoria da Complexidade
![Page 18: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/18.jpg)
• InserFonSort
Heurís'cas e Metaheurís'cas
Teoria da Complexidade
![Page 19: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/19.jpg)
• InserFonSort
Heurís'cas e Metaheurís'cas
Teoria da Complexidade
![Page 20: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/20.jpg)
• QuickSort
Heurís'cas e Metaheurís'cas
Teoria da Complexidade
![Page 21: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/21.jpg)
• Complexidade Polinomial – A complexidade de um algoritmo ou de um problema é dita polinomial
se ela é limitada por um polinômio. – Exemplo: O(n), O(n.logn), O(n3), O(n100)
• Complexidade Exponencial – A complexidade de um algoritmo ou de um problema é dita
exponencial, se ela cresce de acordo com uma função exponencial. – Exemplo: O(2n) , O(n!), O(nn)
Heurís'cas e Metaheurís'cas
Teoria da Complexidade
![Page 22: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/22.jpg)
• Como provar a complexidade de um problema? – A complexidade de um algoritmo que resolve o problema nos dá um
limite superior para a complexidade do problema. • Problema da envoltória convexa
• Resolvido em O(n2) pelo algoritmo incremental • Resolvido em O(n.logn) pelo algoritmo de Graham. • Dá para fazer melhor?
Heurís'cas e Metaheurís'cas
Teoria da Complexidade
![Page 23: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/23.jpg)
• Como provar a complexidade de um problema? – Limites inferiores para a complexidade de um problema X são
geralmente calculados; – Analisando-‐se caracterísFcas estruturais de X, ou por redução
(transformação) de um outro problema para X; – O problema de se calcular a envoltória convexa é Ω(n), já que todos
os n pontos tem que ser carregados na memória. – Ou seja, a complexidade do problema é maior ou igual a n e menor ou
igual a n.log.n.
Heurís'cas e Metaheurís'cas
Teoria da Complexidade
![Page 24: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/24.jpg)
• Como provar a complexidade de um problema? – Vamos provar que a complexidade de se calcular a envoltória
convexa de um conjunto de pontos é maior ou igual a complexidade de se ordenar um conjunto de pontos.
– Pode-‐se ordenar qualquer conjunto de números usando o seguinte algoritmo:
• Transforme o problema de ordenação em um problema de E.C.. O(n) P = {(a, a2), (b, b2), (c, c2), ..., (z, z2)}
• Resolva o problema resultante com o algoritmo de Graham. O(n.log n) • Percorra todos os pontos no polígono resultante e idenFfique o ponto com
menor coordena no eixo das Abscissas (eixo X). O(n) • A parFr deste ponto, percorra novamente todos os pontos no polígono e
imprima sua coordenada X. O(n) • A complexidade deste algoritmo é
T(n) = O(n) + O(n.log n) + O(n) + O(n) = O(n.log n)
Heurís'cas e Metaheurís'cas
Teoria da Complexidade
![Page 25: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/25.jpg)
• Como provar a complexidade de um problema? – Está provado que a complexidade do problema de ordenação é Ω(n.log n).
– Se a complexidade de se calcular envoltória convexa de um conjunto de pontos fosse O(n), poderíamos ordenar um conjunto de pontos em O(n).
– Como já está provado que isto é impossível, a complexidade se calcular a envoltória convexo de um conjunto de pontos é pelo menos Ω(n.log n).
Heurís'cas e Metaheurís'cas
Teoria da Complexidade
![Page 26: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/26.jpg)
• Tipos de problemas computacionais – Problemas de Decisão – Problemas de Localização (ou de Busca) – Problemas de OFmização
• Classe de problemas computacionais – Classe NP de problemas – Classe P de problemas – Classe NPC (ou NP-‐Completo) de problemas
Heurís'cas e Metaheurís'cas
Tipos de problemas
![Page 27: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/27.jpg)
• Dado um conjunto P de pontos turísFcos no Rio de Janeiro, existe um percurso turísFco que passa por todos os pontos em P em um único dia?
• Resposta: Sim ou Não.
Heurís'cas e Metaheurís'cas
Problemas de Decisão
![Page 28: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/28.jpg)
• Problema da Sa'sfabilidade (SAT) – Dada uma expressão booleana E, existe uma atribuição de valores
(verdadeiro ou falso) para as variáveis desta expressão tal que ela seja avaliada como verdadeira?
– x1 = V, x2 = F, x3 = F, x4 = V – Muito importante na verificação de circuitos digitais
Heurís'cas e Metaheurís'cas
Problemas de Decisão
X XOR Y = (X & ~Y ) + (~X & Y)
![Page 29: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/29.jpg)
• Dado um conjunto P de pontos turísFcos no Rio de Janeiro, encontre um percurso turísFco de um único dia que passa por todos os pontos em P.
• Resposta: Percurso turís@co.
Heurís'cas e Metaheurís'cas
Problemas de Localização
![Page 30: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/30.jpg)
• Problema de confecção de tabelas para campeonatos esporFvos
Heurís'cas e Metaheurís'cas
Problemas de Localização
![Page 31: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/31.jpg)
• Dado um conjunto P de pontos turísFcos no Rio de Janeiro, qual é percurso que passa por todos os pontos em P na menor quanFdade de tempo possível.
• Resposta: Percurso turís@co (o mais rápido).
Heurís'cas e Metaheurís'cas
Problemas de O'mização
![Page 32: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/32.jpg)
Árvore geradora mínima (AGM): Teorema de Caley: Entrada:
1
2 2 3
1
1
Heurís'cas e Metaheurís'cas
Problemas de O'mização
![Page 33: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/33.jpg)
Problema do Caixeiro viajante (PCV): Dado um grafo com custos associados às arestas: encontrar um ciclo hamiltoniano de comprimento mínimo.
(5 1)!2−
Heurís'cas e Metaheurís'cas
Problemas de O'mização
![Page 34: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/34.jpg)
• Problemas de decisão – Pergunta: “existe uma determinada estrutura saFsfazendo certa
propriedade?” – Resposta: “sim” ou “não”.
• Problemas de localização – Pergunta: “existe uma determinada estrutura saFsfazendo certa
propriedade?” – Resposta: “a estrutura” (se houver).
• Problemas de oFmização – Pergunta: “dentre todas as estruturas saFsfazendo determinada
propriedade, qual é aquela que oFmiza (minimiza ou maximiza) certa função de custo?”
– Resposta: uma estrutura “óFma”.
Heurís'cas e Metaheurís'cas
Tipos de Problemas (Resumo)
![Page 35: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/35.jpg)
• A teoria da complexidade concentra-‐se nos problemas de decisão.
• As propriedades que são válidas para os problemas de decisão também são válidas para as versões de oFmização do mesmo problema.
• Classe de problemas mais importantes para nós são: – Classe NP de problemas – Classe P de problemas – Classe NPC (ou NP-‐Completo) de problemas
Heurís'cas e Metaheurís'cas
Classes de problemas
![Page 36: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/36.jpg)
• Problemas que podem ser resolvidos em tempo polinomial em máquinas de Turing não determinísFcas. – A máquina de Turing é um modelo teórico de um
computador que pode simular a lógica de qualquer algoritmo.
• Quando a resposta do problema é sim, pode-‐se apresentar um cer@ficado para esta resposta, que por sua vez pode ser verificado em tempo polinomial.
• Nenhuma condição é estabelecida para o caso da resposta ser não. • Classe dos problemas cuja viabilidade de uma solução pode ser verificada em
tempo polinomial.
Heurís'cas e Metaheurís'cas
Classe NP (Nondeterminis'c Polynomial-‐'me)
![Page 37: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/37.jpg)
• Problema que podem ser resolvidos em tempo polinomial em máquinas de Turing determinísFcas.
• P é um subconjunto da classe NP. • Exemplos de problemas da classe P:
– Ordenação; – Caminhos mais curtos em um grafo; – Árvore geradora de peso mínimo; – Fluxo máximo (corte mínimo); – Programação linear.
• Todos problemas em NP podem ser resolvidos em tempo polinomial? – P = NP?
Heurís'cas e Metaheurís'cas
Classe P (Determinis'c Polynomial-‐'me)
![Page 38: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/38.jpg)
• Transformação polinomial – um problema de decisão A transforma-‐se polinomialmente em outro
problema de decisão B se: • dada qualquer entrada IA para o problema A, pode-‐se construir uma entrada IB
para o problema B em tempo polinomial, de tal forma que • IA é uma instância “sim” para A se e somente se IB é uma instância “sim” para B.
• Primeiro problema NP-‐Completo – Em 1971, Stephen Cook provou que todos os problemas em NP podem
ser reduzidos (transformados) ao Problema da SaFsfabilidade (SAT) em tempo polinomial.
Heurís'cas e Metaheurís'cas
Classe NPC (NP-‐Complete)
![Page 39: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/39.jpg)
• Conseqüência – Se exisFr uma algoritmo polinomial ALG para SAT, existe um algoritmo
polinomial para qualquer problema de decisão D ∈ NP. • Transforme D em SAT. O(nk). • Resolva o problema SAT resultante com o algoritmo ALG. O(nd) • Se a resposta do SAT for sim, responda sim para D. O(1) • A complexidade deste algoritmo é T(n) = O(nk) + O(nd) + O(1) = O(nmax(k,d)).
• Até hoje, ninguém conseguiu projetar um algoritmo polinomial para SAT.
Heurís'cas e Metaheurís'cas
Classes NPC (NP-‐Complete)
![Page 40: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/40.jpg)
• Na busca de algoritmos polinomiais para SAT, diversos autores propuseram a transformações polinomiais de SAT para outros problemas. – 3-‐SAT, Clique, ect.
• Classe NPC (NP-‐Complete): um problema de decisão D ∈ NP é dito NP ̶ Completo quando qualquer outro problema de
NP pode ser transformado polinomialmente em D.
– Conseqüência forte: se exisFr um algoritmo polinomial para a resolução de algum problema NP ̶ completo, então todos os problemas da classe NP também poderão ser resolvidos em tempo polinomial;
– Até hoje, ninguém conseguiu projetar um algoritmo polinomial para nenhum problema em NPC.
Heurís'cas e Metaheurís'cas
Classe NPC (NP-‐Complete)
![Page 41: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/41.jpg)
• Classe dos problemas NP ̶ árduos ou NP ̶ dihceis: – Problemas nos quais qualquer problema em NP pode ser transformado, mas estes por sua vez não estão em NP.
– Problemas de oFmização cujo problema de decisão associado é NP ̶ completo.
• Diversos problemas com grande importância práFca e teórica enquadram-‐se nesta classe de problemas.
Heurís'cas e Metaheurís'cas
Classe NPH (NP-‐Hard)
![Page 42: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/42.jpg)
• Como tratar na práFca os problemas NP ̶ diYceis? – Algoritmos pseudo-‐polinomiais
• Problema da Mochila
– IdenFficação de casos parFculares polinomiais. • Coloração de Grafos
– Métodos exatos de enumeração implícita • complexidade exponencial no pior caso • B&B, B&C, B&P, etc.
– Algoritmos aproximaFvos • Algoritmos polinomiais que não garantem a solução óFma do problema,
mas garantem um desvio máximo entre o custo solução retornada e o custo da solução óFma. • Algoritmo de Christofides para TSP: 1.5-‐aproximaFvo.
– HeurísFcas/MetaheurísFcas • Realizam uma busca no espaço de soluções e armazenam a melhor solução encontrada. • Não dão garanFa de custo da solução retornada, mas • através de experimentos computacionais pode-‐se mostrar que o custo da solução retornada é
próximo do custo da solução óFmo (e.g. até 10%).
Heurís'cas e Metaheurís'cas
Classe NPH (NP-‐Hard)
![Page 43: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/43.jpg)
Heurís'cas e Metaheurís'cas Thiago F. Noronha
Heurís'cas Constru'vas
Belo Horizonte, 2012
![Page 44: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/44.jpg)
Heurís'cas Definição
HeurísFcas são algoritmos que em um curto período de tempo
conseguem encontrar soluções viáveis, sem garanFa oFmalidade.
Heurísticas e Metaheurísticas
![Page 45: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/45.jpg)
Heurís'cas Classes
• HeurísFcas ConstruFvas: – Algoritmos AproximaFvos* – HeurísFcas Gulosas – HeurísFcas de Transformação (ou Redução) – HeurísFcas de Arredondamento Aleatorizado
Heurísticas e Metaheurísticas
![Page 46: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/46.jpg)
Heurís'cas HeurísFcas construFvas
• Dada uma instância de um problema de oFmização, as heurís'cas constru'vas constroem uma solução viável para o problema, onde: – Somente a viabilidade da solução é garanFda. – A princípio, nenhuma propriedade relacionada a qualidade da solução
construída é exigida.
• Entretanto, espera-‐se que esta heurísFca seja projetada de forma a almejar soluções cujo custo seja próximo ao custo da solução óFma para o problema.
Heurísticas e Metaheurísticas
![Page 47: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/47.jpg)
Algoritmos Aproxima'vos • Dada uma instância de um problema de oFmização, os
algoritmos aproxima'vos constroem uma solução viável para o problema.
• Neste caso, pode-‐se provar que a qualidade da solução não é pior que um certo fator є do valor da solução óFma.
• Por exemplo, para є = 2, um algoritmo é 2-‐aproximaFvo, se o valor da solução produzida é no pior caso duas vezes pior que o valor da solução óFma.
Heurísticas e Metaheurísticas
![Page 48: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/48.jpg)
Algoritmos Aproxima'vos Problema do Caixeiro Viajante
• HeurísFca da Árvore Geradora Mínima Dupla – Calcule a Árvore Geradora Mínima (AGM) do grafo.
D
A
C
E
B
13 7
12
12
9
9 8
11 10 4
Heurísticas e Metaheurísticas
![Page 49: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/49.jpg)
• HeurísFca da Árvore Geradora Mínima Dupla – Calcule a Árvore Geradora Mínima (AGM) do grafo. – Duplique as arestas da AGM e calcule um circuito euleriano no grafo
resultante.
E
D
A
C
B
7
9 8
4
D
A
C
B
7
9 8
4
E 8
9 7 4
Heurísticas e Metaheurísticas
Algoritmos Aproxima'vos Problema do Caixeiro Viajante
![Page 50: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/50.jpg)
• HeurísFca da Árvore Geradora Mínima Dupla – Calcule a Árvore Geradora Mínima (AGM) do grafo. – Duplique as arestas da AGM e calcule um circuito euleriano no grafo
resultante. – Construa um circuito euleriano, executando uma busca em
profundidade parFndo de qualquer vérFce, guardando em uma lista todos os vérFces que são visitados.
(A, C, D, B, D, E, D, C, A)
D
A
C
B
7
9 8
4
E 8
9 7 4
Heurísticas e Metaheurísticas
Algoritmos Aproxima'vos Problema do Caixeiro Viajante
![Page 51: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/51.jpg)
• HeurísFca da Árvore Geradora Mínima Dupla – Calcule a árvore geradora mínima do grafo. – Duplique as arestas da AGM e calcule um circuito euleriano no grafo
resultante. – Construa um circuito euleriano, executando uma busca em
profundidade parFndo de qualquer vérFce, guardando em uma lista todos os vérFces que são visitados.
– Percorra a lista de vérFces visitados eliminando os vérFces repeFdos, formando um Circuito Hamiltoniano.
E
D
A
C
B (A, C, D, B, D, E, D, C, A) (A, C, D, B, E, A)
Heurísticas e Metaheurísticas
Algoritmos Aproxima'vos Problema do Caixeiro Viajante
![Page 52: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/52.jpg)
Algoritmos Aproxima'vos Problema do Caixeiro Viajante
• A heurísFca da Árvore Geradora Mínima Dupla é 2-‐aproximado.
• Prova: – Sejam
• H* o ciclo hamiltoniano óFmo, • T* a árvore geradora mínima do grafo e • H a solução retornada pela heurísFca da árvore geradora mínima dupla.
– Temos que • custo(T*) ≤ H* e • custo(H) ≤ 2.custo(T*),
– Sendo assim • custo(H) ≤ 2.custo(H*)
Heurísticas e Metaheurísticas
![Page 53: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/53.jpg)
• Dado um conjunto de itens (i1,i2,i3, ...im) com diferente volumes (v1, v2,v3, ..., vm) que devem ser empacotados em um número finito de Caixas (c1, c2, ...,cn) de capacidade V igual a 1 de forma a minimizar o número de caixa uFlizadas.
• O Problema de Bin Packing é NP -‐ DiYcil.
Algoritmos Aproxima'vos Problema de Bin Packing 1-‐D
Heurísticas e Metaheurísticas
![Page 54: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/54.jpg)
0.5 0.7 0.5 0.2 0.4 0.2 0.5 0.1 0.6 0.6
0.1 0.5 0.4 0.2
0.7
0.2 0.5 0.5
…… 1
Conjunto de itens
Caixas de capacidade 1
Heurísticas e Metaheurísticas
Algoritmos Aproxima'vos Problema de Bin Packing 1-‐D
![Page 55: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/55.jpg)
0.5 0.7 0.5 0.2 0.4 0.2 0.5 0.1 0.6
….… 1
0.1
0.5
0.4
0.6
0.2 0.7
0.2
0.5
0.5 N0 = 4
Solução ótima:
Heurísticas e Metaheurísticas
Algoritmos Aproxima'vos Problema de Bin Packing 1-‐D
![Page 56: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/56.jpg)
• HeurísFca First-‐fit (FF) – Os itens são processados em ordem arbitrária. – Para cada item é verificado se existe uma caixa para acomoda-‐lo. – Se não exisFr, uma nova caixa é criada e o item inserido.
0.1 0.5 0.4 0.2 0.2
0.5 0.5 0.6 0.7
Heurísticas e Metaheurísticas
Algoritmos Aproxima'vos Problema de Bin Packing 1-‐D
![Page 57: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/57.jpg)
• HeurísFca First-‐fit (FF) – Os itens são processados em ordem arbitrária. – Para cada item é verificado se existe uma caixa para acomoda-‐lo. – Se não exisFr, uma nova caixa é criada e o item inserido.
0.5
0.1 0.5 0.4 0.2 0.2
0.5 0.5 0.6 0.7
Heurísticas e Metaheurísticas
Algoritmos Aproxima'vos Problema de Bin Packing 1-‐D
![Page 58: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/58.jpg)
• HeurísFca First-‐fit (FF) – Os itens são processados em ordem arbitrária. – Para cada item é verificado se existe uma caixa para acomoda-‐lo. – Se não exisFr, uma nova caixa é criada e o item inserido.
0.5 0.7
0.1 0.5 0.4 0.2 0.2
0.5 0.5 0.6 0.7
Heurísticas e Metaheurísticas
Algoritmos Aproxima'vos Problema de Bin Packing 1-‐D
![Page 59: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/59.jpg)
• HeurísFca First-‐fit (FF) – Os itens são processados em ordem arbitrária. – Para cada item é verificado se existe uma caixa para acomoda-‐lo. – Se não exisFr, uma nova caixa é criada e o item inserido.
0.5 0.7
0.5
0.1 0.5 0.4 0.2 0.2
0.5 0.5 0.6 0.7
Heurísticas e Metaheurísticas
Algoritmos Aproxima'vos Problema de Bin Packing 1-‐D
![Page 60: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/60.jpg)
• HeurísFca First-‐fit (FF) – Os itens são processados em ordem arbitrária. – Para cada item é verificado se existe uma caixa para acomoda-‐lo. – Se não exisFr, uma nova caixa é criada e o item inserido.
0.5 0.7
0.5 0.2
0.1 0.5 0.4 0.2 0.2
0.5 0.5 0.6 0.7
Heurísticas e Metaheurísticas
Algoritmos Aproxima'vos Problema de Bin Packing 1-‐D
![Page 61: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/61.jpg)
• HeurísFca First-‐fit (FF) – Os itens são processados em ordem arbitrária. – Para cada item é verificado se existe uma caixa para acomoda-‐lo. – Se não exisFr, uma nova caixa é criada e o item inserido.
0.5 0.7
0.5 0.2
0.4
0.1 0.5 0.4 0.2 0.2
0.5 0.5 0.6 0.7
Heurísticas e Metaheurísticas
Algoritmos Aproxima'vos Problema de Bin Packing 1-‐D
![Page 62: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/62.jpg)
• HeurísFca First-‐fit (FF) – Os itens são processados em ordem arbitrária. – Para cada item é verificado se existe uma caixa para acomoda-‐lo. – Se não exisFr, uma nova caixa é criada e o item inserido.
0.5 0.7
0.5 0.2
0.4
0.6
0.1 0.5 0.4 0.2 0.2
0.5 0.5 0.6 0.7
Heurísticas e Metaheurísticas
Algoritmos Aproxima'vos Problema de Bin Packing 1-‐D
![Page 63: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/63.jpg)
• HeurísFca First-‐fit (FF) – Os itens são processados em ordem arbitrária. – Para cada item é verificado se existe uma caixa para acomoda-‐lo. – Se não exisFr, uma nova caixa é criada e o item inserido.
0.5 0.7
0.5 0.2
0.4 0.5
0.6
0.1 0.5 0.4 0.2 0.2
0.5 0.5 0.6 0.7
Heurísticas e Metaheurísticas
Algoritmos Aproxima'vos Problema de Bin Packing 1-‐D
![Page 64: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/64.jpg)
• HeurísFca First-‐fit (FF) – Os itens são processados em ordem arbitrária. – Para cada item é verificado se existe uma caixa para acomoda-‐lo. – Se não exisFr, uma nova caixa é criada e o item inserido.
0.6
0.5 0.7
0.5 0.2
0.4 0.5
0.1
0.1 0.5 0.4 0.2 0.2
0.5 0.5 0.6 0.7
Heurísticas e Metaheurísticas
Algoritmos Aproxima'vos Problema de Bin Packing 1-‐D
![Page 65: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/65.jpg)
• HeurísFca First-‐fit (FF) – Os itens são processados em ordem arbitrária. – Para cada item é verificado se existe uma caixa para acomoda-‐lo. – Se não exisFr, uma nova caixa é criada e o item inserido.
0.5 0.7
0.5 0.2
0.4
0.2
0.5
0.6
0.1 0.5 0.4 0.2 0.2
0.5 0.5 0.6 0.7
Heurísticas e Metaheurísticas
0.1
Algoritmos Aproxima'vos Problema de Bin Packing 1-‐D
![Page 66: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/66.jpg)
• A heurísFca da FF é 2-‐aproximada. – No máximo uma caixa com menos da metade da capacidade. – Só abre uma nova caixa se todas as caixas estão mais do que V/2 cheias
ou se chegar um item com volume maior que V/2. – Dado B caixas, pelo menos B-‐1 caixas estão mais da metade cheias.
– Um limite inferior para o número óFmo de caixas é
– Assim, temos que B -‐ 1 < 2*OPT e portanto B ≤ 2*OPT.
• A heurísFca da FF é (1.7*OPT + 2)-‐aproximada. • A heurísFca da FFD é (1.23*OPT + 1)-‐aproximada.
Heurísticas e Metaheurísticas
Algoritmos Aproxima'vos Problema de Bin Packing 1-‐D
![Page 67: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/67.jpg)
Heurís'cas Gulosas
• Técnica mais simples e mais uFlizada – para se projetar uma heurísFca construFva para um problema de
oFmização.
• Parte de uma solução parcial (e.g. Vazia) • Adiciona (ou remove) sequencialmente elementos a solução
através de algum critério (função de avaliação) guloso: – Trata-‐se de um algoritmo míope, pois avalia somente um elemento da
solução de cada vez.
• Ao final, é gerada uma solução viável. – Algoritmos gulosos encontram soluções óFmas para diversos problema
de oFmização.
Heurísticas e Metaheurísticas
![Page 68: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/68.jpg)
Heurís'cas Gulosas Exemplo
Alg HeurísFcaConstruFva(f(x), s): 1. s = Ø; 2. Inicializa a lista de elementos candidatos C; 3. Enquanto (C ≠ Ø) faça: 4. x = melhor{f(x) | x є C}; 5. s = s U {x}; 6. Remove x da lista de candidatos C; 7. Fim enquanto; 8. Retorne s;
Heurísticas e Metaheurísticas
![Page 69: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/69.jpg)
Heurís'cas Gulosas Problema do Caixeiro Viajante
• TSP, do inglês Traveling Salesperson Problem. • Dado um grafo G=(V, E) com custos ce associados às arestas em E. • O TSP consiste em encontrar um ciclo hamiltoniano de comprimento mínimo.
Heurísticas e Metaheurísticas
5
6
12
4
1 3
2 7
5
8
2
3
1 1
![Page 70: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/70.jpg)
Heurís'cas Gulosas HeurísFca Vizinho mais próximo para TSP
Escolha um vérFce inicial
Enquanto houver vérFce não-‐visitado efetue: • Selecione vérFce não-‐visitado mais próximo de uma das extremidades •
• Se é a aresta entre as extremidades de então:
Retorne ciclo de peso
Observações: " Complexidade: O(n2); " Grande influência do vérFce
inicial; " Aplicar a parFr de cada nó: O(n3).
V=18
4
1 3
2
5
7
5
1
2
3
![Page 71: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/71.jpg)
4
3
2
1
2 2
3 3
1
Heurís'cas Gulosas HeurísFca Vizinho mais próximo para TSP
• Pode não gerar soluções Viáveis
![Page 72: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/72.jpg)
5
4 3
2
1
2
1
1
1
1
2 2
2 2 M
Heurísticas e Metaheurísticas
Heurís'cas Gulosas HeurísFca Vizinho mais próximo para TSP
• Pode soluções arbitrariamente ruins.
![Page 73: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/73.jpg)
Redução
• Uma redução é uma transformação de um problema em outro.
• O problema A é reduHvel ao problema B se existe uma maneira de transformar uma solução para B numa solução para A
• Algoritmo de redução – Para construir um algoritmo para o problema A, – Transforma-‐se o problema A em um problema B
• de forma exata ou heurísFca,
– Resolve B com com algum algoritmo • exato ou heurísFco),
– Constrói uma solução viável para A a parFr da solução gerada para B.
Heurísticas e Metaheurísticas
![Page 74: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/74.jpg)
Redução Polinomial
• SorFng à Convex Hull • Subset Sum à Knapsack • Shortest Path à Min-‐cost Network Flow
• Min-‐cost Network Flow à Linear Programming
Heurísticas e Metaheurísticas
![Page 75: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/75.jpg)
Redução Pseudo-‐polinomial
• Bin Packing à MulFprocessor Scheduling
Heurísticas e Metaheurísticas
0.5 0.7
0.5 0.2
0.4
0.2 0.5
0.6
0.1 0.5 0.4 0.2 0.2
0.5 0.5 0.6 0.7
0.1
![Page 76: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/76.jpg)
Heurísticas e Metaheurísticas
0.5 0.7
0.5
0.2
0.4
0.2 0.5
0.6
0.1 0.5 0.4 0.2 0.2
0.5 0.5 0.6 0.7
0.1
Redução Pseudo-‐polinomial
• Bin Packing à MulFprocessor Scheduling
![Page 77: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/77.jpg)
• Roteamento e atribuição mínima de Comprimentos de onda (min-‐RWA) – MulFplexação WDM. – As conexões são estabelecidas por caminhos óFcos. – Comutadores totalmente óFcos. – Sem conversores de comprimentos de onda.
Heurísticas e Metaheurísticas
Redução Heurís'ca min-‐RWA
![Page 78: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/78.jpg)
Heurísticas e Metaheurísticas
Redução Heurís'ca min-‐RWA
![Page 79: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/79.jpg)
• Estabelecer um conjunto de caminhos óFcos. • Atribuir um determinado comprimento de onda para cada
uma deles. • Dois caminhos óFcos que comparFlham algum enlace da
rede devem ter comprimentos de onda diferentes. • Minimizar o número total de comprimentos de onda
uFlizado.
Heurísticas e Metaheurísticas
Redução Heurís'ca min-‐RWA
![Page 80: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/80.jpg)
• Problema de Roteamento. – Calcular o caminho mais curto para cada conexão.
• Problema de atribuição de comprimentos de onda. – Grafo de conflitos. – Coloração de grafos.
Heurísticas e Metaheurísticas
Redução Heurís'ca min-‐RWA
![Page 81: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/81.jpg)
Conexões: (a -> e) (b -> f) (c -> m) (d -> b) (e -> h)
Redução Heurís'ca Roteamento por caminhos mais curtos
![Page 82: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/82.jpg)
Redução Heurís'ca Grafo de Conflitos
1
5 2
4 3
Conexões: 1: (a -> e) 2: (b -> f) 3: (c -> m) 4: (d -> b) 5: (e -> h)
![Page 83: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/83.jpg)
1
5 2
4 3
Redução Heurís'ca Grafo de Conflitos
![Page 84: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/84.jpg)
1
5 2
4 3
w1 w2 w3
Redução Heurís'ca Grafo de Conflitos
![Page 85: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/85.jpg)
1
5 2
4 3
Conexões: 1: (a -> e) : w1 2: (b -> f) : w2 3: (c -> m) : w3 4: (d -> b) : w2 5: (e -> h) : w1
Redução Heurís'ca Solução
![Page 86: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/86.jpg)
Conexões: 1: (a -> e) 1: (b -> f) 1: (c -> m) 1: (d -> b) 1: (e -> h)
Redução Heurís'ca Roteamento por k-‐caminhos mais curtos
![Page 87: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/87.jpg)
1 0
6
3
2
4 5
7
8
Redução Heurís'ca Grafo de Conflitos
![Page 88: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/88.jpg)
1 0
6
3
2
4 5
7
8
Heurísticas e Metaheurísticas
Redução Heurís'ca Problema de coloração de parFções
![Page 89: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/89.jpg)
1
6
3
5
8
Heurísticas e Metaheurísticas
Redução Heurís'ca Problema de coloração de parFções
w1 w2
![Page 90: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/90.jpg)
1
6
3
5
8
Conexões: (a -> e) : w1 (b -> f) : w2 (c -> m) : w2 (d -> b) : w1 (e -> h) : w1
Redução Heurís'ca Solução
![Page 91: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/91.jpg)
Heurísticas e Metaheurísticas
Nós de Steiner
Redução Heurís'ca Problema de Steiner em Grafos
![Page 92: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/92.jpg)
Heurísticas e Metaheurísticas
Redução Heurís'ca Problema de Steiner em Grafos
![Page 93: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/93.jpg)
Heurísticas e Metaheurísticas
Redução Heurís'ca Problema de Steiner em Grafos
![Page 94: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/94.jpg)
• Seja o grafo G=(N, A), – onde N é o conjunto de nós e A o conjunto de arcos valorados.
• Sejam os conjuntos P (de nós terminais) e B (de nós brancos ou nós de Steiner) – tais que P U B = N e B ∩ P =Ø .
• Determinar um subgrafo de custo mínimo – G’= (N’,A’), N’ є N, A’ є A tal que – G’ é uma árvore contendo todos os nós de P e – alguns nós de Steiner opcionalmente.
Heurísticas e Metaheurísticas
Redução Heurís'ca Problema de Steiner em Grafos
![Page 95: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/95.jpg)
• HeurísFca da Árvore Geradora Mínima – Fixa o conjunto de nós de Steiner de tal forma que o grafo resultante
seja conexo.
Heurísticas e Metaheurísticas
Redução Heurís'ca Problema de Steiner em Grafos
![Page 96: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/96.jpg)
Redução Heurís'ca Problema de Steiner em Grafos
• HeurísFca da Árvore Geradora Mínima • Executa um algoritmo para AGM no grafo induzido pelos nós terminais
e pelos nós de Steiner fixados no passo anterior.
Heurísticas e Metaheurísticas
![Page 97: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/97.jpg)
• HeurísFca da Árvore Geradora Mínima • Executa um algoritmo para AGM no grafo induzido pelos nós terminais
e pelos nós de Steiner fixados no passo anterior.
Heurísticas e Metaheurísticas
Redução Heurís'ca Problema de Steiner em Grafos
![Page 98: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/98.jpg)
• HeurísFca da Árvore Geradora Mínima • Elimina da árvore os nós de Steiner de grau 1.
Heurísticas e Metaheurísticas
Redução Heurís'ca Problema de Steiner em Grafos
![Page 99: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/99.jpg)
Heurísticas e Metaheurísticas
• HeurísFca da Árvore Geradora Mínima • Elimina da árvore os nós de Steiner de grau 1.
Redução Heurís'ca Problema de Steiner em Grafos
![Page 100: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/100.jpg)
• Problema de Programação Linear (PL) :
• Este problema pode ser resolvido em tempo polinomial.
Heurísticas e Metaheurísticas
Heurís'cas de Arredondamento Aleatorizado
![Page 101: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/101.jpg)
Heurís'cas de Arredondamento Aleatorizado
• Problema de Programação Linear Inteira (PLI)
• PLI é NP-‐DiYcil
Heurísticas e Metaheurísticas
![Page 102: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/102.jpg)
• CongesFon minimizaFon MulFcommodity flow problem – Conectar diversos pares de vérFces no grafo minimizando a aresta
mais congesFonada.
Heurísticas e Metaheurísticas
10
4
7
3 9
2 8
6
5
1
Heurís'cas de Arredondamento Aleatorizado
![Page 103: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/103.jpg)
Heurís'cas de Arredondamento Aleatorizado
• Redução para PLI – CongesFon minimizaFon MulFcommodity flow problem
![Page 104: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/104.jpg)
• CongesFon minimizaFon MulFcommodity flow problem – Restrições de conservação de fluxo na formulação inteira
Heurísticas e Metaheurísticas
s
4
d
3 9
2 8
6
5
1
Heurís'cas de Arredondamento Aleatorizado
(1) (1)
![Page 105: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/105.jpg)
• Problema de Programação Linear (PL) : – Relaxação Linear
Heurís'cas de Arredondamento Aleatorizado
![Page 106: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/106.jpg)
• CongesFon minimizaFon MulFcommodity flow problem – Restrições de conservação de fluxo na formulação linear
Heurís'cas de Arredondamento Aleatorizado
s
4
d
3 9
2 8
6
5
1
(0.33) (0.35)
(0.32)
(0.33) (0,28)
(0.10)
(0.25)
![Page 107: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/107.jpg)
• A abordagem básica 1. Formular o problema para ser resolver como um PLI. 2. Obter uma solução fracionaria do problema resolvendo a Relaxação
Linear do PLI. 3. Gerar uma solução inteira a parFr da solução fracionária por meio
de arredondamento do valor das variáveis fracionárias.
• CongesFon minimizaFon MulFcommodity flow problem – HeurísFca de Raghavan e Thompson, 1987
Heurís'cas de Arredondamento Aleatorizado
![Page 108: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/108.jpg)
10
4
7
3 9
2 8
6
5
1
sd(0.33) (0.35)
(0.32)
(0.33) (0,28)
(0.10)
(0.25)
• Path Stripping – Seleciona um conjunto de rotas para cada par (s,d) em P.
Heurís'cas de Arredondamento Aleatorizado
![Page 109: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/109.jpg)
10
4
7
3 9
2 8
6
5
1
sd(0.33) (0.35)
(0.32)
(0.33) (0,28)
(0.10)
(0.25)
• Path Stripping – Seleciona uma conjunto de rotas para cada par (s,d) em P.
Heurís'cas de Arredondamento Aleatorizado
![Page 110: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/110.jpg)
• τi = 0.02
10
4
7
3 9
2 8
6
5
1
sd(0.33) (0.35)
(0.32)
(0.33) (0,28)
(0.10)
(0.25)
Heurís'cas de Arredondamento Aleatorizado
![Page 111: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/111.jpg)
• τi = 0.02
10
4
7
3 9
2 8
6
5
1
sd(0.33) (0.33)
(0.32)
(0.33) (0,28)
(0.08)
(0.25)
Heurís'cas de Arredondamento Aleatorizado
![Page 112: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/112.jpg)
• τi = 0.02
10
4
7
3 9
2 8
6
5
1
sd(0.33) (0.33)
(0.32)
(0.33) (0,28)
(0.08)
(0.25)
Heurís'cas de Arredondamento Aleatorizado
![Page 113: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/113.jpg)
• τi = 0.02, 0.08
10
4
7
3 9
2 8
6
5
1
sd(0.33) (0.33)
(0.32)
(0.33) (0,28)
(0.08)
(0.25)
Heurís'cas de Arredondamento Aleatorizado
![Page 114: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/114.jpg)
• τi = 0.02, 0.08
10
4
7
3 9
2 8
6
5
1
sd(0.25) (0.25)
(0.32)
(0.33) (0,28)
(0.00)
(0.25)
Heurís'cas de Arredondamento Aleatorizado
![Page 115: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/115.jpg)
• τi = 0.02, 0.08
10
4
7
3 9
2 8
6
5
1
sd(0.25) (0.25)
(0.32)
(0.33) (0,28)
(0.25)
Heurís'cas de Arredondamento Aleatorizado
![Page 116: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/116.jpg)
• τi = 0.02, 0.08
10
4
7
3 9
2 8
6
5
1
sd(0.25) (0.25)
(0.32)
(0.33) (0,28)
(0.25)
Heurís'cas de Arredondamento Aleatorizado
![Page 117: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/117.jpg)
• τi = 0.02, 0.08
10
4
7
3 9
2 8
6
5
1
sd(0.25) (0.25)
(0.32)
(0.33) (0,28)
(0.25)
Heurís'cas de Arredondamento Aleatorizado
![Page 118: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/118.jpg)
• τi = 0.02, 0.08, 0.25
10
4
7
3 9
2 8
6
5
1
sd
(0.32)
(0.33) (0,28)
Heurís'cas de Arredondamento Aleatorizado
![Page 119: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/119.jpg)
• τi = 0.02, 0.08, 0.25
10
4
7
3 9
2 8
6
5
1
sd
(0.32)
(0.33) (0,28)
Heurís'cas de Arredondamento Aleatorizado
![Page 120: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/120.jpg)
• τi = 0.02, 0.08, 0.25 , 0.32
10
4
7
3 9
2 8
6
5
1
sd
(0.32)
(0.33) (0,28)
Heurís'cas de Arredondamento Aleatorizado
![Page 121: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/121.jpg)
• τi = 0.02, 0.08, 0.25 , 0.32
10
4
7
3 9
2 8
6
5
1
sd
(0.00)
(0.33) (0,28)
Heurís'cas de Arredondamento Aleatorizado
![Page 122: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/122.jpg)
• τi = 0.02, 0.08, 0.25 , 0.32
10
4
7
3 9
2 8
6
5
1
sd
(0.33) (0,28)
Heurís'cas de Arredondamento Aleatorizado
![Page 123: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/123.jpg)
• τi = 0.02, 0.08, 0.25 , 0.32
10
4
7
3 9
2 8
6
5
1
sd
(0.33) (0,28)
Heurís'cas de Arredondamento Aleatorizado
![Page 124: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/124.jpg)
• τi = 0.02, 0.08, 0.25 , 0.32, 0.05
10
4
7
3 9
2 8
6
5
1
sd
(0.33) (0,28)
Heurís'cas de Arredondamento Aleatorizado
![Page 125: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/125.jpg)
• τi = 0.02, 0.08, 0.25 , 0.32, 0.05
10
4
7
3 9
2 8
6
5
1
sd
(0.28) (0,28)
Heurís'cas de Arredondamento Aleatorizado
![Page 126: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/126.jpg)
• τi = 0.02, 0.08, 0.25 , 0.32, 0.05
10
4
7
3 9
2 8
6
5
1
sd
(0.28) (0,28)
Heurís'cas de Arredondamento Aleatorizado
![Page 127: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/127.jpg)
• τi = 0.02, 0.08, 0.25 , 0.32, 0.05
10
4
7
3 9
2 8
6
5
1
sd
(0.28) (0,28)
Heurís'cas de Arredondamento Aleatorizado
![Page 128: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/128.jpg)
• τi = 0.02, 0.08, 0.25 , 0.32, 0.05, 0.28
10
4
7
3 9
2 8
6
5
1
sd
(0.28) (0,28)
Heurís'cas de Arredondamento Aleatorizado
![Page 129: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/129.jpg)
• τi = 0.02, 0.08, 0.25 , 0.32, 0.05, 0.28
10
4
7
3 9
2 8
6
5
1
sd
(0.00) (0,00)
Heurís'cas de Arredondamento Aleatorizado
![Page 130: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/130.jpg)
0.02 0.05
0.08
0.25
0.28
0.32
• τ1 = 0.02, 0.08, 0.25 , 0.32, 0.05, 0.28
Heurís'cas de Arredondamento Aleatorizado
![Page 131: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/131.jpg)
Heurís'cas de Arredondamento Aleatorizado
0.19 0.21
0.28 0.32
• τ2 = 0.19, 0.21 , 0.32, 0.28
![Page 132: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/132.jpg)
Heurís'cas de Arredondamento Aleatorizado
0.3 0.3
0.4
• τ3 = 0.3 , 0.3, 0.4
![Page 133: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/133.jpg)
Heurís'cas de Arredondamento Aleatorizado
0.3 0.3
0.4
• Aleatorização – Seleciona uma rota para cada conexão de acordo com o peso da rota. – A probabilidade de uma rota ser escolhida é proporcional ao seu peso.
0.19 0.21
0.28 0.32
0.02 0.05
0.08
0.25
0.28
0.32
τ1
τ3
τ2
![Page 134: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/134.jpg)
Heurís'cas e Metaheurís'cas Thiago F. Noronha
Heurís'cas de Busca
![Page 135: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/135.jpg)
• Espaço de soluções – Conjunto de soluções viáveis para o problema.
• Algoritmos de busca – Soluciona um problema através de uma busca do espaço de soluções
• Exemplos – Algoritmos de busca exausFva
• Backtraking – Algoritmos de enumeração implícita
• Branch-‐and-‐bound, Constraint Programming
– HeurísFcas de busca em vizinhança • Busca Local, Busca Tabu, Simulated Annealing, ...
– HeurísFcas populacionais • Sca�er Search, Algoritmos GenéFcos, ...
– MetaheurísFcas em geral
Heurís'cas de Busca Algoritmos de Busca
![Page 136: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/136.jpg)
• Problema combinatório: f (s*) = min{ f(s): s ∈ S } onde S é um conjunto discreto de soluções.
• Vizinhança: elemento que introduz a noção de proximidade entre as soluções em S.
• Uma vizinhança é um mapeamento N: S → 2S que leva as soluções de S a um subconjunto deste mesmo conjunto de soluções.
• Boas vizinhanças permitem representar de forma compacta/ eficiente o conjunto de soluções vizinhas a qualquer solução s.
Vizinhança
![Page 137: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/137.jpg)
Vizinhança N1 no espaço dos vetores {0,1}3
000
100
110
010 011
001
101
111
![Page 138: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/138.jpg)
Problema do Caixeiro viajante (PCV): Dado um grafo G = (V, E) com custos ce ( e ϵ E) associados às arestas: -‐ Encontrar um ciclo hamiltoniano de comprimento mínimo.
(5 1)!2−
Heurís'cas de Busca Exemplo de Problema de OFmização
![Page 139: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/139.jpg)
Vizinhança 2-‐OPT para TSP
2 5
4 3
1
5
4 3
2
1 5
4 3
2
1
1
5
4 3
2 5
4 3
2
1
2 5
4 3
1
![Page 140: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/140.jpg)
Espaço de busca • O espaço de busca pode ser visto como um grafo
– Os vérFces representam as soluções – As arestas representam soluções vizinhas.
![Page 141: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/141.jpg)
Espaço de busca
• O espaço de busca pode ser visto como uma superYcie, com vales e cumes definidos pelo custo das soluções.
![Page 142: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/142.jpg)
• O espaço de busca pode ser visto como uma superYcie, com vales e cumes definidos pelo custo das soluções.
Ótimo Global
Ótimo Local Ótimo Local
Espaço de busca
![Page 143: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/143.jpg)
Ó'mos locais e globais
• A noção de proximidade induz o conceito de distância entre soluções, que define um espaço topológico.
• ÓFmo local: solução tão boa ou melhor do que qualquer das soluções vizinhas. Para um problema de minimização:
s+ é um óFmo local ⇑⇓ f (s+) ≤ f (s), ∀s ∈ N(s+). • ÓFmo global ou solução óFma s*: s* é um óFmo global ⇑⇓ f (s*) ≤ f (s), ∀s ∈ S (espaço de busca).
![Page 144: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/144.jpg)
Busca local • Busca local em uma vizinhança:
– Um caminho no espaço de busca é formado por uma sequência de soluções vizinhas.
– Algoritmos de busca local são construídos como uma forma de exploração do espaço de busca .
– ParFda: solução inicial obFda através de um método construFvo . – Iteração: melhoria sucessiva da solução corrente através de uma
busca na sua vizinhança . – Parada: primeiro óFmo local encontrado .
• não existe solução vizinha “aprimorante” .
![Page 145: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/145.jpg)
Estratégias de Busca na Vizinhança
5
4 3
2
1
2 5
4 3
1 L=19 (+)
5
4 3
2
1
L=21 (+)
2 5
4 3
1
L=14 (-‐)
1
5
4 3
2
L=16 (-‐)
5
4 3
2
1
L=17 (=)
5 1
3 3
5
![Page 146: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/146.jpg)
procedure Descida-‐Mais-‐Rápida(s0) s ← s0; melhoria ← .true. while melhoria do melhoria ← .false.; fmin ← +∞ for-‐all s’ ∈ N(s) do if ( f(s’) < fmin ) then smin ← s’; fmin ← f(s’) end-‐if end-‐for-‐all if ( fmin < f(s) ) then s ← smin ; melhoria ← .true. end-‐if end-‐while return s end Descida-‐Mais-‐Rápida
Belo Horizonte, 2012
Estratégias de Busca na Vizinhança Busca Local Melhor Aprimorante
![Page 147: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/147.jpg)
Belo Horizonte, 2012
f(0,0,0) = 3
f(1,0,0) = 4 f(0,0,1) = 5 f(0,1,0) = 2
F(1,1,0) = 2 F(0,1,1) = 1
f(1,1,1) = 6
Estratégias de Busca na Vizinhança Busca Local Melhor Aprimorante
![Page 148: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/148.jpg)
procedure Melhoria-‐IteraFva(s0) s ← s0; melhoria ← .true. while melhoria do melhoria ← .false. for-‐all s’∈ N(s) .and. melhoria == .false. do if ( f(s’) < f(s) ) then s ← s’; melhoria ← .true. end-‐if end-‐for-‐all end-‐while return s end Melhoria-‐IteraFva
Belo Horizonte, 2012
Estratégias de Busca na Vizinhança Busca Local Primeiro Aprimorante
![Page 149: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/149.jpg)
Belo Horizonte, 2012
f(0,0,0) = 3
f(1,0,0) = 3 f(0,0,1) = 1 f(0,1,0) = 2 f(0,1,0) = 2
Estratégias de Busca na Vizinhança Busca Local Primeiro Aprimorante
![Page 150: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/150.jpg)
Belo Horizonte, 2012
f(0,0,0) = 3
f(1,0,0) = 5 f(0,0,1) = 1 f(0,1,0) = 2 f(0,1,0) = 2
Estratégias de Busca na Vizinhança Busca Local Primeiro Aprimorante
F(1,1,0) = 2 F(0,1,1) = 1
f(1,1,1) = 2
![Page 151: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/151.jpg)
Busca Local Situação Ideal
Belo Horizonte, 2012
f(1,0,0) = 5 f(0,1,1) = 3 f(0,1,0) = 4
f(1,1,0) = 6
f(1,0,1) = 3
f(1,1,1) = 4
f(0,0,0) = 3 f(0,0,1) = 0
Ó'mo Global
![Page 152: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/152.jpg)
Busca Local Situação realisFca
Belo Horizonte, 2012
f(1,0,0) = 1 f(0,1,1) = 3 f(0,1,0) = 2
f(1,1,0) = 6
f(1,0,1) = 3
f(1,1,1) = 1
f(0,0,0) = 3 f(0,0,1) = 0 Ó'mo Global
Ó'mo Local
Ó'mo Local
Ó'mo Local
Sensível à solução de par'da.
f(1,0,0) = 1 f(0,1,0) = 2
f(1,1,1) = 1
![Page 153: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/153.jpg)
Questões Fundamentais • Definição da vizinhança; • Estratégia de busca na vizinhança; • Complexidade de cada iteração:
– Proporcional ao tamanho da vizinhança; – Eficiência: depende da forma como é calculada a variação da função
objeFvo para cada solução vizinha; • Algoritmos eficientes ↔ capazes de recalcular as variações de modo a
atualizá-‐las apenas quando a solução corrente se modifica, evitando cálculos repeFFvos e desnecessários da função objeFvo.
Belo Horizonte, 2012
![Page 154: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/154.jpg)
• Conexidade – Deve exisFr um caminho entre qualquer par de soluções no espaço
de busca.
• Distância entre duas soluções – Número de soluções visitadas ao longo de um caminho mais curto
entre elas.
• Diâmetro – Distância entre duas das soluções mais afastadas.
• Região de atração de um óFmo local – Conjunto de soluções iniciais a parFr das quais o algoritmo de busca
local leva a este óFmo local.
Questões Fundamentais
![Page 155: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/155.jpg)
Dificuldades da busca local • Término prematuro no primeiro óFmo local encontrado. • Sensível à solução de parFda. • Sensível à vizinhança escolhida. • Sensível à estratégia de busca. • Pode exigir um número exponencial de iterações!
Belo Horizonte, 2012
![Page 156: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/156.jpg)
Contornando as dificuldades da busca local
• Redução da vizinhança – InvesFgar um subconjunto da vizinhança da solução corrente (e.g.
por “aleatorização”).
• MulF-‐parFda – RepeFr a busca local a parFr de diferentes soluções de parFda.
• MulF-‐vizinhança – Considera mais de uma vizinhança. Ao aFngir um óFmo local com
relação a uma vizinhança, inicia uma outra busca local empregando outra vizinhança. O algoritmo termina quando a solução corrente é um óFmo local em relação a todas as vizinhanças empregadas.
• Segmentação da vizinhança – UFlizada para aumentar a eficiência quando vizinhanças muito
grandes são uFlizadas. Pode ser vista como uma estratégia mulF-‐vizinhança: N(s) = N1(s) ∪ N2(s) ∪…∪ Np(s).
![Page 157: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/157.jpg)
METODOLOGIA CIENTÍFICA
Heurís'cas e Metaheurís'cas Thiago F. Noronha
![Page 158: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/158.jpg)
"Quem não sabe o que procura não entende o que encontra"
Hans Selye
Metodologia CienTfica
![Page 159: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/159.jpg)
CIÊNCIA
• De modo geral ciência refere-‐se a um sistema de adquirir conhecimento baseado no método cienHfico.
• O método cienHfico é uma ferramenta para gerar conhecimento muito flexível e muito poderosa.
• Existe uma dinâmica e um rigor que deve ser seguido para que o conhecimento gerado seja considerado cienHfico (confiável).
Metodologia CienTfica
![Page 160: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/160.jpg)
CONHECIMENTO CIENTÍFICO VS. EMPÍRICO
• Conhecimento empírico • Relacionado a experiências e observações práFcas • Indisciplinar e imetódico • Superficial e subjeFvo
• Conhecimento cienHfico • ObjeFvo • Verificável • Provisório • Reversível
Metodologia CienTfica
![Page 161: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/161.jpg)
• Conjunto de regras básicas para desenvolver uma experiência a fim de produzir novo conhecimento.
• Elementos: • Caracterização • Hipóteses • Experimentos
• Aspectos: • Observação (medição) • Descrição (replicável) • Previsão (atemporal) • Controle (uma variável por vez) • Falseabilidade (testável) • Explicação das causas (fenomenologia)
Metodologia CienTfica Método CienHfico
![Page 162: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/162.jpg)
MÉTODO CIENTÍFICO
• Etapas: • Definir o problema • Coletar os dados • Elaborar uma ou mais hipóteses • Realizar experiências controladas. • Analisar os resultados • Interpretar os dados e Frar conclusões • Apresentar os resultados obFdos à comunidade cienHfica
• Mas não acaba por aí! • Revisão pelos pares • Reprodução por outros grupos de pesquisa • Só então o conhecimento é considerado conhecimento cienHfico estabelecido!!!
Metodologia CienTfica Método CienHfico
![Page 163: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/163.jpg)
CIÊNCIA EM COMPUTAÇÃO
• Nas ciências naturais procura-‐se descobrir teorias ou leis que explicam fenômenos naturais. • Em computação, a coisa não é bem assim...
• Em geral, a pesquisa em computação consiste na construção de • um programa, • um modelo, • um algoritmo ou • um sistema novo!
• A originalidade dos resultados é considerada um fator fundamental.
Metodologia CienTfica
![Page 164: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/164.jpg)
TERMINOLOGIA
• Modelo • Representação computacional de uma enFdade do mundo real.
• Algoritmo • Sequência finita de instruções bem definidas e não ambíguas que solucionam um determinado problema.
• Programa • SoTware que resolve um problema e que o usuário é normalmente o próprio autor.
• Sistema • SoTware que interage com os usuários que não são necessariamente seus autores.
Belo Horizonte, 2012
Metodologia CienTfica
![Page 165: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/165.jpg)
• Classificação – Pesquisa analíFca – Pesquisa quanFtaFva – Pesquisa bibliográfica – Pesquisa qualitaFva – Pesquisa experimental
Metodologia CienTfica Classificação
![Page 166: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/166.jpg)
• Pesquisa AnalíFca • Mais comum no contexto de modelos e algoritmos. • Cria um modelo dos dados de entrada e da máquina onde o algoritmo/programa será implementado e
• prova que o programa tem algumas propriedades interessantes.
• Exemplos – Complexidade assintóFca no pior caso – Complexidade problemas – Algoritmos aproximaFvos
Metodologia CienTfica Classificação
![Page 167: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/167.jpg)
PESQUISA QUALITATIVA
• Pesquisa Bibliográfica • Não se limita a coletar e resumir arFgos relevantes para a solução de um problema.
• Consiste na revisão sistemáFca de todos os arFgos publicados na literatura, resultando numa avaliação qualitaFva e quanFtaFva desses resultados.
• Os objeFvos geralmente são – Classificar as diferentes estratégias de solução. – IdenFficar os pontos fortes e fracos de cada uma delas e (se possível), – agregar as diversas abordagens numa única estratégia de solução.
Metodologia CienTfica Classificação
![Page 168: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/168.jpg)
PESQUISA QUALITATIVA
• Pesquisa QualitaFva • Baseia-‐se na observação cuidadosa dos ambientes onde o sistema está sendo ou será usado.
• Procura entender as várias perspecFvas dos usuários do sistema.
• Os principais métodos de pesquisa qualitaFva são: – Pesquisa observacional (estudo de casos) – Pesquisa intervencionista (pesquisa-‐ação)
Metodologia CienTfica Classificação
![Page 169: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/169.jpg)
• Pesquisa QuanFtaFva – Caracteriza-‐se pelo emprego de quanFficação dos dados e dos resultados
obFdos. – Baseada na medida de variáveis objeFvas.
• Número de pontos de acoplamento entres subsistemas. • Qualidade da solução heurísFca.
– Fundamentada na comparação de resultados e no uso intensivo de estaHsFca. – Técnicas mais uFlizadas:
• benchmarks, • simulações, • quesFonários.
Metodologia CienTfica Classificação
![Page 170: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/170.jpg)
• Pesquisa Experimental – Faz uso de experimentos para confirmar ou refutar suas hipóteses. – Um experimento é projetado para avaliar cada hipótese. – O resultado do experimento deve ser sinteFzado e apresentado de forma que
a conclusão seja facilmente idenFficada. – É o Fpo de pesquisa mais uFlizada na ciência da computação.
Metodologia CienTfica Classificação
![Page 171: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/171.jpg)
PESQUISA EXPERIMENTAL
• Antes de iniciar uma pesquisa experimental: • Definia o problema que você irá abordar. • Tenha claro quais são as hipóteses que você quer confirmar ou refutar.
• Pense em quais os experimentos você pode realizar para confirmar suas hipóteses.
• Conheça a literatura e idenFfique qual é o seu baseline.
Metodologia CienTfica Pesquisa Experimental
![Page 172: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/172.jpg)
PESQUISA EXPERIMENTAL
• Ao descrever uma pesquisa experimental: • Definia claramente e objeFvamente o problema que está sendo tratado e seus objeFvos.
• JusFfique a uFlização de uma abordagem experimental e a necessidade de cada experimento que você realizou.
• Mencione detalhes suficientes de cada experimento. • O leitor tem que ser capaz de reproduzir seus experimentos e chegar nos mesmos resultados. • Mas não dê detalhes de mais!
• Tome muito cuidado na apresentação dos dados experimentais.
• Quais e como reportar os dados? • Sempre explique as tabelas e gráficos.
• Apoie todas as suas conclusões com os dados experimentais que você gerou. • Cuidado para não exagerar nas generalizações!
• Concentre-‐se na causa e não no efeito.
Metodologia CienTfica Pesquisa Experimental
![Page 173: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/173.jpg)
![Page 174: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/174.jpg)
Estrutura do Ar'go • Introdução
– Contextualização • “Problema real”
– Definição do problema • Modelo de oFmização
– Caracterização do problema • Complexidade polinomial ou exponencial? • Problemas semelhantes
– MoFvação • Por que vale a pena estudar este problema
– ObjeFvos • Até onde você quer chegar nesta pesquisa
– JusFficaFva • Por que é importante aFngir estes objeFvos
![Page 175: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/175.jpg)
Estrutura do Ar'go
• Introdução (con@nuação) – Roteiro texto
![Page 176: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/176.jpg)
Estrutura do Ar'go
• Trabalhos relacionados – Apresentar as soluções que já foram propostas para o problema
• Destacar pontos fortes • Destacar pontos fracos • Resumir conclusões • Lembre-‐se que seu leitor sempre pode ler o trabalho original
– Não se prender as soluções específicas para o problema que você está tratando
• Soluções bem sucedidas para problemas semelhantes ao seu são as melhores candidatas para se iniciar a pesquisa
![Page 177: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/177.jpg)
Estrutura do Ar'go
• Trabalhos relacionados (con@nuação) – Apresentar estes trabalhos sistemaFcamente
• Separar por Fpo do algoritmo (exato vs. heurís@co) • Separar pelo Fpo de estratégia de solução (o@mização vs. simulação)
• Entre vários outros
![Page 178: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/178.jpg)
Estrutura do Ar'go
• Trabalhos relacionados (con@nuação) – MoFvar a escolha da estratégia de solução que está sendo proposta!
• Sua solução deve ser original, • mas ao mesmo tempo fundamentada na literatura.
![Page 179: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/179.jpg)
Estrutura do Ar'go
• Metodologia – Descrição geral do algoritmo – Pseudocódigo (explicado) de cada procedimento (não trivial)
– Calculo da complexidade
![Page 180: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/180.jpg)
Estrutura do Ar'go
• Experimentos Computacionais – Apresentar as condições em que o experimentos foram realizados. • Máquina (Clock, RAM, 32/64 bits, etc.), S.O., gerador de números aleatórios, entre outros.
• Técnica empregada: Benchmarks vs. Simulação • Instâncias reais • Instâncias aleatórias • Instâncias ad-‐hoc (onde alguma propriedade é garanFda)
• Instâncias degeneradas
![Page 181: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/181.jpg)
Estrutura do Ar'go
• Experimentos Computacionais (con@nuação) • Para cada hipótese levantada
– Apresentar a hipótese – Descrever o experimento que será realizado para avaliar esta hipótese
– Apresentar os resultados do experimento • Através de tabelas e gráficos. • Descrever detalhadamente as tabelas e gráficos.
– DiscuFr os resultados do experimento • “Ler” as tabelas e os gráficos no texto. • Concluindo com a confirmação ou refutação da hipótese.
![Page 182: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/182.jpg)
Estrutura do Ar'go
• Experimentos Computacionais – Ajuste de parâmetros das heurísFcas.
• Realizar um experimento para ajustar cada parâmetro. – Critério de parada – Critério de aceitação – Tamanho da lista restrita de candidatos – Entre (muitos) outros.
![Page 183: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/183.jpg)
Estrutura do Ar'go
• Experimentos Computacionais (con@nuação) – Ajuste de parâmetros das heurísFcas (con@nuação) • Se os parâmetros forem muitos? • Se um parâmetro depender muito do valor de outros parâmetros?
– Em que ordem ajustar cada parâmetro?
– Você também pode usar valores muito usados na literatura.
![Page 184: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/184.jpg)
Estrutura do Ar'go
• Experimentos Computacionais – Avaliar qualidade
![Page 185: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/185.jpg)
Estrutura do Ar'go
• Experimentos Computacionais – Avaliar qualidade vs. tempo
![Page 186: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/186.jpg)
Estrutura do Ar'go
• Experimentos Computacionais – Avaliar qualidade vs. tempo (con@nuação)
![Page 187: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/187.jpg)
Estrutura do Ar'go
• Experimentos Computacionais – Avaliar qualidade vs. Tempo (con@nuação)
![Page 188: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/188.jpg)
Estrutura do Ar'go
• Experimentos Computacionais – Tempo (em relação a implementação padrão)
![Page 189: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/189.jpg)
Estrutura do Ar'go
• Experimentos Computacionais – Avaliar robustez
![Page 190: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/190.jpg)
Estrutura do Ar'go
• Conclusões / Considerações finais – RepeFr os objeFvos do trabalho – Resumir as conclusões do trabalho
• para cada hipótese levantada – Propor trabalhos futuros
![Page 191: Heuristicas e metaheuristicas](https://reader034.fdocument.pub/reader034/viewer/2022042713/5496950eac7959222e8b514e/html5/thumbnails/191.jpg)
LEITURA RECOMENDADA
• How to present a paper on experimental work with algorithms • (McGeoch e Moret).
• A theoreFcian's guide do the experimental anaysis of algorithms • (David S. Johnson)
• Performance of various computers using standard linear equalFons soTware • (Jack J. Dongarra)
• TTTPLOTS: A perl program to create Fme-‐to-‐target plots • (R.M. Aiex, M.G.C. Resende, and C.C. Ribeiro)
Algumas referências