Algoritmo de Evolução Diferencial:


Dentre os métodos de otimização heurísticos desenvolvidos nos últimos anos, o algoritmo de Evolução Diferencial (ED) (Storn e Price, 1997), configura-se como uma das estratégias mais utilizadas para a resolução de problemas da ciência e engenharia. Seu sucesso se deve a sua concepção conceitual simples, facilidade de implementação, capacidade de estruturação em arquitetura paralela, habilidade de escapar de ótimos locais, e pelos resultados obtidos em aplicações com diferentes graus de complexidade.


Em linhas gerais, a idéia principal por trás deste algoritmo é o esquema proposto para atualização de cada indivíduo, a saber, por meio da realização de operações vetoriais. Basicamente, a diferença ponderada entre dois indivíduos da população é adicionada a um terceiro indivíduo da mesma população. Assim, o indivíduo gerado através deste esquema é avaliado segundo a função objetivo, podendo inclusive substituir indivíduos mal sucedidos nas gerações seguintes. Esta característica faz com que essa técnica seja reconhecida como uma abordagem puramente estrutural, o que a diferencia em relação às outras técnicas evolutivas, já que essas têm fundamentação teórica inspirada na natureza (Price et al., 2005).


O algoritmo de ED baseia-se na realização de operações vetoriais na qual a diferença ponderada entre dois indivíduos distintos, adicionada a um terceiro indivíduo, é o responsável pela geração de candidatos. De maneira geral, o algoritmo de ED apresenta as seguintes operações: inicialização da população, mutação, cruzamento, seleção, além do critério de parada do algoritmo. A seguir são descritas cada uma destas operações.


Inicialização do Algoritmo


O processo de inicialização da população no algoritmo de ED, assim como acontece em outras estratégias heurísticas, consiste na geração de indivíduos de forma aleatória. Neste caso, faz-se uso da definição do tamanho da população e do domínio de cada variável de projeto. A partir daí, geram-se números randômicos que serão aplicados a esse intervalo, obtendo-se assim um vetor de indivíduos da população, como mostrado a seguir:

\[x_{i,j} = x_{i,L} + rand\left( {x_{i,U} - x_{i,L} } \right)\] onde \(x_{i,L}\) e \(x_{i,U}\) são os limites inferiores e superiores das \(j\)-ésimas variáveis de projeto, respectivamente, e rand é um gerador de números randômicos entre 0 e 1.


Operador de Mutação


Uma vez inicializado o processo evolutivo, o algoritmo de ED realiza as opera- ções de mutação e recombinação para a geração de uma nova população com NP indivíduos. O operador de mutação diferencial adiciona um vetor de referência, escolhido aleatoriamente na população, a um vetor diferença obtido a partir de outros dois vetores também escolhidos aleatoriamente na população. A equação a seguir mostra como essa combinação é realizada para gerar o novo vetor (candidato) \(v_{i,g}\): \[v_{i,g} = x_{r0,g} + F\left( {x_{r1,g} - x_{r2,g} } \right)\] onde o escalar \(F\), denominado taxa de perturbação, é um número real que controla a magnitude do vetor diferença obtido em cada operação aritmética realizada. Os vetores \(x_{r0,g}\), \(x_{r1,g}\) e \(x_{r2,g}\) são geralmente escolhidos aleatoriamente na população, apesar de poderem ser definidos de outras formas, como apresentado a seguir.


\(\checkmark\) Estratégia 1 (DE/best/1/exp):

\[x^{j+1}=x^{j}_{best}+F(x^{j}_{\kappa_1}-x^{j}_{\kappa_2})\]

\(\checkmark\) Estratégia 2 (DE/rand/1/exp):

\[x^{j+1}=x^{j}_{\kappa_3}+F(x^{j}_{\kappa_1}-x^{j}_{\kappa_2})\]

\(\checkmark\) Estratégia 3 (DE/ran-to-best/2/exp):

\[x^{j+1}=x^{j}_{old}+F(x^{j}_{best}-x^{j}_{old})+F(x^{j}_{\kappa_1}-x^{j}_{\kappa_2})\]

\(\checkmark\) Estratégia 4 (DE/best/2/exp):

\[x^{j+1}=x^{j}_{best}+F(x^{j}_{\kappa_1}-x^{j}_{\kappa_2})+F(x^{j}_{\kappa_3}-x^{j}_{\kappa_4})\]

\(\checkmark\) Estratégia 5 (DE/rand/2/exp):

\[x^{j+1}=x^{j}_{\kappa_5}+F(x^{j}_{\kappa_1}-x^{j}_{\kappa_2})+F(x^{j}_{\kappa_3}-x^{j}_{\kappa_4})\]

\(\checkmark\) Estratégia 6 (DE/best/1/bin):

\[x^{j+1}=x^{j}_{best}+F(x^{j}_{\kappa_1}-x^{j}_{\kappa_2})\]

\(\checkmark\) Estratégia 7 (DE/rand/1/bin):

\[x^{j+1}=x^{j}_{\kappa_3}+F(x^{j}_{\kappa_1}-x^{j}_{\kappa_2})\]

\(\checkmark\) Estratégia 8 (DE/rand-to-best/2/bin):

\[x^{j+1}=x^{j}_{old}+F(x^{j}_{best}-x^{j}_{old})+F(x^{j}_{\kappa_1}-x^{j}_{\kappa_2})\]

\(\checkmark\) Estratégia 9 (DE/best/2/bin):

\[x^{j+1}=x^{j}_{best}+F(x^{j}_{\kappa_1}-x^{j}_{\kappa_2})+F(x^{j}_{\kappa_3}-x^{j}_{\kappa_4})\]

\(\checkmark\) Estratégia 10 (DE/rand/2/bin):

\[x^{j+1}=x^{j}_{\kappa_5}+F(x^{j}_{\kappa_1}-x^{j}_{\kappa_2})+F(x^{j}_{\kappa_3}-x^{j}_{\kappa_4})\]

A convenção utilizada nesta tabela é DE/X/Y/Z, onde X representa o vetor que será perturbado (best ou rand). Por exemplo, optando-se por rand, o vetor que será perturbado é escolhido aleatoriamente na população. Y é o número de pares de vetores que são considerados durante a perturbação e Z é o tipo de cruzamento usado para a geração do candidato, bin no caso binomial e exp no caso exponencial. Os subscritos \(\kappa_i\) (i=1,..., 5) são índices escolhidos aleatoriamente na população. \(x_{best}\) é o melhor indivíduo da população na geração anterior e \(x_{old}\) é um indivíduo escolhido aleatoriamente dentro da população na geração anterior.


Operador de Cruzamento


Para complementar a operação de mutação, o algoritmo de ED emprega o operador de cruzamento. Nesta operação, o vetor \(v_{i,g}\) gerado anteriormente pode ou não ser aceito na próxima geração de acordo com a seguinte condição:

\[u_{i,g} = \left\{ {\begin{array}{*{20}l} {v_{i,g} } & {{\rm{ \text{se} \;}}rand \le CR{\rm{\; \text{ou} \;}}j = j_{rand} {\rm{ }}} \\ {x_{i,g} } & {{\rm{\text{caso contrário} }}} \\ \end{array}} \right.\]

onde \(CR\) é denominada probabilidade de cruzamento, definida pelo usuário e contida no intervalo [0, 1]. Esse parâmetro controla as informações dos pais que serão transmitidas aos filhos. Para determinar qual a contribuição de um determinado vetor gerado, o cruzamento compara \(CR\) com o gerador de números randômicos rand. Se o número randômico gerado é menor ou igual a \(CR\), o vetor \(v_{i,g}\) (com posição \(j_{rand}\)) é aceito, caso contrário, o vetor \(x_{i,g}\) é mantido na população atual.


Operador de Seleção


Se o vetor \(u_{i,g}\) tem melhor valor de função objetivo (\(f\)) em relação ao vetor \(x_{i,g}\), ele o substitui na próxima geração; caso contrário, \(x_{i,g}\) é mantido na população por mais uma geração, como mostrado a seguir:

\[x_{i,g + 1} = \left\{ {\begin{array}{*{20}l} {u_{i,g} } & {{\rm{ \text{se} \;}}f(u_{i,g} ) \le f(x_{i,g} )} \\ {x_{i,g} } & {{\rm{\text{caso contrário} }}} \\ \end{array}} \right.\]

Uma vez completado o processo de atualização da população que será conside- rada na próxima geração, todo o processo descrito acima é repetido até que um determinado critério de parada seja satisfeito.


Critério de Parada


Este objetiva a convergência associada a um baixo esforço computacional, mensurado pelo número de avaliações da função objetivo. Tradicionalmente, o principal critério de parada utilizado em abordagens heurísticas é mesmo o número máximo de gerações, definido pelo usuário. Todavia, outros mecanismos podem ser utilizados para finalizar o processo evolutivo, dentre os quais se pode citar : o tempo de processamento, o número de avaliações da função objetivo, o uso de um valor de referência obtido da literatura para essa finalidade e o monitoramento do próprio usuário.


A Inicialização dos Parâmetros do Algoritmo


Com relação à escolha dos parâmetros do algoritmo de ED, Storn e Price (1997) aconselham o uso dos seguintes valores: número de indivíduos da população como sendo igual a um valor entre 5 e 10 vezes o número de variáveis de projeto, taxa de perturbação \(F\) entre 0,2 e 2,0 e probabilidade de cruzamento \(CR\) entre 0,1 e 1,0. Com relação à escolha da estratégia DE/X/Y/Z, qualquer uma das dez apresentadas podem ser empregadas para a resolução de um problema em particular. De forma geral, a de número 7 é uma das mais utilizadas, sendo default nas implementações apresentadas na literatura.


Modelagem Matemática
Otimizar a Mistura de Catalisadores
Voltar para a página principal do LabSim-EQ

visitas