2

我已经习惯了在遗传算法(气)的每个参数可以被表示为可在指定的时间间隔进行编码,以一个真实值的二进制串的方法。参数区间

我目前编码一个差分进化(DE)代码,我还没有读到被控制就像他们在GA参数区间任何东西,所以我有点困惑这个过程...这里是我的问题:

1)是否有任何东西控制DE中的参数间隔?我意识到,任何人都可以修改DE的目的,但我很好奇它是如何传统使用的。

2)我看你怎么可以对初始随机人群指定的时间间隔,但有什么限制在变异和交叉作业的间隔?

3)如果没有对参数的任何界限,则是变异和交叉操作自由探索所有的空间?

谢谢你的时间。

回答

3

差分进化滤波器通过将两个群体成员之间的加权差异向量添加到第三个成员来生成新的参数向量。如果得到的向量产生比预定总体成员更低的目标函数值,则新产生的向量替换与其进行比较的向量;否则,保留旧的矢量。信息here

1)有什么控制的参数DE间隔?我意识到,任何人都可以修改DE的目的,但我很好奇它是如何传统使用的。

在DE你有什么他们所谓的战略。有很多种:

1 --> DE/best/1/exp   6 --> DE/best/1/bin 
2 --> DE/rand/1/exp   7 --> DE/rand/1/bin 
3 --> DE/rand-to-best/1/exp 8 --> DE/rand-to-best/1/bin 
4 --> DE/best/2/exp   9 --> DE/best/2/bin 
5 --> DE/rand/2/exp   else DE/rand/2/bin 

你可以在Matlab here找到代码。

2)我看你如何指定初始随机人群的区间,但是有什么限制突变和交叉操作中的区间?

突变和交叉受限于您选择的策略。

3)如果参数没有任何界限,那么是否可以通过变异和交叉操作来自由探索所有的空间?

理论上,如果您在所有解决方案空间内启动限制,DE会找到全局最优。但是,根据我的经验,我注意到解决方案空间中的初始参数和限制对于获得快速响应非常重要。简而言之,如果您对解决方案的位置有一定的了解,那么如果您在这些值内划定参数,则DE会表现得更好。

相关问题