我正在使用 Scipy 的差分进化优化器,并且看到一些我无法协调的行为,并且正在寻找对 DE 有一点专业知识的人。
一点背景知识,我将人口中所有成员的目标函数视为具有“best1exp”突变策略的迭代函数。
best1exp 策略通过取
其中 b_0 是最知名的解决方案,F 是突变常数 m^i_r 表示第 i^th 种群迭代的随机成员。
best1exp 中的“exp”部分是交叉策略,它与我关心的效果无关(即使设置 bin=exp 的 CR=1 也存在)。
看起来人口正在支持两种解决方案,这应该是不可能的,因为所有成员都围绕每次迭代的“最佳”解决方案进行随机化(我知道存在交叉,但忽略该细节,因为它不依赖于 CR。对于不同的 CR、F 有和没有抖动、exp 和 bin,存在相同类型的结构。)
那么问题来了,DE如何支持这样的结构呢?需要明确的是,我不是在问这个问题,告诉我为什么“我的”代码会生成这个,而是它怎么可能。