15基于粒子群算法的连续函数优化通用MATLAB源代码_第1页
15基于粒子群算法的连续函数优化通用MATLAB源代码_第2页
15基于粒子群算法的连续函数优化通用MATLAB源代码_第3页
15基于粒子群算法的连续函数优化通用MATLAB源代码_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

欢迎访问GreenSim团队主页/greensim 邮箱:基于蚁群算法的连续函数优化通用MATLAB源代码此源码是对粒子群算法的一种实现,用于无约束连续函数的优化求解,对于含有约束的情况,可以先使用罚函数等方法,把问题处理成无约束的模型,再使用本源码进行求解。function BESTX,BESTY,ALLX,ALLY= PSOUCP(K,N,LB,UB,WR,CR1,CR2,Alpha,Beta,Gamma)% 无约束连续函数的粒子群优化算法% GreenSim团队专业级算法设计&代写程序% 欢迎访问GreenSim团队主页/greensim% 此函数实现粒子群算法,用于求解无约束连续函数最小化问题% 对于最大化问题,请先将其加负号转化为最小化问题% 输入参数列表% K 最大迭代次数% N 初始粒子群规模(要求为偶数)% LB 决策变量的下界,M1的向量% UB 决策变量的上界,M1的向量% WR 粒子群算法控制参数1,惯性系数% CR1 粒子群算法控制参数2,当前最优学习参数% CR2 粒子群算法控制参数3,历史最优学习参数% 输出参数列表% BESTX K1细胞结构,每一个元素是M1向量,记录每一代的最优个体% BESTY K1矩阵,记录每一代的最优个体的评价函数值% ALLX K1细胞结构,每一个元素是MN矩阵,记录全部个体% ALLY KN矩阵,记录全部个体的评价函数值% 初始化M=length(LB);%决策变量的个数%种群初始化,每一列是一个样本farm=zeros(M,N);for i=1:M x=unifrnd(LB(i),UB(i),1,N); farm(i,:)=x;endSumWCR=WR+CR1+CR2;WR=WR/SumWCR;CR1=CR1/SumWCR;CR2=CR2/SumWCR;%输出变量初始化ALLX=cell(K,1);ALLY=zeros(K,N);BESTX=cell(K,1);BESTY=zeros(K,1);k=1;%迭代计数器初始化% 以下是迭代过程while krand AA=farm(:,i); BB=QuantumMutation(AA,LB,UB,Beta); newfarm3(:,i)=BB; end end newfarm4=farm; if k=3 Pgd=BESTXk-1; Pid=BESTXk-2; for i=1:N newfarm4(:,i)=WR*farm(:,i)+CR1*Pid+CR2*Pgd; end end FARM=farm,newfarm,newfarm2,newfarm3,newfarm4; SER=randperm(6*N); FITNESS=zeros(1,6*N); fitness=zeros(1,N); for i=1:(6*N) BETA=FARM(:,i); SE=FIT(BETA); FITNESS(i)=SE; end for i=1:N f1=FITNESS(SER(6*i-5); f2=FITNESS(SER(6*i-4); f3=FITNESS(SER(6*i-3); f4=FITNESS(SER(6*i-2); f5=FITNESS(SER(6*i-1); f6=FITNESS(SER(6*i); if f1=f2&f1=f3&f1=f4&f1=f5&f1=f6 farm(:,i)=FARM(:,SER(6*i-5); fitness(:,i)=FITNESS(:,SER(6*i-5); elseif f2=f1&f2=f3&f2=f4&f2=f5&f2=f6 farm(:,i)=FARM(:,SER(6*i-4); fitness(:,i)=FITNESS(:,SER(6*i-4); elseif f3=f1&f3=f2&f3=f4&f3=f5&f3=f6 farm(:,i)=FARM(:,SER(6*i-3); fitness(:,i)=FITNESS(:,SER(6*i-3); elseif f4=f1&f4=f2&f4=f3&f4=f5&f4=f6 farm(:,i)=FARM(:,SER(6*i-2); fitness(:,i)=FITNESS(:,SER(6*i-2); elseif f5=f1&f5=f2&f5=f3&f5=f4&f5=f6 farm(:,i)=FARM(:,SER(6*i-1); fitness(:,i)=FITNESS(:,SER(6*i-1); else farm(:,i)=FARM(:,SER(6*i); fitness(:,i)=FITNESS(:,SER(6*i); end end X=farm; Y=fitness; ALLXk=X; ALLY(k,:)=Y

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论