Dança das Cadeiras

Como posicionar as pessoas em uma empresa

Problema

Onde as pessoas devem sentar para que seus colaboradores diretos estejam próximos?

Solução

Implementar um mais de um algoritmo que faça a alocação dos lugares.

78 pessoas

90 lugares

Algoritmos

  • Simulated Annealing
  • Genetic Algorithm
  • Ant Colony Optimization
  • Clonal Selection (optimization)

Rodando...

Seleção Clonal

100 iterações

 Algoritmos Competindo

Quem consegue o menor custo em uma hora

Nota: O Simulated Annealing teve ajuda!

"Tuning"

(trapaceando) ^_^

Usei o CLONALG para encontrar os melhores parâmetros para o Simulated Annealing

Fitness:

Menor custo em 2 minutos

O que foi feito?

  • Rodar tudo de novo (feito)
  • Colocar os mesmos visualizadores em tudo (feito)
  • Usar mesma função de custo (feito)
  • Usar operadores de mutação no Simulated Annealing (feito)
  • Testar com Algoritmo Genético (ainda não)
  • Será que dá pra resolver com Programação Dinâmica? (não)
  • Usar CLONALG para "tuning" do Annealing (feito)
  • Fazer "tuning" do CLONALG com ele mesmo (ainda não)
  • Colocar algoritmos para competir (feito)

Lições aprendidas

Simulated Annealing

  • Simples
  • Parâmetros são um pesadelo (temperature schedulling)
  • Entra e sai de boas regiões com igual facilidade

Lições aprendidas

Ant Colony Optimization

  • Adaptação complexa
  • Função objetivo difícil para otimização ("formigas famintas")
  • Lento para montar cada solução candidata

Provavelmente o algoritmo errado para o problema, ou adaptação errada.

Lições aprendidas

Clonal Selection (Optimization)

  • Adaptação simples
  • Parametrização pouco sensível
  • Converge rapidamente
  • Preenchimento da população com indivíduos aleatórios não ajuda
  • Mutações... (1, 3 vs 1, 2, 3, 4, 5)

Bom, barato e eficiente! \o/

Lições aprendidas 1

e dúvidas

  • "Suavidade" da função objetivo
    • Menos platôs?
    • Convexa?
  • "Schedulling" de acordo com a derivada?
    • Heurística local vs cego
    • ACO / Mutações

Clonal Selection

Lições aprendidas 2

e dúvidas

  • Calcular o Fitness é lento.
    • Trivialmente paralelizável!
    • Tentar um problema maior com Amazon?
  • Operadores de mutação
    • Vale investir
    • Heurística Local
  • Mínimos locais são "inevitáveis"
    • Niching Methods? (Mahfoud 95)
    • Mais mutações?

Melhor lição?

"50 pounds of clay"

Fim

Dança das Cadeiras

By Ronie Uliana

Dança das Cadeiras

Algoritmos p/ otimização combinatória.

  • 2,381