heuristicas e metaheuristicas

191
Heurís’cas e Metaheurís’cas Thiago F. Noronha Apresentação do curso Belo Horizonte, 2012

Upload: afonsohs

Post on 18-Dec-2014

745 views

Category:

Education


2 download

DESCRIPTION

Slides atualizados da disciplina Heurísticas e Metaheurísticas, 2013.

TRANSCRIPT

Page 1: Heuristicas e metaheuristicas

Heurís'cas  e  Metaheurís'cas  Thiago  F.  Noronha  

Apresentação  do  curso  

Belo  Horizonte,  2012    

Page 2: Heuristicas e metaheuristicas

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

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

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

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

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

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

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

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

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

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

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

Heurís'cas  e  Metaheurís'cas  Thiago  F.  Noronha  

Revisão  de  Teoria  da  Complexidade  

Belo  Horizonte,  2012    

Page 14: Heuristicas e metaheuristicas

•  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

•  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

•  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

•  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

•  InserFonSort  

Heurís'cas  e  Metaheurís'cas      

Teoria  da  Complexidade  

Page 19: Heuristicas e metaheuristicas

•  InserFonSort  

Heurís'cas  e  Metaheurís'cas      

Teoria  da  Complexidade  

Page 20: Heuristicas e metaheuristicas

•  QuickSort  

Heurís'cas  e  Metaheurís'cas      

Teoria  da  Complexidade  

Page 21: Heuristicas e metaheuristicas

•  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

•  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

•  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

•  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

•  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

•  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

•  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

•  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

•  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

•  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

•  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

Á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

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

•  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

•  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

•  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

•  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

•  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

•  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

•  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

•  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

•  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

Heurís'cas  e  Metaheurís'cas  Thiago  F.  Noronha  

Heurís'cas  Constru'vas  

Belo  Horizonte,  2012    

Page 44: Heuristicas e metaheuristicas

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

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

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

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

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

•  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

•  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

•  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

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

•  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

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

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

•  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

•  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

•  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

•  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

•  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

•  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

•  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

•  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

•  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

•  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

•  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

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

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

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

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

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

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

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

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

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

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

•  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

Heurísticas e Metaheurísticas

Redução  Heurís'ca    min-­‐RWA  

Page 79: Heuristicas e metaheuristicas

•  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

•  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

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

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

1

5 2

4 3

Redução  Heurís'ca    Grafo  de  Conflitos  

Page 84: Heuristicas e metaheuristicas

1

5 2

4 3

w1 w2 w3

Redução  Heurís'ca    Grafo  de  Conflitos  

Page 85: Heuristicas e metaheuristicas

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

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

1 0

6

3

2

4 5

7

8

Redução  Heurís'ca    Grafo  de  Conflitos  

Page 88: Heuristicas e metaheuristicas

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

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

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

Heurísticas e Metaheurísticas

Nós  de  Steiner  

Redução  Heurís'ca    Problema  de  Steiner  em  Grafos  

Page 92: Heuristicas e metaheuristicas

Heurísticas e Metaheurísticas

Redução  Heurís'ca    Problema  de  Steiner  em  Grafos  

Page 93: Heuristicas e metaheuristicas

Heurísticas e Metaheurísticas

Redução  Heurís'ca    Problema  de  Steiner  em  Grafos  

Page 94: Heuristicas e metaheuristicas

•  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

•  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

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

•  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

•  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

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

•  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

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

•  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

Heurís'cas  de    Arredondamento  Aleatorizado  

•  Redução  para  PLI  –  CongesFon  minimizaFon  MulFcommodity  flow  problem  

               

Page 104: Heuristicas e metaheuristicas

•  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

•  Problema  de  Programação  Linear  (PL)  :  –  Relaxação  Linear  

             

Heurís'cas  de    Arredondamento  Aleatorizado  

Page 106: Heuristicas e metaheuristicas

•  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

 

•  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

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

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

•  τ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

•  τ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

•  τ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

•  τ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

•  τ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

•  τ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

•  τ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

•  τ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

•  τ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

•  τ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

•  τ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

•  τ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

•  τ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

•  τ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

•  τ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

•  τ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

•  τ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

•  τ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

•  τ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

•  τ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

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

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

Heurís'cas  de    Arredondamento  Aleatorizado  

0.3 0.3

0.4

   

•  τ3  =  0.3  ,  0.3,  0.4  

Page 133: Heuristicas e metaheuristicas

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

Heurís'cas  e  Metaheurís'cas  Thiago  F.  Noronha  

Heurís'cas  de  Busca  

Page 135: Heuristicas e metaheuristicas

•  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

• 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

Vizinhança  N1    no  espaço  dos  vetores  {0,1}3  

000  

100  

110  

010   011  

001  

101  

111  

Page 138: Heuristicas e metaheuristicas

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

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

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

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

•  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

Ó'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

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

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

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

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

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

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

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

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

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

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

•  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

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

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

METODOLOGIA  CIENTÍFICA  

Heurís'cas  e  Metaheurís'cas  Thiago  F.  Noronha  

Page 158: Heuristicas e metaheuristicas

"Quem  não  sabe  o  que  procura  não  entende  o  que  encontra"    

Hans  Selye  

Metodologia  CienTfica  

Page 159: Heuristicas e metaheuristicas

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

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

•  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

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

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

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

•  Classificação  –  Pesquisa  analíFca  –  Pesquisa  quanFtaFva  –  Pesquisa  bibliográfica  –  Pesquisa  qualitaFva  –  Pesquisa  experimental    

Metodologia  CienTfica  Classificação  

Page 166: Heuristicas e metaheuristicas

•  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

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

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

•  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

•  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

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

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
Page 174: Heuristicas e metaheuristicas

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

Estrutura  do  Ar'go    

•  Introdução  (con@nuação)  –  Roteiro  texto  

Page 176: Heuristicas e metaheuristicas

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

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

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

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

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

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

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

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

Estrutura  do  Ar'go    

•  Experimentos  Computacionais  – Avaliar  qualidade  

Page 185: Heuristicas e metaheuristicas

Estrutura  do  Ar'go    

•  Experimentos  Computacionais  – Avaliar  qualidade  vs.  tempo  

Page 186: Heuristicas e metaheuristicas

Estrutura  do  Ar'go    

•  Experimentos  Computacionais  – Avaliar  qualidade  vs.  tempo  (con@nuação)  

Page 187: Heuristicas e metaheuristicas

Estrutura  do  Ar'go    

•  Experimentos  Computacionais  – Avaliar  qualidade  vs.  Tempo  (con@nuação)  

Page 188: Heuristicas e metaheuristicas

Estrutura  do  Ar'go    

•  Experimentos  Computacionais  – Tempo  (em  relação  a  implementação  padrão)  

Page 189: Heuristicas e metaheuristicas

Estrutura  do  Ar'go    

•  Experimentos  Computacionais  – Avaliar  robustez  

Page 190: Heuristicas e metaheuristicas

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

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