了解群体智能算法-粒子群优化算法

Aximof| 编辑

科普博文| 分类


群体智能 (SI) 是 AI 的一个子领域,研究自组织社群智能地展现出群体行为。对自然界中的社会行为的观察,比如鸟类和鱼类的迁徙,对 SI 的发展有着重要的影响。

群体智能系统

群体智能系统通常由一群基本的个体组成,它们在彼此之间和周围环境中进行局部交互。自然界尤其是生物系统是SI灵感的常见来源。虽然没有集中的控制结构来指导个体的行为,但这些个体之间的局部和某种程度上的随机交互会产生对个体来说未知的 “智能” 全局行为。

鸟群飞行、蚂蚁觅食和鱼群游动都是自然界中群体智能的例子。群体智能算法 (SIAs) 是一类从群体行为中获得启示来解决优化问题的算法。

群体机器人学

群体机器人学是将群体原则应用于机器人,而群体智能则是一个更广泛的算法集合。例如,群体预测已被用于预测问题。在合成集体智能中,类似于群体机器人的方法正在研究用于用于基因工程生物。

粒子群优化算法

第一个基于群体的算法是粒子群优化算法。这个算法使得一个基本的个体结构能够组合在一起形成一个更智能的系统。

Step1: Randomly initialize Swarm population of N particles Xi ( i=1, 2, …, n)
Step2: Select hyperparameter values
           w, c1 and c2
Step 3: For Iter in range(max_iter): # loop max_iter times  
            For i in range(N): # for each particle:
               a. Compute new velocity of ith particle
                    swarm[i].velocity = 
                         w*swarm[i].velocity + 
                         r1*c1*(swarm[i].bestPos - swarm[i].position) +
                         r2*c2*( best_pos_swarm - swarm[i].position) 
               b. Compute new position of ith particle using its new velocity
                    swarm[i].position += swarm[i].velocity
               c. If position is not in range [minx, maxx], then clip it
                    if swarm[i].position < minx:
                        swarm[i].position = minx
                    elif swarm[i].position > maxx:
                        swarm[i].position = maxx
               d. Update new best of this particle and new best of Swarm
                     if swaInsensitive to scaling of design variables.rm[i].fitness < swarm[i].bestFitness:
                        swarm[i].bestFitness = swarm[i].fitness
                        swarm[i].bestPos = swarm[i].position
                     if swarm[i].fitness < best_fitness_swarm
                        best_fitness_swarm = swarm[i].fitness
                        best_pos_swarm = swarm[i].position
             End-for
         End -for
Step 4: Return best particle of Swarm

粒子群优化算法是一种启发式优化算法,用于解决多维优化问题。算法的基本思想是模拟鸟群或鱼群中个体之间的协作和信息共享,以找到最优解。

如下图,设想这样一个场景:鸟群在森林中随机搜索食物,它们想要找到食物量最多的位置。但是所有的鸟都不知道食物具体在哪个位置,只能感受到食物大概在哪个方向。每只鸟沿着自己判定的方向进行搜索,并在搜索的过程中记录自己曾经找到过食物且量最多的位置,同时所有的鸟都共享自己每一次发现食物的位置以及食物的量,这样鸟群就知道当前在哪个位置食物的量最多。在搜索的过程中每只鸟都会根据自己记忆中食物量最多的位置和当前鸟群记录的食物量最多的位置调整自己接下来搜索的方向。鸟群经过一段时间的搜索后就可以找到森林中哪个位置的食物量最多(全局最优解)。

在算法的步骤中

  • 首先随机初始化了一个包含N个粒子的群体,每个粒子都有自己的位置和速度。

  • 然后选择了超参数w、c1和c2,分别代表了惯性权重、个体学习因子和群体学习因子。

  • 在每次迭代中,对于每个粒子,根据其当前位置和速度以及群体中最优位置,更新了粒子的速度和位置。如果位置超出了指定范围,则进行了修剪。然后更新了每个粒子的最优位置和群体的最优位置。

  • 最后返回了群体中最优的粒子作为最终结果。

  • 通过不断迭代更新粒子的位置和速度,粒子群优化算法可以逐步逼近最优解。算法中的超参数w、c1和c2可以根据具体问题进行调整,以获得更好的优化效果。

人工群体智能

“人工群体智能”(ASI)一词是指使用受自然群体启发的控制算法来提高网络化的人类组织的集体智慧的技术。人类群集智能,也被称为群体人工智能,是一种众包形式,许多人一起实时合作解决问题,通过讨论最终达成一致的答案。ASI 已被用于从帮助商业团队制定更精确的财务预测到帮助体育迷在拉斯维加斯打败赔率。ASI 还被用于帮助临床团队以比以前更高的精确度进行诊断。

群体智能应用

除了经典的优化问题,群体智能在图书馆采购、通信、医疗数据集分类、动态控制、供暖系统规划以及移动物体的监测和预测等方面都有应用。此外,群体智能在基础科学研究、工程、商业和社会科学中也有应用。数据挖掘中也使用了这个术语。 NASA 正在使用群体智能开发行星制图的概念。它被用于控制我们体内的纳米机器人来消除癌症肿瘤。在商业领域,它被用于做出更好的财务决策,等等。

The end

关注我
集群智能,聚合智慧
创造无限可能

本文由mdnice多平台发布

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值