96
Heurís’cas e Metaheurís’cas Thiago F. Noronha Heurís’cas Constru’vas Belo Horizonte, 2012

Heurísticas Construtivas

Embed Size (px)

Citation preview

Page 1: Heurísticas Construtivas

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

Heurís'cas  Constru'vas  

Belo  Horizonte,  2012    

Page 2: Heurísticas Construtivas

Heurís'cas  

•  Heurís3cas  Constru3vas:  – Heurís3cas  Constru3vas  gulosas  – Algoritmos  Aproxima3vos  – Heurís3cas  de  Transformação  (ou  Redução)  – Heurís3cas  de  Arredondamento  Aleatorizado  

Heurísticas e Metaheurísticas

Page 3: Heurísticas Construtivas

Heurís'cas  (Definição)  

 “Heurís3ca  é  parte  de  um  algoritmo  de  o3mização  que  u3liza  informações  

par3culares  de  um  problema  para  ajudar  a  decidir  como  uma  solução  é  construída.  Heurís3cas  são  geralmente  de  classes  

problemas  dependentes.”    (Thomas  Weise)¹  

Heurísticas e Metaheurísticas

1:  Thomas  Weise.  Global  Op3miza3on  Algorithms  ,  Theory  and  Applica3on  

Page 4: Heurísticas Construtivas

Heurís'cas  (Definição)  

Algoritmos  heurís'cos  ou  heurís'cas  são  procedimentos  que  em  um  curto  período  de  

tempo  conseguem  encontrar  soluções  razoáveis,  sem  garan'as  o'malidade.    

Heurísticas e Metaheurísticas

Page 5: Heurísticas Construtivas

Heurís'cas  Constru'vas  

•  Dada   uma     instância   de   um   problema   de   o3mização,   as  heurís'cas   constru'vas   constroem   uma   solução   viável  para  o  problema,  onde:  –  Somente  a  viabilidade  da  solução  é  garan3da.  –  A   princípio,   nenhuma   propriedade   relacionada   a  qualidade  da  solução  construída  é  exigida.  

•  Entretanto,  espera-­‐se  que  esta  heurís3ca  seja  projetada  de  forma  a  almejar  soluções  cujo  custo  seja  próximo  ao  custo  da  solução  ó3ma  para  o  problema.  

•  Algoritmos   gulosos   encontram   soluções   ó3mas   para  diversos  problema  de  o3mização.  

Heurísticas e Metaheurísticas

Page 6: Heurísticas Construtivas

Heurís'cas  Constru'vas  Gulosas  

•  Forma  mais  simples  e  mais  u3lizada  para  se  projetar  uma   heurís3ca   constru3va   para   um   problema   de  o3mização.  

•  Parte  de  uma  solução  vazia.  •  Adiciona   seqüencialmente   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.    

Heurísticas e Metaheurísticas

Page 7: Heurísticas Construtivas

Heurís'cas  Constru'vas  Gulosas  Alg  Heurís3caConstru3va(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 8: Heurísticas Construtivas

Heurís'cas  Constru'vas  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 9: Heurísticas Construtivas

Heurís'cas  Constru'vas:  TSP    Heurís'ca  Vizinho  mais  próximo  

Escolha  um  vér3ce  inicial      

Enquanto  houver  vér3ce  não-­‐visitado  efetue:  •  Selecione  vér3ce  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ér3ce  

inicial;  " Aplicar  a  par3r  de  cada  nó:  O(n3).    

V=18

4

1 3

2

5

7

5

1

2

3

Page 10: Heurísticas Construtivas

4

3

2

1

2 2

3 3

1

Heurís'cas  Constru'vas:  TSP    Heurís'ca  Vizinho  mais  próximo  

Possibilidade  de  não  gerar  soluções:  

Heurísticas e Metaheurísticas

Page 11: Heurísticas Construtivas

5

4 3

2

1

2

1

1

1

1

2 2

2 2 M

Pode  gerar  soluções  arbitrariamente  ruins:  

Heurís'cas  Constru'vas:  TSP    Heurís'ca  Vizinho  mais  próximo  

Heurísticas e Metaheurísticas

Page 12: Heurísticas Construtivas

Algoritmos  Aproxima'vos  

•  Dada  uma    instância  de  um  problema  de  o3mizaçã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  ó3ma.  

•  Por   exemplo,   para   є   =   2,   um   algoritmo   é   2-­‐aproxima3vo,   se   o   valor   da   solução   produzida   é   no  pior   caso   duas   vezes   pior   que   o   valor   da   solução  ó3ma.  

Heurísticas e Metaheurísticas

Page 13: Heurísticas Construtivas

Algoritmos  Aproxima'vos    Problema  do  Caixeiro  Viajante  

•  Heurís3ca  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 14: Heurísticas Construtivas

Algoritmos  Aproxima'vos    Problema  do  Caixeiro  Viajante  

•  Heurís3ca  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

Page 15: Heurísticas Construtivas

Algoritmos  Aproxima'vos    Problema  do  Caixeiro  Viajante  

•  Heurís3ca  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  par3ndo  de  qualquer  vér3ce,  guardando  em  uma  lista  todos  os  vér3ces  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

Page 16: Heurísticas Construtivas

Algoritmos  Aproxima'vos    Problema  do  Caixeiro  Viajante  

•  Heurís3ca  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  par3ndo  de  qualquer  vér3ce,  guardando  em  uma  lista  todos  os  vér3ces  que  são  visitados.  

–  Percorra  a  lista  de  vér3ces  visitados  eliminando  os  vér3ces  repe3dos,  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

Page 17: Heurísticas Construtivas

Algoritmos  Aproxima'vos    Problema  do  Caixeiro  Viajante  

•  A  heurís3ca  da  Árvore  Geradora  Mínima  Dupla  é      2-­‐aproximado.  

•  Prova:    –  Sejam    

•  H*  o  ciclo  hamiltoniano  ó3mo,    •  T*  a  árvore  geradora  mínima  do  grafo  e    •  H  a  solução  retornada  pela  heurís3ca  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 18: Heurísticas Construtivas

•  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  u3lizadas.  

•  O  Problema  de  Bin  Packing  é  NP  -­‐  Diucil.  

Algoritmos  Aproxima'vos     Problema  de  Bin  Packing  1-­‐D  

Heurísticas e Metaheurísticas

Page 19: Heurísticas Construtivas

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  

Algoritmos  Aproxima'vos     Problema  de  Bin  Packing  1-­‐D  

Heurísticas e Metaheurísticas

Page 20: Heurísticas Construtivas

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:

Algoritmos  Aproxima'vos     Problema  de  Bin  Packing  1-­‐D  

Heurísticas e Metaheurísticas

Page 21: Heurísticas Construtivas

•  Heurís3ca  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  exis3r,  uma  nova  caixa  é  criada  e  o  item  inserido.  

Algoritmos  Aproxima'vos     Problema  de  Bin  Packing  1-­‐D  

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

Page 22: Heurísticas Construtivas

•  Heurís3ca  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  exis3r,  uma  nova  caixa  é  criada  e  o  item  inserido.  

Algoritmos  Aproxima'vos     Problema  de  Bin  Packing  1-­‐D  

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

Page 23: Heurísticas Construtivas

•  Heurís3ca  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  exis3r,  uma  nova  caixa  é  criada  e  o  item  inserido.  

Algoritmos  Aproxima'vos     Problema  de  Bin  Packing  1-­‐D  

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

Page 24: Heurísticas Construtivas

•  Heurís3ca  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  exis3r,  uma  nova  caixa  é  criada  e  o  item  inserido.  

Algoritmos  Aproxima'vos     Problema  de  Bin  Packing  1-­‐D  

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

Page 25: Heurísticas Construtivas

•  Heurís3ca  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  exis3r,  uma  nova  caixa  é  criada  e  o  item  inserido.  

Algoritmos  Aproxima'vos     Problema  de  Bin  Packing  1-­‐D  

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

Page 26: Heurísticas Construtivas

•  Heurís3ca  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  exis3r,  uma  nova  caixa  é  criada  e  o  item  inserido.  

Algoritmos  Aproxima'vos     Problema  de  Bin  Packing  1-­‐D  

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

Page 27: Heurísticas Construtivas

•  Heurís3ca  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  exis3r,  uma  nova  caixa  é  criada  e  o  item  inserido.  

Algoritmos  Aproxima'vos     Problema  de  Bin  Packing  1-­‐D  

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

Page 28: Heurísticas Construtivas

•  Heurís3ca  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  exis3r,  uma  nova  caixa  é  criada  e  o  item  inserido.  

Algoritmos  Aproxima'vos     Problema  de  Bin  Packing  1-­‐D  

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

Page 29: Heurísticas Construtivas

•  Heurís3ca  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  exis3r,  uma  nova  caixa  é  criada  e  o  item  inserido.  

Algoritmos  Aproxima'vos     Problema  de  Bin  Packing  1-­‐D  

0.5 0.7

0.5 0.2

0.4

0.2

0.5

0.1 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

Page 30: Heurísticas Construtivas

•  A  heurís3ca  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  ó3mo  de  caixas  é  

 –  Assim,  temos  que  B  -­‐  1  <  2*OPT  e  portanto  B  ≤  2*OPT.  

•  A  heurís3ca  da  FF  é    (1.7*OPT  +  2)-­‐aproximada.  •  A  heurís3ca  da  FFD  é    (1.23*OPT  +  1)-­‐aproximada.  

 

Algoritmos  Aproxima'vos     Problema  de  Bin  Packing  1-­‐D  

Heurísticas e Metaheurísticas

Page 31: Heurísticas Construtivas

Redução  Heurís'ca  

•  Redução  –  uma  redução  é  uma  transformação  de  um  problema  em  outro.  –  o  problema  A  é  reduzvel  ao  problema  B  se  existe  uma  maneira  de  

transformar  uma  solução  para  B  numa  solução  para  A  

•  Heurís3ca  de  redução  –  Para  construir  uma  heurís3ca  para  o  problema  A,  –  Transforma-­‐se  A  em  um  problema  B  (de  forma  exata  ou  heurís3ca),  –  resolve  B  com  com  algum  algoritmo  (exato  ou  heurís3co),  –  Constrói  uma  solução  viável  para  A  a  par3r  da  solução  gerada  para  B.  

– Heurísticas e Metaheurísticas

Page 32: Heurísticas Construtivas

•  Mul3plexação  WDM.  •  As  conexões  são  estabelecidas  por  caminhos  ó3cos.  •  Comutadores  totalmente  ó3cos.  •  Sem  conversores  de  comprimentos  de  onda.  

Heurísticas e Metaheurísticas

Heurís'cas  de  Redução    Roteamento  e  atribuição  mínima  de    Comprimentos  de  onda  

Page 33: Heurísticas Construtivas

Heurís'cas  de  Redução    Roteamento  e  atribuição  mínima  de    Comprimentos  de  onda  

Heurísticas e Metaheurísticas

Page 34: Heurísticas Construtivas

•  Estabelecer  um  conjunto  de  caminhos  ó3cos.  •  Atribuir  um  determinado  comprimento  de  onda  para  cada  uma  deles.  

•  Dois   caminhos   ó3cos   que   compar3lham   algum  enlace   da   rede   devem   ter   comprimentos   de   onda  diferentes.    

•  Minimizar  o  número  total  de  comprimentos  de  onda  u3lizado.  

Heurísticas e Metaheurísticas

Heurís'cas  de  Redução    Roteamento  e  atribuição  mínima  de    Comprimentos  de  onda  

Page 35: Heurísticas Construtivas

•  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

Heurís'cas  de  Redução    Roteamento  e  atribuição  mínima  de    Comprimentos  de  onda  

-­‐  Heurís'cas  de  Duas  Fases  -­‐  

Page 36: Heurísticas Construtivas

•  Roteamento  por  caminhos  mais  curtos.  

Conexões: (a -> e) (b -> f) (c -> m) (d -> b) (e -> h)

Heurís'cas  de  Redução    Roteamento  e  atribuição  mínima  de    Comprimentos  de  onda  

-­‐  Heurís'cas  de  Duas  Fases  -­‐  

Page 37: Heurísticas Construtivas

1

5 2

4 3

•  Grafo  de  Conflito.  

Conexões: (a -> e) (b -> f) (c -> m) (d -> b) (e -> h)

Heurís'cas  de  Redução  Roteamento  e  atribuição  mínima  de    Comprimentos  de  onda  

-­‐  Heurís'cas  de  Duas  Fases  -­‐  

Page 38: Heurísticas Construtivas

1

5 2

4 3

•  Coloração  de  Grafos.  

Conexões: (a -> e) : w1 (b -> f) : w2 (c -> m) : w3 (d -> b) : w2 (e -> h) : w1

Heurís'cas  de  Redução  Roteamento  e  atribuição  mínima  de    Comprimentos  de  onda  

-­‐  Heurís'cas  de  Duas  Fases  -­‐  

Page 39: Heurísticas Construtivas

1 0

6

3

2

4 5

7

8

Heurísticas e Metaheurísticas

Heurís'cas  de  Redução  Problema  de  coloração  de  par'ções  

Page 40: Heurísticas Construtivas

1

6

3

5

8

Heurísticas e Metaheurísticas

Heurís'cas  de  Redução  Problema  de  coloração  de  par'ções  

Page 41: Heurísticas Construtivas

Conexões: (a -> e) (b -> f) (c -> m) (d -> b) (e -> h)

Coloração  de  Grafos.  

Heurís'cas  de  Redução    Roteamento  e  atribuição  mínima  de    Comprimentos  de  onda  

-­‐  Heurís'cas  de  Duas  Fases  -­‐  

Page 42: Heurísticas Construtivas

1 0

6

3

2

4 5

7

8

Heurís'cas  de  Redução  Roteamento  e  atribuição  mínima  de    Comprimentos  de  onda  

-­‐  Heurís'cas  de  Duas  Fases  -­‐  

Page 43: Heurísticas Construtivas

1

6

3

5

8

Conexões: (a -> e) : w1 (b -> f) : w2 (c -> m) : w2 (d -> b) : w1 (e -> h) : w1

Heurís'cas  de  Redução    Roteamento  e  atribuição  mínima  de    Comprimentos  de  onda  

-­‐  Heurís'cas  de  Duas  Fases  -­‐  

Page 44: Heurísticas Construtivas

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

•  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

Page 45: Heurísticas Construtivas

Heurísticas e Metaheurísticas

Nós  de  Steiner  

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

Page 46: Heurísticas Construtivas

Heurísticas e Metaheurísticas

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

Page 47: Heurísticas Construtivas

Heurísticas e Metaheurísticas

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

Page 48: Heurísticas Construtivas

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

 Heurís'ca  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

Page 49: Heurísticas Construtivas

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

 Heurís'ca  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 50: Heurísticas Construtivas

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

 Heurís'ca  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 51: Heurísticas Construtivas

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

 Heurís'ca  da  Árvore  Geradora  Mínima  •  Elimina  da  árvore  os  nós  de  Steiner  de  grau  1.  

Heurísticas e Metaheurísticas

Page 52: Heurísticas Construtivas

Heurísticas e Metaheurísticas

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

 Heurís'ca  da  Árvore  Geradora  Mínima  •  Elimina  da  árvore  os  nós  de  Steiner  de  grau  1.  

Page 53: Heurísticas Construtivas

Heurís'cas  de  Arredondamento  Aleatorizado  

•  Problema  de  Programação  Linear  Inteira  (PLI)      

   

•  PLI  é  NP-­‐Diucil  

Heurísticas e Metaheurísticas

Page 54: Heurísticas Construtivas

Heurís'cas  de  Arredondamento  Aleatorizado  

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

•  Este  problema  pode  ser  resolvido  em  tempo  polinomial.  

Heurísticas e Metaheurísticas

Page 55: Heurísticas Construtivas

Heurís'cas  de  Arredondamento  Aleatorizado  

•  Redução  para  PLI  –  Conges-on  minimiza-on  Mul-commodity  flow  problem  –  Conectar  diversos  pares  de  vér-ces  no  grafo  minimizando  a  aresta  

mais  conges-onada.  

             

Heurísticas e Metaheurísticas

10

4

7

3 9

2 8

6

5

1

Page 56: Heurísticas Construtivas

Heurís'cas  de  Arredondamento  Aleatorizado  

•  Redução  para  PLI  –  Conges-on  minimiza-on  Mul-commodity  flow  problem  

               

Page 57: Heurísticas Construtivas

Heurís'cas  de  Arredondamento  Aleatorizado  

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

             

Page 58: Heurísticas Construtivas

•  Implementação  de  Algoritmos  aproxima3vos:  –  Heurís3cas  de  arredondamento  aleatório  (Raghavan  e  Tompson,  

1987)  

 •  A  idéia  básica  destes  métodos  é:  

–  relaxar  um  problema  de  PLI  em  PL;  –  obter  uma  solução  ó3ma  do  problema  relaxado  –  converter  essa  solução  numa  solução  viável  aproximada  do  problema  

PLI  original.  

 

Heurísticas de Arredondamento Aleatorizado

Page 59: Heurísticas Construtivas

•  A  abordagem  básica  e  composta  por  três  passos:  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  par3r  da  solução  fracionária  por  meio  

de  arredondamento  do  valor  das  variáveis  fracionárias.    

Heurísticas de Arredondamento Aleatorizado

Page 60: Heurísticas Construtivas

10

4

7

3 9

2 8

6

5

1

sd(0.33)   (0.35)  

(0.32)  

(0.33)   (0,28)  

Heurísticas de Arredondamento Aleatorizado

(0.10)  

(0.25)  

•  Redução  para  PLI  –  Seleciona  uma  conjunto  de  rotas  para  cada  par  (s,d)  em  P.  

             

Page 61: Heurísticas Construtivas

10

4

7

3 9

2 8

6

5

1

sd(0.33)   (0.35)  

(0.32)  

(0.33)   (0,28)  

Heurísticas de Arredondamento Aleatorizado

(0.10)  

(0.25)  

•  Redução  para  PLI  –  Seleciona  uma  conjunto  de  rotas  para  cada  par  (s,d)  em  P.  

             

Page 62: Heurísticas Construtivas

•  τi  =  0.02  

10

4

7

3 9

2 8

6

5

1

sd(0.33)   (0.35)  

(0.32)  

(0.33)   (0,28)  

Heurísticas de Arredondamento Aleatorizado

(0.10)  

(0.25)  

Page 63: Heurísticas Construtivas

•  τi  =  0.02  

10

4

7

3 9

2 8

6

5

1

sd(0.33)   (0.33)  

(0.32)  

(0.33)   (0,28)  

Heurísticas de Arredondamento Aleatorizado

(0.08)  

(0.25)  

Page 64: Heurísticas Construtivas

•  τi  =  0.02  

10

4

7

3 9

2 8

6

5

1

sd(0.33)   (0.33)  

(0.32)  

(0.33)   (0,28)  

Heurísticas de Arredondamento Aleatorizado

(0.08)  

(0.25)  

Page 65: Heurísticas Construtivas

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

Heurísticas de Arredondamento Aleatorizado

(0.08)  

(0.25)  

Page 66: Heurísticas Construtivas

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

Heurísticas de Arredondamento Aleatorizado

(0.00)  

(0.25)  

Page 67: Heurísticas Construtivas

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

Heurísticas de Arredondamento Aleatorizado

(0.25)  

Page 68: Heurísticas Construtivas

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

Heurísticas de Arredondamento Aleatorizado

(0.25)  

Page 69: Heurísticas Construtivas

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

Heurísticas de Arredondamento Aleatorizado

(0.25)  

Page 70: Heurísticas Construtivas

•  τ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ísticas de Arredondamento Aleatorizado

Page 71: Heurísticas Construtivas

•  τ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ísticas de Arredondamento Aleatorizado

Page 72: Heurísticas Construtivas

•  τ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ísticas de Arredondamento Aleatorizado

Page 73: Heurísticas Construtivas

•  τ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ísticas de Arredondamento Aleatorizado

Page 74: Heurísticas Construtivas

•  τ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ísticas de Arredondamento Aleatorizado

Page 75: Heurísticas Construtivas

•  τ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ísticas de Arredondamento Aleatorizado

Page 76: Heurísticas Construtivas

•  τ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ísticas de Arredondamento Aleatorizado

Page 77: Heurísticas Construtivas

•  τ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ísticas de Arredondamento Aleatorizado

Page 78: Heurísticas Construtivas

•  τ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ísticas de Arredondamento Aleatorizado

Page 79: Heurísticas Construtivas

•  τ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ísticas de Arredondamento Aleatorizado

Page 80: Heurísticas Construtivas

•  τ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ísticas de Arredondamento Aleatorizado

Page 81: Heurísticas Construtivas

•  τ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ísticas de Arredondamento Aleatorizado

Page 82: Heurísticas Construtivas

Heurís'cas  de  Arredondamento  Aleatorizado  

0.02 0.05

0.08

0.25

0.28

0.32

•  τi  =  0.02,  0.08  ,  0.25  ,  0.32,  0.05,  0.28  

Page 83: Heurísticas Construtivas

Heurís'cas  de  Arredondamento  Aleatorizado  

0.19 0.21

0.28 0.32

•  τj  =  0.19,  0.21  ,  0.32,  0.28  

Page 84: Heurísticas Construtivas

Heurís'cas  de  Arredondamento  Aleatorizado  

0.3 0.3

0.4

•  τK  =  0.3  ,  0.3,  0.4  

Page 85: Heurísticas Construtivas

Heurís'cas  de  Arredondamento  Aleatorizado  

0.3 0.3

0.4

•  Aleatorização  –  Seleciona  uma  roda  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

τI

τK

τJ

Page 86: Heurísticas Construtivas

Representação  dos  dados  de  Entrada  TSP  

•  Matriz  de  per3nência  vs.  Listas  de  adjacências  

Heurísticas e Metaheurísticas

4

3

2

1

2 2

3 3

1

Page 87: Heurísticas Construtivas

•  Vetor  de  per3nência  

Heurísticas e Metaheurísticas

Soluções  viáveis:  (1,1,1,1,0,0)  (1,0,1,0,1,1)  (0,1,0,1,1,1)    

c d

a b e1

e5

e6

e2 e4

e3

Representação  das  Soluções  TSP  

Page 88: Heurísticas Construtivas

Representação  das  Soluções  TSP  

•  Vetor  de  sucessores  

Heurísticas e Metaheurísticas

a - d - c - b - a

b a c d c b a d

c d

a b e1

e5

e6

e2 e4

e3

Page 89: Heurísticas Construtivas

•  Permutação  circular  

Heurísticas e Metaheurísticas

adcba  bcdab  dcbad  abcda  cbadc    

c d

a b e1

e5

e6

e2 e4

e3

Representação  das  Soluções  TSP  

Page 90: Heurísticas Construtivas

•  Permutação  circular  

Heurísticas e Metaheurísticas

a

bcd dcb cbd dbc bdc cbd

a

c d

a b e1

e5

e6

e2 e4

e3

Representação  das  Soluções  TSP  

Page 91: Heurísticas Construtivas

•  Permutação  circular  

Heurísticas e Metaheurísticas

bcd dcb cbd dbc bdc cbd

a a

c d

a b e1

e5

e6

e2 e4

e3

Representação  das  Soluções  TSP  

Page 92: Heurísticas Construtivas

Heurís'cas  constru'vas    Não  determinís3cas  

•  Aleatorização:  •  Algoritmo  guloso  encontra  sempre  a  mesma  solução  para  um  dado  problema,  exceto  por  eventuais  empates;  

•  Aleatorização  permite  alcançar  diversidade  nas  soluções  encontradas;  

•  Heurís3cas  constru3vas  aleatorizadas  pode  ser  u3lizadas  em  heurís3cas  de  mul3par3da.  

Heurísticas e Metaheurísticas

Page 93: Heurísticas Construtivas

Heurís'cas  constru'vas    Não  determinís3cas  

•  Heurís3cas  gulosas  aleatorizadas  – A  cada  iteração,  cria  uma  lista  de  candidatos  L  e  força  uma  escolha  aleatória  a  cada  iteração;  

– A  qualidade  das  soluções  ob3das  depende  da  qualidade  dos  elementos  na  lista  de  candidatos  L;  

– A  diversidade  das  soluções  encontradas  depende  da  cardinalidade  da  lista  L;    

 

Heurísticas e Metaheurísticas

Page 94: Heurísticas Construtivas

Heurís'cas  constru'vas    Não  determinís3cas  

•  Heurís3cas  gulosas  aleatorizadas  •  Casos  extremos:  

•  algoritmo  guloso  puro  (L  =  Ø)  •  solução  gerada  aleatoriamente  (L  =  C)  

•  A  cardinalidade  pode  ser  limitada:  •  pelo  número  de  elementos:  cons3tuída  pelos  p  elementos  com  melhores  custos  incrementais  à  cardinality-­‐based  ;  

•  pela  qualidade  dos  elementos  à    value-­‐based  .  

 Heurísticas e Metaheurísticas

Page 95: Heurísticas Construtivas

Heurís'cas  constru'vas    Não  determinís3cas  

•  Aleatorização  por  perturbação:  •  Primeiramente,  altera  (perturba)  os  dados  de  entrada  aleatoriamente.  

•  Em  seguida,  aplica  uma  heurís3ca  constru3va  tradicional  a  instância  perturbada;  

•  Por  fim,  calcula  o  custo  da  solução  em  função  dos  dados  originais.  

•  A  qualidade  e  a  diversidade  das  soluções  ob3das  depende  da  intensidade  da  perturbação  realizada;  

Heurísticas e Metaheurísticas

Page 96: Heurísticas Construtivas

Heurís'cas  de  Mul'par'da  

•  Pseudocódigo  

 

Heurísticas e Metaheurísticas

Até  que  uma  condição  de  para  seja  sa-sfeita  Faça  –   Aplicar  uma  heurís-ca  constru-va  randomizada;  –   Atualizar  a  melhor  solução  encontrada;  

Retornar  a  melhor  solução  encontrada.