5.6 粒子群算法(PSO)指令

在晶体和簇结构预测领域,一些算法对于小体系非常成功。粒子群算法,在这个领域 由Boldyrev所倡导,是进化算法的特殊情形,大量的(集群)候选值(称为“微粒”) 根据一些简单的公式移动到搜索空间。微粒的运动由它们在搜索空间中自已最显著的位置决定,和全体 集群最显著的位置一样。首先,微粒的坐标$\chi $和’速度’ $\upsilon $随机产生。随后每一步, 位置和速度都根据以下公式更新:

  \begin{equation} \label{eq:pso} \begin{aligned}  \upsilon ’_{i} & = \omega \cdot \upsilon _{i} + \varphi _{p} \cdot r_{p} \cdot (p_{i} - \chi _{i}) + \varphi _{g} \cdot r_{g} \cdot (g - \chi _{i}),\\ \chi ’_{i} & = \chi _{i} + \upsilon ’_{i}. \end{aligned} \end{equation}   (8)

这里$\omega $$\varphi _{p}$$\varphi _{g}$是加权因子,控制PSO算法的行为和效率; $r_{p}$$r_{g}$是[0; 1]范围内的随机数,分别在每一步为 每一个微粒产生;$p_{i}$是微粒$i$ 最显著 的位置,$g$是整个集群最显著的位置。

这种算法,尽管它简单但可以工作。改进之前安装运行的关键:(1)搜索空间的度量(单独在坐标系中绘制各个晶体结构不重要);(2)用PSO进 化结构的方法,也就是变异操作。

\includegraphics[scale=0.3]{pic/PSO}
13: 三个个体数量10代之后的的PSO-USPEX混合算法图例(用 菱形、正方形和圆形标记)。每个微粒的最好位置都用放大的符号标记。最好的结构是大的正方形。 圆形标记的结构可突变,用其历史中最好的位置(大圆)产生子代或通过遗传操作以$P_{m}$$P_{p}$$P_{g}$的 概率产生全部种群(大正方形)的最好位置。

通过直接由原子坐标和两个结构的参数决定的速度$\upsilon _{i}$ (8)来进化微粒是不可行的。 我们的问题是用指纹距离作为能谱最原始的坐标,且USPEX用来进化PSO微粒的变量作为进化 种群结构最有效公正的方法。即,微粒要么突变(模拟自由移动),要么是以最佳位置参与遗传或最佳的种群 位置(模拟PSO朝这些方向移动)参与遗传。代替了在所有的移动的每一步都加上一些权重(see Eq. 8), 我们通过以下描述的可能性一次性加上:

  \begin{equation} \label{eq:pso2} \begin{aligned}  P_{m} = \frac{\omega }{\Sigma };\qquad & P_{p} = \frac{\varphi _{p} \cdot r_{p} \cdot D_{p}}{\Sigma };\qquad P_{g} = \frac{\varphi _{g} \cdot r_{g} \cdot D_{g}}{\Sigma };\\ & \Sigma = \omega + \varphi _{p} \cdot r_{p} \cdot D_{p} + \varphi _{g} \cdot r_{g} \cdot D_{g}, \end{aligned} \end{equation}   (11)

其中$D_{p}$是一个微粒现在和最佳位置间的指纹间距,$D_{g}$是微粒现在位置和全部种群最佳位置的指纹间距。 我们的测试在几个不同的系统进行,表明这种方法(我们称之为“cor-PSO”,即校正PSO)是比较成功的。 而且比PSO之前的版本好,但在成功率和效率方面仍不能和USPEX算法【3,41】相比。

下面的变量对calculationMethod=PSO是唯一的:

$\triangleright $ variable PSO_softMut

Meaning: 软模变异的权重(公式eq. 11中的$\omega $

Default: 1

Format:

1 : PSO_softMut

$\triangleright $ variable PSO_BestStruc

Meaning: 用同样PSO微粒的最好位置遗传的权重($\varphi _{p}$ in eq. 11)。

Default: 1

Format:

1 : PSO_BestStruc

$\triangleright $ variable PSO_BestEver

Meaning: 由全局遗传最好PSO的微粒($\varphi _{g}$的权重eq. 11

Default: 1

Format:

1 : PSO_BestEver