首页 > 编程知识 正文

多目标粒子群优化算法,粒子群优化算法matlab程序

时间:2023-05-05 00:35:25 阅读:107834 作者:4582

基于种群的随机优化技术算法(PSO ) ) )。

粒子群算法模仿昆虫、兽群、鸟群、鱼群等群体行为,这些群体合作寻找食物,群体各成员通过学习自己的经验和其他成员的经验不断改变搜索模式。

概要如下。

33558 www.omega XYZ.com/2017/05/04/introductionofpso /

Python3代码:

# coding : utf-8 importnumpyasnpimportrandomimportmatplotlib.pyplotasplt # ------------PSO参数的设定--------- class PSO-----class PSO-----max _ ITER (3360 self.) 粒子数self.dim=dim #迭代次数self.x=NP.zeros((self.pn,self.dim ) )所有粒子的位置和速度self.v=NP.zeros ) ) self.pn, self.dim ) ) self.pberos ) ) self.p self.dim ) (#个体经历的最佳位置和全局最佳位置self.GBest=NP.Zeros (() )、 self.dim () self.p_fit=NP.zeros ) self.pn )每个个体的过去最佳匹配值self.fit=1e10 #全局最佳匹配值# ----------- -目标函数----------self x ) :returnx(2----4 ) x3-------x3 1 ) self.V[i][j]=random.uniform(0 1 ) self.p best [ I ]=self.x [ I ] tmp=self.function (self.x [ I ] )=tmpiftmpself.fit 3333------更新粒子位置------defiteratook 3360 forinrange (self.pn ) )的更新pbesttemp=self.function (self.x [ I ] ) iftempself.p_fit ) :#个体优化self.p _ fit [ I ]=temp self.p 要更新self.fit=self.p _ fit [ I ] foriinrange (self.pn ) 3360self.v )的self.R1 * (self.p best [ I ]-self.x [ I ]=self.x[I]self.v[I] fitness.append(self.v ) I ) Fitness.apppend ) self652 end=''(print(self.fit ) )输出最佳值return fitness-------------------app itness=my_pso.iterator () ) #-------------- -。 PLT.xlabel(iterators ),size=14 ) PLT.ylabel ),fitness ),size=14 ) t=NP.Array ) tfortinrange ),100,100,100

dim是优化后的函数维数,常见的初等函数和初等复合函数都是一维的

max_iter是迭代次数

本文的优化函数为x^2-4x 3,表明该函数在x=2时取最小值-1

验证:

重复图像:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。