差异进化与遗传算法中的参数区间

Parameter Intervals in Differential Evolution vs. Genetic Algorithms

我习惯了遗传算法(GA)中的每个参数都可以表示为二进制字符串的方法,可以在指定的时间间隔内将其编码为实数值。

我目前正在编写差分进化 (DE) 代码,但我还没有读到任何关于参数间隔被控制的内容,就像它们在 GA 中一样,所以我对这个过程有点困惑......这里我的问题是:

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

2) 我看到了如何为初始随机化群体指定间隔,但是有什么限制变异和交叉操作的间隔吗?

3) 如果参数没有任何界限,那么突变和交叉操作是否可以自由探索所有 space?

感谢您的宝贵时间。

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

1) Is there anything controlling the intervals of parameters in DE? I realize that anyone can modify a DE for their purpose, but I'm curious about how it is traditionally used.

在德国你有他们所谓的策略。有很多:

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) I see how you can specify intervals for the initial randomized population, but is there anything restraining the intervals in the mutation and crossover operations?

突变和交叉被你的策略克制select。

3) If there aren't any bounds on the parameters, then are the mutation and crossover operations free to explore all the space?

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