导航:首页 > 源码编译 > 学粒子群算法有什么用

学粒子群算法有什么用

发布时间:2024-07-08 20:18:51

㈠ 离散粒子群优化算法的背景和意义是什么

定义粒子群优化算法(Particle Swarm optimization,PSO)又翻译为粒子群算法、微粒群算法、或微粒群优化算法。是通过模拟鸟群觅食行为而发展起来的一种基于群体协作的随机搜索算法。通常认为它是群集智能 (Swarm intelligence, SI) 的一种。它可以被纳入多主体优化系统 (Multiagent Optimization System, MAOS). 粒子群优化算法是由Eberhart博士和kennedy博士发明。PSO模拟鸟群的捕食行为PSO模拟鸟群的捕食行为。一群鸟在随机搜索食物,在这个区域里只有一块食物。所有的鸟都不知道食物在那里。但是他们知道当前的位置离食物还有多远。那么找到食物的最优策略是什么呢。最简单有效的就是搜寻目前离食物最近的鸟的周围区域。从模型中得到的启示PSO从这种模型中得到启示并用于解决优化问题。PSO中,每个优化问题的解都是搜索空间中的一只鸟。我们称之为“粒子”。所有的粒子都有一个由被优化的函数决定的适应值(fitnessvalue),每个粒子还有一个速度决定他们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索。PSO初始化PSO初始化为一群随机粒子(随机解),然后通过叠代找到最优解,在每一次叠代中,粒子通过跟踪两个“极值”来更新自己。第一个就是粒子本身所找到的最优解,这个解叫做个体极值pBest,另一个极值是整个种群目前找到的最优解,这个极值是全局极值gBest。另外也可以不用整个种群而只是用其中一部分最优粒子的邻居,那么在所有邻居中的极值就是局部极值。编辑本段算法介绍在找到这两个最优值时, 粒子根据如下的公式来更新自己的速度和新的位置v[] = v[] + c1 * rand() * (pbest[] - present[]) + c2 * rand() * (gbest[] - present[]) (a)present[] = persent[] + v[] (b)v[] 是粒子的速度, persent[] 是当前粒子的位置. pbest[] and gbest[] 如前定义 rand () 是介于(0, 1)之间的随机数. c1, c2 是学习因子. 通常 c1 = c2 = 2.程序的伪代码如下For each particle____Initialize particleENDDo____For each particle________Calculate fitness value________If the fitness value is better than the best fitness value (pBest) in history____________set current value as the new pBest____End____Choose the particle with the best fitness value of all the particles as the gBest____For each particle________Calculate particle velocity according equation (a)________Update particle position according equation (b)____EndWhile maximum iterations or minimum error criteria is not attained在每一维粒子的速度都会被限制在一个最大速度Vmax,如果某一维更新后的速度超过用户设定的Vmax,那么这一维的速度就被限定为Vmax。编辑本段遗传算法和PSO的比较共同点①种群随机初始化。②对种群内的每一个个体计算适应值(fitness value)。适应值与最优解的距离直接有关。③种群根据适应值进行复制 。④如果终止条件满足的话,就停止,否则转步骤② 。从以上步骤,我们可以看到PSO和遗传算法有很多共同之处。两者都随机初始化种群,而且都使用适应值来评价系统,而且都根据适应值来进行一定的随机搜索。两个系统都不是保证一定找到最优解。但是,PSO没有遗传操作如交叉(crossover)和变异(mutation),而是根据自己的速度来决定搜索。粒子还有一个重要的特点,就是有记忆。不同点与遗传算法比较,PSO的信息共享机制是很不同的。在遗传算法中,染色体(chromosomes)互相共享信息,所以整个种群的移动是比较均匀的向最优区域移动。在PSO中, 只有gBest (orlBest) 给出信息给其他的粒子, 这是单向的信息流动。整个搜索更新过程是跟随当前最优解的过程。与遗传算法比较, 在大多数的情况下,所有的粒子可能更快的收敛于最优解。编辑本段人工神经网络和PSO定义人工神经网络(ANN)是模拟大脑分析过程的简单数学模型,反向转播算法是最流行的神经网络训练算法。进来也有很多研究开始利用演化计算(evolutionary computation)技术来研究人工神经网络的各个方面。研究方面演化计算可以用来研究神经网络的三个方面:网络连接权重,网络结构(网络拓扑结构,传递函数),网络学习算法。不过大多数这方面的工作都集中在网络连接权重,和网络拓扑结构上。在GA中,网络权重和/或拓扑结构一般编码为染色体(Chromosome),适应函数(fitness function)的选择一般根据研究目的确定。例如在分类问题中,错误分类的比率可以用来作为适应值优缺点演化计算的优势在于可以处理一些传统方法不能处理的例子例如不可导的节点传递函数或者没有梯度信息存在。但是缺点在于:1、在某些问题上性能并不是特别好。2. 网络权重的编码而且遗传算子的选择有时比较麻烦。最近已经有一些利用PSO来代替反向传播算法来训练神经网络的论文。研究表明PSO 是一种很有潜力的神经网络算法。PSO速度比较快而且可以得到比较好的结果。而且还没有遗传算法碰到的问题。举例这里用一个简单的例子说明PSO训练神经网络的过程。这个例子使用分类问题的基准函数 (Benchmark function)IRIS数据集。(Iris 是一种鸢尾属植物) 在数据记录中,每组数据包含Iris花的四种属性:萼片长度,萼片宽度,花瓣长度,和花瓣宽度,三种不同的花各有50组数据. 这样总共有150组数据或模式。我们用3层的神经网络来做分类。现在有四个输入和三个输出。所以神经网络的输入层有4个节点,输出层有3个节点我们也可以动态调节隐含层节点的数目,不过这里我们假定隐含层有6个节点。我们也可以训练神经网络中其他的参数。不过这里我们只是来确定网络权重。粒子就表示神经网络的一组权重,应该是4*6+6*3=42个参数。权重的范围设定为[-100,100] (这只是一个例子,在实际情况中可能需要试验调整).在完成编码以后,我们需要确定适应函数。对于分类问题,我们把所有的数据送入神经网络,网络的权重有粒子的参数决定。然后记录所有的错误分类的数目作为那个粒子的适应值。现在我们就利用PSO来训练神经网络来获得尽可能低的错误分类数目。PSO本身并没有很多的参数需要调整。所以在实验中只需要调整隐含层的节点数目和权重的范围以取得较好的分类效果。

㈡ 粒子群算法的优点

第一,算法规则简单,容易实现,在工程应用中比较广;第二,收敛速度快,且有很多措施可以避免陷入局部最优;第三,可调参数少,并且对于参数的选择已经有成熟的理论研究成果,见Eberhart的论文。

㈢ 粒子群算法的优缺点

优点:PSO同遗传算法类似,是一种基于迭代的优化算法。系统初始化为一组随机解,通过迭代搜寻最优值。同遗传算法比较,PSO的优势在于简单容易实现,并且没有许多参数需要调整。

缺点:在某些问题上性能并不是特别好。网络权重的编码而且遗传算子的选择有时比较麻烦。最近已经有一些利用PSO来代替反向传播算法来训练神经网络的论文。

(3)学粒子群算法有什么用扩展阅读:

注意事项:

基础粒子群算法步骤较为简单。粒子群优化算法是由一组粒子在搜索空间中运动,受其自身的最佳过去位置pbest和整个群或近邻的最佳过去位置gbest的影响。

对于有些改进算法,在速度更新公式最后一项会加入一个随机项,来平衡收敛速度与避免早熟。并且根据位置更新公式的特点,粒子群算法更适合求解连续优化问题。

㈣ 粒子群算法

粒子群算法(Particle Swarm Optimization),又称鸟群觅食算法,是由数学家J. Kennedy和R. C. Eberhart等开发出的一种新的进化算法。它是从随机解开始触发,通过迭代寻找出其中的最优解。本算法主要是通过适应度来评价解的分数,比传统的遗传算法更加的简单,它没有传统遗传算法中的“交叉”和“变异”等操作,它主要是追随当前搜索到的最优值来寻找到全局最优值。这种算法实现容易,精度高,收敛快等特点被广泛运用在各个问题中。

粒子群算法是模拟鸟群觅食的所建立起来的一种智能算法,一开始所有的鸟都不知道食物在哪里,它们通过找到离食物最近的鸟的周围,再去寻找食物,这样不断的追踪,大量的鸟都堆积在食物附近这样找到食物的几率就大大增加了。粒子群就是这样一种模拟鸟群觅食的过程,粒子群把鸟看成一个个粒子,它们拥有两个属性——位置和速度,然后根据自己的这两个属性共享到整个集群中,其他粒子改变飞行方向去找到最近的区域,然后整个集群都聚集在最优解附近,最后最终找到最优解。

算法中我们需要的数据结构,我们需要一个值来存储每个粒子搜索到的最优解,用一个值来存储整个群体在一次迭代中搜索到的最优解,这样我们的粒子速度和位置的更新公式如下:

其中pbest是每个粒子搜索到的最优解,gbest是整个群体在一次迭代中搜索到的最优解,v[i]是代表第i个粒子的速度,w代表惯性系数是一个超参数,rang()表示的是在0到1的随机数。Present[i]代表第i个粒子当前的位置。我们通过上面的公式不停的迭代粒子群的状态,最终得到全局最优解

阅读全文

与学粒子群算法有什么用相关的资料

热点内容
程序员black自学编程 浏览:688
android仿腾讯新闻 浏览:132
程序员走了 浏览:272
linux设置时间服务器 浏览:282
机械人焊接编程教学视频 浏览:552
体重小本app怎么样 浏览:777
编程语言需求 浏览:935
当兵体重怎么个算法 浏览:171
加密的电脑文件带出去怎么打开 浏览:851
死循环会在编译的时候出错吗 浏览:989
c51单片机特殊寄存器的原理 浏览:580
闪耀永恒特利加密钥 浏览:764
如何夸程序员 浏览:781
天津期货python招聘 浏览:267
单片机机器语言写的程序 浏览:554
韩国直播软件app叫什么名 浏览:920
军营训练不听教官的命令 浏览:263
v开头的音乐播放器是什么APP 浏览:122
单片机是怎么做出来的 浏览:319
博图怎么作为opc服务器 浏览:104