0

我正在使用 Scipy 的差分进化优化器,并且看到一些我无法协调的行为,并且正在寻找对 DE 有一点专业知识的人。

一点背景知识,我将人口中所有成员的目标函数视为具有“best1exp”突变策略的迭代函数。

best1exp 策略通过取

在此处输入图像描述

其中 b_0 是最知名的解决方案,F 是突变常数 m^i_r 表示第 i^th 种群迭代的随机成员。

best1exp 中的“exp”部分是交叉策略,它与我关心的效果无关(即使设置 bin=exp 的 CR=1 也存在)。

看起来人口正在支持两种解决方案,这应该是不可能的,因为所有成员都围绕每次迭代的“最佳”解决方案进行随机化(我知道存在交叉,但忽略该细节,因为它不依赖于 CR。对于不同的 CR、F 有和没有抖动、exp 和 bin,存在相同类型的结构。)

在此处输入图像描述

那么问题来了,DE如何支持这样的结构呢?需要明确的是,我不是在问这个问题,告诉我为什么“我的”代码会生成这个,而是它怎么可能。

4

1 回答 1

1

这很容易由您的目标函数引起。(假设您正在绘制所有评估。)

一些扰动可能会触发恰好 500 的适应度变化,而您的最佳值可能距离触发它仅一步之遥。或者你的目标函数可能是随机的,评估它会随机奖励 500 分。

于 2021-01-01T14:04:26.560 回答