Professional Documents
Culture Documents
Diferencial
Introdução
Computação
Evolutiva Evolução Diferencial
Evolução
Diferencial
Introdução e Conceitos Básicos
Conclusão
Referências
Levy Boccato
Romis Ribeiro de Faissol Attux
Fernando J. Von Zuben
DCA - UNICAMP
24 de Junho de 2009
Evolução
Diferencial Resumo
Introdução
Computação
Evolutiva
Evolução
Introdução
Diferencial
Conclusão
Computação Evolutiva
Referências
Evolução Diferencial
Conclusão
Referências
Evolução
Diferencial Introdução
Meta-Heurísticas
Introdução
Computação
Evolutiva
Computação
Evolutiva
Evolução
◮ Por que estudar meta-heurísticas?
Diferencial
◮ Características indesejáveis:
Conclusão
1. Não garantem a obtenção da solução ótima.
Referências
2. Não têm garantia de convergência.
3. Não têm garantia de custo máximo para se chegar a
uma solução.
◮ O grande atrativo: em diversas aplicações, ainda não
foram concebidos algoritmos exatos de solução ou
mesmo heurísticas específicas. Além disso, os métodos
convencionais que garantem a localização da melhor
solução são infactíveis. Nestas situações, as
meta-heurísticas se tornam candidatas interessantes.
Evolução
Diferencial Computação Evolutiva
Síntese
Introdução
Computação
Evolutiva
Síntese
Esqueleto básico
Evolução
Diferencial
◮ A computação evolutiva se inspira em princípios da
Conclusão
teoria da evolução e seleção natural e utiliza modelos
Referências
destes processos naturais para a solução de problemas.
◮ Principais Ramos:
1. Algoritmos Genéticos
2. Estratégias Evolutivas
3. Programação Evolutiva
4. Programação Genética
5. Sistemas Classificadores
Evolução
Diferencial Computação Evolutiva
Esqueleto Básico
Introdução
Computação
Evolutiva
Síntese
Esqueleto básico
Evolução
Diferencial ◮ Gere aleatoriamente uma população de soluções
Conclusão candidatas.
Referências ◮ Enquanto o critério de parada não for satisfeito, faça:
1. recombine alguns indivíduos da população
2. mute alguns indivíduos da população
3. avalie todo o repertório de soluções candidatas
4. selecione segundo algum critério quais soluções irão
para a próxima geração
Evolução
Diferencial Evolução Diferencial
Histórico
Introdução
◮ 1995 - primeira publicação sobre differential evolution (DE).
Computação
Evolutiva ◮ 1996 - DE participa da Primeira Competição Internacional
Evolução em Computação Evolutiva, realizada em Nagoya, durante o
Diferencial
Histórico IEEE Congress on Evolutionary Computation, e conquista o
Resumo
Mutação
terceiro lugar geral.
Crossover
Seleção ◮ 1997 - Storn, R. e Price, K.,“Differential Evolution - a Simple
Pseudo-Código
Notação and Efficient Heuristic for Global Optimization over
Outros operadores
Requisitos
Continuous Spaces”, Journal of Global Optimization.
Exemplos
Aplicações
◮ 1999 - seção dedicada a DE no livro New Ideas in
Aprendizado
baseado em Optimization.
Oposição
Auto-adaptação ◮ 2005 - primeiro livro dedicado a DE, intitulado Differential
Conclusão Evolution: A Practical Approach to Global Optimization.
Referências
◮ 2006 - sessão especial sobre DE no WCCI-CEC’06.
◮ 2008 - Advances in Differential Evolution.
◮ 2009 - tópico dedicado a DE na IEEE Transactions on
Evolutionary Computation.
Evolução
Diferencial Evolução Diferencial
Resumo
Introdução
Computação
Evolutiva ◮ Este algoritmo utiliza NP vetores de parâmetros
Evolução
Diferencial
D-dimensionais xi,G , i = 1, . . . , NP, como população em
Histórico cada geração G .
Resumo
Mutação
Crossover
◮ O conjunto inicial de vetores é gerado aleatoriamente e
Seleção
Pseudo-Código
deve cobrir todo o espaço de busca. Na ausência de
Notação
Outros operadores qualquer conhecimento acerca do espaço de busca
Requisitos
Exemplos (regiões promissoras ou mesmo soluções parciais),
Aplicações
Aprendizado utiliza-se uma distribuição uniforme para a população
baseado em
Oposição
Auto-adaptação
inicial.
Conclusão ◮ DE gera novos vetores de parâmetros através da adição
Referências da diferença ponderada entre dois vetores de parâmetros
a um terceiro indivíduo. Considere esta operação como
uma mutação.
Evolução
Diferencial Evolução Diferencial
Resumo
Introdução
Computação
Evolutiva
Conclusão
(maximização) que aquele associado ao respectivo
Referências
target vector, este último dará lugar ao primeiro na
próxima geração. Esta operação corresponde à seleção.
Evolução
Diferencial Evolução Diferencial
Mutação
Introdução
Computação
Evolutiva
Evolução
Diferencial ◮ Para cada target vector xi,G , i = 1, . . . , NP, um novo
Histórico
Resumo vetor é gerado por meio da seguinte relação:
Mutação
Crossover
Seleção
Pseudo-Código
vi,G +1 = xr1 ,G + F · (xr3 ,G − xr2 ,G ) (1)
Notação
Outros operadores
Requisitos
Exemplos
◮ r1 ,r2 ,r3 ∈ 1, 2, . . . , NP são índices mutuamente distintos
Aplicações
Aprendizado
e também diferentes do índice i.
baseado em
Oposição
Auto-adaptação
◮ F é uma constante real ∈ [0, 2] que determina o
Conclusão tamanho do passo a ser dado na direção definida pelo
Referências vetor diferença xr3 ,G − xr2 ,G .
Evolução
Diferencial Evolução Diferencial
Exemplo: Mutação
Introdução
Evolução
Diferencial x1
Histórico
Resumo
Mutação
Crossover
Seleção xi,G
Pseudo-Código
Notação
Outros operadores
Requisitos xr2 ,G
Exemplos
Aplicações F (xr3 ,G − xr2 ,G )
Aprendizado
baseado em xr1 ,G
Oposição xr3 ,G
Auto-adaptação
Computação
Evolutiva
Evolução
Diferencial
Histórico
◮ Após as etapas de mutação e crossover, nas quais todos
Resumo
Mutação os NP vetores serviram como target vector, a seleção
Crossover
Seleção dos vetores que serão preservados para a próxima
Pseudo-Código
Notação geração é feita usando um critério guloso.
Outros operadores
Requisitos ◮ Seja xi,G o target vector sob análise e ui,G +1 seu
Exemplos
Aplicações respectivo trial vector.
Aprendizado
baseado em
Oposição
1 Se f (ui,G +1 ) > f (xi,G ), então xi,G +1 = ui,G +1 .
Auto-adaptação (maximização)
Conclusão 2 Caso contrário, xi,G +1 = xi,G .
Referências
Evolução
Diferencial Evolução Diferencial
Pseudo-Código
Introdução
Computação
Evolutiva
Computação
Evolutiva
Evolução
Diferencial
Histórico
◮ A fim de facilitar a discriminação das principais variantes
Resumo
Mutação
de DE, a notação DE/x/y/z foi introduzida, onde:
Crossover
Seleção
1. x - especifica o vetor a ser mutado, isto é, xr1 ,G .
Pseudo-Código
Notação
2. y - determina o número de vetores diferença (direções)
Outros operadores utilizados na etapa de mutação.
Requisitos
Exemplos 3. z - indica o esquema de crossover adotado.
Aplicações
Aprendizado
baseado em
◮ DE/rand/1/bin corresponde ao algoritmo apresentado
Oposição
Auto-adaptação nas seções anteriores e representa a proposta clássica da
Conclusão evolução diferencial.
Referências
Evolução
Diferencial Evolução Diferencial
Outros operadores de mutação
Introdução
Computação
Evolutiva
Evolução
Diferencial
Histórico
◮ DE/rand/2
Resumo
Mutação
• mutação:
Crossover
Seleção
vi,G +1 = xr1 ,G + F · (xr3 ,G − xr2 ,G ) + F · (xr5 ,G − xr4 ,G )
Pseudo-Código
Notação
◮ DE/best/2
Outros operadores
Requisitos • mutação:
Exemplos
Aplicações
vi,G +1 = xbest,G + F · (xr2 ,G − xr1 ,G ) + F · (xr4 ,G − xr3 ,G )
Aprendizado
baseado em
Oposição
◮ DE/target-to-best/1 - não parece o particle swarm?
Auto-adaptação • mutação:
Conclusão vi,G +1 = xi,G + F · (xbest,G − xi,G ) + F · (xr2 ,G − xr1 ,G )
Referências
Evolução
Diferencial Evolução Diferencial
Outros operadores de crossover
Introdução
Computação
◮ DE/exp
Evolutiva
Evolução
Seja xi,G o target vector sob análise e vi,G +1 o respectivo
Diferencial vetor mutado. O trial vector ui,G +1 , é obtido da seguinte
Histórico
Resumo maneira:
Mutação
Crossover (
Seleção
vji,G +1 , para j = hniD , . . . , hn + L − 1iD
Pseudo-Código
Notação uji,G +1 = , (3)
Outros operadores xji,G , para todos os outros j ∈ [1, D]
Requisitos
Exemplos
Aplicações
Aprendizado onde n é um inteiro aleatoriamente escolhido ∈ 1, . . . , D, L
baseado em
Oposição
Auto-adaptação
denota o número de componentes que ui,G +1 recebe de
Conclusão vi,G +1 e h·iD denota a função mod com módulo D.
Referências O valor de L é determinado da seguinte maneira: Dado
a = [a1 . . . aD ], onde ai ∽ U(0, 1), então
Computação
Evolutiva
Evolução
Diferencial
Histórico capacidade de lidar com funções custo não-lineares,
Resumo
Mutação não-diferenciáveis e multimodais.
Crossover
Seleção
Pseudo-Código
passível de paralelização.
Notação
Outros operadores acessibilidade - poucas variáveis de controle cujos
Requisitos
Exemplos valores são ajustados de maneira relativamente simples.
Aplicações
Aprendizado
baseado em
auto-ajuste do passo de adaptação - conforme a
Oposição
Auto-adaptação população converge, os passos são cada vez menores.
Conclusão
boas propriedades de convergência.
Referências
Evolução
Diferencial Evolução Diferencial
Exemplos
Introdução
Aprendizado
0
baseado em 2.5
Oposição −2
Auto-adaptação 2
−4
2
Conclusão 1
2 1.5
1
0
0
Referências y −1 −1
1
0 20 40 60 80 100
x
−1 −1
Conclusão −1.2
−1.5
Referências −1.4
−2
4 −1.6
3 4
2 3 −1.8
2
1 1 −2
y 0 0 0 20 40 60 80 100
x
Auto-adaptação 2500
2000
Conclusão
f(x,y)
1500
1000
Referências 500
0
2
2
1
1
0
0
y −1 −1
x
Computação
Evolutiva
Computação
Evolutiva
Evolução ◮ Telecomunicações:
Diferencial
Histórico 1. Mendes, S.P., Gomez Pulido, J.A., Vega rodriguez,
Resumo
Mutação M.A., Jaraiz simon, M.D. e Sanchez Perez, J.M.,“A
Crossover
Seleção
Differential Evolution Based Algorithm to Optimize the
Pseudo-Código
Notação
Radio Network Design Problem”, Proceedings of the
Outros operadores Second IEEE International Conference on e-Science and
Requisitos
Exemplos Grid Computing, 2006.
Aplicações
Aprendizado
baseado em
◮ Otimização e Controle:
Oposição
Auto-adaptação 1. Babu, B.V. e M.M.L. Jehan, “Differential Evolution for
Conclusão Multi-Objective Optimization”, Proceedings of IEEE
Referências Congress on Evolutionary Computation, pp. 2696-2703,
2003.
Evolução
Diferencial Evolução Diferencial
Exemplos de Aplicações
Introdução
◮ Otimização Discreta:
Computação
Evolutiva 1. Onwubolu, G. e Davendra, D., “Scheduling flow shops using
differential evolution algorithm”, European Journal of Operational
Evolução
Diferencial Research, vol. 171, no. 2, pp. 674-692, 2006.
Histórico 2. Sauer, J.G. e Coelho, L.S. “Discrete Differential Evolution with
Resumo local search to solve the Traveling Salesman Problem:
Mutação
Crossover Fundamentals and case studies”, IEEE International Conference
Seleção on Cybernetic Intelligent Systems, 2008.
Pseudo-Código
Notação
3. Tasgetiren, M.F., Pan, Q.K., Suganthan, P.N. e Liang, Y.C., “A
Outros operadores discrete differential evolution algorithm for the total earliness and
Requisitos
Exemplos
tardiness penalties with a common due date on a single-machine”,
Aplicações Proceedings of IEEE Symposium on Computational Intelligence in
Aprendizado Scheduling, pp. 271-278, 2007.
baseado em
Oposição 4. Tasgetiren, M.F., Pan, Q.K., Suganthan, P.N. e Liang, Y.C., “A
Auto-adaptação
discrete differential evolution algorithm for the no-wait flowshop
Conclusão scheduling problem with total flowtime criterion”, Proceedings of
Referências IEEE Symposium on Computational Intelligence in Scheduling,
pp. 271-278, 2007.
5. Tasgetiren, M.F., Suganthan, P.N. e Pan, Q.K., “A discrete
differential evolution algorithm for the permutation flowshop
scheduling problem”, Proceedings of Genetic and Evolutionary
Computation Conference, pp. 158-167, 2007.
Evolução
Diferencial Evolução Diferencial
Aprendizado baseado em Oposição
Introdução
Computação
Evolutiva
Conclusão
solução candidata. Esta idéia pode ser aplicada a uma
Referências
grande variedade de métodos de otimização, inclusive a
outros algoritmos evolutivos.
Evolução
Diferencial Evolução Diferencial
Aprendizado baseado em Oposição
Introdução
◮ Seja x = [x1 . . . xD ] um ponto no espaço D-dimensional,
Computação
Evolutiva onde xi ∈ ℜ, xi ∈ [ai , bi ], i = 1, . . . , D. As coordenadas
Evolução do ponto oposto x̌ = [xˇ1 . . . xˇD ] são dadas por:
Diferencial
Histórico xˇi = ai + bi − xi , i = 1, . . . , D.
Resumo
Mutação
Crossover
◮ A proposta é empregar este procedimento em dois
Seleção
Pseudo-Código
momentos: na definição da população inicial e durante a
Notação
Outros operadores
execução da DE. Neste último caso, em algumas
Requisitos
Exemplos
gerações, ao invés de aplicar os operadores tradicionais
Aplicações
Aprendizado
de mutação e crossover, a população oposta é
baseado em
Oposição construída e procede-se à etapa de seleção gulosa (os
Auto-adaptação
Conclusão
NP melhores indivíduos de todo o repertório de soluções
Referências
são preservados). A probabilidade de ocorrência deste
procedimento é determinada pelo parâmetro JR (jump
rate). É interessante destacar que os limites de cada
variável xi são alterados dinamicamente de acordo com
a distribuição atual da população no espaço de busca.
Evolução
Diferencial Evolução Diferencial
Aprendizado baseado em Oposição
Introdução
Computação
Evolutiva ◮ A Figura abaixo mostra um indivíduo da população e
Evolução
Diferencial
seu oposto.
Histórico
Resumo 2
Mutação
Crossover
1.5
Seleção
Indivíduo Original
Pseudo-Código Indivíduo Oposto
Notação 1
Outros operadores
Requisitos 0.5
y
Exemplos
Aplicações
0
Aprendizado
baseado em
Oposição −0.5
Auto-adaptação
Conclusão −1
−1 −0.5 0 0.5 1 1.5 2
x
Referências
Computação
Evolutiva ◮ Abaixo, apresentamos a população inicial empregando o
Evolução
Diferencial aprendizado baseado em oposição.
Histórico
Resumo
Mutação
Crossover 2
Seleção
Pseudo-Código 6 1.5
Notação 4
1
Outros operadores
2
Requisitos
0.5
Exemplos 0
Aplicações −2
0
Aprendizado −4
baseado em 2
Oposição 1
2 −0.5
Auto-adaptação 0
1
0
−1
−1 −1 −1 −0.5 0 0.5 1 1.5 2
Conclusão
Referências
Figura: Aprendizado baseado em oposição na população inicial.
Evolução
Diferencial Evolução Diferencial
Auto-adaptação
Introdução
Computação
Evolutiva
Evolução
Diferencial
Histórico
Resumo
◮ Estratégias Evolutivas: os parâmetros da mutação
Mutação
Crossover gaussiana são incorporados ao genótipo de cada
Seleção
Pseudo-Código indivíduo da população.
Notação
Outros operadores
Requisitos
◮ Idéia: adaptar os parâmetros CR e F juntamente com
Exemplos
Aplicações
os vetores de parâmetros xi,G .
Aprendizado
baseado em
Oposição
◮ Cada indivíduo passa a ser representado da seguinte
Auto-adaptação
maneira: [x1i,G . . . xDi,G CRi,G Fi,G ].
Conclusão
Referências
Evolução
Diferencial Conclusão
Considerações finais
Introdução
Computação
Evolutiva ◮ Storn, R. e Price, K., “Differential Evolution - a Simple and Efficient
Evolução Adaptive Scheme for Global Optimization over Continuous Spaces” ,
Diferencial Technical Report TR-95-012, ICSI, 1995.
Conclusão ◮ Storn, R. e Price, K.,“Differential Evolution - a Simple and Efficient
Referências
Heuristic for Global Optimization over Continuous Spaces”, Journal of
Global Optimization, Kluwer Academic Publishers, vol. 11, pp. 341 -
359, 1997.
◮ Rahnamayan, S., Tizhoosh, H. R., Salama, M. M. A.,
“Opposition-Based Differential Evolution Algorithms”, Proceedings of
IEEE Congress on Evolutionary Computation, 2006.
◮ Dasrupta, S., Das, S., Biswas, A. e Abraham, A., “On Stability and
Convergence of the Population-Dynamics in Differential Evolution”, AI
Communications, vol. 22, 2009.
◮ Brest,J., Greiner, S., Bošković, B., Mernik, M. e Zumer,
V.,“Self-Adapting Control Parameters in Differential Evolution: A
Comparative Study on Numerical Benchmark Problems”, IEEE
Transactions on Evolutionary Computation, 2006.