好好学数学。算法
经朋友介绍,帮一个伙计作了下PSO的优化.......赚点生活费而已。网络
欢迎你们和我联系作算法类项目,QQ:1198552514异步
人工生命:研究具备某些生命基本特征的人 工系统。包括两方面的内容:
一、研究如何利用计算技术研究生物现象;
二、 研究如何利用生物技术研究计算问题。
咱们关注的是第二点。已有不少源于生物现象的计算技巧,例如神经网络和遗传算法。如今讨论另外一种生物系统---社会系统:由简单个体组成的群落和环境及个体之间的相互行为。函数
模拟系统利用局部信息从而能够产生不可预测的群行为。咱们常常可以看到成群的鸟、鱼或者浮游生物。这些生物的汇集行为有利于它们觅食和逃避捕食者。它们的群落动辄以10、百、千甚至万计,而且常常不存在一个统一的指挥者。它们是如何完成汇集、移动这些功能呢?性能
Millonas在开发人工生命算法时(1994年),提出群体智能概念并提出五点原则:
一、接近性原则:群体应可以实现简单的时空计算;
二、优质性原则:群体可以响应环境要素;
三、变化相应原则:群体不该把本身的活动限制在一狭小范围;
四、稳定性原则:群体不该每次随环境改变本身的模式;
五、适应性原则:群体的模式应在计算代价值得的时候改变。学习
对鸟群行为的模拟: Reynolds、Heppner和Grenader提出鸟群行为的 模拟。他们发现,鸟群在行进中会忽然同步的改 变方向,散开或者汇集等。那么必定有某种潜在 的能力或规则保证了这些同步的行为。这些科学 家都认为上述行为是基于不可预知的鸟类社会行 为中的群体动态学。 在这些早期的模型中仅仅依赖个体间距的操做, 也就是说,这中同步是鸟群中个体之间努力保持 最优的距离的结果。优化
对鱼群行为的研究:生物社会学家E.O.Wilson对鱼群进行了研究。提出:“至少在理论上,鱼群的个体成员可以受益于群体中其余个体在寻找食物的过程当中的发现和之前的经验,这种受益超过了个体之间的竞争所带来的利益消耗,无论任什么时候候食物资源不可预知的分散。”这说明,同种生物之间信息的社会共享可以带来好处。这是PSO的基础。 编码
粒子群优化算法的基本思想是经过群体中个体之间的协做和信息共享来寻找最优解.
PSO的优点在于简单容易实现而且没有许多参数的调节。目前已被普遍应用于函数优化、神经网络训练、模糊系统控制以及其余遗传算法的应用领域。spa
设想这样一个场景:一群鸟在随机的搜索食物。 在这个区域里只有一块食物,全部的鸟都不知 道食物在那。可是它们知道本身当前的位置距 离食物还有多远。 那么找到食物的最优策略是什么? 最简单有效的就是搜寻目前离食物最近的鸟的 周围区域。.net
鸟被抽象为没有质量和体积的微粒(点),并延伸到N维空间,粒子I 在N维空间的位置表示为矢量Xi=(x1,x2,…,xN),飞行速度表示为矢量Vi=(v1,v2,…,vN).每一个粒子都有一个由目标函数决定的适应值(fitness value),而且知道本身到目前为止发现的最好位置(pbest)和如今的位置Xi.这个能够看做是粒子本身的飞行经验.除此以外,每一个粒子还知道到目前为止整个群体中全部粒子发现的最好位置(gbest)(gbest是pbest中的最好值).这个能够看做是粒子同伴的经验.粒子就是经过本身的经验和同伴中最好的经验来决定下一步的运动。
PSO初始化为一群随机粒子(随机解)。而后经过迭代找到最优解。在每一次的迭代中,粒子经过跟踪两个“极值”(pbest,gbest)来更新本身。
在找到这两个最优值后,粒子经过下面的公式来更新本身的速度和位置。
(我记得Vi须要乘以惯性权重)。
i=1,2,…,M,M是该群体中粒子的总数;Vi 是粒子的速度; pbest和gbest如前定义; rand()是介于(0、1)之间的随机数; Xi 是粒子的当前位置。 c1和c2是学习因子,一般取c1= c2=2 在每一维,粒子都有一个最大限制速度Vmax,若是 某一维的速度超过设定的Vmax ,那么这一维的速度 就被限定为Vmax 。( Vmax >0) 以上面两个公式为基础,造成了后来PSO 的标准形式。
1998年shi等人在进化计算的国际会议上 发表了一篇论文《A modified particle swarm optimizer》对前面的公式进行了修正。引入 惯性权重因子。值较大,全局寻优能力强,局部寻优能力弱; 值较小反之。
初始时,shi将 取为常数,后来实验发现,动 态 可以得到比固定值更好的寻优结果。动态 能够在PSO搜索过程当中线性变化,也可根据PSO 性能的某个测度函数动态改变。 目前,采用较多的是shi建议的线性递减权值 (linearly decreasing weight, LDW)策略。
标准PSO算法的流程:
Step1:初始化一群微粒(群体规模为m),包括随机位置和 速度;
Step2:评价每一个微粒的适应度;
Step3:对每一个微粒,将其适应值与其通过的最好位置 pbest做比较,若是较好,则将其做为当前的 最好位置pbest;
Step4:对每一个微粒,将其适应值与其通过的最好位置 gbest做比较,若是较好,则将其做为当前的 最好位置gbest;
Step5:根据(2)、(3)式调整微粒速度和位置;
Step6:未达到结束条件则转Step2。
迭代终止条件根据具体问题通常选为最大迭代次数Gk或(和)微粒群迄今为止搜索到的最优位置知足预约最小适应阈值。
方程中pbest和gbest分别表示微粒群的局部和 全局最优位置,当C1=0时,则粒子没有了认知能力, 变为只有社会的模型(social-only):
被称为全局PSO算法.粒子有扩展搜索空间的能力,具备 较快的收敛速度,但因为缺乏局部搜索,对于复杂问题 比标准PSO 更易陷入局部最优。
当C2=0时,则粒子之间没有社会信息,模型变为 只有认知(cognition-only)模型:
被称为局部PSO算法。因为个体之间没有信息的 交流,整个群体至关于多个粒子进行盲目的随机 搜索,收敛速度慢,于是获得最优解的可能性小。
群体规模m 通常取20~40,对较难或特定类别的问题 能够取到100~200。
最大速度Vmax决定当前位置与最好位置之间的区域的 分辨率(或精度)。若是太快,则粒子有可能越过极小 点;若是太慢,则粒子不能在局部极小点以外进行足 够的探索,会陷入到局部极值区域内。这种限制能够 达到防止计算溢出、决定问题空间搜索的粒度的目的。
权重因子 包括惯性因子 和学习因子c1和c2。 使粒子 保持着运动惯性,使其具备扩展搜索空间的趋势,有 能力探索新的区域。C1和c2表明将每一个粒子推向Pbest 和gbest位置的统计加速项的权值。较低的值容许粒子 在被拉回以前能够在目标区域外徘徊,较高的值致使粒 子忽然地冲向或越过目标区域。
一般设c1=c2=2。Suganthan的实验代表:c1和c2 为常数时能够获得较好的解,但不必定必须等于2。 Clerc引入收敛因子(constriction factor) K来保证 收敛性。
一般取 为4.1,则K=0.729.实验代表,与使 用惯性权重的PSO算法相比,使用收敛因子的 PSO有更快的收敛速度。其实只要恰当的选取 和c一、c2,两种算法是同样的。所以使用收 敛因子的PSO能够看做使用惯性权重PSO的特 例。 恰当的选取算法的参数值能够改善算法的性能。
基本PSO是用于实值连续空间,然而许多实际问题是组合 优化问题,于是提出离散形式的PSO。 速度和位置更新式为:
共性: (1)都属于仿生算法。 (2) 都属于全局优化方法。 (3) 都属于随机搜索算法。 (4) 都隐含并行性。 (5) 根据个体的适配信息进行搜索,所以不受函数 约束条件的限制,如连续性、可导性等。 (6) 对高维复杂问题,每每会遇到早熟收敛和收敛 性能差的缺点,都没法保证收敛到最优势。
差别: (1) PSO有记忆,好的解的知识全部粒子都保 存,而GA,之前的知识随着种群的改变被改变。 (2) PSO中的粒子仅仅经过当前搜索到最优势进行共享信息,因此很大程度上这是一种单共享项信息机制。而GA中,染色体之间相互共享信息,使得整个种群都向最优区域移动。 (3) GA的编码技术和遗传操做比较简单,而PSO 相对于GA,没有交叉和变异操做,粒子只是经过内部速度进行更新,所以原理更简单、参数更少、实现更容易。
GA能够用来研究NN的三个方面:网络链接权重、网络 结构、学习算法。优点在于可处理传统方法不能处理的 问题,例如不可导的节点传递函数或没有梯度信息。 缺点:在某些问题上性能不是特别好;网络权重的编码和 遗传算子的选择有时较麻烦。 已有利用PSO来进行神经网络训练。研究代表PSO是一 种颇有潜力的神经网络算法。速度较快且有较好的结果。 且没有遗传算法碰到的问题。
各算法对应的问题以下:
PSO 用基本粒子群算法求解无约束优化问题
YSPSO 用带压缩因子的粒子群算法求解无约束优化问题
LinWPSO 用线性递减权重粒子群优化算法求解无约束优化问题
SAPSO 用自适应权重粒子群优化算法求解无约束优化问题
RandWPSO 用随机权重粒子群优化算法求解无约束优化问题
LnCPSO 用学习因子同步变化的粒子群优化算法求解无约束优化问题
AsyLnCPSO 用学习因子异步变化的粒子群优化算法求解无约束优化问题
SecPSO 用二阶粒子群优化算法求解无约束优化问题
SecVibratPSO 用二阶振荡粒子群优化算法求解无约束优化问题
CLSPSO 用混沌粒子群优化算法求解无约束优化问题
SelPSO 用基于选择的粒子群优化算法求解无约束优化问
BreedPSO 用基于交叉遗传的粒子群优化算法求解无约束优化问
SimuAPSO 用基于模拟退火的粒子群优化算法求解无约束优化问题
csdn连接(包含了基本PSO和12种优化PSO算法,绝对能用)。
参考文献:西电姚新正老师课件
再此声明一下,若是您加我,不要再问我懂不懂优化、会不会粒子群,有问题您直接说就行了,天天加个人人太多了,笔者不胜其扰。