在晶体和簇结构预测领域,一些算法对于小体系非常成功。粒子群算法,在这个领域 由Boldyrev所倡导,是进化算法的特殊情形,大量的(集群)候选值(称为“微粒”) 根据一些简单的公式移动到搜索空间。微粒的运动由它们在搜索空间中自已最显著的位置决定,和全体 集群最显著的位置一样。首先,微粒的坐标和’速度’ 随机产生。随后每一步, 位置和速度都根据以下公式更新:
(8) |
这里,和是加权因子,控制PSO算法的行为和效率; 和是[0; 1]范围内的随机数,分别在每一步为 每一个微粒产生;是微粒 最显著 的位置,是整个集群最显著的位置。
这种算法,尽管它简单但可以工作。改进之前安装运行的关键:(1)搜索空间的度量(单独在坐标系中绘制各个晶体结构不重要);(2)用PSO进 化结构的方法,也就是变异操作。
通过直接由原子坐标和两个结构的参数决定的速度 (8)来进化微粒是不可行的。 我们的问题是用指纹距离作为能谱最原始的坐标,且USPEX用来进化PSO微粒的变量作为进化 种群结构最有效公正的方法。即,微粒要么突变(模拟自由移动),要么是以最佳位置参与遗传或最佳的种群 位置(模拟PSO朝这些方向移动)参与遗传。代替了在所有的移动的每一步都加上一些权重(see Eq. 8), 我们通过以下描述的可能性一次性加上:
(11) |
其中是一个微粒现在和最佳位置间的指纹间距,是微粒现在位置和全部种群最佳位置的指纹间距。 我们的测试在几个不同的系统进行,表明这种方法(我们称之为“cor-PSO”,即校正PSO)是比较成功的。 而且比PSO之前的版本好,但在成功率和效率方面仍不能和USPEX算法【3,41】相比。
下面的变量对calculationMethod=PSO是唯一的:
variable PSO_softMut
Meaning: 软模变异的权重(公式eq. 11中的)
Default: 1
Format:
1 : PSO_softMut
variable PSO_BestStruc
Meaning: 用同样PSO微粒的最好位置遗传的权重( in eq. 11)。
Default: 1
Format:
1 : PSO_BestStruc
variable PSO_BestEver
Meaning: 由全局遗传最好PSO的微粒(的权重eq. 11。
Default: 1
Format:
1 : PSO_BestEver