📜  实值参数 (GA) 的变异算法

📅  最后修改于: 2021-10-20 10:31:37             🧑  作者: Mango

遗传算法(GA)是自适应启发式搜索算法,属于进化算法的较大部分。在每一代染色体(我们的解决方案候选者)都会经历突变、交叉和选择,以产生一个更好的群体,其染色体更接近我们想要的解决方案。变异运算符是一元运算运算符,它只需要一个父级即可。它通过从我们选择的染色体(父母)中选择几个基因,然后对它们应用所需的变异运算符来实现。

在本文中,我将讨论实值参数的四种变异算法——
1) 统一突变
2) 不统一
3) 边界突变
4) 高斯突变

在这里,我们正在考虑具有 n 个实数(它们是我们的基因)的染色体,x i代表一个基因,i 属于 [1,n]。

统一突变——

在均匀突变中,我们从染色体中选择一个随机基因,假设 x i并为其分配一个均匀随机值。
让 x i在 [a i , bi i ] 范围内,然后我们将 U(a i , bi i ) 分配给 x i
U(a i , bi i ) 表示范围 [a i , bi i ] 内的均匀随机数。

Algorithm –
1.    Select a random integer number i from [1,n]
2.    Set xi to U(ai,bi).

边界突变——

在边界变异我们从染色体选择一个随机的基因,让我们说X I和分配上限或下限X I到它的。
让 x i在 [a i , bi i ] 范围内,然后我们将 a i或 b i分配给 x i
我们还选择了一个变量 r= U(0,1) ( r 是一个介于 0 和 1 之间的数字)。
如果 r 大于或等于 0.5 ,则将 b i分配给 x i否则将 a i分配给 x i

Algorithm –
1.    select a random integer number i form [1,n]
2.    select a random real value r from (0,1).
3.    If(r >= 0.5)
             Set xi to bi
       else
             Set xi to ai

非均匀突变 –

在非均匀突变中,我们从染色体中选择一个随机基因,假设 x i并为其分配一个非均匀随机值。
让 x i在 [a i , bi i ] 范围内,然后我们为其分配一个非均匀随机值。

我们使用一个函数,
f(G)=(r2*(1-G/Gmax))b ,
其中 r2 = (0,1) 之间的均匀随机数
G = 当前代号
Gmax = 最大世代数
b = 形状参数
这里我们选择一个介于 (0,1) 之间的均匀随机数 r1。
如果 r 大于或等于 0.5,我们将 ( bi i -x i ) * f(G) 分配给 x i否则我们分配 (a i + x i ) * f(G)。

Algorithm –
1.    Select a random integer i within [1,n]
2.    select two random real values r1 ,r2 from (0,1).
3.    If(r1 >= 0.5)
             Set xi to (bi-xi) * f(G)
       else
             Set xi to (ai+ xi) * f(G)

高斯突变 –

高斯变异利用高斯误差函数。与前面提到的算法相比,它的收敛效率要高得多。我们选择一个随机基因,假设 x i属于范围 [a i , bi i ]。让突变的弹簧为 x’ i 。每个变量都有一个变异强度运算符(σ i )。我们使用 σ= σ i /( bi i -a i ) 作为所有 n 个变量的固定无量纲参数;
因此后代 x’ i由下式给出——

x’i= xi + √2 * σ * (bi-ai)erf-1(u’i)

这里 erf() 表示高斯误差函数。

erf(y)=2⁄√π ∫y0 e-t2 dt

对于计算 u i ‘ 我们首先从范围 (0,1) 中选择一个随机值 u i然后使用以下公式

if(ui>=0.5)
    u’i=2*uL*(1-2*ui)
else
    u’i=2*uR*(2*ui-1)

u L和 u R再次由公式给出

uL=0.5(erf( (ai-xi)⁄(√2(bi-ai)σ) )+1)
uR=0.5(erf( (bi-xi)⁄(√2(bi-ai)σ) )+1)

参考 –
1.https://www.iitk.ac.in/kangal/papers/k2012016.pdf
2.https://en.wikipedia.org/wiki/Mutation_(generic_algorithm)
3.http://read.pudn.com/downloads152/ebook/662702/gaotv5.pdf

如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程学生竞争性编程现场课程