根据学习整理,自己做的基于粒子群加Bezier曲线的机器人路径规划小程序,Matlab工程,可以手动添加障碍物,git代码仓链接在源码的description里
2021-11-04 16:18:19 28KB 粒子群算法 PSO Matlab
1
粒子群算法PSO入门代码火经典案例求Ackley函数附-PSO.zip 本帖最后由 当当的花生 于 2016-7-30 20:09 编辑 回帖获得更多 粒子群算法 遗传算法前面有人讲了,我来讲讲PSO。 1)先看看百度百科解释: 粒子群算法,也称粒子群优化算法(Particle Swarm Optimization),缩写为 PSO, 是近年来由J. Kennedy和R. C. Eberhart等[1] 开发的一种新的进化算法。PSO 算法属于进化算法的一种,和模拟退火算法相似,它也是从随机解出发,通过迭代寻找最优解,它也是通过适应度来评价解的品质,但它比遗传算法规则更为简单,它没有遗传算法的“交叉” 和“变异” 操作,它通过追随当前搜索到的最优值来寻找全局最优。这种算法以其实现容易、精度高、收敛快等优点引起了学术界的重视,并且在解决实际问题中展示了其优越性。粒子群算法是一种并行算法。 2) 什么? 看不懂? 我来通俗解释: 粒子群算法是生物学家研究鸟类捕食创造的,把一只鸟比作成一个粒子,设想一个有20只秃鹫(粒子)的群体吧,秃鹫相互独立具有个体特征但又相互协助体现群体特征,现在我就是这20只中的一只好了(人丑),我现在和小伙伴去 觅食(找非洲野牛的尸体),假设我是一只老婆在家里孵蛋所以我得很认真找食物的秃鹫,每时每刻我都在记录我周围中最可能有猎物的地方,并以这个依据(设为依据一)在下一刻立即调整速度矢量(有大小方向)来趋向我上一时刻发现的最有可能有尸肉的地方。 假如我飞了一小时,上面说到我每时每刻都在记录最有当刻最有可能有肉的地方,那么在这一个小时的记录中肯定有一个最可能有肉的地方,这个地方就是依据二了,我有种往这个移动的趋势。 前面都是我的个鸟行为,我是一只善于观察和沟通并成功让酋长漂亮女儿当我老婆的鸟,所以群里其他秃鹫找到了一个小尸体就会立即告诉我,那我就看谁发现的小尸肉最有分量了,并有一个往这个地方移动的趋势,这是依据三。 再加一些假设以尽可能地模仿一个群体,1)每时每刻有随机从3只傻鸟中抽出一只鸟让他分心,在下一刻瞎移动位置,假设其他秃鹫和我一样机智并且有才华(不太可能),好了有了这些,经过2个小时的觅食,我们这十只鸟最终飞到了同一地点:一头最大野牛尸体旁边。这就是粒子群算法啦,显然是一个找大尸肉的优化算法。 3)来举个经典栗子,求Ackley函数的最小值。 什么很好求?可不是,这个函数的局部最小值太多了,一不小心就掉坑了,函数是这样的: ackley函数.png MATLAB画图如下: 图像.png 画图代码: %经典函数 Ackley clear,clc,close all; x1=-5:0.01:5; x2=-5:0.01:5; for i=1:1001     for j=1:1001         %目标函数         z=-20*exp^2 x2^2)/2))-exp)) cos))/2 20 2.71289;     end end [x,y]=meshgrid; figure mesh xlabel ylabel zlabel复制代码 这么多局部最小值,那么怎么用PSO求最小值呢? 少说废话,先上MATLAB代码: 1)定义函数: function y = fun y=-20*exp^2 x^2)/2))-exp)) cos))/2 20 2.71289;   复制代码 2)PSO求解: 要先定义函数哦 clear,clc,close all; %参数初始化 %粒子群算法中的俩个参数 c1 = 0.1; %惯量因子 c2 = 0.1; maxg=400; %进化次数 移动400回啊 sizepop=20; %总群规模 20只鸟啊 %初始速度和总群上下边界值 Vmax=1; Vmin=-1; %速度范围 上帝让我飞这么快啊 popmax=5; popmin=-5; %粒子范围 我不能飞到老王的领地啊 %%产生初始粒子和速度,上帝说要有鸟,就有了鸟 for i= 1:sizepop pop=popmax*rands ; %初始种群 V=rand; %初始速度 fitness=fun); %染色体的适应度 end %%找最好的染色体,最大的小肉块啊 [bestfitness,bestindex]=min; zbest=pop; %全局最佳 gbest=pop; %个体最佳 fitnessgbest=fitness; %个体最佳适应度 fitnesszbest=bestfitness; %全局最佳适应度 %%迭代寻
2021-11-03 13:05:29 2KB matlab
1
本程序为标准粒子群优化算法,以优化目标函数为例,能够很好运行,使用者根据自己的要求在此程序上更改即可。
2021-10-09 16:45:12 1KB 粒子群算法 pso Matlab
1
粒子群算法(PSO)作为一种群智能算法,有效提高了投资组合模型的实用性,但存在搜索精度较低和易陷入局部最优的缺陷.为克服其缺点,本文提出基于天牛须搜索(BAS)的粒子群优化算法(简称BSO),并将其应用到包含完整费用的投资组合模型中.在基于天牛须搜索的优化算法中(BSO),每个粒子的更新规则源自BAS,在每次迭代中都有自己对环境空间的判断,而不仅依赖于PSO中历史最佳解决方案和粒子个体的当前全局最优解,从而减少迭代次数、提高搜索速度和精度.实证结果表明算法更具稳定性和有效性.
1
为了更好地改善多目标粒子群优化算法的收敛性和多样性的pso 算法
为了更好地改善多目标粒子群优化算法的收敛性和多样性的pso 算法
粒子群算法(particle swarm optimization)例程
2021-09-16 17:08:26 2KB 粒子群算法
1
Matlab神经网络(九)--粒子群算法(PSO)实现函数极值优化
2021-09-11 11:44:17 11.66MB Matlab神经网络(九)--粒
1
matlab 遗传算法GA,粒子群算法PSO,蚁群算法AS 前段时间上智能计算方法实验课上,自己做的程序。帖到这里,希望有人能改进它们,交流经验这样更有价值。 遗传算法解决最小生成树问题,PURFER编码。 粒子群算法做无约束最优化问题。 蚁群算法解决TSP问题。 如果有宝贵经验希望能交流一下,谢谢,呵呵
1
基于C#的粒子群算法,该算法很简单明了的阐释了粒子群的真正意义
2021-08-22 21:55:39 2KB c# pso
1