Você está na página 1de 17

Evolução Diferencial

Wesley Marques Lima

Universidade Federal dos Vales do Jequitinhonha e Mucuri (UFVJM)


Instituto de Engenharia, Ciência e Tecnologia (IECT)

11 de fevereiro de 2022

Wesley (UFVJM) Evolução Diferencial 11 de fevereiro de 2022 1 / 17


Índice

1 O algoritmo Evolução Diferencial

2 Testes do Evolução diferencial

Wesley (UFVJM) Evolução Diferencial 11 de fevereiro de 2022 2 / 17


O algoritmo Evolução Diferencial

O que é o Evolução diferencial

A Evolução Diferencial (ED) é um algoritmo evolutivo guloso (greedy)


que se baseia nos mecanismos de seleção natural e na genética de
populações, e utiliza operadores de mutação, cruzamento e seleção para
gerar novos indivíduos em busca do mais adaptado.

Uma importante característica da ED é a pequena quantidade de


parâmetros utilizados, sendo eles a ponderação da diferença empregada
(F), a probabilidade de ocorrência de recombinação (CR), a quantidade
de indivíduos/vetores mantidos na população (Np) e o número de
gerações realizadas durante o processo.

Ele foi originalmente proposto para resolver problemas contínuos, porém


pode ser adaptado para resolver problemas discretos.

Wesley (UFVJM) Evolução Diferencial 11 de fevereiro de 2022 3 / 17


O algoritmo Evolução Diferencial

Funcionamento de um Evolução diferencial clássico

Wesley (UFVJM) Evolução Diferencial 11 de fevereiro de 2022 4 / 17


O algoritmo Evolução Diferencial

Mutação

Um novo indivíduo é criado através da seguinte operação


individuonovo = individuobase + F (individuo1 − individuo2 )

Wesley (UFVJM) Evolução Diferencial 11 de fevereiro de 2022 5 / 17


O algoritmo Evolução Diferencial

Crossover

O vetor experimental uji é formado pela seguinte equação


(
j j
j v j + F (vr1 − vr2 ), se ri <= CR
ui = j
vi , caso contrário

Para garantir a realização da mutação em ao menos uma variável,


seleciona-se, anteriormente a geração de um novo indivíduo, um dos
componentes do mesmo, denominado jRand, onde a mutação é
realizada independentemente da probabilidade CR.

Wesley (UFVJM) Evolução Diferencial 11 de fevereiro de 2022 6 / 17


O algoritmo Evolução Diferencial

Seleção

Agora é optar entre uji e o individuo que já esta na população


(
ui,G+1 , se f (ui,G+1 ) <= f (xi,G )
xi,G+1 =
xi,G , caso contrário

Isso é feito para cada indivíduo da população, portanto ao final desse


processo temos uma nova população.

Wesley (UFVJM) Evolução Diferencial 11 de fevereiro de 2022 7 / 17


O algoritmo Evolução Diferencial

Pseudocódigo do Evolução Diferencial

Wesley (UFVJM) Evolução Diferencial 11 de fevereiro de 2022 8 / 17


Testes do Evolução diferencial

Encontrar o mínimo da função Rastrigin

10
X
min (x2i + 10 − 10 cos(2πxi ))
i=1

s.a
−3x2 − x3 + 2x6 − 6x7 − 4x9 − 2x10 = 3

−x1 − 3x2 − x3 − 5x7 − x8 − 7x9 − 2x10 = 0

x3 + x6 + 3x7 − 2x9 + 2x 10 = 9

2x1 + 6x2 + 2x3 + 2x4 + 4x7 + 6x8 + 16x9 + 4x10 = −16

−x1 − 6x2 − x3 − 2x4 − 2x5 + 3x6 − 6x7 − 5x8 − 13x9 − 4x10 = 30

Wesley (UFVJM) Evolução Diferencial 11 de fevereiro de 2022 9 / 17


Testes do Evolução diferencial

Penalização

Como é feita?
Ao passar pela fitness somo o módulo do resultado de cada
restrição(multipicado por uma cosntante) à rastrigin, assim as soluções
que não satisfaçam as restrições vão naturalmente se tornando menos
interessantes.

Wesley (UFVJM) Evolução Diferencial 11 de fevereiro de 2022 10 / 17


Testes do Evolução diferencial

Resulados

Na literatura
f (x∗ ) = 36.975. Não encontrei os valores de cada variável, apenas o
mínimo da função.

Resultado obtido
f (x∗ ) = 36.975, com solução = {1.9927713494892108,
-0.0024509968801114165, 1.0037211395085273, -1.9958708339178726,
-3.996987141971925, 3.0018004220163985, 0.9994958454687768,
-1.0040097081948325, -0.9976222132861332, 0.0003732377482383712}

Wesley (UFVJM) Evolução Diferencial 11 de fevereiro de 2022 11 / 17


Testes do Evolução diferencial

Problema de Thomson

Nesse problema queremos colocar n elétrons na superfície de uma


esfera de forma a minimizar a energia.Para isso os elétrons devem ficar
equidistantes.

Basicamente queremos
n X
i−1
X 1
min
i=1 j=1
∥xi − xj ∥
s.a

∥xi ∥2 = 1

Wesley (UFVJM) Evolução Diferencial 11 de fevereiro de 2022 12 / 17


Testes do Evolução diferencial

Penalidade

Como é feito?
Calculo o módulo de cada vetor, pois como o elétron tem que estar na
superfície da esfera unitária, esse valor deve ser 1.

Wesley (UFVJM) Evolução Diferencial 11 de fevereiro de 2022 13 / 17


Testes do Evolução diferencial

Resultados

Na literatura

Wesley (UFVJM) Evolução Diferencial 11 de fevereiro de 2022 14 / 17


Testes do Evolução diferencial

Resultados obtidos na execução

Para n = 3,f (x∗ ) = 1.732


Pontos = [array([ 0.42712627, -0.89135306, 0.15183171]), array([0.14349899,
0.73072982, 0.66741439]), array([-0.58406429, 0.13860599, -0.79978578])]

Wesley (UFVJM) Evolução Diferencial 11 de fevereiro de 2022 15 / 17


Testes do Evolução diferencial

Resultados obtidos na execução

Para n = 6, f (x∗ ) = 10.053


Pontos = [array([0.79113257, 0.40103228, 0.46183443]), array([-0.29537691,
-0.11749791, 0.94812796]), array([ 0.20744729, -0.97781003, -0.02943547]),
array([-0.52587126, 0.83518308, -0.16107322]), array([ 0.60118507,
0.24800018, -0.75966261]), array([-0.7808389 , -0.26329484, -0.56654409])]

Wesley (UFVJM) Evolução Diferencial 11 de fevereiro de 2022 16 / 17


Testes do Evolução diferencial

Resultados obtidos na execução

Para n = 20, f (x∗ ) = 152.234


Pontos = [array([ 0.92357192, -0.20391723, -0.32488059]),
array([-0.79241954, 0.58244474, -0.1812382 ]), array([0.10238293,
0.87564692, 0.47222486]), array([-0.70706615, 0.14288747, -0.69305995]),
array([-0.65477998, -0.49361458, -0.57247702]), array([ 0.16918768,
-0.88529083, 0.43346413]), array([-0.45941506, 0.69778223, 0.54947523]),
array([-0.22890099, -0.93723123, -0.26283955]), array([-0.82605086,
-0.54054868, 0.15896178]), array([ 0.64656878, -0.76220306, -0.030999 ]),
array([-0.27517654, -0.58022867, 0.76661574]), array([ 0.63701898,
0.09222345, -0.76560355]), array([-0.26964728, 0.05124739, 0.96175304]),
array([-0.84739449, 0.18009394, 0.50019632]), array([-0.23897669,
0.65188445, -0.7197464 ]), array([0.91109206, 0.10670959, 0.39840126]),
array([ 0.15458533, -0.39616798, -0.90522639]), array([ 0.58940553,
-0.35898178, 0.72359892]), array([ 0.4454619 , 0.72373598, -0.52730118]),
array([0.58700309, 0.80482164, 0.08696 ])]

Wesley (UFVJM) Evolução Diferencial 11 de fevereiro de 2022 17 / 17

Você também pode gostar