Evolução diferencial - Differential evolution

Evolução diferencial otimizando a função Ackley 2D.

Em computação evolutiva , evolução diferencial ( ED ) é um método que otimiza um problema ao tentar melhorar iterativamente uma solução candidata com relação a uma dada medida de qualidade. Tais métodos são comumente conhecidos como metaheurísticas , pois fazem poucas ou nenhuma suposição sobre o problema que está sendo otimizado e podem pesquisar espaços muito grandes de soluções candidatas. No entanto, metaheurísticas como DE não garantem que uma solução ótima seja encontrada.

DE é usado para funções de valor real multidimensionais, mas não usa o gradiente do problema que está sendo otimizado, o que significa que DE não exige que o problema de otimização seja diferenciável , como é exigido por métodos de otimização clássicos, como descida de gradiente e métodos de quase newton . DE pode, portanto, também ser usado em problemas de otimização que nem mesmo são contínuos , são barulhentos, mudam ao longo do tempo, etc.

O DE otimiza um problema mantendo uma população de soluções candidatas e criando novas soluções candidatas combinando as existentes de acordo com suas fórmulas simples e, em seguida, mantendo a solução candidata que tiver a melhor pontuação ou adequação ao problema de otimização em questão. Desta forma, o problema de otimização é tratado como uma caixa preta que meramente fornece uma medida de qualidade dada uma solução candidata e, portanto, o gradiente não é necessário.

A DE foi introduzida por Storn e Price na década de 1990. Livros foram publicados sobre aspectos teóricos e práticos do uso de DE em computação paralela , otimização multiobjetivo , otimização restrita e os livros também contêm pesquisas de áreas de aplicação. Pesquisas sobre os aspectos multifacetados da pesquisa de EAD podem ser encontradas em artigos de periódicos.

Algoritmo

Uma variante básica do algoritmo DE funciona tendo uma população de soluções candidatas (chamadas de agentes). Esses agentes são movidos no espaço de busca usando fórmulas matemáticas simples para combinar as posições dos agentes existentes na população. Se a nova posição de um agente é uma melhoria, então ele é aceito e faz parte da população, caso contrário, a nova posição é simplesmente descartada. O processo é repetido e, ao fazê-lo, espera-se, mas não é garantido, que uma solução satisfatória seja eventualmente descoberta.

Formalmente, seja a função de aptidão que deve ser minimizada (observe que a maximização pode ser realizada considerando a função ). A função pega uma solução candidata como argumento na forma de um vetor de números reais e produz um número real como saída que indica a adequação da solução candidata dada. O gradiente de não é conhecido. O objetivo é encontrar uma solução para o qual para todos no espaço de busca, o que significa que é o mínimo global.

Vamos designar uma solução candidata (agente) na população. O algoritmo DE básico pode então ser descrito da seguinte forma:

  • Escolha os parâmetros , e . é o tamanho da população, ou seja, o número de candidatos a agentes ou "pais"; uma configuração clássica é 10 . O parâmetro é chamado de probabilidade de cruzamento e o parâmetro é chamado de peso diferencial . As configurações clássicas são e . O desempenho da otimização pode ser muito afetado por essas escolhas; Veja abaixo.
  • Inicialize todos os agentes com posições aleatórias no espaço de busca.
  • Até que um critério de encerramento seja atendido (por exemplo, número de iterações realizadas ou adequação adequada alcançada), repita o seguinte:
    • Para cada agente na população, faça:
      • Escolha três agentes e, da população ao acaso, eles devem ser distintos entre si e também do agente . ( é chamado de vetor "base").
      • Escolha um índice aleatório onde está a dimensionalidade do problema que está sendo otimizado.
      • Calcule a posição potencialmente nova do agente da seguinte forma:
        • Para cada um , escolha um número aleatório uniformemente distribuído
        • Se ou então defina de outra forma . (A posição do índice é substituída com certeza.)
      • Se então, substitua o agente na população pela solução candidata melhorada ou igual .
  • Escolha o agente da população que tem a melhor aptidão e retorne-o como a solução candidata mais bem encontrada.

Seleção de parâmetros

Cenário de desempenho mostrando como o DE básico executa em agregado nos problemas de benchmark Sphere e Rosenbrock ao variar os dois parâmetros de DE e , e mantendo fixo = 0,9.

A escolha do DE parâmetros e pode ter um grande impacto sobre o desempenho de otimização. A seleção dos parâmetros de DE que geram bom desempenho, portanto, tem sido objeto de muitas pesquisas. As regras práticas para a seleção de parâmetros foram elaboradas por Storn et al. e Liu e Lampinen. A análise matemática da convergência em relação à seleção dos parâmetros foi feita por Zaharie.

Variantes

Variantes do algoritmo DE estão continuamente sendo desenvolvidas em um esforço para melhorar o desempenho da otimização. Muitos esquemas diferentes para realizar crossover e mutação de agentes são possíveis no algoritmo básico fornecido acima, consulte, por exemplo.

Veja também

Referências