APSchmidt 发表于 2021-7-25 09:27

现有的各种群智能优化算法(比如遗传算法,粒子群算法,萤火虫算法等)有什么区别吗,其实质是不是相同的?

现有的各种群智能优化算法(比如遗传算法,粒子群算法,萤火虫算法等)有什么区别吗,其实质是不是相同的,希望行家来解释。

maltadirk 发表于 2021-7-25 09:32

搬书搬书~《粒子群算法及应用》
群体智能算法家族的两个重要成员就是粒子群算法与蚁群算法。基本思想都是模拟自然界生物群体行为来构造随机优化算法的,不同的是粒子群算法模拟鸟类群体行为,而蚁群算法模拟蚂蚁觅食原理。
1.相同点
(1)都是一类不确定算法。不确定性体现了自然界生物的生物机制,并且在求解某些特定问题方面优于确定性算法。仿生优化算法的不确定性是伴随其随机性而来的,其主要步骤含有随机因素,从而在算法的迭代过程中,事件发生与否有很大的不确定性。
(2)都是一类概率型的全局优化算法。非确定算法的优点在于算法能有更多机会求解全局最优解。
(3)都不依赖于优化问题本身的严格数学性质。在优化过程中都不依赖于优化问题本身严格数学性质(如连续性,可导性)以及目标函数和约束条件精确的数学描述。
(4)都是一种基于多个智能体的仿生优化算法。仿生优化算法中的各个智能体之间通过相互协作来更好的适应环境,表现出与环境交互的能力。
(5)都具有本质并行性。仿生优化算法的本质并行性表现在两个方面:仿生优化计算的内在并行性(inherent parallelism )和内含并行性(implicit parallelism ),这使得仿生优化算法能以较少的计算获得较大的收益。
(6)都具有突出性。仿生优化算法总目标的完成是在多个智能体个体行为的运动过程中突现出来的。
(7)都具有自组织和进化性。具有记忆功能,所有粒子都保存优解的相关知识。在不确定的复杂时代环境中,仿生优化算法可以通过自学习不断提高算法中个体的适应性。
(8)都具有稳健性。仿生优化算法的稳健性是指在不同条件和环境下算法的实用性和有效性。由于仿生优化算法不依赖于优化问题本身严格数学性质和所求问题本身的结构特征,因此用仿生优化算法求解不同问题时,只需要设计相应的评价函数(代价函数),而基本上无需修改算法的其他部分。但是对高维问题复杂问题,往往会遇到早熟收敛和收敛性能差的缺点,都无法保证收敛到最优点。
~~~~~~~~~~~~~~~~~
这是一条奇怪的分割线~~~~~~~~~~~~~~~~~~~~~~~~
进入正题~~区别!!!!!
2.不同点
(1)粒子群算法。粒子群算法是一种原理相当简单的启发式算法,与其他仿生算法相比,它所需的代码和参数较少。
粒子群算法通过当前搜索到的最优点进行共享信息,很大程度上这是一种单项信息共享机制。
粒子群算法受所求问题维数的影响较小。
粒子群算法的数学基础相对较为薄弱,目前还缺乏深刻且具有普遍意义的理论分析。在对收敛性分析方面研究还需进一步将确定性向随机性转化。
(2)蚁群算法。蚁群算法采用了正反馈机制,这是不同于其他仿生算法最为显著的一个特点。
蚁群算法中那个个体只能感知局部信息,不能直接利用全局信息。
基本蚁群算法一般需要较长的搜索时间,且容易出现停滞现象。
蚁群算法的收敛性能对初始化参数的设置较为敏感。
蚁群算法已经有了较成熟的收敛性分析方法,并且可对收敛速度进行估计。

搬书完毕~~~

kirin77 发表于 2021-7-25 09:34

写过动态的粒子群,布谷鸟和灰狼,以及一些传统的算法,也看过最近花里胡哨的麻雀算法,天牛须算法,社会蜘蛛算法等等,想说说自己的看法。
首先,这些算法从数学角度来讲,都是不一样的,每个算法都有自己的特性,也有自己适合用的地方,比如说天牛须算法适合低维度搜索,布谷鸟算法适合没有同样高度峰值点的函数搜索,粒子群算法适合低维度,图像简单的函数搜索,没有哪个算法能说好或者坏,只有合适不合适的分别。
其次,个人理解,现在动物园算法有这么多,其实追根溯源,都是最初的几个算法进行演变得来的,如果想要学习智能算法,建议从蚁群算法和粒子群算法开始学习,这两个算法基本是所有群智能算法的祖先,在之后出现的算法中,或许几年加了各种复杂的运算,积分,微分,二阶震荡因子,或者混沌,量子力学等等,但是整体的思想还是在这两个算法之上。

xiaozongpeng 发表于 2021-7-25 09:39

遗传算法,粒子群算法,萤火虫算法等。
这三种算法我恰好都用过,也敲过代码实现过。主要对Selina Chu 提出的场景识别算法(matching pursuit,MP)中寻找最佳原子的过程的优化,的确能极大提升搜索速度。

但是各有各的优点,这类论文非常多,只要一搜就一大堆。还有什么蚁群,鸟群,基本上是个动物名字都用上了。

APSchmidt 发表于 2021-7-25 09:40

常见的退火算法可以理解为一个人或者说实例找周围能看到的局部最优解。
各类动物算法可以理解为一群人或实例随意散落在全局上,然后比较各个实例间谁最优。

各类动物算法的区别个人认为主要在怎么散落全局上下功夫。因为实际上全局是一个相当大的概念,比如线性0到1的范围,到底精确到小数点几位呢,有10个实例怎么分散呢。

DungDaj 发表于 2021-7-25 09:40

相同点,本质上都是对解不断迭代进而找到比较优的解。
不同点,在解的迭代格式上有所不同,其迭代格式主要体现在其仿生的解释上面。
当然,在具体构建算法时,可能还涉及到其它问题,比如如何设计评价函数等等……

DomDomm 发表于 2021-7-25 09:47

用电信息采集问题智能化运维,求推荐算法或者模型。低压台区线损智能化运维,求推荐算法或者模型。

johnsoncodehk 发表于 2021-7-25 09:49

引用一下@triumph的内容。
蚁群算法假想出变化的“信息素”,单个个体根据信息素寻路,粒子群算法假设每个个体都知道根据自己的现状和周围个体的现状来调节飞行方向等。

感觉粒子群算法中的个体就是在用蚁群算法,蚁群算法的使用者就是粒子群算法里的个体,他知道周围人的情况,判断了优劣(这里所谓的用蚁群算法不是说粒子亲自写个蚁群算法去模拟。而是类似“自己上网查各种资料了解到其他人的现状”,这个行为就等同于在查看一个蚁群已经走出的信息素浓度),然后自己选了这个方向。
<hr/>剩下的就是抛砖脑洞时间。已经与原版的内容无关了。


仔细想了想,蚁群算法似乎是不需要个体有判断能力的。似乎能构造一个自然现象情况,个体并不是生命,但是行为与蚁群算法等价。
(电脑也不是生命,但是电脑能模拟蚁群粒子群算法,到时候我新构造一个情况还是需要电脑模拟,有区别吗?
正常的算法的抽象对象本身是有智能的动物,然后有智能的部分被用概率把智能黑箱化为无智能了,计算机能处理。
我希望构造的是不需要把智能体黑箱化为无智能模型,一开始就没有任何需要黑箱化的东西,依旧能造成这个效果)比如一群拥有极强的动能的小球。从起点到终点有几条路径,每个路一开始都是不光滑的,随着经过的次数会逐渐变得光滑易走起来,这个充当信息素一样的东西。每次都有大量小球相互碰撞导致每条道路都有走的,最短的道路会先撞到终点返回来。相同的时间,近的道路会比远的道路更光滑。这么说着说着看上去就像河道冲刷的现象一样。
不过不完美在于,蚁群算法里的信息素只是标记走过的次数,而不会对以后再走的难度本身造成影响。这里充当信息素的还有路径本身的阻力降低的现象。不过如果把信息素浓度看作负成本,路径阻力本身看作成本。那他们都是同样在寻找成本低的路径,并且让这个路径的程度变得更低。

c0d3n4m 发表于 2021-7-25 09:51

受到人类智能、生物群体社会性或自然现象规律的启发,人们发明了很多智能优化算法来解决复杂优化问题,主要包括:模仿自然界生物进化机制的遗传算法;通过群体内个体间的合作与竞争来优化搜索的差分进化算法;模拟生物免疫系统学习和认知功能的免疫算法;模拟蚂蚁集体寻径行为的蚁群算法;模拟鸟群和鱼群群体行为的粒子群算法;源于固体物质退火过程的模拟退火算法;模拟人类智力记忆过程的禁忌搜索算法;模拟动物神经网络行为特征的神经网络算法;等等。这些算法有个共同点,即都是通过模拟或揭示某些自然界的现象和过程或生物群体的智能行为而得到发展;在优化领域称它们为智能优化算法,它们具有简单、通用、便于并行处理等特点
《智能优化算法及其MATAB实例》,电子工业出版社。
页: [1]
查看完整版本: 现有的各种群智能优化算法(比如遗传算法,粒子群算法,萤火虫算法等)有什么区别吗,其实质是不是相同的?