• 回答数

    4

  • 浏览数

    204

漫游的Alice
首页 > 期刊论文 > 粒子群算法英文文献毕业论文

4个回答 默认排序
  • 默认排序
  • 按时间排序

顺其自然0012

已采纳

好的,只要编程的吗。

120 评论

Mary瑶瑶

我这里有一个粒子群的完整范例:<群鸟觅食的优化问题>function main()clc;clear all;close all;tic; %程序运行计时E0=; %允许误差MaxNum=100; %粒子最大迭代次数narvs=1; %目标函数的自变量个数particlesize=30; %粒子群规模c1=2; %每个粒子的个体学习因子,也称为加速常数c2=2; %每个粒子的社会学习因子,也称为加速常数w=; %惯性因子vmax=; %粒子的最大飞翔速度x=-5+10*rand(particlesize,narvs); %粒子所在的位置v=2*rand(particlesize,narvs); %粒子的飞翔速度%用inline定义适应度函数以便将子函数文件与主程序文件放在一起,%目标函数是:y=1+(*(1-x+2*x.^2).*exp(-x.^2/2))%inline命令定义适应度函数如下:fitness=inline('1/(1+(*(1-x+2*x.^2).*exp(-x.^2/2)))','x');%inline定义的适应度函数会使程序运行速度大大降低for i=1:particlesize for j=1:narvs f(i)=fitness(x(i,j)); endendpersonalbest_x=x;personalbest_faval=f;[globalbest_faval i]=min(personalbest_faval);globalbest_x=personalbest_x(i,:);k=1;while k<=MaxNum for i=1:particlesize for j=1:narvs f(i)=fitness(x(i,j)); end if f(i)vmax; v(i,j)=vmax; elseif v(i,j)<-vmax; v(i,j)=-vmax; end end x(i,:)=x(i,:)+v(i,:); end if abs(globalbest_faval)

267 评论

水手特洛伊

粒子群算法(particle swarm optimization,PSO)是计算智能领域中的一种生物启发式方法,属于群体智能优化算法的一种,常见的群体智能优化算法主要有如下几类: 除了上述几种常见的群体智能算法以外,还有一些并不是广泛应用的群体智能算法,比如萤火虫算法、布谷鸟算法、蝙蝠算法以及磷虾群算法等等。 而其中的粒子群优化算法(PSO)源于对鸟类捕食行为的研究,鸟类捕食时,找到食物最简单有限的策略就是搜寻当前距离食物最近的鸟的周围。 设想这样一个场景:一群鸟在随机的搜索食物。在这个区域里只有一块食物,所有的鸟都不知道食物在哪。但是它们知道自己当前的位置距离食物还有多远。那么找到食物的最优策略是什么?最简单有效的就是搜寻目前离食物最近的鸟的周围区域。 Step1:确定一个粒子的运动状态是利用位置和速度两个参数描述的,因此初始化的也是这两个参数; Step2:每次搜寻的结果(函数值)即为粒子适应度,然后记录每个粒子的个体历史最优位置和群体的历史最优位置; Step3:个体历史最优位置和群体的历史最优位置相当于产生了两个力,结合粒子本身的惯性共同影响粒子的运动状态,由此来更新粒子的位置和速度。 位置和速度的初始化即在位置和速度限制内随机生成一个N x d 的矩阵,而对于速度则不用考虑约束,一般直接在0~1内随机生成一个50x1的数据矩阵。 此处的位置约束也可以理解为位置限制,而速度限制是保证粒子步长不超限制的,一般设置速度限制为[-1,1]。 粒子群的另一个特点就是记录每个个体的历史最优和种群的历史最优,因此而二者对应的最优位置和最优值也需要初始化。其中每个个体的历史最优位置可以先初始化为当前位置,而种群的历史最优位置则可初始化为原点。对于最优值,如果求最大值则初始化为负无穷,相反地初始化为正无穷。 每次搜寻都需要将当前的适应度和最优解同历史的记录值进行对比,如果超过历史最优值,则更新个体和种群的历史最优位置和最优解。 速度和位置更新是粒子群算法的核心,其原理表达式和更新方式: 每次更新完速度和位置都需要考虑速度和位置的限制,需要将其限制在规定范围内,此处仅举出一个常规方法,即将超约束的数据约束到边界(当位置或者速度超出初始化限制时,将其拉回靠近的边界处)。当然,你不用担心他会停住不动,因为每个粒子还有惯性和其他两个参数的影响。 粒子群算法求平方和函数最小值,由于没有特意指定函数自变量量纲,不进行数据归一化。

151 评论

许小丹丹丹

我也正在研究PSO方面的。我来答答看:我认为matlab编程中一般将适应度函数的自变量设为一个行向量,行向量的size为你针对的问题的多少,你的问题中有两个变量影响你的因变量Z,所以x的长度为2.还有,一般用matlab 的pso优化时,需要要自编一个针对你的问题的适应度函数。顺便说一句,我上面说的只是一般处理方法。你的fitness((x,:)),似乎在matlab中有语法错误。如果还想问具体的,就给我发短消息吧,我会尽快回答,另外,你的悬赏分怎么这么少呢!老兄,你就这么吝啬吗!

328 评论

相关问答

  • 一粒种子的力量议论文

    一粒坚强的种子 一粒种子脱离了兄弟姐妹,不幸被刮到了岩石缝中,从此这里种子便不见天日,得不到阳光,天天面对着同伴们的嘲笑,歧视,它变得苦闷,变得孤单,变得寂寞,

    浩予妈妈 3人参与回答 2023-12-06
  • 电子杂志网盘群

    作为《读者》杂志的老粉丝 ,我来回答这个问题吧。纸质书确实存在不环保,不好带,不便读,不便宜等等缺点,特别是现代社会节奏加快 ,一些传统的习惯也要随之而变。电子

    mini灵灵 3人参与回答 2023-12-07
  • 粒子群算法毕业论文

    目标函数是什么 还有约束条件

    学生和赞美诗 4人参与回答 2023-12-12
  • 国外对蚁群算法的现状研究论文

    蚁群算法(ant colony optimization, ACO),又称蚂蚁算法,是一种用来在图中寻找优化路径的机率型技术.它由Marco Dorigo于19

    一杯甜柠檬水 2人参与回答 2023-12-10
  • 同调群的计算方法研究论文

    G为任一交换群,Hom(Cn(K),G)为所有从Cn(K)到G的群同态所组成的群,这个群叫做K的以G为系数的 n维上链群,记作Cn(K;G)。利用K 的边缘算子

    苦瓜老太婆 2人参与回答 2023-12-11