孤立测试SO算法的方法
1. 粒子迭代操作
只要未满足特定的终止条件,粒子 $\Pi_i$ 在每次迭代中会执行以下操作,其流程如图 1 所示:
graph TD
A[评估表示分区 P 的适应度 f(P)] --> B{ f(P) > f(Bi) }
B -- 是 --> C[设置 Bi = P,并通知邻居更新 BNj]
B -- 否 --> D[更新粒子 Πi 邻域 Ni 中找到的最佳解 BNi]
D --> E{是否满足终止条件}
E -- 是 --> F[停止]
E -- 否 --> G[随机选择移动方向]
G --> H[确定移动操作并应用到 P 得到新位置 P′]
具体步骤如下:
1. 评估表示分区 $P$ 的适应度 $f(P)$。
2. 如果粒子的适应度 $f(P)$ 高于其最佳找到解 $B_i$ 的适应度 $f(B_i)$,则将 $B_i$ 设置为 $P$。此外,通知所有在其邻域 $N_j$ 中包含 $\Pi_i$ 的其他粒子 $\Pi_j$ 关于此改进,以便它们可以更新 $B_{N_j}$,即其邻域中找到的最佳解。
3. 更新 $\Pi_i$ 邻域 $N_i$ 中找到的最佳解 $B_{N_i}$。
4. 如果满足终止条件,则停止。
5. 否则,随机选择移动方向,即选择是应用随机移动还是接近操作。在接近操作的情况下,还要确定应接近的位置(即 $B_i$ 或 $B_{N_i}$)。
6. 通过将选定的移动操作应用于 $P$ 来确