Você está na página 1de 39

Algoritmo de Evolução Diferencial

Cristiano L. Castro

Adaptado de material produzido pelo Prof. Frederico G. Guimarães.

c
Cristiano L. Castro (UFMG) Evolução Diferencial 1 / 39
Sumário

1 Introdução

2 Algoritmo de Evolução Diferencial

3 Comportamamento da Mutação Diferencial

4 Aspectos Avançados

c
Cristiano L. Castro (UFMG) Evolução Diferencial 2 / 39
Introdução

Algoritmo de Evolução Diferencial (DE):

Proposto por Rainer Storn e Kenneth Price em 1995.

Muito popular na otimização não linear com variáveis contı́nuas.

Mecanismo básico de busca: operador de mutação diferencial.

Considerado um AE, embora não seja inspirado em processo natural.


Qualidades computacionais interessantes:
simplicidade de implementação;
robustez e eficiência;
autoadaptação;
versatilidade.

c
Cristiano L. Castro (UFMG) Evolução Diferencial 3 / 39
Evolução Diferencial
Introdução

Seja o problema de otimização não linear com variáveis reais contı́nuas:

x∗ = arg min f (x)


x

 g(x) ≤ 0 (1)
sujeito a:

h(x) = 0

Incialmente, vamos considerar o problema irrestrito, isto é, sem as funções


de restrição g(x) e h(x).

c
Cristiano L. Castro (UFMG) Evolução Diferencial 4 / 39
Evolução Diferencial
Notação

Notação:

U[a,b]: amostragem com distribuição uniforme entre a e b;


N[µ,σ] : amostragem com distribuição normal com média µ e desvio
padrão σ.

Seja uma população de soluções candidatas Xt = {xt,i ; i = 1, . . . , N}.


Cada indivı́duo é representado por um vetor coluna:
 
xt,i ,1
xt,i ,2 
 
xt,i =  .  (2)
.
 . 
xt,i ,n

em que, o terceiro ı́ndice indica uma entre as n variáveis do problema.


c
Cristiano L. Castro (UFMG) Evolução Diferencial 5 / 39
Evolução Diferencial
Notação: mutação

O mecanismo de busca do DE utiliza vetores-diferença:

Dois indivı́duos são selecionados aleatoriamente para se criar um


vetor-diferença;

Este vetor-diferença é somado a um terceiro indivı́duo, também


selecionado aleatoriamente, produzindo uma solução mutante;

A solução mutante é portanto o resultado de uma perturbação em


algum indivı́duo da população;

Esta perturbação é um vetor-diferença construı́do aleatoriamente.

c
Cristiano L. Castro (UFMG) Evolução Diferencial 6 / 39
Evolução Diferencial
Notação: mutação

A equação a seguir ilustra esse procedimento:

vt,i = xt,r1 + F (xt,r2 − xt,r3 ) , r1 , r2 , r3 ∈ {1, . . . , N} (3)

Em que vt,i representa a i -ésima solução mutante;

F é um fator de escala aplicado ao vetor-diferença;

O vetor xt,r1 é denominado vetor de base;

A partir deste procedimento, obtém-se uma população mutante


Vt = {vt,i ; i = 1, . . . , N}.

c
Cristiano L. Castro (UFMG) Evolução Diferencial 7 / 39
Evolução Diferencial
Notação: recombinação

A recombinação é obtida da seguinte maneira:

Os indivı́duos da população corrente Xt são recombinados com os


indivı́duos da população mutante Vt .
Produz-se a descendência ou população de soluções teste Ut .
Na versão clássica do DE, emprega-se recombinação discreta com
probabilidade C ∈ [0, 1]:
(
vt,i ,j , se U[0,1] ≤ C ∨ j = δi
ut,i ,j = (4)
xt,i ,j , caso contrário

em que δi ∈ {1, . . . , n} é um ı́ndice gerado aleatoriamente.


O parâmetro C controla o efeito da recombinação discreta.

c
Cristiano L. Castro (UFMG) Evolução Diferencial 8 / 39
Evolução Diferencial
Notação: recombinação

A Figura 1 ilustra a geração de um vetor mutante e as possı́veis soluções


teste obtidas após a recombinação, indicadas por .

1.8
xt,r1
1.6

1.4

1.2

vt,i xt,r3
x2

0.8
xt,i
0.6

0.4

0.2 xt,r2
0
0 0.2 0.4 0.6 0.8
x1
1 1.2 1.4 1.6 1.8 2

Figure : Ilustração do procedimento de geração de uma nova solução.


c
Cristiano L. Castro (UFMG) Evolução Diferencial 9 / 39
Evolução Diferencial
Notação: resumo

Os operadores do DE em forma compacta são:


(
xt,r1 ,j + F (xt,r2 ,j − xt,r3 ,j ) , se U[0,1] ≤ C ∨ j = δi
ut,i ,j = (5)
xt,i ,j , caso contrário

com r1 , r2 , r3 ∈ {1, . . . , N}, t = 1, . . . , tmax , i = 1, . . . , N, e j = 1, . . . , n.

A seleção para sobrevivência pode ser descrita por:


(
ut,i , se f (ut,i ) ≤ f (xt,i )
xt+1,i = (6)
xt,i , caso contrário

c
Cristiano L. Castro (UFMG) Evolução Diferencial 10 / 39
Evolução Diferencial
Notação: algoritmo

Algorithm 1: Algoritmo Modelo de Evolução Diferencial


1 t ← 1;
2 Inicializar população Xt = {xt,i ; i = 1, . . . , N};
3 enquanto algum critério de parada não for satisfeito faça
4 para i = 1 até N hacer
5 Selecionar vetor de base xt,base ; (seleção para reprodução)
6 Selecionar vetor-diferença {∆xt };
7 Selecionar fator de escala F ;
8 Gerar solução mutante usando vt,i = xt,base + F ∆xt ;
9 Adicionar vt,i à população mutante Vt ;
10 fin
11 Recombinar Xt e Vt , com parâmetro C , gerando Ut ;
12 Aplicar seleção para sobrevivência entre Xt e Ut ;
13 t ← t + 1;
14 fim

c
Cristiano L. Castro (UFMG) Evolução Diferencial 11 / 39
Comportamento da Mutação Diferencial
Introdução

Supondo uma população de tamanho N, com N vetores distintos entre si:

Existem ao todo N 2 combinações de diferenças possı́veis;

N são nulas, pois correspondem a diferenças entre um mesmo vetor;

As N(N − 1) diferenças restantes são não nulas;

Essas N(N − 1) diferenças apresentam simetria, porque cada


diferença (xt,r2 − xt,r3 ) possui seu simétrico correspondente;

A probabilidade de selecionar uma dada diferença e seu simétrico é a


mesma.

c
Cristiano L. Castro (UFMG) Evolução Diferencial 12 / 39
Comportamento da Mutação Diferencial
Introdução

Interpretação básica do mecanismo de autoadaptação do DE:

A distribuição dos vetores-diferença depende da distribuição espacial


dos indivı́duos da população.

À medida que a população se distribui de acordo com o “contorno”


da função, a distribuição dos vetores-diferença também se ajusta a
esse contorno.

c
Cristiano L. Castro (UFMG) Evolução Diferencial 13 / 39
Comportamento da Mutação Diferencial
Função convexa

90
80
120 60

60
t=1
40
150 40 30
30

20
20

10 180 0
x2

−10

210 330
−20

−30

240 300
−40
−40 −30 −20 −10
x1
0 10 20 30 40
270

(a) (b)
Figure : Função-objetivo quadrática. (a) Distribuição espacial da população na
geração t = 1. (b) Distribuição dos vetores-diferença na geração t = 1.

c
Cristiano L. Castro (UFMG) Evolução Diferencial 14 / 39
Comportamento da Mutação Diferencial
Função convexa

90
80
120 60

60
t = 10
40
150 40 30
30

20
20

10 180 0
x2

−10

210 330
−20

−30

240 300
−40
−40 −30 −20 −10
x1
0 10 20 30 40
270

(a) (b)
Figure : Função-objetivo quadrática. (a) Distribuição espacial da população na
geração t = 10. (b) Distribuição dos vetores-diferença na geração t = 10.

c
Cristiano L. Castro (UFMG) Evolução Diferencial 15 / 39
Comportamento da Mutação Diferencial
Função convexa

90
80
120 60

60
t = 20
40
150 40 30
30

20
20

10 180 0
x2

−10

210 330
−20

−30

240 300
−40
−40 −30 −20 −10
x1
0 10 20 30 40
270

(a) (b)
Figure : Função-objetivo quadrática. (a) Distribuição espacial da população na
geração t = 20. (b) Distribuição dos vetores-diferença na geração t = 20.

c
Cristiano L. Castro (UFMG) Evolução Diferencial 16 / 39
Comportamento da Mutação Diferencial
Função multimodal

90

120
6
60 t=1
4
3

150 30

2 2

180 0
x2

−1

210 330

−2

240 300
−3
−3 −2 −1
x1
0 1 2 3
270

(a) (b)
Figure : Função-objetivo multimodal. (a) Distribuição espacial da população na
geração t = 1. (b) Distribuição dos vetores-diferença na geração t = 1.

c
Cristiano L. Castro (UFMG) Evolução Diferencial 17 / 39
Comportamento da Mutação Diferencial
Função multimodal

90

120
6
60 t = 10
4
3

150 30

2 2

180 0
x2

−1

210 330

−2

240 300
−3
−3 −2 −1
x1
0 1 2 3
270

(a) (b)
Figure : Função-objetivo multimodal. (a) Distribuição espacial da população na
geração t = 10. (b) Distribuição dos vetores-diferença na geração t = 10.

c
Cristiano L. Castro (UFMG) Evolução Diferencial 18 / 39
Comportamento da Mutação Diferencial
Função multimodal

90

120
6
60 t = 20
4
3

150 30

2 2

180 0
x2

−1

210 330

−2

240 300
−3
−3 −2 −1
x1
0 1 2 3
270

(a) (b)
Figure : Função-objetivo multimodal. (a) Distribuição espacial da população na
geração t = 20. (b) Distribuição dos vetores-diferença na geração t = 20.

c
Cristiano L. Castro (UFMG) Evolução Diferencial 19 / 39
Comportamento da Mutação Diferencial
Função unimodal não convexa

Neste caso, usaremos a função de Rosenbrock:

f (x) = (1 − x1 )2 + 100(x2 − x12 )2 (7)

É unimodal e suas curvas de nı́vel formam conjuntos não convexos.

O ponto de mı́nimo se localiza em um vale estreito e longo.

Essa região apresenta uma inclinação pequena que dificulta a


convergência de métodos de otimização baseados em derivadas.

c
Cristiano L. Castro (UFMG) Evolução Diferencial 20 / 39
Comportamento da Mutação Diferencial
Função unimodal não convexa

90

120
5
60 t=1
4

2.5 3
150 30
2 2

1.5
1
1

0.5
180 0
x2

−0.5

−1
210 330

−1.5

−2

240 300
−2.5
−2.5 −2 −1.5 −1 −0.5
x1
0 0.5 1 1.5 2 2.5
270

(a) (b)
Figure : Função-objetivo unimodal não convexa. (a) Distribuição espacial da
população em t = 1. (b) Distribuição dos vetores-diferença em t = 1.

c
Cristiano L. Castro (UFMG) Evolução Diferencial 21 / 39
Comportamento da Mutação Diferencial
Função unimodal não convexa

90

120
5
60 t = 10
4

2.5 3
150 30
2
2

1.5
1
1

0.5
180 0
x2

−0.5

−1
210 330

−1.5

−2

240 300
−2.5
−2.5 −2 −1.5 −1 −0.5
x1
0 0.5 1 1.5 2 2.5
270

(a) (b)
Figure : Função-objetivo unimodal não convexa. (a) Distribuição espacial da
população em t = 10. (b) Distribuição dos vetores-diferença em t = 10.

c
Cristiano L. Castro (UFMG) Evolução Diferencial 22 / 39
Comportamento da Mutação Diferencial
Função unimodal não convexa

90

120
5
60 t = 20
4

2.5 3
150 30
2
2

1.5
1
1

0.5
180 0
x2

−0.5

−1
210 330

−1.5

−2

240 300
−2.5
−2.5 −2 −1.5 −1 −0.5
x1
0 0.5 1 1.5 2 2.5
270

(a) (b)
Figure : Função-objetivo unimodal não convexa. (a) Distribuição espacial da
população em t = 20. (b) Distribuição dos vetores-diferença em t = 20.

c
Cristiano L. Castro (UFMG) Evolução Diferencial 23 / 39
Aspectos Avançados
Combinações Degeneradas

Os ı́ndices r1 , r2 , r3 são sorteados aleatoriamente para cada i .

O que ocorre quando algum par dos ı́ndices i , r1 , r2 , r3 é coincidente?

Se r2 = r3 :
vt,i = xt,r1

Não há perturbação aplicada ao vetor de base.

Ocorre apenas recombinação de xt,i com xt,r1 .

c
Cristiano L. Castro (UFMG) Evolução Diferencial 24 / 39
Aspectos Avançados
Combinações Degeneradas

Se r1 = r2 ou r1 = r3 , tem-se uma recombinação aritmética.

Para r1 = r2 , temos:

vt,i = xt,r1 + F (xt,r1 − xt,r3 ) = (1 + F )xt,r1 − F xt,r3

Para r1 = r3 , ocorre uma recombinação aritmética tradicional entre


xt,r1 e xt,r2 (se F ∈ [0, 1]):

vt,i = xt,r1 + F (xt,r2 − xt,r1 ) = (1 − F )xt,r1 + F xt,r2

Se F > 1 os cruzamentos são degenerados.

c
Cristiano L. Castro (UFMG) Evolução Diferencial 25 / 39
Aspectos Avançados
Combinações Degeneradas

0.9

0.8

0.7

vt,i
0.6
x2 xt,r1
0.5

0.4
xt,r3
0.3

0.2

0.1

0
0 0.1 0.2 0.3 0.4
x1
0.5 0.6 0.7 0.8 0.9 1

(a)
Figure : Quando r1 = r2 , a nova solução é gerada fora do segmento que une as
duas soluções recombinantes. No exemplo acima, F = 0.4.

c
Cristiano L. Castro (UFMG) Evolução Diferencial 26 / 39
Aspectos Avançados
Combinações Degeneradas

0.9

0.8

0.7

0.6
xt,r1
vt,i
x2
0.5

0.4
xt,r2
0.3

0.2

0.1

0
0 0.1 0.2 0.3 0.4
x1 0.5 0.6 0.7 0.8 0.9 1

(b)
Figure : Quando r1 = r3 , ocorre uma recombinação aritmética tradicional. No
exemplo acima, F = 0.4.

c
Cristiano L. Castro (UFMG) Evolução Diferencial 27 / 39
Aspectos Avançados
Combinações Degeneradas

Se i = r1 . Uma perturbação é aplicada a xt,i de acordo com:

vt,i = xt,i + F (xt,r2 − xt,r3 )

A solução teste ut,i é o resultado da recombinação da solução xt,i


com sua versão perturbada.

O parâmetro C passa a ter o significado de um parâmetro de


mutação, controlando quantas variáveis de xt,i serão perturbadas.

c
Cristiano L. Castro (UFMG) Evolução Diferencial 28 / 39
Aspectos Avançados
Combinações Degeneradas

Se i = r2 ou i = r3 :

Nesse caso o vetor-diferença está na direção que liga xt,i a algum


outro vetor da população, xt,r2 ou xt,r3 .

Essa combinação não é necessariamente indesejável.

c
Cristiano L. Castro (UFMG) Evolução Diferencial 29 / 39
Aspectos Avançados
Combinações Degeneradas

Estas combinações degeneradas, mesmo que tenham baixa


probabilidade de ocorrência, são em geral indesejáveis e podem
prejudicar o desempenho do algoritmo.

Por essa razão, recomenda-se adotar ı́ndices mutuamente distintos,


isto é, i 6= r1 6= r2 6= r3 , em implementações mais práticas do
algoritmo de evolução diferencial.

c
Cristiano L. Castro (UFMG) Evolução Diferencial 30 / 39
Aspectos Avançados
Combinações Degeneradas

Algorithm 2: Pseudocódigo para a seleção de ı́ndices mutuamente distintos


1 repita
2 Selecione aleatoriamente r1 ∈ {1, . . . , N};
3 até r1 6= i;
4 repita
5 Selecione aleatoriamente r2 ∈ {1, . . . , N};
6 até r2 6= i ∧ r2 6= r1 ;
7 repita
8 Selecione aleatoriamente r3 ∈ {1, . . . , N};
9 até r3 6= i ∧ r3 6= r1 ∧ r3 6= r2 ;

c
Cristiano L. Castro (UFMG) Evolução Diferencial 31 / 39
Aspectos Avançados
Variações do Algoritmo

O algoritmo de evolução diferencial em sua versão básica utiliza:

(i) seleção aleatória do vetor base com probabilidade uniforme;

(ii) um (01) vetor-diferença para a mutação, e

(iii) recombinação discreta entre a solução corrente e seu vetor mutante


correspondente.

Entretanto, muitas variações desse esquema básico são possı́veis.

c
Cristiano L. Castro (UFMG) Evolução Diferencial 32 / 39
Aspectos Avançados
Variações do Algoritmo

Pode-se utilizar um mesmo vetor como vetor de base em todas as


operações de mutação diferencial. Assim, temos:

vt,i = xt,best + F (xt,r2 − xt,r3 ) (8)

onde xt,best representa o melhor indivı́duo na população na geração t.

c
Cristiano L. Castro (UFMG) Evolução Diferencial 33 / 39
Aspectos Avançados
Variações do Algoritmo

Pode-se adotar o vetor correspondente à média da distribuição


espacial da população como vetor base.

vt,i = xt,mean + F (xt,r2 − xt,r3 ) (9)

com:

N
1 X
xt,mean = xt,i (10)
N
i =1

c
Cristiano L. Castro (UFMG) Evolução Diferencial 34 / 39
Aspectos Avançados
Variações do Algoritmo

Outra possibilidade é gerar soluções na direção do melhor indivı́duo


para servirem como vetores de base.

vt,i = xt,i + λ (xt,best − xt,i ) +F (xt,r2 − xt,r3 ) (11)


| {z }
xt,base

com λ ∈ [0, 1].

O vetor de base corresponde a um ponto gerado aleatoriamente sobre


o segmento que liga xt,i e xt,best .

Essa forma de seleção de xt,base apresenta menor pressão seletiva que


em (8), embora haja uma polarização na direção da melhor solução.

c
Cristiano L. Castro (UFMG) Evolução Diferencial 35 / 39
Aspectos Avançados
Variações do Algoritmo

A mutação diferencial pode ser generalizada para empregar mais


vetores-diferença na criação do vetor mutante:
d
X
vt,i = xt,r1 + Fk ∆xt,k (12)
k=1

em que a perturbação aplicada ao vetor de base é composta pela


soma de d vetores-diferença da forma:

∆xt,k = xt,rk+1 − xt,rk+1+d (13)
Por exemplo, usando o mesmo valor de Fk para todo k e d = 3:

vt,i = xt,r1 + F (xt,r2 − xt,r5 + xt,r3 − xt,r6 + xt,r4 − xt,r7 ) (14)

c
Cristiano L. Castro (UFMG) Evolução Diferencial 36 / 39
Aspectos Avançados
Variações do Algoritmo

O uso de mais de um vetor-diferença na mutação diferencial


aumenta a capacidade de geração de diversidade no algoritmo.

Contudo, essa estratégia reduz a capacidade de alinhamento dos


vetores-diferença com o contorno da função.

O uso de mais vetores-diferença aumenta a busca global no algoritmo


e prejudica a busca local.

c
Cristiano L. Castro (UFMG) Evolução Diferencial 37 / 39
Aspectos Avançados
Variações do Algoritmo

Existe uma notação sintética para representar as variações do DE.

Essa notação padrão segue o formato DE/base/d/rec:

@ base indica a forma como o vetor de base é selecionado.

@ d indica o número de vetores-diferença.

@ rec faz referência ao operador de recombinação utilizado.

Por exemplo, a versão clássica do DE pode ser representada pela


notação DE/rand/1/bin.

c
Cristiano L. Castro (UFMG) Evolução Diferencial 38 / 39
Aspectos Avançados
Variações do Algoritmo

Notação Mutação diferencial


DE/rand/1/bin vt,i = xt,r1 + F (xt,r2 − xt,r3 )

DE/best/1/bin vt,i = xt,best + F (xt,r2 − xt,r3 )

1
PN
DE/mean/1/bin vt,i = N k=1 xt,k + F (xt,r2 − xt,r3 )

DE/rand-to-best/1/bin vt,i = xt,r1 + λ (xt,best − xt,r1 ) + F (xt,r2 − xt,r3 )

DE/current-to-best/1/bin vt,i = xt,i + λ (xt,best − xt,i ) + F (xt,r2 − xt,r3 )

DE/rand/2/bin vt,i = xt,r1 + F1 (xt,r2 − xt,r4 ) + F2 (xt,r3 − xt,r5 )

Table : Algumas instâncias do algoritmo de evolução diferencial.

c
Cristiano L. Castro (UFMG) Evolução Diferencial 39 / 39

Você também pode gostar