53
1 Introdução às Metaheurísticas Profª Laura Bahiense ([email protected]) Prof Dario Aloise ([email protected])

Metaheurísticas

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Metaheurísticas

1

Introdução às

Metaheurísticas

Profª Laura Bahiense

([email protected])

Prof Dario Aloise

([email protected])

Page 2: Metaheurísticas

2

Metaheurísticas

! Duas  definições  retiradas  do  site:   h3p://www.nist.gov/dads/HTML/metaheuristic.html  

A  high-­‐‑level  algorithmic  framework  or  approach  

that  can  be  specialized  to  solve  optimization  problems.  

A  high-­‐‑level  strategy  that  guides  other  heuristics   in  a  search  for  feasible  solutions.  

! Idéia  Central:  

Uma  combinação  de  diferentes  estratégias   para  percorrer  o  espaço  de  busca   tentando  escapar  de  ótimos  locais

Page 3: Metaheurísticas

3

Metaheurísticas: componentes básicos comuns

! Heurísticas  construtivas;

! Busca  local; ! Algoritmos  não  determinísticos; ! Multiplicidade  de  vizinhanças; ! Memória; ! Intensificação; ! Diversificação.

Page 4: Metaheurísticas

4

Metaheurísticas: propriedades desejáveis

! Simplicidade:  baseadas  em  princípios  simples  e  claros; ! Coerência:  todos  os  passos  da  heurística  para  problemas  particulares  

devem  seguir  naturalmente  os  princípios  da  metaheurística; ! Eficiência:  devem  fornecer  boas  soluções  (ótimas  ou  quase  ótimas)  para  

todas  ou  quase  todas  as  instâncias; ! Efetividade:  baixo  tempo  computacional; ! Robustez:  performance  consistente  sobre  uma  variedade  de  instâncias; ! Usabilidade:  poucos  parâmetros; ! Inovação:  capacidade  de  “solucionar”  novos  tipos  de  aplicações.

Page 5: Metaheurísticas

5

Introdução às seguintes metaheurísticas

! Simulated  Annealing;

! Busca  Tabu  (Tabu  Search);

! GRASP  (Greedy  Randomized  Adaptive  Search  Procedure);

! VNS  (Variable  Neighborhood  Search);

! ILS  (Variable  Neighborhood  Descent)

! Algoritmos  genéticos  (Genetic  Algorithms);

! Colônia  de  Formigas  (Ant  Colony  Optimization);

! Enxame  de  partículas  (Particle  Swarm  Optimization).

Page 6: Metaheurísticas

6

Simulated Annealing : motivação

! Princípio:  analogia  entre  um  processo  de  mecânica  estatística  e  a  solução  de  um  problema  de  otimização  combinatória.

! Annealing:  processo  térmico  que  começa  pela  liquidificação                de  um  cristal  a  uma  alta  temperatura,  seguido  pela  lenta  e  gradativa              diminuição  de  sua  temperatura,  até  que  o  ponto  de  solidificação  seja              alcançado                    o  sistema  atinge  um  estado  de  energia  mínima. ! Analogias:  

! função  objetivo  f(s)  ⇔  nível  de  energia; ! solução  viável  ⇔  estado  do  sistema; ! solução  vizinha    ⇔  mudança  de  estado; ! parâmetro  de  controle  ⇔  temperatura; ! melhor  solução  ⇔  estado  de  solidificação.

Page 7: Metaheurísticas

7

Simulated Annealing : idéia do algoritmo

! Baseado  em  um  método  de  Monte  Carlo  para  a  geração  de  uma  seqüência                de  estados  do  sólido,  da  seguinte  maneira:  

! Dado  um  estado  corrente  i  do  sólido  com  energia  Ei,              um  estado  subseqüente  é  gerado,              pela  aplicação  de  um  mecanismo  de  perturbação,                p.  ex.,  pelo  deslocamento  de  uma  única  partícula.                A  energia  do  próximo  estágio  passa  a  ser  Ej;

! Calcula-­‐‑se  a  diferença  de  energia  Δij  =  Ej  ̶ Ei  : ü  Se  Δij  é  negativa,  o  estado  j  é  aceito  como  estado  corrente;

ü  Senão,  o  estado  j  é  aceito  com  probabilidade  exp( ̶  Δij  /  (β  *  T)  ),              onde  T  representa  a  temperatura  atual  do  sistema,              e  β  é  uma  constante  física  conhecida  como  constante  de  Bolimann.  

Page 8: Metaheurísticas

8

Simulated Annealing : algoritmo

KIRKPATRICK  et  al.  (1983)  desenvolveram  um  algoritmo,  análogo  ao  de  Metropolis:  Simulated  Annealing procedure SA(s0,T0,β,SAEqu)

s ← s0; s' ← s; T ← T0; IterT ← 0

enquanto (T > 0) faça      enquanto (IterT < SAEqu) faça      IterT ← IterT + 1

     Gere um vizinho qualquer s’ ∈ N (s) [perturbação]   Δ = f(s’) – f(s)   se (Δ < 0)   então   s ← s’   se f(s’) < f(s*) então s* ← s’   senão   Gerar u ∈ Uniforme[0,1]   se u < e-|Δ| /T então s ← s’   fim-se   fim-enquanto   T ← βT   IterT ← 0

  fim-enquanto;   Retorne s* end SA

Page 9: Metaheurísticas

9

Simulated Annealing : considerações sobre a temperatura

! O  escalonamento  da  redução  da  temperatura  T  controla  a  convergência  do  algoritmo  (Tk+1  ←  β.Tk  onde  0  <  β  <  1).

! T  elevada:  e-­‐‑|Δ|  /T  próximo  de  um  →  quase  todas  as  soluções  vizinhas  são  aceitas  (algoritmo  permanece  “vagando  “  no  espaço  de  busca).

! T  próxima  de  zero:  somente  são  aceitas  soluções  que  melhoram  a  solução  corrente  (comportamento  análogo  ao  algoritmo  de  melhoria  iterativa).

! Controle  da  deterioração  da  solução  corrente:  

! No  início,  uma  solução  vizinha  pior  que  a  corrente  é  aceita  com  alta  probabilidade  (“randomização”);

! Quando  a  temperatura  diminui,  a  probabilidade  de  aceitação  vai  sendo  gradativamente  reduzida  até  um  valor  mínimo  (estabilização).

                                                                     

Page 10: Metaheurísticas

10

Simulated Annealing : características principais

! Existe  prova  de  convergência  para  a  solução  ótima:  entretanto,  a  velocidade  de  redução  de  temperatura  exigida  implica  em  visitar  um  número  exponencial  de  soluções.

! Implementação  simples:  como  só  visita  uma  solução  a  cada  iteração,  

calcular  o  valor  da  função  objetivo  da  solução  vizinha  gerada  não  degrada  demasiadamente  a  eficiência  do  algoritmo.

! Tempos  de  processamento  elevados:  para  se  obter  soluções  competitivas  é  necessário  um  processo  lento  de  redução  da  temperatura.

! Pouco  “inteligente”:  utiliza  como  informação  do  problema  somente  a  

variação  do  valor  da  função  objetivo.

! Método  essencialmente  não-­‐‑determinístico:  depende  fundamentalmente  de  geradores  de  números  pseudo-­‐‑aleatórios.

Page 11: Metaheurísticas

11

Busca tabu: motivação

! Glover  e  Hansen,  independentemente,  em  1986:  idéias  básicas. ! Glover  e  de  Werra  &  Heri,  em  1989:  formalização  dos  conceitos. ! Responder  à  seguinte  questão:  o  que  fazer...

! se  na  vizinhança  não  há  vizinhos  aprimorantes?

! para  evitar  retornar  a  um  ótimo  local  já  visitado?  

Page 12: Metaheurísticas

12

Busca tabu: conceitos

! Busca  tabu  é  um  procedimento  adaptativo  que  guia  um  algoritmo  de  busca  local  na  exploração  contínua  do  espaço  de  busca,  evitando: ! ser  confundido  pela  ausência  de  vizinhos  “aprimorantes”, ! retornar  a  um  ótimo  local  previamente  visitado.

! Utiliza  estruturas  flexíveis  de  memória  para  armazenar  conhecimento  sobre  o  espaço  de  busca,  contrariamente  a  algoritmos  que: ! não  utilizam  memória  (p.ex.  simulated  annealing), ! utilizam  estruturas  rígidas  de  memória  (p.ex.  B&B).

s1 s2 s3 s4 s5 s6 s7

f(s1)

f(s3) f(s4) f(s5)

f(s6) f(s7)

f(s2)

Page 13: Metaheurísticas

13

Busca tabu: metodologia

! Partir  de  uma  solução  inicial  e,  a  cada  iteração,  mover  para  a  melhor  solução  na  vizinhança,  respeitando  a  Lista  Tabu:

! estrutura  de  memória  básica  que  visa  a  proibição  de  movimentos  que  levem  a  soluções  já  visitadas;

! determinada  por  informações  históricas  da  busca;

! uma  solução  é  determinada  solução  tabu  quando  a  melhor  solução  na  vizinhança  não  é  melhor  do  que  a  solução  corrente  à  deterioração  do  valor  da  função  de  custo;

! memória:  guardar  a  lista  das  últimas  |T|  soluções  visitadas  evita  ciclos  de  tamanho  máximo  T;

! problema:  isto  é  muito  custoso!  Em  vez  disto:  guardar  os  movimentos  que  levaram  àquelas  soluções:  guardar  os  últimos  |T|  movimentos  (ou  os  últimos  |T|  movimentos  reversos)  associados.

Page 14: Metaheurísticas

14

Busca tabu: intensificação x diversificação memórias curto x longo prazo

! Intensificação:   ! Concentrar  a  busca  em  regiões  promissoras  do  espaço,  em  torno  de  boas  soluções  

(soluções  de  elite),  modificando  as  regras  de  escolha  da  próxima  solução  de  modo  a  combinar  bons  movimentos  com  a  estrutura  destas  soluções.

! Diversificação: ! Fazer  com  que  a  busca  visite  regiões  ainda  inexploradas;

! Pode  ser  feito  penalizando-­‐‑se  movimentos  que  voltam  a  utilizar  elementos  que  estiveram  freqüentemente  presentes  em  soluções  visitadas  anteriormente  e/ou  incentivando  a  entrada  de  elementos  pouco  utilizados  no  passado.

! Memória  de  curto  prazo: ! essencialmente  a  lista  de  movimentos  tabu,  

! objetivo  básico:  evitar  ciclagem  na  busca  tabu.

! Memória  de  longo  prazo: ! lista  de  soluções  de  elite,

! freqüência  ou  número  de  vezes  em  que  um  elemento  da  solução  foi  utilizado  em  soluções  já  visitadas  anteriormente.

! Oscilação  estratégica  

Page 15: Metaheurísticas

15

GRASP: Idéia básica

! Metaheurística  de  multi-­‐‑partida  ou  iterativa.            GRASP  =  “Greedy  Randomized  Adaptive  Search  Procedure”

! Feo  &  Resende  (1989):  set  covering; ! Festa  &  Resende  (2002):  bibliografia; ! Resende  &  Ribeiro  (2003):  survey.

            Repetir  para  MAX_ITER  iterações:

ü Construir  uma  solução  gulosa  randômica; ü  Efetuar  busca  local  para  melhorar  esta  solução; ü Atualizar  a  melhor  solução  encontrada;

Retornar  a  melhor  solução  encontrada.

Page 16: Metaheurísticas

16

GRASP: Fase de construção

! Fase  de  Construção:  greedy  +  random  +  adaptive

! Construir  uma  solução  viável:

ü  a  função  gulosa  representa  o  custo  incremental  na  função  objetivo              causado  pela  incorporação  de  cada  elemento  na  solução  que  está  sendo  construída; ü  a  avaliação  de  cada  elemento  via  esta  função  gulosa  leva  à  criação              de  uma  lista  restrita  de  candidatos  (RCL)  formada  pelos  melhores  elementos,  i.e.,              aqueles  cuja  incorporação  à  solução  parcial  corrente              reflete  os  menores  custos    incrementais  à  greediness  (greedy  aspect); ü  o  elemento  a  ser  incorporado  à  solução  parcial              é  randomicamente    selecionado  dentro  da  lista  RCL  à  randomness  (probabilistic  aspect);     ü  uma  vez  que  o  elemento  selecionado  é  incorporado  à  solução  parcial,              a  RCL  é  atualizada  e  os  custos  incrementais  são  reavaliados  à  adaptiveness  (adaptive  aspect).

Page 17: Metaheurísticas

17

GRASP: Construção da RCL

! Procedimento  básico  de  construção  da  RCL:  

! Função  gulosa:  c(e)  =  custo  incremental  associado  à  incorporação  do  elemento  e  na  solução  parcial  sob  construção;

! cmin  ,  cmax  :  menor  e  maior  custo  incremental,  respectivamente;

! RCL:  formada  pelos  elementos  com  os  menores  (problemas  de  minimização)  ou  maiores  (problemas  de  maximização)  custos  incrementais;

! Pode  ser  limitada:

ü  pelo  número  de  elementos:  constituída  pelos  p  elementos  com  melhores  custos  incrementais  à  cardinality-­‐‑based  ;

ü  pela  qualidade  dos  elementos  à    value-­‐‑based  .

Page 18: Metaheurísticas

18

GRASP: Qualidade da RCL

! Construção  da  RCL  com  qualidade:  “adaptiveness”:

! Parâmetro  0  ≤  α  ≤  1:  define  a  qualidade  da  RCL: ü  α  determina  o  nível  de  “gula”  ou  de  “randomização”;

! RCL  contém  elementos  com  custos  incrementais:                      cmin    ≤    c(e)    ≤    cmin    +    α  (cmax  –  cmin)  :  para  problemas  de  minimização; cmax       ̶    α  (cmax  –  cmin)    ≤    c(e)    ≤    cmax  :  para  problemas  de  maximização;

ü  α  =  0  :  construção  puramente  gulosa;   ü  α  =  1  :  construção  puramente  randômica;

! Seleção  randômica  dos  elementos  da  RCL: ! Utilização  de  uma  distribuição  probabilística  uniforme.

Page 19: Metaheurísticas

19

GRASP: Fase de busca local

! As  soluções  geradas  pela  fase  de  construção  gulosa  randômica  não  são  necessariamente  ótimas,  mesmo  com  respeito  a  vizinhanças  simples;

! Busca  Local:  busca  por  uma  solução  de  melhoria  na  vizinhança  até  que  

um  ótimo  local  seja  encontrado; ! Eficiência  depende:

! da  estrutura  de  vizinhança  escolhida; ! de  uma  avaliação  rápida  da  função  de  custo  dos  vizinhos; ! da  estratégia  de  busca  dentro  da  vizinhança; ! da  fase  de  construção  p.d.  (qualidade  da  solução  construída).

Page 20: Metaheurísticas

20

GRASP: algoritmo

     GRASP  (α,seed): solução  ←  ∅; inicializar  o  conjunto  de  candidatos:  C    ←  E; calcular  os  custos  incrementais  c(e)  para  todo  e  C; repetir  para  max_iter  iterações enquanto  C  ≠  ∅  efetuar:

ü  cmin  ß  min  {c(e)  |  e  ∈  C}; ü  cmax  ß  max  {c(e)  |  e  ∈  C}; ü  Se  (Prob_Min)  RCL  ß  {e  ∈  C  |  cmin  ≤    c(e)  ≤  cmin  +    α  (cmax  –  cmin)};          Senão  RCL  ß  {e  ∈  C  |  cmax    ̶  α  (cmax  –  cmin)  ≤  c(e)  ≤  cmax  }; ü  Selecionar  s  ∈  RCL  de  forma  randômica; ü  solução  ←  solução  ∪  {s}; ü  C  ß  C  \  {s}; ü  Recalcular  os  custos  incrementais  c(e)  para  todo  e  ∈  C;

fim-­‐‑enquanto; fim-­‐‑repetir; solução_final  =  Busca_Local(solução);   retornar  solução_final;

       end

Page 21: Metaheurísticas

21

GRASP: estratégias de construção melhoradas

! Fleurent  &  Glover  (1999):  quadratic  assigment ! Introdução  de  uma  memória  de  longo-­‐‑prazo;

! Criação  de  um  conjunto  de  soluções  elite  (soluções  de  alta  qualidade)  encontradas  durante  as  iterações  GRASP  ⇒  favorecimento  de  variáveis  especiais:  

ü  fortemente  determinadas:  aquelas  que  não  podem  ser  alteradas  sem  depreciar  a  função  objetivo  ou  alterar  significativamente  outras  variáveis;

ü  consistentes:  aquelas  que  recebem  um  valor  particular  em  um  grande  número  de  soluções  elite.

! Prais  &  Ribeiro  (2000):  traffic  assignment  em  satélites  TDMA ! A  cada  iteração  GRASP,  um  valor  α  de  parâmetro  para  a  RCL  é  escolhido  

randomicamente  a  partir  de  um  conjunto  de  valores  discretos  {α1,  ...,  αm};

! {α1,  ...,  αm}  são  associados  a  um  conjunto  de  probabilidades  [p1,  ...,  pm]  que  vão  sendo  alteradas  de  maneira  adaptativa,  de  modo  a  favorecer  aqueles  valores  de  α  que  tenham  produzido  boas  soluções  durante  as  iterações  GRASP;

! Soluções  melhores,  ao  custo  de  tempos  ligeiramente  superiores.

Page 22: Metaheurísticas

22

GRASP: estratégias de busca local melhoradas

! First  Improvement  versus  Best  improvement: ! first  improvement  é,  em  geral,  mais  rápida; ! best  improvement  em  geral  leva  à  convergência  prematura  para  ótimos  locais  

de  baixa  qualidade.

! VND  (Variable  Neighborhood  Descent)  e  VNS  (Variable  Neighborhood  Search):  Hansen  &  Mladenovic  (1997): ! acelerar  a  busca  e  escapar  de  ótimos  locais; ! “várias”  estruturas  de  vizinhança  distintas:

ü  VND:  ”mais  determinística”; ü  VNS:  “mais  aleatória”.

! Hashing:  Woodruff  &  Zemel  (1993) ! evitar  a  ciclagem:  voltar,  na  fase  de  busca  local,  a  uma  mesma  solução  já  

construída  anteriormente  na  fase  de  construção.    

! Filtering:  Feo,  Resende,  &  Smith  (1994): ! evitar  a  aplicação  da  busca  local  a  soluções  de  baixa  qualidade.

Page 23: Metaheurísticas

23

Variable Neighborhood Search (VNS): motivação

! Proposta  por  Mladenovic  &  Hansen  (1997); ! Introduz  aleatorização  à  Busca  Local  à  escapar  de  mínimos  locais;            

Explorar,  sucessivamente,   vizinhanças  de  ordem  crescente, na  busca  por  soluções  melhores    

Page 24: Metaheurísticas

24

Variable Neighborhood Search (VNS): algoritmo

                 

Sejam  s0  =  solução  inicial  e  kmax  =  número  de  estruturas  de  vizinhança: .   s  ←  s0  ;  [s  :  solução  corrente] .      escolher  um  critério_de_parada; .   enquanto  (critério_de_parada_não_satisfeito)  efetue .   . k  ←  1;  [k  :  tipo  de  estrutura  de  vizinhança] .   . enquanto  (k  ≤  kmax  )  efetue .   . . gerar  um  vizinho  qualquer  s’  ∈  N  (k  )  (s);  [agitação] .   . . s  ’’  ←  busca_local  (s  ’  ); .   . . se  (    f  (s  ’’  )  <  f  (s  )    )   .   . . . então  s  ←  s  ’’  ;  k  ←  1; .   . . . senão  k  ←  k  +  1; .   . .  fim ̶   se; .   . fim ̶   enquanto; .    fim ̶   enquanto; .   Retornar  s; fim  VNS.

Page 25: Metaheurísticas

25

Variable Neighborhood Search (VNS): ilustração

                 

N 1

s

s’ s’’

s’’  aceito  se  f(s’’)  <  f(s)

Page 26: Metaheurísticas

26

Variable Neighborhood Search (VNS): ilustração

                 

N 1

N 2 s

s’

s’’ N 1

Page 27: Metaheurísticas

27

Variable Neighborhood Search (VNS): ilustração

                 

N 1

N 2

N kmax

s

s’

Page 28: Metaheurísticas

28

Algoritmos genéticos: motivação

! Algoritmo  probabilístico  baseado  na  analogia  entre  o  processo  de  evolução  natural  e  a  seleção  de  soluções  de  um  problema  de  otimização  combinatória.

! As  populações  evoluem  de  acordo  com  os  princípios  da  seleção  natural  e  de  “sobrevivência  dos  mais  adaptados”  (evolução  das  propriedades  genéticas  da  população).

! Indivíduos  mais  bem  sucedidos  em  adaptar-­‐‑se  a  seu  ambiente  terão  maior  chance  de  sobreviver  e  de  reproduzir.  Genes  dos  indivíduos  mais  bem  adaptados  vão  espalhar-­‐‑se  para  um  maior  número  de  indivíduos  em  sucessivas  gerações.

! Espécies  evoluem  tornando-­‐‑se  cada  vez  mais  adaptadas  ao  seu  ambiente.

Page 29: Metaheurísticas

29

Algoritmos genéticos: cromossomos e operadores genéticos

! A  população  é  representada  por  seus  cromossomos:   cromossomo  ⇔  indivíduo;

! Novos  cromossomos  são  gerados  a  partir  da  população  corrente              e  são  incluídos  na  população,  ao  mesmo  tempo  que  outros  são  excluídos.   A  geração  dos  novos  cromossomos  é  realizada  através  dos  mecanismos  (operadores  genéticos)  de  reprodução  (crossover)  e  de  mutação.

! Representação  de  um  cromossomo  (em  sua  versão  original):  seqüência  de  bits  (0´s  e  1´s),  equivalente  ao  vetor  de  pertinência;

! Reprodução:  consiste  em  selecionar  os  cromossomos  pais  e  executar  uma  operação  de  crossover,  que  é  uma  combinação  simples  das  representações  de  cada  cromossomo  pai;

! Mutação:  consiste  na  modificação  arbitrária  de  uma  parte  (pequena)  do  cromossomo.

Page 30: Metaheurísticas

30

Algoritmos genéticos: algoritmo básico

! Algoritmo  básico: gerar  população  inicial; enquanto    critério-­‐‑de-­‐‑parada-­‐‑não-­‐‑satisfeito    efetue escolher  cromossomos    reprodutores; efetuar  o  crossover  dos  reprodutores; gerar  mutações;   avaliar  aptidões; atualizar  a  população; fim-­‐‑enquanto.

! Parâmetros: ! tamanho  da  população; ! critérios  de  seleção; ! critérios  de  sobrevivência; ! taxa  de  mutação; ! critérios  de  parada:  estabilização  da  população,  impossibilidade  de  melhoria  da  melhor  

solução,  número  de  gerações.

Page 31: Metaheurísticas

31

Algoritmos genéticos: codificação e função de aptidão

! Cada  possível  solução  de  um  problema  é  codificada  em  uma  estrutura  chamada  de  "ʺcromossomo"ʺ,  que  é  composta  por  uma  cadeia  de  genes.  

! Para  cada  indivíduo  atribui-­‐‑se  um  valor  de  avaliação:  sua  aptidão,  que  indica   quanto   a   solução   representada   por   este   indivíduo   é   boa   em  relação  às  outras  soluções  da  população.

                                                                                                                   f  =  382

1 5 4 2 3

Page 32: Metaheurísticas

32

Algoritmos genéticos: aptidão e crossover

! Função  de  aptidão  (fitness):   ! avaliar  a  qualidade  genética  dos  cromossomos,  correspondendo  à  função  de  

custo  em  problemas  de  otimização  combinatória. ! selecionar  os  indivíduos  reprodutores. ! decidir  se  um  cromossomo  gerado  através  de  uma  operação  de    crossover  

substitui  ou  não  um  cromossomo    reprodutor.

! Crossover:  operação  probabilística  (originalmente),  onde  os  indivíduos  mais  adaptados  têm  maior  chance  de  participar.  Existem,  basicamente,  os  seguintes  métodos:   ! troca  de  toda  população; ! troca  de  toda  população  com  elitismo,  onde  todos  os  cromossomos  são  

substituídos,  sendo  o  cromossomo  mais  apto  da  população  corrente  copiado  para  população  seguinte;

! troca  parcial  da  população  (steady  state),  onde  os  M  melhores  indivíduos  da  população  corrente  são  copiados  para  população  seguinte.

Page 33: Metaheurísticas

33

Algoritmos genéticos: crossover

! Parâmetros  do  crossover:   ! Ponto  de  corte  aleatório; ! Cortes  em  um  único  ponto  versus  cortes  em  diversos  pontos; ! Taxa  de  crossover.

Page 34: Metaheurísticas

34

Algoritmos genéticos: mutação

! Troca  aleatória  do  valor  contido  nos  genes  de  um  cromossomo  por  outro  valor  válido  do  alfabeto:

1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0

1 1 1 1 1 0

Page 35: Metaheurísticas

35

Algoritmos genéticos: tamanho da população

Pequena Grande

Convergência  prematura  para  soluções  locais

Convergência  não-­‐‑prematura

Baixa  cobertura  do  espaço  de  busca

Melhor  cobertura  do  espaço  de  busca

Menores  esforços  computacionais

Maiores  esforços  computacionais

Page 36: Metaheurísticas

36

Algoritmos genéticos: taxas de crossover e mutação

! Taxa  de  crossover  :  probabilidade  de  um  indivíduo  ser  recombinado  com  outro.   ! Quanto  maior  for  esta  taxa,  mais  rapidamente  novos  indivíduos  serão  introduzidos  

na  população;  

! Pode  gerar  um  efeito  indesejável,  pois  a  maior  parte  da  população  será  substituída,  causando  assim  perda  de  variedade  genética,  podendo  ocorrer  perda  de  estruturas  de   alta   aptidão   e   convergência   a   uma   população   com   indivíduos   extremamente  parecidos,  com  características  boas  ou  não;

! Com  um  valor  baixo,  o  algoritmo  pode  ficar  muito  lento. ! Taxa  de  mutação:  probabilidade  de  um  gene  do  cromossomo  ser  alterado.  

! A  taxa  de  mutação  previne  que  uma  dada  população  fique  estagnada  em  um  valor,  além  de  possibilitar  que  se  chegue  em  qualquer  ponto  do  espaço  de  busca;  

! Deve-­‐‑se   evitar   uma   taxa   de  mutação  muito   alta,   uma   vez   que   esta   pode   tornar   a  busca   essencialmente   aleatória,   prejudicando   fortemente   a   convergência   para   uma  solução  ótima.

Page 37: Metaheurísticas

37

Algoritmos genéticos: intervalo e número de gerações

! Intervalo   de   Geração:   controla   a   porcentagem   da   população   que   será  substituída  durante  a  próxima  geração:   ! substituição  total;

! substituição  com  elitismo;

! substituição  dos  piores  indivíduos  da  população  atual.

! Número  de  gerações:  representa  o  número  total  de  ciclos  de  evolução  de  um  AG,  sendo  este  um  dos  critérios  de  parada  do  algoritmo:

! um  número  de  gerações  muito  pequeno  causa  uma  queda  no  desempenho;

! um  valor  grande  proporciona  um  tempo  maior  de  processamento,              mas  fornece  uma  melhor  cobertura  do  domínio  do  problema,              evitando  a  convergência  para  soluções  locais.

Page 38: Metaheurísticas

38

Colônia de Formigas (Ant Colony Optimization): motivação

! Proposta  por  Dorigo  (1992):

! Técnica   probabilística   para   solução   de   problemas   computacionais   que  podem  ser  reduzidos  em  “encontrar  bons  caminhos  ao  longo  de  um  grafo”;

! Formigas   parecem   ser   capazes   de   encontrar   seu   caminho   com   relativa  facilidade:   ü  do  formigueiro  para  uma  fonte  de  alimentos  e  de  volta  ao  formigueiro;   ü  para  contornar  um  obstáculo;

! Estudos   etimológicos   constataram   em   muitos   casos   que   esta   capacidade  resulta  da  interação  entre  a  comunicação  química  entre  formigas  (através  de  uma   substância   chamada   feromônio)   e   um   fenômeno   emergente   causado  pela  presença  de  muitas  formigas.

Page 39: Metaheurísticas

39

Colônia de Formigas: ilustração da motivação

Page 40: Metaheurísticas

40

Colônia de Formigas: feromônio

1 2

3

Page 41: Metaheurísticas

41

Colônia de formigas: procedimento Ant System

! Combina  uma  heurística  construtiva  com  uma  memória  adaptativa  baseada  nas  soluções  construídas  em  iterações  anteriores.

Procedimento  Ant  System          Gera_e_ativa_formigas  (  );          Evapora_feromônio  (  );          Controla_ações(  );    {  opcional  } Fim  do  Ant  System

Page 42: Metaheurísticas

42

Colônia de formigas: formigas artificiais

! Formigas  artificiais  assemelham-­‐‑se  a  heurísticas  construtivas. ! Elas  constroem  soluções  de  forma  probabilística  utilizando  duas  

informações:

! A  trilha  de  feromônio  (artificial),  que  muda  dinamicamente  durante  a  execução  do  programa,  de  modo  a  refletir  a  experiência  já  adquirida  durante  a  busca;

! A  informação  heurística,  específica  para  o  problema  a  ser  resolvido.

Page 43: Metaheurísticas

43

Colônia de formigas: escolha de um arco

! Uma  formiga  move-­‐‑se  do  nó  i  para  o  nó  j  com  probabilidade:

arestas

Page 44: Metaheurísticas

44

Colônia de formigas: informação heurística

! representa  a  atratividade  que  a  formiga  “sente”  para  visitar  o  arco  (i,j).

Page 45: Metaheurísticas

45

Colônia de formigas: atualização do feromônio (1/3)

ocorrem

Page 46: Metaheurísticas

46

Colônia de formigas: atualização do feromônio (2/3)

Page 47: Metaheurísticas

47

Colônia de formigas: atualização do feromônio (3/3)

Page 48: Metaheurísticas

48

Enxame de partículas: motivação

! Particle  Swarm  Optimization  –  PSO  :  

! metaheurística  evolucionária  desenvolvida  por  Kennedy,  psicólogo  social,              e  Eberhart,  engenheiro  elétrico,  em  1995,  inspirada  na  graciosidade  da  

coreografia  praticada  por  um  bando  de  pássaros  em  seu  vôo  localmente  aleatório  mas  globalmente  determinado.

! Sistema  iniciado  com  população  de  soluções  randômicas. ! Não  utiliza  operadores  de  cruzamento  e  mutação. ! Muito  utilizada  na  resolução  de  problemas  contínuos  não  lineares,  mas  

ainda  pouco  explorada  em  problemas  discretos.    

Page 49: Metaheurísticas

49

Enxame de partículas: ilustração

Nem sempre o mesmo líder.......

Muito Próximos

Atrativos

Page 50: Metaheurísticas

50

Enxame de partículas: partículas

! Os  pássaros  são  representados  por  partículas  que  “voam”  em  um  espaço  de  busca  n     ̶ dimensional  a  procura  de  uma  melhor  solução  para  o  problema  na  qual  estejam  empregadas.

! Cada  partícula  representa  uma  solução  potencial  para  o  problema.

Page 51: Metaheurísticas

51

Enxame de partículas: movimentação das partículas

! As  partículas  guardam  informações  sobre  suas  trajetórias:

! Melhor  posição  encontrada  até  então:  pbest  ;

! Melhor  posição  encontrada  pelo  enxame  (nuvem  /  swarm):  gbest.

! As  partículas  se  comunicam  compartilhando  informações  sobre  os  valores  da  função  objetivo  (fitness)  em  suas  respectivas  posições  locais.

! A  movimentação  das  partículas  é  baseada  em  três  principais  parâmetros:

! Velocidade; ! Fator  de  Individualidade; ! Fator  de  Sociabilidade  (grupo).    

Page 52: Metaheurísticas

52

Enxame de partículas: ilustração da movimentação das partículas

Eu estou aqui! A melhor fitness de meus vizinhos

Minha melhor fitness

x pg

pi

v

Fator de individualidade

Fator de sociabilidade

Page 53: Metaheurísticas

53

Enxame de partículas: algoritmo clássico PSO

Inicialização da População com os vetores de velocidade (v)

e posição (x) randômicos

Para Cada Partícula

Avaliação do fitness

Se o fitness(x) < fitness (pbest)

pbest:=x

Se o fitness(x) < fitness (gbest) gbest:=x

Próxima Partícula

Atualização da Posição x(t+1) = x(t) + v(t+1)

Atualização da Velocidade

gbest = parâmetros da melhor solução

Atualização da Velocidade

Vid(t+1) = W* Vid

(t) + c1*rand ()*(Pid–Xid(t)) + c2*Rand ()*(Pgd –Xid

(t))

Onde:

W : Fator de Inércia ; c1 : Fator de Individualidade; c2 : Fator de Sociabilidade; Xid : Posição Atual da i-ésima Partícula; Pid : Melhor Posição da i-ésima Partícula Encontrada; Pgd : Melhor Posição Global.