社会认知优化算法

社会认知优化算法(Social Cognitive Optimization,SCO)是一种基于社会认知理论的集群智能优化算法

基本概念

知识点:知识点是位于知识空间(例如搜索空间S)中对位置X和水平(例如适应度)的描述构成的点。

库:库是一个包含一系列知识点的表,这个表是有大小的。

学习代理:学习代理是一个行为个体,支配库中的一个知识点。

领域搜索:有两个点X1和X2,对X2的领域搜索就是以X1作为参考选出一个新的点X’,对第j维的点
X'[j] = X1[j] + 2*rand()*(X2[j]-X1[j])
rand为(0,1)间的随机数,
X1定义为参考点
X2定义为中心点
整个优化过程由一系列学习代理来完成。

算法步骤

假设库中知识点的个数是nPop,学习代理的数量是nDelegate,具体的算法步骤如下:

(1)初始化过程

在库在随机生成所有的nPop个知识点(包括生成知识点的位置和其水平)

给每个学习代理随机分配库的一个知识点,但不允许把一个知识点重复分配给多个学习代理

(2)替代学习过程。对每个学习代理:

模仿学习:从库中随机选择两个或者多个知识点(一般选择两个就可以),但这些选出的知识点都不能和学习代理的知识点重复,然后基于竞争选择的原则在这几个知识点之间先出一个好的知识点。

观察学习:对比选择出来的知识点和代理自身的知识点水平,选择水平较好的那个点作为中心点,用较差的那个点作为参考点,然后学习代理基于领域搜索的原则根据这两个点移动到新的知识点,并且将新的知识点储存到库中。

(3)库更新过程。从库中移去nDelegate个具有最差的水平的知识点。

(4)重复步骤2到步骤4,直到满足停止条件(例如达到预先确定的迭代次数,或者结果达到预先设定的精度)。



前一篇:量子粒子群算法

后一篇:混合蛙跳算法

发表评论

You must be logged in to post a comment.