Heurís'cas	
  e	
  Metaheurís'cas	
  
Thiago	
  F.	
  Noronha	
  
Apresentação	
  do	
  curso	
  
Belo	
  Horizonte,	
  20...
Heurís'cas	
  e	
  Metaheurís'cas	
  
	
  	
  
• 	
  Professor	
  do	
  departamento	
  de	
  Ciência	
  da	
  
computação...
OBJETIVOS
Este	
  curso	
  visa	
  apresentar	
  técnicas	
  fundamentais	
  
e	
  avançadas	
  para	
  a	
  construção	
 ...
PROBLEMAS DE OTIMIZAÇÃO
•  Muitos	
   problemas	
   consistem	
   na	
   busca	
   da	
   melhor	
  
configuração	
   de	
 ...
PROBLEMAS DE OTIMIZAÇÃO
•  Exemplos	
  de	
  aplicações	
  em	
  computação:	
  
•  Compiladores	
  
•  Banco	
  de	
  dad...
HEURÍSTICAS
•  Muitas	
   vezes,	
   não	
   é	
   possível	
   resolver	
   o	
   problema	
   de	
  
oFmização	
  de	
  ...
EMENTA
•  Complexidade	
  de	
  algoritmos	
  e	
  de	
  problemas.	
  
•  Heurís'cas:	
  
–  HeurísFcas	
  ConstruFvas	
 ...
AVALIAÇÃO
•  TR	
  -­‐	
  Resumo	
  de	
  arFgos	
  e	
  capítulos	
  de	
  livros	
  (10	
  pontos)	
  	
  
–  Sobre	
  t...
PRÉ-REQUISITOS
•  Obrigatórios:	
  
•  AEDS	
  II	
  (DCC	
  004)	
  
•  Desejáveis:	
  
•  Gostar	
  de	
  programar	
  
...
BIBLIOGRAFIA
•  Introduc'on	
  to	
  Algorithms	
  
•  Cormen,	
  Leiserson,	
  Rivest,	
  e	
  Stein	
  
	
  
•  Local	
 ...
BIBLIOGRAFIA
•  Algorithms	
  
•  Sedgewick	
  
•  Search	
  Methods	
  
•  Burke	
  e	
  Kendall	
  	
  
•  Handbook	
  o...
PRÉ-REQUISITOS
•  Obrigado	
  Dario	
  Aloise	
  e	
  Laura	
  Bahiense	
  por	
  terem	
  
me	
  cedido	
  vários	
  dos	...
Heurís'cas	
  e	
  Metaheurís'cas	
  
Thiago	
  F.	
  Noronha	
  
Revisão	
  de	
  Teoria	
  da	
  Complexidade	
  
Belo	
...
•  Um	
   algoritmo	
   é	
   uma	
   sequência	
   finita	
   de	
   instruções	
   não	
   ambíguas	
   que	
  
podem	
  ...
•  Um	
   algoritmo	
   é	
   uma	
   seqüência	
   finita	
   de	
   instruções	
   não	
   ambíguas	
   que	
  
podem	
  ...
•  Um	
   algoritmo	
   é	
   uma	
   seqüência	
   finita	
   de	
   instruções	
   não	
   ambíguas	
   que	
  
podem	
  ...
•  Estuda	
  a	
  complexidade	
  inerente	
  aos	
  problemas	
  
computacionais	
  e	
  aos	
  algoritmos	
  que	
  reso...
•  InserFonSort	
  
Heurís'cas	
  e	
  Metaheurís'cas	
  
	
  	
  
Teoria	
  da	
  Complexidade	
  
•  InserFonSort	
  
Heurís'cas	
  e	
  Metaheurís'cas	
  
	
  	
  
Teoria	
  da	
  Complexidade	
  
•  QuickSort	
  
Heurís'cas	
  e	
  Metaheurís'cas	
  
	
  	
  
Teoria	
  da	
  Complexidade	
  
•  Complexidade	
  Polinomial	
  
–  A	
  complexidade	
  de	
  um	
  algoritmo	
  ou	
  de	
  um	
  problema	
  é	
  dita...
•  Como	
  provar	
  a	
  complexidade	
  de	
  um	
  problema?	
  
–  A	
  complexidade	
  de	
  um	
  algoritmo	
  que	
...
•  Como	
  provar	
  a	
  complexidade	
  de	
  um	
  problema?	
  
–  Limites	
  inferiores	
  para	
  a	
  complexidade	...
•  Como	
  provar	
  a	
  complexidade	
  de	
  um	
  problema?	
  
–  Vamos	
  provar	
  que	
  a	
  complexidade	
  de	
...
•  Como	
  provar	
  a	
  complexidade	
  de	
  um	
  
problema?	
  
–  Está	
  provado	
  que	
  a	
  complexidade	
  do	...
•  Tipos	
  de	
  problemas	
  computacionais	
  
–  Problemas	
  de	
  Decisão	
  
–  Problemas	
  de	
  Localização	
  (...
•  Dado	
  um	
  conjunto	
  P	
  de	
  
pontos	
  turísFcos	
  no	
  Rio	
  
de	
  Janeiro,	
  existe	
  um	
  
percurso	...
•  Problema	
  da	
  Sa'sfabilidade	
  (SAT)	
  
–  Dada	
  uma	
  expressão	
  booleana	
  E,	
  existe	
  uma	
  atribui...
•  Dado	
  um	
  conjunto	
  P	
  de	
  
pontos	
  turísFcos	
  no	
  Rio	
  
de	
  Janeiro,	
  encontre	
  um	
  
percurs...
•  Problema	
  de	
  confecção	
  de	
  tabelas	
  para	
  campeonatos	
  esporFvos	
  
	
  
Heurís'cas	
  e	
  Metaheurís...
•  Dado	
  um	
  conjunto	
  P	
  de	
  
pontos	
  turísFcos	
  no	
  Rio	
  
de	
  Janeiro,	
  qual	
  é	
  	
  
percurso...
Árvore	
  geradora	
  mínima	
  (AGM):	
  	
  	
  
	
  
Teorema	
  de	
  Caley:	
  
	
  
Entrada:	
  
1
2 2 3
1
1
Heurís'c...
Problema	
  do	
  Caixeiro	
  viajante	
  (PCV):	
  	
  	
  
	
Dado	
  um	
  grafo	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ...
•  Problemas	
  de	
  decisão	
  
–  Pergunta:	
  “existe	
  uma	
  determinada	
  estrutura	
  saFsfazendo	
  certa	
  
p...
•  A	
  teoria	
  da	
  complexidade	
  concentra-­‐se	
  nos	
  
problemas	
  de	
  decisão.	
  
•  As	
  propriedades	
 ...
•  Problemas	
  que	
  podem	
  ser	
  resolvidos	
  em	
  tempo	
  
polinomial	
  em	
  máquinas	
  de	
  Turing	
  não	
...
•  Problema	
  que	
  podem	
  ser	
  resolvidos	
  em	
  tempo	
  
polinomial	
  em	
  máquinas	
  de	
  Turing	
  	
  
d...
•  Transformação	
  polinomial	
  
–  um	
  problema	
  de	
  decisão	
  A	
  transforma-­‐se	
  polinomialmente	
  em	
  ...
•  Conseqüência	
  	
  
–  Se	
  exisFr	
  uma	
  algoritmo	
  polinomial	
  ALG	
  para	
  SAT,	
  existe	
  um	
  algori...
•  Na	
  busca	
  de	
  algoritmos	
  polinomiais	
  para	
  SAT,	
  diversos	
  
autores	
  propuseram	
  a	
  transforma...
•  Classe	
  dos	
  problemas	
  NP	
  ̶	
  árduos	
  ou	
  NP	
  ̶	
  dihceis:	
  	
  
–  Problemas	
  nos	
  quais	
  qu...
•  Como	
  tratar	
  na	
  práFca	
  os	
  problemas	
  NP	
  ̶	
  diYceis?	
  
–  Algoritmos	
  pseudo-­‐polinomiais	
  
...
Heurís'cas	
  e	
  Metaheurís'cas	
  
Thiago	
  F.	
  Noronha	
  
Heurís'cas	
  Constru'vas	
  
Belo	
  Horizonte,	
  2012...
Heurís'cas	
  
Definição	
  
	
  
HeurísFcas	
  são	
  algoritmos	
  que	
  	
  
em	
  um	
  curto	
  período	
  de	
  temp...
Heurís'cas	
  
Classes	
  
•  HeurísFcas	
  ConstruFvas:	
  
–  Algoritmos	
  AproximaFvos*	
  
–  HeurísFcas	
  Gulosas	
...
Heurís'cas	
  	
  
HeurísFcas	
  construFvas	
  
•  Dada	
   uma	
   	
   instância	
   de	
   um	
   problema	
   de	
   ...
Algoritmos	
  Aproxima'vos	
  
•  Dada	
   uma	
   	
   instância	
   de	
   um	
   problema	
   de	
   oFmização,	
   os	...
Algoritmos	
  Aproxima'vos	
  	
  
Problema	
  do	
  Caixeiro	
  Viajante	
  
•  HeurísFca	
  da	
  Árvore	
  Geradora	
  ...
•  HeurísFca	
  da	
  Árvore	
  Geradora	
  Mínima	
  Dupla	
  
–  Calcule	
  a	
  Árvore	
  Geradora	
  Mínima	
  (AGM)	
...
•  HeurísFca	
  da	
  Árvore	
  Geradora	
  Mínima	
  Dupla	
  
–  Calcule	
  a	
  Árvore	
  Geradora	
  Mínima	
  (AGM)	
...
•  HeurísFca	
  da	
  Árvore	
  Geradora	
  Mínima	
  Dupla	
  
–  Calcule	
  a	
  árvore	
  geradora	
  mínima	
  do	
  g...
Algoritmos	
  Aproxima'vos	
  	
  
Problema	
  do	
  Caixeiro	
  Viajante	
  
•  A	
  heurísFca	
  da	
  Árvore	
  Gerador...
•  Dado	
   um	
   conjunto	
   de	
   itens	
   (i1,i2,i3,	
   ...im)	
   com	
   diferente	
  
volumes	
   (v1,	
   v2,v...
0.5	
  	
  	
  	
  	
  0.7	
  	
  	
  	
  	
  	
  	
  0.5	
  	
  	
  	
  	
  	
  	
  	
  0.2	
  	
  	
  	
  	
  	
  0.4	
 ...
0.5	
  	
  	
  	
  0.7	
  	
  	
  	
  0.5	
  	
  	
  	
  0.2	
  	
  	
  	
  0.4	
  	
  	
  	
  0.2	
  	
  	
  	
  0.5	
  	...
•  HeurísFca	
  First-­‐fit	
  (FF)	
  	
  
–  Os	
  itens	
  são	
  processados	
  em	
  ordem	
  arbitrária.	
  	
  
–  P...
•  HeurísFca	
  First-­‐fit	
  (FF)	
  	
  
–  Os	
  itens	
  são	
  processados	
  em	
  ordem	
  arbitrária.	
  	
  
–  P...
•  HeurísFca	
  First-­‐fit	
  (FF)	
  	
  
–  Os	
  itens	
  são	
  processados	
  em	
  ordem	
  arbitrária.	
  	
  
–  P...
•  HeurísFca	
  First-­‐fit	
  (FF)	
  	
  
–  Os	
  itens	
  são	
  processados	
  em	
  ordem	
  arbitrária.	
  	
  
–  P...
•  HeurísFca	
  First-­‐fit	
  (FF)	
  	
  
–  Os	
  itens	
  são	
  processados	
  em	
  ordem	
  arbitrária.	
  	
  
–  P...
•  HeurísFca	
  First-­‐fit	
  (FF)	
  	
  
–  Os	
  itens	
  são	
  processados	
  em	
  ordem	
  arbitrária.	
  	
  
–  P...
•  HeurísFca	
  First-­‐fit	
  (FF)	
  	
  
–  Os	
  itens	
  são	
  processados	
  em	
  ordem	
  arbitrária.	
  	
  
–  P...
•  HeurísFca	
  First-­‐fit	
  (FF)	
  	
  
–  Os	
  itens	
  são	
  processados	
  em	
  ordem	
  arbitrária.	
  	
  
–  P...
•  HeurísFca	
  First-­‐fit	
  (FF)	
  	
  
–  Os	
  itens	
  são	
  processados	
  em	
  ordem	
  arbitrária.	
  	
  
–  P...
•  HeurísFca	
  First-­‐fit	
  (FF)	
  	
  
–  Os	
  itens	
  são	
  processados	
  em	
  ordem	
  arbitrária.	
  	
  
–  P...
•  A	
  heurísFca	
  da	
  FF	
  é	
  	
  2-­‐aproximada.	
  
–  No	
  máximo	
  uma	
  caixa	
  com	
  menos	
  da	
  met...
Heurís'cas	
  Gulosas	
  
•  Técnica	
  mais	
  simples	
  e	
  mais	
  uFlizada	
  	
  
–  para	
   se	
   projetar	
   u...
Heurís'cas	
  Gulosas	
  	
  
Exemplo	
  
Alg	
  HeurísFcaConstruFva(f(x),	
  s):	
  
1.  s	
  =	
  Ø;	
  
2.  Inicializa	...
Heurís'cas	
  Gulosas	
  
Problema	
  do	
  Caixeiro	
  Viajante	
  
• 	
  TSP,	
  do	
  inglês	
  Traveling	
  Salesperso...
Heurís'cas	
  Gulosas	
  
HeurísFca	
  Vizinho	
  mais	
  próximo	
  para	
  TSP	
  
Escolha	
  um	
  vérFce	
  inicial	
 ...
4
3
2
1
2 2
3 3
1
Heurís'cas	
  Gulosas	
  
HeurísFca	
  Vizinho	
  mais	
  próximo	
  para	
  TSP	
  
•  Pode	
  não	
  g...
5
4 3
2
1
2
1
1
1
1
22
22
M
Heurísticas e Metaheurísticas
Heurís'cas	
  Gulosas	
  
HeurísFca	
  Vizinho	
  mais	
  próxim...
Redução	
  
•  Uma	
  redução	
  é	
  uma	
  transformação	
  de	
  um	
  problema	
  em	
  
outro.	
  
•  O	
  problema	
...
Redução	
  Polinomial	
  
•  SorFng	
  à	
  Convex	
  Hull	
  
•  Subset	
  Sum	
  à	
  Knapsack	
  
•  Shortest	
  Path...
Redução	
  Pseudo-­‐polinomial	
  
•  Bin	
  Packing	
  à	
  MulFprocessor	
  Scheduling	
  
Heurísticas e Metaheurística...
Heurísticas e Metaheurísticas
0.5
0.7
0.5
0.2
0.4
0.2
0.5
0.6
0.1
0.50.4
0.20.2
0.5 0.5 0.6
0.7
0.1
Redução	
  Pseudo-­‐po...
•  Roteamento	
  e	
  atribuição	
  mínima	
  de	
  	
  Comprimentos	
  de	
  onda	
  
(min-­‐RWA)	
  
–  MulFplexação	
  ...
Heurísticas e Metaheurísticas
Redução	
  Heurís'ca	
  	
  
min-­‐RWA	
  
•  Estabelecer	
  um	
  conjunto	
  de	
  caminhos	
  óFcos.	
  
•  Atribuir	
   um	
   determinado	
   comprimento	
   de...
•  Problema	
  de	
  Roteamento.	
  
–  Calcular	
  o	
  caminho	
  mais	
  curto	
  para	
  cada	
  conexão.	
  	
  
•  P...
Conexões:
(a -> e)
(b -> f)
(c -> m)
(d -> b)
(e -> h)
Redução	
  Heurís'ca	
  	
  
Roteamento	
  por	
  caminhos	
  mais	...
Redução	
  Heurís'ca	
  	
  
Grafo	
  de	
  Conflitos	
  
1
52
43
Conexões:
1: (a -> e)
2: (b -> f)
3: (c -> m)
4: (d -> b)...
1
52
43
Redução	
  Heurís'ca	
  	
  
Grafo	
  de	
  Conflitos	
  
1
52
43
w1
w2
w3
Redução	
  Heurís'ca	
  	
  
Grafo	
  de	
  Conflitos	
  
1
52
43
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'c...
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-...
1 0
6
3
2
4 5
7
8
Redução	
  Heurís'ca	
  	
  
Grafo	
  de	
  Conflitos	
  
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	
  
1
6
3
5
8
Heurísticas e Metaheurísticas
Redução	
  Heurís'ca	
  	
  
Problema	
  de	
  coloração	
  de	
  parFções	
  
w1
...
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...
Heurísticas e Metaheurísticas
Nós	
  de	
  Steiner	
  
Redução	
  Heurís'ca	
  	
  
Problema	
  de	
  Steiner	
  em	
  Gra...
Heurísticas e Metaheurísticas
Redução	
  Heurís'ca	
  	
  
Problema	
  de	
  Steiner	
  em	
  Grafos	
  
Heurísticas e Metaheurísticas
Redução	
  Heurís'ca	
  	
  
Problema	
  de	
  Steiner	
  em	
  Grafos	
  
•  Seja	
  o	
  grafo	
  G=(N,	
  A),	
  	
  
–  onde	
  N	
  é	
  o	
  conjunto	
  de	
  nós	
  e	
  A	
  o	
  conjunto	
...
•  HeurísFca	
  da	
  Árvore	
  Geradora	
  Mínima	
  
–  Fixa	
  o	
  conjunto	
  de	
  nós	
  de	
  Steiner	
  de	
  tal...
Redução	
  Heurís'ca	
  
Problema	
  de	
  Steiner	
  em	
  Grafos	
  
•  HeurísFca	
  da	
  Árvore	
  Geradora	
  Mínima	...
•  HeurísFca	
  da	
  Árvore	
  Geradora	
  Mínima	
  
•  Executa	
  um	
  algoritmo	
  para	
  AGM	
  no	
  grafo	
  indu...
•  HeurísFca	
  da	
  Árvore	
  Geradora	
  Mínima	
  
•  Elimina	
  da	
  árvore	
  os	
  nós	
  de	
  Steiner	
  de	
  g...
Heurísticas e Metaheurísticas
•  HeurísFca	
  da	
  Árvore	
  Geradora	
  Mínima	
  
•  Elimina	
  da	
  árvore	
  os	
  n...
•  Problema	
  de	
  Programação	
  Linear	
  (PL)	
  :	
  
	
  	
  	
  	
  	
  	
  	
  
	
  
•  Este	
  problema	
  pode	...
Heurís'cas	
  de	
  	
  
Arredondamento	
  Aleatorizado	
  
•  Problema	
  de	
  Programação	
  Linear	
  Inteira	
  (PLI)...
•  CongesFon	
  minimizaFon	
  MulFcommodity	
  flow	
  problem	
  
–  Conectar	
  diversos	
  pares	
  de	
  vérFces	
  no...
Heurís'cas	
  de	
  	
  
Arredondamento	
  Aleatorizado	
  
•  Redução	
  para	
  PLI	
  
–  CongesFon	
  minimizaFon	
  M...
•  CongesFon	
  minimizaFon	
  MulFcommodity	
  flow	
  problem	
  
–  Restrições	
  de	
  conservação	
  de	
  fluxo	
  na	...
•  Problema	
  de	
  Programação	
  Linear	
  (PL)	
  :	
  
–  Relaxação	
  Linear	
  
	
  	
  	
  	
  	
  	
  	
  
Heurís...
•  CongesFon	
  minimizaFon	
  MulFcommodity	
  flow	
  problem	
  
–  Restrições	
  de	
  conservação	
  de	
  fluxo	
  na	...
 
•  A	
  abordagem	
  básica	
  
1.  Formular	
  o	
  problema	
  para	
  ser	
  resolver	
  como	
  um	
  PLI.	
  
2.  O...
10
4
7
3
9
28
6
5
1
s
d(0.33)	
   (0.35)	
  
(0.32)	
  
(0.33)	
   (0,28)	
  
(0.10)	
  
(0.25)	
  
•  Path	
  Stripping	
...
10
4
7
3
9
28
6
5
1
s
d(0.33)	
   (0.35)	
  
(0.32)	
  
(0.33)	
   (0,28)	
  
(0.10)	
  
(0.25)	
  
•  Path	
  Stripping	
...
•  τi	
  =	
  0.02	
  
10
4
7
3
9
28
6
5
1
s
d(0.33)	
   (0.35)	
  
(0.32)	
  
(0.33)	
   (0,28)	
  
(0.10)	
  
(0.25)	
  ...
•  τi	
  =	
  0.02	
  
10
4
7
3
9
28
6
5
1
s
d(0.33)	
   (0.33)	
  
(0.32)	
  
(0.33)	
   (0,28)	
  
(0.08)	
  
(0.25)	
  ...
•  τi	
  =	
  0.02	
  
10
4
7
3
9
28
6
5
1
s
d(0.33)	
   (0.33)	
  
(0.32)	
  
(0.33)	
   (0,28)	
  
(0.08)	
  
(0.25)	
  ...
•  τi	
  =	
  0.02,	
  0.08	
  
10
4
7
3
9
28
6
5
1
s
d(0.33)	
   (0.33)	
  
(0.32)	
  
(0.33)	
   (0,28)	
  
(0.08)	
  
(...
•  τi	
  =	
  0.02,	
  0.08	
  
10
4
7
3
9
28
6
5
1
s
d(0.25)	
   (0.25)	
  
(0.32)	
  
(0.33)	
   (0,28)	
  
(0.00)	
  
(...
•  τi	
  =	
  0.02,	
  0.08	
  
10
4
7
3
9
28
6
5
1
s
d(0.25)	
   (0.25)	
  
(0.32)	
  
(0.33)	
   (0,28)	
  
(0.25)	
  
H...
•  τi	
  =	
  0.02,	
  0.08	
  
10
4
7
3
9
28
6
5
1
s
d(0.25)	
   (0.25)	
  
(0.32)	
  
(0.33)	
   (0,28)	
  
(0.25)	
  
H...
•  τi	
  =	
  0.02,	
  0.08	
  
10
4
7
3
9
28
6
5
1
s
d(0.25)	
   (0.25)	
  
(0.32)	
  
(0.33)	
   (0,28)	
  
(0.25)	
  
H...
•  τi	
  =	
  0.02,	
  0.08,	
  0.25	
  
10
4
7
3
9
28
6
5
1
s
d
(0.32)	
  
(0.33)	
   (0,28)	
  
Heurís'cas	
  de	
  	
  ...
•  τi	
  =	
  0.02,	
  0.08,	
  0.25	
  
10
4
7
3
9
28
6
5
1
s
d
(0.32)	
  
(0.33)	
   (0,28)	
  
Heurís'cas	
  de	
  	
  ...
•  τi	
  =	
  0.02,	
  0.08,	
  0.25	
  ,	
  0.32	
  
10
4
7
3
9
28
6
5
1
s
d
(0.32)	
  
(0.33)	
   (0,28)	
  
Heurís'cas	...
•  τi	
  =	
  0.02,	
  0.08,	
  0.25	
  ,	
  0.32	
  
10
4
7
3
9
28
6
5
1
s
d
(0.00)	
  
(0.33)	
   (0,28)	
  
Heurís'cas	...
•  τi	
  =	
  0.02,	
  0.08,	
  0.25	
  ,	
  0.32	
  
10
4
7
3
9
28
6
5
1
s
d
(0.33)	
   (0,28)	
  
Heurís'cas	
  de	
  	
...
•  τi	
  =	
  0.02,	
  0.08,	
  0.25	
  ,	
  0.32	
  
10
4
7
3
9
28
6
5
1
s
d
(0.33)	
   (0,28)	
  
Heurís'cas	
  de	
  	
...
•  τi	
  =	
  0.02,	
  0.08,	
  0.25	
  ,	
  0.32,	
  0.05	
  
	
  
	
  
10
4
7
3
9
28
6
5
1
s
d
(0.33)	
   (0,28)	
  
Heu...
•  τi	
  =	
  0.02,	
  0.08,	
  0.25	
  ,	
  0.32,	
  0.05	
  
10
4
7
3
9
28
6
5
1
s
d
(0.28)	
   (0,28)	
  
Heurís'cas	
 ...
•  τi	
  =	
  0.02,	
  0.08,	
  0.25	
  ,	
  0.32,	
  0.05	
  
10
4
7
3
9
28
6
5
1
s
d
(0.28)	
   (0,28)	
  
Heurís'cas	
 ...
•  τi	
  =	
  0.02,	
  0.08,	
  0.25	
  ,	
  0.32,	
  0.05	
  
	
  
10
4
7
3
9
28
6
5
1
s
d
(0.28)	
   (0,28)	
  
Heurís'c...
•  τi	
  =	
  0.02,	
  0.08,	
  0.25	
  ,	
  0.32,	
  0.05,	
  0.28	
  
	
  
	
  
10
4
7
3
9
28
6
5
1
s
d
(0.28)	
   (0,28...
•  τi	
  =	
  0.02,	
  0.08,	
  0.25	
  ,	
  0.32,	
  0.05,	
  0.28	
  	
  
	
  
	
  
10
4
7
3
9
28
6
5
1
s
d
(0.00)	
   (...
0.020.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	...
Heurís'cas	
  de	
  	
  
Arredondamento	
  Aleatorizado	
  
0.190.21
0.28 0.32
	
  
	
  
•  τ2	
  =	
  0.19,	
  0.21	
  ,	...
Heurís'cas	
  de	
  	
  
Arredondamento	
  Aleatorizado	
  
0.30.3
0.4
	
  
	
  
•  τ3	
  =	
  0.3	
  ,	
  0.3,	
  0.4	
  
Heurís'cas	
  de	
  	
  
Arredondamento	
  Aleatorizado	
  
0.30.3
0.4
	
  
	
  
•  Aleatorização	
  
–  Seleciona	
  uma	...
Heurís'cas	
  e	
  Metaheurís'cas	
  
Thiago	
  F.	
  Noronha	
  
Heurís'cas	
  de	
  Busca	
  
•  Espaço	
  de	
  soluções	
  
–  Conjunto	
  de	
  soluções	
  viáveis	
  para	
  o	
  problema.	
  
•  Algoritmos	
  de...
• Problema	
  combinatório:	
  	
  f	
  (s*)	
  =	
  min{	
  f(s):	
  s	
  ∈	
  S	
  }	
  	
  onde	
  S	
  é	
  
um	
  con...
Vizinhança	
  N1	
  	
  
no	
  espaço	
  dos	
  vetores	
  {0,1}3	
  
000	
  
100	
  
110	
  
010	
   011	
  
001	
  
101	...
Problema	
  do	
  Caixeiro	
  viajante	
  (PCV):	
  	
  	
  
	
  
Dado	
  um	
  grafo	
  	
  G	
  =	
  (V,	
  E)	
  	
  co...
Vizinhança	
  2-­‐OPT	
  para	
  TSP	
  
2	
  5	
  
4	
   3	
  
1	
  
5	
  
4	
   3	
  
2	
  
1	
  
5	
  
4	
   3	
  
2	
 ...
Espaço	
  de	
  busca	
  
•  O	
  espaço	
  de	
  busca	
  pode	
  ser	
  visto	
  como	
  um	
  grafo	
  
–  Os	
  vérFce...
Espaço	
  de	
  busca	
  
•  O	
  espaço	
  de	
  busca	
  pode	
  ser	
  visto	
  como	
  uma	
  superYcie,	
  
com	
  va...
•  O	
  espaço	
  de	
  busca	
  pode	
  ser	
  visto	
  como	
  uma	
  superYcie,	
  
com	
  vales	
  e	
  cumes	
  defini...
Ó'mos	
  locais	
  e	
  globais	
  
•  A	
  noção	
  de	
  proximidade	
  induz	
  o	
  conceito	
  de	
  distância	
  ent...
Busca	
  local	
  
• 	
  Busca	
  local	
  em	
  uma	
  vizinhança:	
  
–  Um	
  caminho	
  no	
  espaço	
  de	
  busca	
 ...
Estratégias	
  de	
  Busca	
  na	
  Vizinhança	
  
5	
  
4	
   3	
  
2	
  
1	
  
2	
  5	
  
4	
   3	
  
1	
  
L=19	
  (+)	...
procedure	
  Descida-­‐Mais-­‐Rápida(s0)	
  
	
  	
  	
  s	
  ←	
  s0;	
  melhoria	
  ←	
  .true.	
  	
  
	
  	
  	
  whil...
Belo	
  Horizonte,	
  2012	
  
	
  
	
  
f(0,0,0)	
  =	
  3	
  
f(1,0,0)	
  =	
  4	
   f(0,0,1)	
  =	
  5	
  f(0,1,0)	
  =...
procedure	
  Melhoria-­‐IteraFva(s0)	
  
	
  	
  	
  s	
  ←	
  s0;	
  melhoria	
  ←	
  .true.	
  	
  
	
  	
  	
  while	
 ...
Belo	
  Horizonte,	
  2012	
  
f(0,0,0)	
  =	
  3	
  
f(1,0,0)	
  =	
  3	
   f(0,0,1)	
  =	
  1	
  f(0,1,0)	
  =	
  2	
  f...
Belo	
  Horizonte,	
  2012	
  
f(0,0,0)	
  =	
  3	
  
f(1,0,0)	
  =	
  5	
   f(0,0,1)	
  =	
  1	
  f(0,1,0)	
  =	
  2	
  f...
Busca	
  Local	
  
Situação	
  Ideal	
  
Belo	
  Horizonte,	
  2012	
  
f(1,0,0)	
  =	
  5	
  
f(0,1,1)	
  =	
  3	
  f(0,1...
Busca	
  Local	
  
Situação	
  realisFca	
  
Belo	
  Horizonte,	
  2012	
  
f(1,0,0)	
  =	
  1	
  
f(0,1,1)	
  =	
  3	
  f...
Questões	
  Fundamentais	
  
•  Definição	
  da	
  vizinhança;	
  
•  Estratégia	
  de	
  busca	
  na	
  vizinhança;	
  
• ...
•  Conexidade	
  
–  Deve	
  exisFr	
  um	
  caminho	
  entre	
  qualquer	
  par	
  de	
  soluções	
  no	
  espaço	
  
de	...
Dificuldades	
  da	
  busca	
  local	
  
•  Término	
  prematuro	
  no	
  primeiro	
  óFmo	
  local	
  encontrado.	
  
•  S...
Contornando	
  as	
  dificuldades	
  	
  
da	
  busca	
  local	
  
•  Redução	
  da	
  vizinhança	
  
–  InvesFgar	
  um	
 ...
METODOLOGIA	
  CIENTÍFICA	
  
Heurís'cas	
  e	
  Metaheurís'cas	
  
Thiago	
  F.	
  Noronha	
  
"Quem	
  não	
  sabe	
  o	
  que	
  procura	
  não	
  entende	
  o	
  
que	
  encontra"	
  	
  
Hans	
  Selye	
  
Metodolo...
CIÊNCIA
•  De	
  modo	
  geral	
  ciência	
  refere-­‐se	
  a	
  um	
  sistema	
  de	
  adquirir	
  
conhecimento	
  basea...
CONHECIMENTO CIENTÍFICO VS. EMPÍRICO
•  Conhecimento	
  empírico	
  
•  Relacionado	
  a	
  experiências	
  e	
  observaçõ...
•  Conjunto	
  de	
  regras	
  básicas	
  para	
  desenvolver	
  uma	
  
experiência	
  	
  
a	
  fim	
  de	
  produzir	
  ...
MÉTODO CIENTÍFICO
•  Etapas:	
  
•  Definir	
  o	
  problema	
  
•  Coletar	
  os	
  dados	
  
•  Elaborar	
  uma	
  ou	
  ...
CIÊNCIA EM COMPUTAÇÃO
•  Nas	
  ciências	
  naturais	
  procura-­‐se	
  
descobrir	
  teorias	
  ou	
  leis	
  que	
  expl...
TERMINOLOGIA
•  Modelo	
  
•  Representação	
  computacional	
  de	
  uma	
  enFdade	
  do	
  mundo	
  
real.	
  
•  Algor...
•  Classificação	
  
–  Pesquisa	
  analíFca	
  
–  Pesquisa	
  quanFtaFva	
  
–  Pesquisa	
  bibliográfica	
  
–  Pesquisa	...
•  Pesquisa	
  AnalíFca	
  
•  Mais	
  comum	
  no	
  contexto	
  de	
  modelos	
  e	
  algoritmos.	
  
•  Cria	
  um	
  m...
PESQUISA QUALITATIVA
•  Pesquisa	
  Bibliográfica	
  
•  Não	
  se	
  limita	
  a	
  coletar	
  e	
  resumir	
  arFgos	
  r...
PESQUISA QUALITATIVA
•  Pesquisa	
  QualitaFva	
  
•  Baseia-­‐se	
  na	
  observação	
  cuidadosa	
  dos	
  ambientes	
  ...
•  Pesquisa	
  QuanFtaFva	
  
–  Caracteriza-­‐se	
  pelo	
  emprego	
  de	
  quanFficação	
  dos	
  dados	
  e	
  dos	
  r...
•  Pesquisa	
  Experimental	
  
–  Faz	
  uso	
  de	
  experimentos	
  para	
  confirmar	
  ou	
  refutar	
  suas	
  hipóte...
PESQUISA EXPERIMENTAL
•  Antes	
  de	
  iniciar	
  uma	
  pesquisa	
  experimental:	
  
•  Definia	
  o	
  problema	
  que	...
PESQUISA EXPERIMENTAL
•  Ao	
  descrever	
  uma	
  pesquisa	
  experimental:	
  
•  Definia	
  claramente	
  e	
  objeFvame...
Estrutura	
  do	
  Ar'go	
  	
  
•  Introdução	
  
–  Contextualização	
  	
  
•  “Problema	
  real”	
  	
  
–  Definição	
...
Estrutura	
  do	
  Ar'go	
  	
  
•  Introdução	
  (con@nuação)	
  
–  Roteiro	
  texto	
  
Estrutura	
  do	
  Ar'go	
  	
  
•  Trabalhos	
  relacionados	
  
–  Apresentar	
  as	
  soluções	
  que	
  já	
  foram	
 ...
Estrutura	
  do	
  Ar'go	
  	
  
•  Trabalhos	
  relacionados	
  	
  (con@nuação)	
  
– Apresentar	
  estes	
  trabalhos	
...
Estrutura	
  do	
  Ar'go	
  	
  
•  Trabalhos	
  relacionados	
  (con@nuação)	
  
–  MoFvar	
  a	
  escolha	
  da	
  estra...
Estrutura	
  do	
  Ar'go	
  	
  
•  Metodologia	
  
– Descrição	
  geral	
  do	
  algoritmo	
  
– Pseudocódigo	
  (explica...
Estrutura	
  do	
  Ar'go	
  	
  
•  Experimentos	
  Computacionais	
  
– Apresentar	
  as	
  condições	
  em	
  que	
  o	
...
Estrutura	
  do	
  Ar'go	
  	
  
•  Experimentos	
  Computacionais	
  (con@nuação)	
  
•  Para	
  cada	
  hipótese	
  leva...
Estrutura	
  do	
  Ar'go	
  	
  
•  Experimentos	
  Computacionais	
  
– Ajuste	
  de	
  parâmetros	
  das	
  heurísFcas.	...
Estrutura	
  do	
  Ar'go	
  	
  
•  Experimentos	
  Computacionais	
  (con@nuação)	
  
– Ajuste	
  de	
  parâmetros	
  das...
Estrutura	
  do	
  Ar'go	
  	
  
•  Experimentos	
  Computacionais	
  
– Avaliar	
  qualidade	
  
Estrutura	
  do	
  Ar'go	
  	
  
•  Experimentos	
  Computacionais	
  
– Avaliar	
  qualidade	
  vs.	
  tempo	
  
Estrutura	
  do	
  Ar'go	
  	
  
•  Experimentos	
  Computacionais	
  
– Avaliar	
  qualidade	
  vs.	
  tempo	
  (con@nuaç...
Estrutura	
  do	
  Ar'go	
  	
  
•  Experimentos	
  Computacionais	
  
– Avaliar	
  qualidade	
  vs.	
  Tempo	
  (con@nuaç...
Estrutura	
  do	
  Ar'go	
  	
  
•  Experimentos	
  Computacionais	
  
– Tempo	
  (em	
  relação	
  a	
  implementação	
  ...
Estrutura	
  do	
  Ar'go	
  	
  
•  Experimentos	
  Computacionais	
  
– Avaliar	
  robustez	
  
Estrutura	
  do	
  Ar'go	
  	
  
•  Conclusões	
  /	
  Considerações	
  finais	
  
– RepeFr	
  os	
  objeFvos	
  do	
  trab...
LEITURA RECOMENDADA
•  How	
  to	
  present	
  a	
  paper	
  on	
  experimental	
  work	
  with	
  
algorithms	
  	
  
•  ...
Heuristicas e metaheuristicas
Upcoming SlideShare
Loading in …5
×

Heuristicas e metaheuristicas

1,435 views
1,340 views

Published on

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

Published in: Education
1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total views
1,435
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
77
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

Heuristicas e metaheuristicas

  1. 1. Heurís'cas  e  Metaheurís'cas   Thiago  F.  Noronha   Apresentação  do  curso   Belo  Horizonte,  2012    
  2. 2. 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:  Qn@dcc.ufmg.br    Belo  Horizonte,  2012    
  3. 3. 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
  4. 4. 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  
  5. 5. 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  
  6. 6. 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  
  7. 7. 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ÍSTICASHeurís'cas  e  Metaheurís'cas       HeurísFcas  e  MetaheurísFcas  
  8. 8. 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  
  9. 9. 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  
  10. 10. 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  
  11. 11. 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  
  12. 12. 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  
  13. 13. Heurís'cas  e  Metaheurís'cas   Thiago  F.  Noronha   Revisão  de  Teoria  da  Complexidade   Belo  Horizonte,  2012    
  14. 14. •  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  
  15. 15. •  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  
  16. 16. •  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  
  17. 17. •  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  
  18. 18. •  InserFonSort   Heurís'cas  e  Metaheurís'cas       Teoria  da  Complexidade  
  19. 19. •  InserFonSort   Heurís'cas  e  Metaheurís'cas       Teoria  da  Complexidade  
  20. 20. •  QuickSort   Heurís'cas  e  Metaheurís'cas       Teoria  da  Complexidade  
  21. 21. •  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  
  22. 22. •  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  
  23. 23. •  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  
  24. 24. •  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  
  25. 25. •  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  
  26. 26. •  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  
  27. 27. •  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  
  28. 28. •  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)
  29. 29. •  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
  30. 30. •  Problema  de  confecção  de  tabelas  para  campeonatos  esporFvos     Heurís'cas  e  Metaheurís'cas       Problemas  de  Localização  
  31. 31. •  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  
  32. 32. Á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  
  33. 33. 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  
  34. 34. •  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)  
  35. 35. •  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  
  36. 36. •  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)  
  37. 37. •  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)  
  38. 38. •  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)  
  39. 39. •  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)  
  40. 40. •  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)  
  41. 41. •  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)  
  42. 42. •  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)  
  43. 43. Heurís'cas  e  Metaheurís'cas   Thiago  F.  Noronha   Heurís'cas  Constru'vas   Belo  Horizonte,  2012    
  44. 44. 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
  45. 45. 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
  46. 46. 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
  47. 47. 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
  48. 48. 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
  49. 49. •  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  
  50. 50. •  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  
  51. 51. •  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  
  52. 52. 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
  53. 53. •  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
  54. 54. 0.5          0.7              0.5                0.2            0.4            0.2                0.5              0.1            0.6   0.6 0.1 0.50.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  
  55. 55. 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  
  56. 56. •  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.50.4 0.20.2 0.5 0.5 0.6 0.7 Heurísticas e Metaheurísticas Algoritmos  Aproxima'vos     Problema  de  Bin  Packing  1-­‐D  
  57. 57. •  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.50.4 0.20.2 0.5 0.5 0.6 0.7 Heurísticas e Metaheurísticas Algoritmos  Aproxima'vos     Problema  de  Bin  Packing  1-­‐D  
  58. 58. •  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.50.4 0.20.2 0.5 0.5 0.6 0.7 Heurísticas e Metaheurísticas Algoritmos  Aproxima'vos     Problema  de  Bin  Packing  1-­‐D  
  59. 59. •  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.50.4 0.20.2 0.5 0.5 0.6 0.7 Heurísticas e Metaheurísticas Algoritmos  Aproxima'vos     Problema  de  Bin  Packing  1-­‐D  
  60. 60. •  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.50.4 0.20.2 0.5 0.5 0.6 0.7 Heurísticas e Metaheurísticas Algoritmos  Aproxima'vos     Problema  de  Bin  Packing  1-­‐D  
  61. 61. •  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.50.4 0.20.2 0.5 0.5 0.6 0.7 Heurísticas e Metaheurísticas Algoritmos  Aproxima'vos     Problema  de  Bin  Packing  1-­‐D  
  62. 62. •  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.50.4 0.20.2 0.5 0.5 0.6 0.7 Heurísticas e Metaheurísticas Algoritmos  Aproxima'vos     Problema  de  Bin  Packing  1-­‐D  
  63. 63. •  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.50.4 0.20.2 0.5 0.5 0.6 0.7 Heurísticas e Metaheurísticas Algoritmos  Aproxima'vos     Problema  de  Bin  Packing  1-­‐D  
  64. 64. •  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.50.4 0.20.2 0.5 0.5 0.6 0.7 Heurísticas e Metaheurísticas Algoritmos  Aproxima'vos     Problema  de  Bin  Packing  1-­‐D  
  65. 65. •  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.50.4 0.20.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  
  66. 66. •  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  
  67. 67. 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
  68. 68. 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
  69. 69. 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 11
  70. 70. 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
  71. 71. 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  
  72. 72. 5 4 3 2 1 2 1 1 1 1 22 22 M Heurísticas e Metaheurísticas Heurís'cas  Gulosas   HeurísFca  Vizinho  mais  próximo  para  TSP   •  Pode  soluções  arbitrariamente  ruins.  
  73. 73. 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
  74. 74. 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
  75. 75. Redução  Pseudo-­‐polinomial   •  Bin  Packing  à  MulFprocessor  Scheduling   Heurísticas e Metaheurísticas 0.5 0.7 0.5 0.2 0.4 0.20.5 0.6 0.1 0.50.4 0.20.2 0.5 0.5 0.6 0.7 0.1
  76. 76. Heurísticas e Metaheurísticas 0.5 0.7 0.5 0.2 0.4 0.2 0.5 0.6 0.1 0.50.4 0.20.2 0.5 0.5 0.6 0.7 0.1 Redução  Pseudo-­‐polinomial   •  Bin  Packing  à  MulFprocessor  Scheduling  
  77. 77. •  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  
  78. 78. Heurísticas e Metaheurísticas Redução  Heurís'ca     min-­‐RWA  
  79. 79. •  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  
  80. 80. •  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  
  81. 81. Conexões: (a -> e) (b -> f) (c -> m) (d -> b) (e -> h) Redução  Heurís'ca     Roteamento  por  caminhos  mais  curtos  
  82. 82. Redução  Heurís'ca     Grafo  de  Conflitos   1 52 43 Conexões: 1: (a -> e) 2: (b -> f) 3: (c -> m) 4: (d -> b) 5: (e -> h)
  83. 83. 1 52 43 Redução  Heurís'ca     Grafo  de  Conflitos  
  84. 84. 1 52 43 w1 w2 w3 Redução  Heurís'ca     Grafo  de  Conflitos  
  85. 85. 1 52 43 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  
  86. 86. 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  
  87. 87. 1 0 6 3 2 4 5 7 8 Redução  Heurís'ca     Grafo  de  Conflitos  
  88. 88. 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  
  89. 89. 1 6 3 5 8 Heurísticas e Metaheurísticas Redução  Heurís'ca     Problema  de  coloração  de  parFções   w1 w2
  90. 90. 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  
  91. 91. Heurísticas e Metaheurísticas Nós  de  Steiner   Redução  Heurís'ca     Problema  de  Steiner  em  Grafos  
  92. 92. Heurísticas e Metaheurísticas Redução  Heurís'ca     Problema  de  Steiner  em  Grafos  
  93. 93. Heurísticas e Metaheurísticas Redução  Heurís'ca     Problema  de  Steiner  em  Grafos  
  94. 94. •  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  
  95. 95. •  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  
  96. 96. 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
  97. 97. •  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  
  98. 98. •  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  
  99. 99. 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  
  100. 100. •  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  
  101. 101. Heurís'cas  de     Arredondamento  Aleatorizado   •  Problema  de  Programação  Linear  Inteira  (PLI)           •  PLI  é  NP-­‐DiYcil   Heurísticas e Metaheurísticas
  102. 102. •  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 28 6 5 1 Heurís'cas  de     Arredondamento  Aleatorizado  
  103. 103. Heurís'cas  de     Arredondamento  Aleatorizado   •  Redução  para  PLI   –  CongesFon  minimizaFon  MulFcommodity  flow  problem                  
  104. 104. •  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 28 6 5 1 Heurís'cas  de     Arredondamento  Aleatorizado   (1) (1)
  105. 105. •  Problema  de  Programação  Linear  (PL)  :   –  Relaxação  Linear                 Heurís'cas  de     Arredondamento  Aleatorizado  
  106. 106. •  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 28 6 5 1 (0.33)   (0.35)   (0.32)   (0.33)   (0,28)   (0.10)   (0.25)  
  107. 107.   •  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  
  108. 108. 10 4 7 3 9 28 6 5 1 s d(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  
  109. 109. 10 4 7 3 9 28 6 5 1 s d(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  
  110. 110. •  τi  =  0.02   10 4 7 3 9 28 6 5 1 s d(0.33)   (0.35)   (0.32)   (0.33)   (0,28)   (0.10)   (0.25)   Heurís'cas  de     Arredondamento  Aleatorizado  
  111. 111. •  τi  =  0.02   10 4 7 3 9 28 6 5 1 s d(0.33)   (0.33)   (0.32)   (0.33)   (0,28)   (0.08)   (0.25)   Heurís'cas  de     Arredondamento  Aleatorizado  
  112. 112. •  τi  =  0.02   10 4 7 3 9 28 6 5 1 s d(0.33)   (0.33)   (0.32)   (0.33)   (0,28)   (0.08)   (0.25)   Heurís'cas  de     Arredondamento  Aleatorizado  
  113. 113. •  τi  =  0.02,  0.08   10 4 7 3 9 28 6 5 1 s d(0.33)   (0.33)   (0.32)   (0.33)   (0,28)   (0.08)   (0.25)   Heurís'cas  de     Arredondamento  Aleatorizado  
  114. 114. •  τi  =  0.02,  0.08   10 4 7 3 9 28 6 5 1 s d(0.25)   (0.25)   (0.32)   (0.33)   (0,28)   (0.00)   (0.25)   Heurís'cas  de     Arredondamento  Aleatorizado  
  115. 115. •  τi  =  0.02,  0.08   10 4 7 3 9 28 6 5 1 s d(0.25)   (0.25)   (0.32)   (0.33)   (0,28)   (0.25)   Heurís'cas  de     Arredondamento  Aleatorizado  
  116. 116. •  τi  =  0.02,  0.08   10 4 7 3 9 28 6 5 1 s d(0.25)   (0.25)   (0.32)   (0.33)   (0,28)   (0.25)   Heurís'cas  de     Arredondamento  Aleatorizado  
  117. 117. •  τi  =  0.02,  0.08   10 4 7 3 9 28 6 5 1 s d(0.25)   (0.25)   (0.32)   (0.33)   (0,28)   (0.25)   Heurís'cas  de     Arredondamento  Aleatorizado  
  118. 118. •  τi  =  0.02,  0.08,  0.25   10 4 7 3 9 28 6 5 1 s d (0.32)   (0.33)   (0,28)   Heurís'cas  de     Arredondamento  Aleatorizado  
  119. 119. •  τi  =  0.02,  0.08,  0.25   10 4 7 3 9 28 6 5 1 s d (0.32)   (0.33)   (0,28)   Heurís'cas  de     Arredondamento  Aleatorizado  
  120. 120. •  τi  =  0.02,  0.08,  0.25  ,  0.32   10 4 7 3 9 28 6 5 1 s d (0.32)   (0.33)   (0,28)   Heurís'cas  de     Arredondamento  Aleatorizado  
  121. 121. •  τi  =  0.02,  0.08,  0.25  ,  0.32   10 4 7 3 9 28 6 5 1 s d (0.00)   (0.33)   (0,28)   Heurís'cas  de     Arredondamento  Aleatorizado  
  122. 122. •  τi  =  0.02,  0.08,  0.25  ,  0.32   10 4 7 3 9 28 6 5 1 s d (0.33)   (0,28)   Heurís'cas  de     Arredondamento  Aleatorizado  
  123. 123. •  τi  =  0.02,  0.08,  0.25  ,  0.32   10 4 7 3 9 28 6 5 1 s d (0.33)   (0,28)   Heurís'cas  de     Arredondamento  Aleatorizado  
  124. 124. •  τi  =  0.02,  0.08,  0.25  ,  0.32,  0.05       10 4 7 3 9 28 6 5 1 s d (0.33)   (0,28)   Heurís'cas  de     Arredondamento  Aleatorizado  
  125. 125. •  τi  =  0.02,  0.08,  0.25  ,  0.32,  0.05   10 4 7 3 9 28 6 5 1 s d (0.28)   (0,28)   Heurís'cas  de     Arredondamento  Aleatorizado  
  126. 126. •  τi  =  0.02,  0.08,  0.25  ,  0.32,  0.05   10 4 7 3 9 28 6 5 1 s d (0.28)   (0,28)   Heurís'cas  de     Arredondamento  Aleatorizado  
  127. 127. •  τi  =  0.02,  0.08,  0.25  ,  0.32,  0.05     10 4 7 3 9 28 6 5 1 s d (0.28)   (0,28)   Heurís'cas  de     Arredondamento  Aleatorizado  
  128. 128. •  τi  =  0.02,  0.08,  0.25  ,  0.32,  0.05,  0.28       10 4 7 3 9 28 6 5 1 s d (0.28)   (0,28)   Heurís'cas  de     Arredondamento  Aleatorizado  
  129. 129. •  τi  =  0.02,  0.08,  0.25  ,  0.32,  0.05,  0.28         10 4 7 3 9 28 6 5 1 s d (0.00)   (0,00)   Heurís'cas  de     Arredondamento  Aleatorizado  
  130. 130. 0.020.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  
  131. 131. Heurís'cas  de     Arredondamento  Aleatorizado   0.190.21 0.28 0.32     •  τ2  =  0.19,  0.21  ,  0.32,  0.28  
  132. 132. Heurís'cas  de     Arredondamento  Aleatorizado   0.30.3 0.4     •  τ3  =  0.3  ,  0.3,  0.4  
  133. 133. Heurís'cas  de     Arredondamento  Aleatorizado   0.30.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.190.21 0.28 0.32     0.020.05 0.08 0.25 0.28 0.32     τ1 τ3 τ2
  134. 134. Heurís'cas  e  Metaheurís'cas   Thiago  F.  Noronha   Heurís'cas  de  Busca  
  135. 135. •  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  
  136. 136. • 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  
  137. 137. Vizinhança  N1     no  espaço  dos  vetores  {0,1}3   000   100   110   010   011   001   101   111  
  138. 138. 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  
  139. 139. 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  
  140. 140. 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.  
  141. 141. 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.  
  142. 142. •  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  
  143. 143. Ó'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).  
  144. 144. 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”  .  
  145. 145. 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
  146. 146. 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  
  147. 147. 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  
  148. 148. 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  
  149. 149. 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  
  150. 150. 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  
  151. 151. 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  
  152. 152. 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  
  153. 153. 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  
  154. 154. •  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  
  155. 155. 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  
  156. 156. 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).  
  157. 157. METODOLOGIA  CIENTÍFICA   Heurís'cas  e  Metaheurís'cas   Thiago  F.  Noronha  
  158. 158. "Quem  não  sabe  o  que  procura  não  entende  o   que  encontra"     Hans  Selye   Metodologia  CienTfica  
  159. 159. 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  
  160. 160. 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  
  161. 161. •  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  
  162. 162. 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  
  163. 163. 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  
  164. 164. 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  
  165. 165. •  Classificação   –  Pesquisa  analíFca   –  Pesquisa  quanFtaFva   –  Pesquisa  bibliográfica   –  Pesquisa  qualitaFva   –  Pesquisa  experimental     Metodologia  CienTfica   Classificação  
  166. 166. •  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  
  167. 167. 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  
  168. 168. 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  
  169. 169. •  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  
  170. 170. •  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  
  171. 171. 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  
  172. 172. 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  
  173. 173. 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  
  174. 174. Estrutura  do  Ar'go     •  Introdução  (con@nuação)   –  Roteiro  texto  
  175. 175. 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  
  176. 176. 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  
  177. 177. 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.    
  178. 178. Estrutura  do  Ar'go     •  Metodologia   – Descrição  geral  do  algoritmo   – Pseudocódigo  (explicado)  de  cada  procedimento   (não  trivial)   – Calculo  da  complexidade  
  179. 179. 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    
  180. 180. 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.    
  181. 181. 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.      
  182. 182. 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.  
  183. 183. Estrutura  do  Ar'go     •  Experimentos  Computacionais   – Avaliar  qualidade  
  184. 184. Estrutura  do  Ar'go     •  Experimentos  Computacionais   – Avaliar  qualidade  vs.  tempo  
  185. 185. Estrutura  do  Ar'go     •  Experimentos  Computacionais   – Avaliar  qualidade  vs.  tempo  (con@nuação)  
  186. 186. Estrutura  do  Ar'go     •  Experimentos  Computacionais   – Avaliar  qualidade  vs.  Tempo  (con@nuação)  
  187. 187. Estrutura  do  Ar'go     •  Experimentos  Computacionais   – Tempo  (em  relação  a  implementação  padrão)  
  188. 188. Estrutura  do  Ar'go     •  Experimentos  Computacionais   – Avaliar  robustez  
  189. 189. 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  
  190. 190. 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  

×