# 差分进化算法

## 差分进化

$\begin{array}{}\text{(1)}& {x}_{i}^{t}=\left({x}_{1,i}^{t},{x}_{2,i}^{t},...,{x}_{d,i}^{t}\right),\end{array}$

$\begin{array}{}\text{(2)}& {v}_{i}^{t+1}={x}_{p}^{t}+F\left({x}_{q}^{t}-{x}_{r}^{t}\right),\end{array}$

Figure 1 Schematic representation of mutation vectors in differential evolution with movement $\delta =F\left({x}_{q}-{x}_{r}\right)$$\delta=F(x_q - x_r)$.

Figure 2 Pseudo code of differential evolution.

## 算法变体

$\begin{array}{}\text{(6)}& {v}_{i}^{t+1}={x}_{p}^{t}+F\left({x}_{q}^{t}-{x}_{r}^{t}\right),\end{array}$

$\begin{array}{}\text{(7)}& {v}_{i}^{t+1}={x}_{best}^{t}+F\left({x}_{q}^{t}-{x}_{r}^{t}\right).\end{array}$

$\begin{array}{}\text{(8)}& {v}_{i}^{t+1}={x}_{best}^{t}+F\left({x}_{k1}^{t}+{x}_{k2}^{t}-{x}_{k3}^{t}-{x}_{k4}^{t}\right).\end{array}$

$\begin{array}{}\text{(9)}& {v}_{i}^{t+1}={x}_{k1}^{t}+{F}_{1}\left({x}_{k2}^{t}-{x}_{k3}^{t}\right)+{F}_{2}\left({x}_{k4}^{t}-{x}_{k5}^{t}\right),\end{array}$

$\begin{array}{}\text{(10)}& {v}_{i}^{t+1}={x}_{k1}^{t}+\sum _{s=1}^{m}{F}_{s}\cdot \left({x}_{k2\left(s\right)}^{t}-{x}_{k3\left(s\right)}^{t}\right),\end{array}$

$\begin{array}{}\text{(11)}& {v}_{i}^{t+1}=\lambda {x}_{best}^{t}+\left(1-\lambda \right){x}_{k1}^{t}+F\left({x}_{k2}^{t}-{x}_{k3}^{t}\right),\end{array}$

$\begin{array}{}\text{(12)}& {v}_{i}^{t+1}=\lambda {x}_{best}^{t}+\left(1-\lambda \right){x}_{k1}^{t}+F\sum _{s=1}^{m}\left({x}_{k2\left(s\right)}^{t}-{x}_{k3\left(s\right)}^{t}\right).\end{array}$

## 收敛性分析

$\begin{array}{}\text{(13)}& 2m{F}^{2}+\left(1-\lambda {\right)}^{2}>1,\lambda \in \left(0,1\right).\end{array}$

$\begin{array}{}\text{(14)}& E\left(var\left(P\right)\right)=c\phantom{\rule{thinmathspace}{0ex}}var\left(X\right),\end{array}$

$\begin{array}{}\text{(15)}& E\left(var\left(P\right)\right)=\left(1+2{p}_{m}{F}^{2}-\frac{{p}_{m}\left(2-{p}_{m}\right)}{n}\right)var\left(X\right),\end{array}$

$\begin{array}{}\text{(16)}& {p}_{m}=\left\{\begin{array}{ll}{C}_{r}\left(1-\frac{1}{d}\right)+\frac{1}{d}& \text{(binomial crossover)},\\ \frac{1-{C}_{r}^{d}}{d\left(1-{C}_{r}\right)}& \text{(exponential crossover)}.\end{array}\end{array}$

$\begin{array}{}\text{(17)}& var\left(P\right)=\left(1+2{F}^{2}{p}_{m}-\frac{{p}_{m}\left(2-{p}_{m}\right)}{n}{\right)}^{t}var\left(X\left(0\right)\right).\end{array}$

$\begin{array}{}\text{(18)}& 1+2{F}^{2}{p}_{m}-\frac{{p}_{m}\left(2-{p}_{m}\right)}{n}=1,\end{array}$

$\begin{array}{}\text{(19)}& {F}_{c}=\sqrt{\frac{\left(2-{p}_{m}\right)}{n}}.\end{array}$

$\begin{array}{}\text{(20)}& {p}_{m}={C}_{r}\left(1-\frac{1}{d}\right)+\frac{1}{d}=0.5×\left(1-\frac{1}{10}\right)+\frac{1}{10}=0.55.\end{array}$

$\begin{array}{}\text{(21)}& {C}_{r}=\frac{\left({p}_{m}-\frac{1}{d}\right)}{\left(1-\frac{1}{d}\right)}.\end{array}$

$\begin{array}{}\text{(22)}& {C}_{r}=\frac{\left(0.2-1/10\right)}{\left(1-1/10\right)}\approx 0.44.\end{array}$

## 实现

% Differential Evolution for global optimization
% Programmed by Xin-She Yang @Cambridge University 2008

% The basic version of scheme DE/RAND/1 is implemented
% Usage: de(para) or de;

function [best, fmin, N_iter] = de(para)
% Default parameters
if nargin < 1
para = [10 0.7 0.9];
end

n = para(1); % Population >= 4, typically 10 to 25
F = para(2); % DE parameter - scaling (0.5 to 0.9)
Cr = para(3); % DE parameter - crossover probability

% Iteration parameters
tol = 10^(-5); % Stop tolerance
N_iter = 0; % Total number of function evaluations

% Simple bounds
Lb = [-1 -1 -1];
Ub = [2, 2, 2];

% Dimension of the search variables
d = length(Lb);

% Initialize the populations/solutions
for i = 1:n
Sol(i,:) = Lb + (Ub - Lb).*rand(size(Lb));
Fitness(i) = Fun(Sol(i,:));
end
% Find the current best
[fmin, I] = min(Fitness);
best = Sol(I, :)

% Start the iterations by differential evolution
while (fmin > tol)
% Obtain donor vectors by permutation
k1 = randperm(n); k2 = randperm(n);
k1sol = Sol(k1,:); k2sol = Sol(k2,:);
% Random crossover index/matrix
K = rand(n, d) < Cr;
% DE/RAND/1 scheme
V = Sol + F*(k1sol - k2sol);
V = Sol.*(1 - K) + V.*K;

% Evaluate new solutions
for i = 1:n
Fnew = Fun(V(i,:));
% If the solution improves
if Fnew <= Fitness(i)
Sol(i,:) = V(i,:);
Fitness(i) = Fnew;
end
% Update the current best
if Fnew <= fmin
best = V(i,:);
fmin = Fnew;
end
end
N_iter = N_iter + n;
end

% Output/display
disp(['Number of evaluations: ', num2str(N_iter)]);
disp(['Best=', num2str(best), ' fmin=', num2str(fmin)]);
end

% Objective function -- Rosenbrock's 3D function
function  z = Fun(u)
z = (1 - u(1)^2 + 100*(u(2) - u(1)^2)^2 + 100*(u(3) - u(2)^2)^2);
end


[1] Beyer HG. On the dynamics of EAs without selection. In: Banzaf W, Reeves C, editors. Foundations of genetic algorithms. San Francisco, CA, USA: Morgan Kaufmann Publishers; 1999. p. 5–26.

[2] Brest J, Greiner S, Boskovic B, Mernik M, Zumer V. Self-adapting control parameters in differential evolution: a comparative study on numerical benchmark functions. IEEE Trans Evol Comput 2006;10(6):646–57.

[3] Chakraborty UK. Advances in differential evolution. Studies in computational intelligence, vol. 143. Heidelberg, Germany: Springer; 2008.

[4] Das S, Suganthan PN. Differential evolution: a survey of the state-of-the-art. IEEE Trans Evol Comput 2011;15(1):4–31.

[5] Jeyakumar G, Velayutham CS. Convergence analysis of differential evolution variants on unconstrained global optimization functions. Int J Art Intell Appl 2011;2(2):116–26.

[6] Qin AK, Huang VL, Suganthan PN. Differential evolution algorithm with strategy adaptation for global numerical optimization. IEEE Trans Evol Comput 2009;13(2):398–417.

[7] Storn R. On the usage of differential evolution for function optimization. In: Biennial conference of the North American fuzzy information processing society (NAFIPS); 1996. p. 519–23.

[8] Storn R, Price K. Differential evolution: a simple and efficient heuristic for global optimization over continuous spaces. J Global Optimization 1997;11:341–59.

[9] Price K, Storn R, Lampinen J. Differential evolution: a practical approach to global optimization. Germany: Springer; 2005.

[10] Xue F, Sanderson AC, Graves RJ. Multiobjective differential evolution: algorithm, convergence analysis and applications. In: Proceedings of congress on evolutionary computation (CEC 2005), Edinburgh, vol. 1. Edinburgh, Scotland: IEEE Publication; 2005. p. 743–50.

[11] Yang XS, Deb S. Two-stage eagle strategy with differential evolution. Int J Bio-Inspired Comput 2012;4(1):1–5.

[12] Zaharie D. A comparative analysis of crossover variants in differential evolution. In: Ganzha M, Paprzycki M, Pilichowski TP, editors. Proceedings of the international multiconferenceon computer science and information technology, October 15–17, 2007. Poland: Wisla; 2007. p. 171–81. (Polskie Towarzystwo Informatyczne, PIPS, Katowice).

[13] Zaharie D. Influence of crossover on the behavior of the differential evolution algorithm. Appl Soft Comput 2009;9(3):1126–38.

[14] Zaharie D. Differential evolution: from theoretical results to practical insights. In: Matousek R, editor. Proceedings of the 18th international conference on soft computing, June 27–29, Brno. Czech Republic: Brno University of Technology Press; 2012. p. 126–31.

• 广告
• 抄袭
• 版权
• 政治
• 色情
• 无意义
• 其他

120