群体优化算法
A. 几大群体智能算法异同
1.都是一类不确定算法。不确定性体现了自然界生物的生物机制,并且在求解某些特定问题方面优于确定性算法。仿生优化算法的不确定性是伴随其随机性而来的,其主要步骤含有随机因素,从而在算法的迭代过程中,事件发生与否有很大的不确定性。
2.都是一类概率型的全局优化算法。非确定算法的优点在于算法能有更多机会求解全局最优解。
3.都不依赖于优化问题本身的严格数学性质。在优化过程中都不依赖于优化问题本身严格数学性质(如连续性,可导性)以及目标函数和约束条件精确的数学描述。
4.都是一种基于多个智能体的仿生优化算法。仿生优化算法中的各个智能体之间通过相互协作来更好的适应环境,表现出与环境交互的能力。
B. 粒子群算法(一):粒子群算法概述
本系列文章主要针对粒子群算法进行介绍和运用,并给出粒子群算法的经典案例,从而进一步加深对粒子群算法的了解与运用(预计在一周内完成本系列文章)。主要包括四个部分:
粒子群算法也称粒子群优化算法(Particle Swarm Optimization, PSO),属于群体智能优化算法,是近年来发展起来的一种新的进化算法(Evolutionary Algorithm, EA)。 群体智能优化算法主要模拟了昆虫、兽群、鸟群和鱼群的群集行为,这些群体按照一种合作的方式寻找食物,群体中的每个成员通过学习它自身的经验和其他成员的经验来不断地改变搜索的方向。 群体智能优化算法的突出特点就是利用了种群的群体智慧进行协同搜索,从而在解空间内找到最优解。
PSO 算法和模拟退火算法相比,也是 从随机解出发,通过迭代寻找最优解 。它是通过适应度来评价解的品质,但比遗传算法规则更为简单,没有遗传算法的“交叉”和“变异”,它通过追随当前搜索到的最大适应度来寻找全局最优。这种算法以其 容易实现、精度高、收敛快 等优点引起了学术界的重视,并在解决实际问题中展示了其优越性。
在粒子群算法中,每个优化问题的解被看作搜索空间的一只鸟,即“粒子”。算法开始时首先生成初始解,即在可行解空间中随机初始化 粒子组成的种群 ,其中每个粒子所处的位置 ,都表示问题的一个解,并依据目标函数计算搜索新解。在每次迭代时,粒子将跟踪两个“极值”来更新自己, 一个是粒子本身搜索到的最好解 ,另一个是整个种群目前搜索到的最优解 。 此外每个粒子都有一个速度 ,当两个最优解都找到后,每个粒子根据如下迭代式更新:
其中参数 称为是 PSO 的 惯性权重(inertia weight) ,它的取值介于[0,1]区间;参数 和 称为是 学习因子(learn factor) ;而 和 为介于[0,1]之间的随机概率值。
实践证明没有绝对最优的参数,针对不同的问题选取合适的参数才能获得更好的收敛速度和鲁棒性,一般情况下 , 取 1.4961 ,而 采用 自适应的取值方法 ,即一开始令 , 使得 PSO 全局优化能力较强 ;随着迭代的深入,递减至 , 从而使得PSO具有较强的局部优化能力 。
参数 之所以被称之为惯性权重,是因为 实际 反映了粒子过去的运动状态对当前行为的影响,就像是我们物理中提到的惯性。 如果 ,从前的运动状态很少能影响当前的行为,粒子的速度会很快的改变;相反, 较大,虽然会有很大的搜索空间,但是粒子很难改变其运动方向,很难向较优位置收敛,由于算法速度的因素,在实际运用中很少这样设置。也就是说, 较高的 设置促进全局搜索,较低的 设置促进快速的局部搜索。
C. 人工萤火虫群优化算法是什么
人工萤火虫群优化算法是模拟自然界中萤火虫成虫发光的生物学特性发展而来的,也是基于群体搜索的随机优化算法。
关于该算法目前文献有两种版本:
①由印度学者Krishnanand等人提出,称为GSO(glowwormswarmoptimization);
②由剑桥学者Yang提出,称为FA(fireflyalgorithm)。
D. 常见的群体智能算法不包括
有一些并不是广泛应用的群体智能算法,比如萤火虫算法、布谷鸟算法、蝙蝠算法以及磷虾群算法等等。
粒子群算法(particle swarm optimization,PSO)是计算智能领域中的一种生物启发式方法,属于群体智能优化算法的一种,常见的群体智能优化算法主要有如下几类:
设想这样一个场景:一群鸟在随机的搜索食物。在这个区域里只有一块食物,所有的鸟都不知道食物在哪。但是它们知道自己当前的位置距离食物还有多远。那么找到食物的最优策略是什么?最简单有效的就是搜寻目前离食物最近的鸟的周围区域。
Step1:确定一个粒子的运动状态是利用位置和速度两个参数描述的,因此初始化的也是这两个参数;
Step2:每次搜寻的结果(函数值)即为粒子适应度,然后记录每个粒子的个体历史最优位置和群体的历史最优位置;
Step3:个体历史最优位置和群体的历史最优位置相当于产生了两个力,结合粒子本身的惯性共同影响粒子的运动状态,由此来更新粒子的位置和速度。
位置和速度的初始化即在位置和速度限制内随机生成一个N x d 的矩阵,而对于速度则不用考虑约束,一般直接在0~1内随机生成一个50x1的数据矩阵。
此处的位置约束也可以理解为位置限制,而速度限制是保证粒子步长不超限制的,一般设置速度限制为[-1,1]。
粒子群的另一个特点就是记录每个个体的历史最优和种群的历史最优,因此而二者对应的最优位置和最优值也需要初始化。其中每个个体的历史最优位置可以先初始化为当前位置,而种群的历史最优位置则可初始化为原点。对于最优值,如果求最大值则初始化为负无穷,相反地初始化为正无穷。
每次搜寻都需要将当前的适应度和最优解同历史的记录值进行对比,如果超过历史最优值,则更新个体和种群的历史最优位置和最优解。
速度和位置更新是粒子群算法的核心,其原理表达式和更新方式:
每次更新完速度和位置都需要考虑速度和位置的限制,需要将其限制在规定范围内,此处仅举出一个常规方法,即将超约束的数据约束到边界(当位置或者速度超出初始化限制时,将其拉回靠近的边界处)。当然,你不用担心他会停住不动,因为每个粒子还有惯性和其他两个参数的影响。
粒子群算法求平方和函数最小值,由于没有特意指定函数自变量量纲,不进行数据归一化。
E. 智能优化算法:自私羊群优化算法
@[toc]
摘要:自私羊群优化 (Selfish Herds optimization,SHO) 算法是由 Fausto 于 2017 年提出的元启发式算法。该算法主要模拟羊群受到捕食者攻击时的自私行为(尽量聚集到牧群中心远离捕食者),它具有易于理解和实施的特点。
SHO 算法它主要基于汉密尔顿提出的自私群理论来模拟猎物与捕食者之间的狩猎关系。当群体中的个体受到捕食者的攻击时,为了增加生存机会,群体中的个体产生聚集行为,个体更有可能移动到相对安
全的位置(群体的中心位置),并且群体的边缘个体更容易受到攻击,这也导致群体的边缘个体逃离群体,以增加他们被捕食者攻击时的生存机会。该方法假设整个平原是一个解空间,该算法包含两个不同的搜索因子:被狩猎群和狩猎群。每缓拆个搜索因子通过一组不同的进
化算子指导算法的计算,以便更好地模拟猎物与捕食者关系之间的关系。
假设自私羊群体优化算法的群体集合是 ,它包含 个种群个体,种群中的每一个体被定义为 ,其代表个体在种群中的位置信息,n 代表解决方案的大小。整个种群组的初始化公式如下:
其中 和 分别表示解空间的下限和上限。算法参数值的范围: 和 。 表示随机函数,生成值的范围落在区间[0,1]内。
在自私羊群优化算法中,整个种群 被分为两个子群: 和 代表一群猎物, 代表一群捕食者。在自然界中,猎物的数量通常多于捕食者的数量。在正哪码 SHO 中,猎物 的数量占总个体的 70%~90% ( ) ,其余的个体被认为是捕食者 ( ) 。 和 按以下公式计算:
其中, 表示一个随机数,其值范围为 0.7到 0.9, 表示将实数转换为整数的函数。
在 SHO 中,为整个种群 ( ) 的每个体 ( ) 分配一个生存值 ( ) ,其代表个体的生存能力,有机会在攻击中生存或成功杀死攻击中的猎物。生存价值的数学公式定义如下:
其中, 代表目标函数, 和 分别代表目标函数的最佳值和最差值。对 70%~90%的猎物计算生存价值,生存价值最高的为猎物领袖,生存价值越低的为最容易被捕获的猎物。
基于 SHO 的算法的结构主要包括四个方面:① 猎物(被捕食者)领袖的运动;② 猎物追随者的跟随运动或逃脱运动;③ 捕食者的狩猎运动;④ 捕食阶段和恢复阶段。
猎物的领导者被定义为猎物种群中最大的生存价值。定义公式如下:
猎物领袖的位置更新如下:
代表区间[0,1]之间的随机数, 越大,位置更新越快,捕获的猎物越多; 越小,捕获的猎物越少。 代表个体之间的吸引力, 代表猎物的相对危险位置, 与 定义如下:
在猎物种群中,猎物追随者分为跟随猎物 ( ) 和逃生猎物 ( ) ,跟随猎物又分为优势猎物 ( ) 和下属猎物 ( ) 。其定义如下:
其中 代表猎物生存价值的平均值,定义如下:
跟随猎物的位置更新公式如下:
其中, 表示区间[0,1]内的随机数形式, 表示局部最优个体, 表示猎物的相对安全位置,其定义如下:
其中 代表猎物个体之间的欧几里德距离。逃生猎物的位置更新公式如下:
其中, 表示全局最优位置, 和 表示在区间[0,1]内的随机数, 表示距离猎物领袖位置, 越小,表示距离举哪越近; 表示控制随机偏移值的长短, 越小,表示偏移值越小。 表示空间解中的随机方向。
在捕食者种群中,捕食者的位置更新公式如下:
其中, 代表区间[0,1]之间的随机数, 值越大,位置更新越远,越容易忽略猎物。 是基于捕食概率从猎物种群中随机选择的猎物,捕食概率 定义如下:
表示捕食者和猎物之间的吸引力,吸引力的数学公式定义如下:
其中 代表 和 之间的欧几里德距离。
捕食阶段:每个猎物都有一个危险的区域,如果它属于这个领域,很可能被捕食者捕杀。危险域通常是一个圆,其半径定义为:
危险区域的猎物收集定义如下:
猎物在危险区域被猎杀的概率定义如下:
恢复阶段:在 SHO 中,被捕食者猎杀的所有猎物都将被新生的猎物所取代,新的猎物将通过交配操作产生,SHO通过交配概率选择交配猎物,其定义如下:
其中 代表一群没有被捕食者捕杀的猎物集,交配操作定义如下:
函数 用于从不同个体 中选择维度组件。
算法流程如下:
1.Input
2.Begin
3.利用公式初始化所有个体 S
4.定义羊群成员和捕食者的个数,利用公式(1)并将S 分为两组:H 与 P
5.For entire S do
6.利用公式(3)计算生存值
7.End For
8.While(t <Max number of iterations)
9.执行自私羊群移动操作
[1] Fausto F,Cuevas E,Valdivia A,et al.A global optimization
algorithm inspired in the behavior of selfish herds[J].
BioSystems,2017,160:39-55.
[2] 朱惠娟,王永利,陈琳琳.面向三维模型轻量化的自私羊群优化算法研究[J].计算机工程与应用,2020,56(03):42-48.
https://mianbaoo.com/o/bread/aJicmJ0=
F. 群智能算法的基本思想
群智能算法的基本思想
基本思想
群算法的核心含义就是模拟各种动物或者事物群体的一种寻优过程,群优化算法通过设计一种无质量的粒子来模拟消陆各种动物群中的个体,个体仅具有两个属性:速度和位置,速度代表移动的快慢,位置代表移动的方向。每个单体在搜索空间中单独的搜寻最优解,并将其记为当前个体极值,并将个体极值与整个群里的其他个体共享,找到最优的那个单体极值作为整个群的当前全局最优解,群中的所有单体根据自己找到的当前个体极值和整个群共享的当前全局最优解来调整自己的速度和位置,该类方法一般用拿卖顷于优化问题。
很多研究生的在写论文的时候都会用到各种优化算法,例如粒子群算法、蚁群算法、遗传算法等。但由于这些算法都太配闹老,所以往往导致论文的创新度不够,达不到期刊的发表要求,于是就衍生出了大量的新改进算法以提高创新度。算法改进就是一种创新,只要你改的是合理且有效的。可以引用这些优秀的改进算法来研究自己的题目。
群智能算法是一种新兴的演化计算技术,已成为越来越多研究者的关注焦点,它与人工生命,特别是进化策略以及遗传算法有着极为特殊的联系。 群智能理论研究领域主要有两种算法:蚁群算法和粒子群算法。
G. 智能优化算法:鸡群优化算法
@[toc]
摘要:鸡群算法 (Chicken Swarm Optimization,CSO) 是一种新颖的仿生学算法,充分继承群智能优化特点,创新采用个体分类、协作优化,最大程度挖掘最优解,又能很好避免早熟现象。具有收敛快,寻优能力强的特点。
新型的仿生学算法—鸡群优化算法,它模拟群的等级制度和鸡群的群体活动行为。 在特殊的等级制度下鸡群中不同鸡种搜寻食物时存在着竞争。公鸡搜索食物能力强,适应值小;母鸡其次;小鸡搜索食物能力最弱,适应值最大。
为了简化,文中通过下列规则理想化鸡群算法:
因为不同的鸡种有不同的运动规律, 因此,以下 3 种个体的位置更新策略各不相同。
适应度好的公鸡能够在更大的范围内搜索食物,而且比适应度差的公鸡能够优先获得食物实现全局搜索,它的位置更新受随机选取的其他公鸡位置的影响,则更新策略见式(1)-(2)
式 (1)-(2) 中:第 只公鸡位置的第 j 维的值表示为, 表示当前的迭代次数,表示服从期望值为0 ,方差值为 2 的正态分布随机数, 第 只公鸡的适应度为 ,随机选取公鸡 的适应度为 , 分母中加上无穷小数 ,避免除数为零。
母鸡跟随伙伴公鸡搜索食物,位置更新受伙伴公鸡位置影响。由于母鸡的偷食行为,位置更新又与其它公鸡和母鸡有关系,则更新策略见式 (3)-(5) 。
式 (3)-(5) 中: Rand 是一个服从 [0,1] 均匀分布的随机数,该母鸡的伙伴公鸡 的适应度值为 , 表示其伙伴公鸡对其的影响因子,其他公鸡和母鸡中随机选取个体 的适应度值为 , 为其他鸡对其的影响因子。
小鸡在其母亲周围搜寻食物,它的搜索能力最差,位置受到母亲公鸡的影响,则更新策略见式 (6) 。
式 (6) 中:母亲母鸡 位置的第 维数值为 , ,母亲母鸡的位置对小鸡位置的影响因子为 , 其为随机函数随机生成,取值范围一般为 (0,2) 。
步骤如下:
[1] MENG X , LIU Y , GAO X Z , et al. A new bio-inspired algorithm: chicken swarm optimization[J]. Lecture Notes in Computer Science ,2014 ,8794(1):86-94.
[2] 胡汉梅,李静雅,黄景光.基于鸡群算法的微网经济运行优化[J].高压电器,2017,53(01):119-125.
https://mianbaoo.com/o/bread/aJWbmZk=
文献复现:基于模拟退火的改进鸡群优化算法(SAICSO)
[1]李振璧,王康,姜媛媛.基于模拟退火的改进鸡群优化算法[J].微电子学与计算机,2017,34(02):30-33+38.
文献复现:一种改进的鸡群算法(ICSO)
[1]孔飞,吴定会.一种改进的鸡群算法[J].江南大学学报(自然科学版),2015,14(06):681-688.
文献复现:全局优化的改进鸡群算法(ECSO)
[1]韩斐斐,赵齐辉,杜兆宏,刘升.全局优化的改进鸡群算法[J].计算机应用研究,2019,36(08):2317-2319+2327.
H. 智能优化算法:猫群优化算法
@[toc]
摘要:猫群算法 ( Cat Swarm Optimization,缩写为CSO)是由 Shu - An Chu 等人在 2006 年首次提出来的一种基于猫的行为的全局优化算法具有收敛快,寻优能力强的特点。
在猫群算法中,猫即待求优化问题的可行解。猫群算法将猫的行为分为两种模式,一种就是猫在懒散、环顾四周状态时的模式称之为搜寻模式;另一种是在跟踪动态目标时的状态称之为跟踪模式。猫群算法中,一部分猫执行搜寻模式,剩下的则执行跟踪模式,两种模式通过结合率 MR(Mixture Ratio)进行交互,MR 表示执行跟踪模式下的猫的数量在整个猫群中所占的比例,在程序中 MR应为一个较小的值。利用猫群算法解决优化问题,首先需要确定参与优化计算的个体数,即猫的数量。每只猫的属性(包括由M维组成的自身位置)、每一维的速度、对基准函数的适应值及表示猫是处于搜寻模式或者跟踪模式的标识值。当猫进行完搜寻模式和跟踪模式后,根据适应度函数计算它们的适应度并保留当前群体中最好的解。之后再根据结合率随机地将猫群分为搜寻部分和跟踪部分的猫,以此方法进行迭代计算直到达到预设的迭代次数。
搜寻模式用来模拟猫的当前状态,分别为休息、四处查看、搜寻下一个移动位置。在搜寻模式中,定义了 4 个基本要素:记忆池(SMP)、变化域(SRD)、变化数(CDC)、自身位置判断(SPC)。SMP 定义了每一只猫的搜寻记忆大小,表示猫所搜寻到的位置点,猫将根据适应度大小从记忆池中选择一个最好的位置点。SRD 表示选择域的变异率,搜寻模式中,每一维的改变范围由变化域决定,根据经验一般取值为0.2。CDC 指每一只猫将要变异的维数的个数,其值是一个从 0 到总维数之间的随机值。SPC 是一个布尔值,表示猫是否将已经过的位置作为将要移动到的候选位置之一,其值不影响 SMP 的取值。
(1)将当前位置复制 份副本放在记忆池中, ,即记忆池的大小为 ;如果 SPC 的值为真,扮迟族令 ,将当前位置保留为候选解。
(2)对记忆池中的每个个体副本,根据 的大小,随机地对当前值加上或者减去 (变化域由百分率表示),并用更新后的值来代替原来的值。
(3)分别计算记忆池中所有候选解的适应度值。
(4)从记忆池中选择适应度值最高的候选点来代厅弊替当前猫的位置,完成猫的位置更新。
跟踪模式用来模拟猫跟踪目标时的情况。通过改变猫的每一维的速度(即特征值)来更新猫的位置,速度的改变是通过增加一个随机的扰动来实现的。
(1)速度更新。整个猫群经历过的最好位置,即目前搜索到的最优解,记做 。每只猫的速度记做 ,每只猫根据公式(1)来更新自己的速度。
表示更新后第 只猫在第 维的速度旦弊值, 为维数大小; 表示猫群中当前具有最好适应度值的猫的位置; 指当前第 只猫在第 维的位置, 是个常量,其值需要根据不同的问题而定。 是一个[0,1]之间的随机值。
(2)判断每一维的速度变化是否都在SRD内。给每一维的变异加一个限制范围,是为了防止其变化过大,造成算法在解空间的盲目随机搜索。SRD 在算法执行之前给定,如果每一维改变后的值超出了 SRD 的限制范围,则将其设定为给定的边界值。
(3)位置更新。根据公式(2)利用更新后的速度来更新猫的位置。
式中, 表示第 只猫更新后的位置。
算法流程图如下:
[1]马知也,施秋红.猫群算法研究综述[J].甘肃广播电视大学学报,2014,24(02):41-45.
https://mianbaoo.com/o/bread/aJWcl5s=
I. 什么是智能优化算法
群体智能优化算法是一类基于概率的随机搜索进化算法,各个算法之间存在结构、研究内容、计算方法等具有较大的相似性。因此,群体智能优化算法可以建立一个基本的理论框架模式:
Step1:设置参数,初始化种群;
Step2:生成一组解,计算其适应值;
Step3:由个体最有适应着,通过比较得到群体最优适应值;
Step4:判断终止条件示否满足?如果满足,结束迭代;否则,转向Step2;
各个群体智能算法之间最大不同在于算法更新规则上,有基于模拟群居生物运动步长更新的(如PSO,AFSA与SFLA),也有根据某种算法机理设置更新规则(如ACO)。
(9)群体优化算法扩展阅读
优化算法有很多,经典算法包括:有线性规划,动态规划等;改进型局部搜索算法包括爬山法,最速下降法等,模拟退火、遗传算法以及禁忌搜索称作指导性搜索法。而神经网络,混沌搜索则属于系统动态演化方法。
优化思想里面经常提到邻域函数,它的作用是指出如何由当前解得到一个(组)新解。其具体实现方式要根据具体问题分析来定。