智能算法-简单介绍

title: 智能算法
author: 戴挽舟(BbiHH)
tags:

  • AI大数据
    categories:
  • 智能算法
    date: 2019-10-16 19:58:00

↓↓千万别点↓↓

一、简介

什么是群体智能优化算法

群体智能优化算法属于一种生物启发式方法。

群体智能优化算法主要模拟了昆虫、兽群、鸟群和鱼群的群集行为,这些群体按照一种合作的方式寻找食物,群体中的每个成员通过学习它自身的经验和其他成员的经验来不断地改变搜索的方向。

群体智能优化算法的突出特点就是利用了种群的群体智慧进行协同搜索,从而在解空间内找到最优解。

二、群体智能优化算法

1.常见的群体智能优化算法分类

常见的群体智能优化算法主要有如下几类:

  (1)蚁群算法(Ant Colony Optimization,简称ACO)[1992年提出];

  (2)粒子群优化算法(Particle Swarm Optimization,简称PSO)[1995年提出](简单易于实现,也是目前应用最为广泛的群体智能优化算法);

  (3)菌群优化算法(Bacterial Foraging Optimization,简称BFO)[2002年提出];

  (4)蛙跳算法(Shuffled Frog Leading Algorithm,简称SFLA)[2003年提出];

  (5)人工蜂群算法(Artificial Bee Colony Algorithm,简称ABC)[2005年提出];

  除了上述几种常见的群体智能算法以外,还有一些并不是广泛应用的群体智能算法,比如萤火虫算法、布谷鸟算法、蝙蝠算法以及磷虾群算法等等。

2.粒子群优化算法思想

粒子群优化算法是在1995年由Eberhart博士和Kennedy博士一起提出的,它源于对鸟群捕食行为的研究。**它的基本核心是利用群体中的个体对信息的共享从而使得整个群体的运动在问题求解空间中产生从无序到有序的演化过程,从而获得问题的最优解。**我们可以利用一个有关PSO的经典描述来对PSO算法进行一个直观的描述。*设想这么一个场景:一群鸟进行觅食,而远处有一片玉米地,所有的鸟都不知道玉米地到底在哪里,但是它们知道自己当前的位置距离玉米地有多远。那么找到玉米地的最佳策略,也是最简单有效的策略就是是搜寻目前距离玉米地最近的鸟群的周围区域。*PSO就是从这种群体觅食的行为中得到了启示,从而构建的一种优化模型。

  在PSO中,每个优化问题的解都是搜索空间中的一只鸟,称之为“粒子”,而问题的最优解就对应为鸟群要寻找的“玉米地”。所有的粒子都具有一个位置向量(粒子在解空间的位置)和速度向量(决定下次飞行的方向和速度),并可以根据目标函数来计算当前的所在位置的适应值(fitness value),可以将其理解为距离“玉米地”的距离。在每次的迭代中,种群中的粒子除了根据自身的“经验”(历史位置)进行学习以外,还可以根据种群中最优粒子的“经验”来学习,从而确定下一次迭代时需要如何调整和改变飞行的方向和速度。就这样逐步迭代,最终整个种群的粒子就会逐步趋于最优解。

3. 粒子群优化算法的基本框架

在介绍PSO的算法流程之前,我们写给出PSO中常用的迭代算子的形式。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传在这里插入图片描述代表粒子i的位置向量,在这里插入图片描述代表粒子i的速度向量(其中n为优化问题的维度大小),最早版本的粒子群优化算法的迭代算子形式如下:
在这里插入图片描述
其中在公式(1)中,Pbesti与Gbest分别代表粒子i历史最佳位置种群历史最佳位置向量。根据公式(1)(2)可以看出,种群中的粒子通过不断地向自身和种群的历史信息进行学习,从而可以找出问题的最优解。

  但是,在后续的研究中表明,上述原始的公式中存在一个问题:**公式(1)中Vi的更新太具有随机性,从而使得整个PSO算法的全局优化能力很强,但是局部搜索能力较差。**而实际上,我们需要在算法迭代初期PSO有着较强的全局优化能力,而在算法的后期,整个种群应该具有更强的局部搜索能力。所以根据上述的弊端,Shi和Eberhart通过引入惯性权重修改了公式(1),从而提出了PSO的惯性权重模型:
在这里插入图片描述
其中参数 w 称为是PSO的惯性权重(inertia weight), w 为控制单个粒子之前速度影响以及对后续行为影响的内置权重,它的取值介于[0,1]区间,一般应用中均采取自适应的取值方法,即一开始令 w=0.9,使得PSO全局优化能力较强,随着迭代的深入,参数w进行递减,从而使得PSO具有较强的局部优化能力,当迭代结束时,w=0.1。参数 c1 和 c2 称为是学习因子(learn factor),一般设置为1.4961;而 r1 和 r2 为介于[0,1]之间的随机概率值。(可以用rand()代替,rand()为 0~1 之间的归一化随机数)


  整个粒子群优化算法的算法框架如下:

  • Step 1 种群初始化:
    可以进行随机初始化或者根据被优化的问题设计特定的初始化方法,然后计算个体的适应值,从而选择出个体的局部最优位置向量Pbesti和种群全局最优位置向量Gbest
  • Step 2 迭代设置:
    设置迭代次数 gmax,并令当前迭代次数 g=1;
  • Step 3 速度更新:
    根据公式(3)更新每个个体的速度向量;
  • Step 4 位置更新:
    根据公式(2)更新每个个体的位置向量;
  • Step 5 局部位置向量和全局位置向量更新:
    更新每个个体的PbestiGbest
  • Step 6终止条件判断:
    判断迭代次数时都达到 gmax 。如果满足,输出 Gbest
    否则继续进行迭代,跳转至 Step 3

对于粒子群优化算法的运用,主要是对速度和位置向量迭代算子的设计。迭代算子是否有效将决定整个PSO算法性能的优劣,所以如何设计PSO的迭代算子是PSO算法应用的研究重点和难点。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值