抽空看了一段时间的粒子群算法,这里仅针对其应用于动态规划中的背包问题的情况做下总结归纳,其他应用可以之后想到了再添加. 一:分组背包问题简介 假设有3个组,每组有2个物品,每种物品有3种属性,价值.体积和重量.我们只有1个背包,从每组中选择1个物品(可以不选的情况第三章讨论)装入背包中,如何选择才能使背包中的物品总价值最大.总体积最小.且不超过规定重量呢? 物品/分组 第一组 第二组 第三组 物品1价值 1 2 3 物品2价值 3 2 1 物品/分组 第一组 第二组 第三组 物品1体积 1 2…
一.TSP问题 TSP问题(Travelling Salesman Problem)即旅行商问题,又译为旅行推销员问题.货郎担问题,是数学领域中著名问题之一.假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市.路径的选择目标是要求得的路径路程为所有路径之中的最小值. TSP问题是一个组合优化问题.该问题可以被证明具有NPC计算复杂性.TSP问题可以分为两类,一类是对称TSP问题(Symmetric TSP),另一类是非对称问题…
最近在温习C语言,看的书是<C primer Plus>,忽然想起来以前在参加数学建模的时候,用过的一些智能算法,比如遗传算法.粒子群算法.蚁群算法等等.当时是使用MATLAB来实现的,而且有些MATLAB自带了工具箱,当时有些只是利用工具箱求最优解问题,没有自己动手亲自去实现一遍,现在都忘的差不多了.我觉得那样层次实在是很浅,没有真正理解算法的核心思想.本着"纸上得来终觉浅,绝知此事要躬行"的态度,我决定现在重新复习一遍算法,然后手工用C语言重新实现一遍.说做就做,我第一…
粒子群算法(PSO) 1.粒子群算法(PSO)是一种基于群体的随机优化技术: 初始化为一组随机解,通过迭代搜寻最优解. PSO算法流程如图所示(此图是从PPT做好,复制过来的,有些模糊) 2.PSO模拟社会的三条规则: ①飞离最近的个体,以避免碰撞 ②飞向目标(认知行为)——Pbest ③飞向群体的中心(社会行为)——Gbest 3.迭代公式: 举一个粒子...在一维中,利用MATLAB中自带的函数求极值        搜索起始点位置 注:fmincon(有约束的非线性最小化) fminbnd(…
上一回说了基本粒子群算法的实现,并且给出了C语言代码.这一篇主要讲解影响粒子群算法的一个重要参数---w.我们已经说过粒子群算法的核心的两个公式为: Vid(k+1)=w*Vid(k)+c1*r1*(Pid(k)-Xid(k))+c2*r2*(Pgd(k)-Xid(k))Xid(k+1) = Xid(k) + Vid(k+1) 标红的w即是本次我们要讨论的参数.之前w是不变的(默认取1),而现在w是变化的,w称之为惯性权重,体现的是粒子继承先前速度的能力. 经验表明:一个较大的惯性权重有利于全局…
一.引言 在讲算法之前,先看两个例子: 例子一:背包问题,一个书包,一堆物品,每个物品都有自己的价值和体积,装满书包,使得装的物品价值最大. 例子二:投资问题,n个项目,第i个项目投资为ci 收益为pi,总投资不得超过C,如何选择项目总收益最大. 如前所述,PSO模拟鸟群的捕食行为.设想这样一个场景:一群鸟在随机搜索食物.在这个区域里只有一块食物.所有的鸟都不知道食物在那里.但是他们知道当前的位置离食物还有多远.那么找到食物的最优策略是什么呢.最简单有效的就是搜寻目前离食物最近的鸟的周围区域.…
粒子群算法(1)----粒子群算法简介 http://blog.csdn.net/niuyongjie/article/details/1569671 粒子群算法(2)----标准的粒子群算法 http://blog.csdn.net/niuyongjie/article/details/1572814 粒子群算法(3)----标准的粒子群算法(局部版本) http://blog.csdn.net/niuyongjie/article/details/1584946 粒子群算法(4)----粒子…
基于粒子群优化的无约束50维Rosenbrock函数求解 一.问题重述 无约束50维的Rosenbrock函数可以描述如下: 其中, 0 要求按PSO算法思想设计一个该问题的求解算法. Rosenbrock是一个著名的测试函数,也叫香蕉函数,其特点是该函数虽然是单峰函数,在[100,100]n上只有一个全局极小点,但它在全局极小点临近的狭长区域内取值变化极为缓慢,常用于评价算法的搜索性能.这种实优化问题非常适合于使用粒子群优化算法来求解. 二.算法 2.1算法设计: 编码 因为问题的维数为50,…
喜欢的话可以扫码关注我们的公众号哦,更多精彩尽在微信公众号[程序猿声] 01 算法起源 粒子群优化算法(PSO)是一种进化计算技术(evolutionary computation),1995 年由Eberhart 博士和kennedy 博士提出,源于对鸟群捕食的行为研究 .该算法最初是受到飞鸟集群活动的规律性启发,进而利用群体智能建立的一个简化模型.粒子群算法在对动物集群活动行为观察基础上,利用群体中的个体对信息的共享使整个群体的运动在问题求解空间中产生从无序到有序的演化过程,从而获得最优解.…
这几天看书的时候看到一个算法,叫粒子群算法,这个算法挺有意思的,下面说说我个人的理解: 粒子群算法(PSO)是一种进化算法,是一种求得近似最优解的算法,这种算法的时间复杂度可能会达到O(n!),得到的结果不一定是最优解,往往已经很接近最优解了.最早是Kenny 和 Eberhart于1995年提出的,算法的参数配置少,易于应用,理解起来也很简单.实现步骤如下: (1)初始化所有的粒子,粒子的位置随机生成,计算每个粒子当前适应度,并将此设置为当前粒子的个体最优解(记为pBest): (2)所有粒子…