基于遗传算法(粒子群算法人工鱼群算法等)的投影寻踪模型MATLAB源代码

上传人:876****10 文档编号:141663068 上传时间:2020-08-11 格式:DOCX 页数:6 大小:33.70KB
返回 下载 相关 举报
基于遗传算法(粒子群算法人工鱼群算法等)的投影寻踪模型MATLAB源代码_第1页
第1页 / 共6页
基于遗传算法(粒子群算法人工鱼群算法等)的投影寻踪模型MATLAB源代码_第2页
第2页 / 共6页
基于遗传算法(粒子群算法人工鱼群算法等)的投影寻踪模型MATLAB源代码_第3页
第3页 / 共6页
基于遗传算法(粒子群算法人工鱼群算法等)的投影寻踪模型MATLAB源代码_第4页
第4页 / 共6页
基于遗传算法(粒子群算法人工鱼群算法等)的投影寻踪模型MATLAB源代码_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《基于遗传算法(粒子群算法人工鱼群算法等)的投影寻踪模型MATLAB源代码》由会员分享,可在线阅读,更多相关《基于遗传算法(粒子群算法人工鱼群算法等)的投影寻踪模型MATLAB源代码(6页珍藏版)》请在金锄头文库上搜索。

1、欢迎访问GreenSim团队主页http:/ 邮箱:基于遗传算法(粒子群算法、人工鱼群算法等)的投影寻踪模型MATLAB源代码投影寻踪是一种处理多因素复杂问题的统计方法,其基本思路是将高维数据向低维空间进行投影,通过低维投影数据的散布结构来研究高维数据特征,可用于聚类、分类、综合评价、预测等。投影寻踪模型最终可归结为一个非线性连续函数优化模型,可以采用遗传算法、粒子群算法、人工鱼群算法或人工免疫克隆优化算法等进行求解,得到最优的投影向量。% 第一步:仿真参数设置clcclearclose allload data1.txtD=data1;%导入D矩阵n,p=size(D);K=300;%迭代次

2、数N=100;%种群规模Pm=0.3;%变异概率LB=-ones(1,p);%决策变量的下界UB=ones(1,p);%决策变量的上界Alpha=0.1;%窗口半径系数,典型取值0.1b% 调用遗传算法BESTX,BESTY,ALLX,ALLY=GAUCP(K,N,Pm,LB,UB,D,Alpha);% GreenSim团队专业级算法设计&代写程序% 欢迎访问GreenSim团队主页http:/ 整理输出结果Best_a=(BESTXK);%方向向量d=zeros(n,p);Djmax=max(D);Djmin=min(D);for i=1:n d(i,:)=(D(i,:)-Djmin)./(

3、Djmax-Djmin);endZ=zeros(n,1);for i=1:n Z(i)=abs(sum(Best_a.*d(i,:);endZ=abs(Z);figure%投影散布图plot(abs(Z),bd,LineWidth,1,MarkerEdgeColor,k,MarkerFaceColor,b,MarkerSize,5);%axis(1,12,0,2.5);%图形边界根据需要显示grid onxlabel( ,FontName,TimesNewRoman,FontSize,12);ylabel(Projective Value,FontName,Times New Roman,Fo

4、ntsize,12);figurenewZ,I=sort(Z);plot(abs(newZ),bd,LineWidth,1,MarkerEdgeColor,k,MarkerFaceColor,b,MarkerSize,5);%axis(1,12,0,2.5);%图形边界根据需要显示grid onxlabel( ,FontName,TimesNewRoman,FontSize,12);ylabel(Projective Value,FontName,Times New Roman,Fontsize,12);%disp(最佳投影向量为)disp(Best_a);function BESTX,BES

5、TY,ALLX,ALLY=IGAUCP(K,N,Pm,LB,UB,D,Alpha)%遗传算法求解投影寻踪模型% GreenSim团队专业级算法设计&代写程序% 欢迎访问GreenSim团队主页http:/ 输入参数列表% K 迭代次数% N 种群规模,要求是偶数% Pm 变异概率% LB 决策变量的下界,M1的向量% UB 决策变量的上界,M1的向量% D 原始样本数据,np的矩阵% Alpha 窗口半径系数,典型取值0.1% 输出参数列表% BESTX K1细胞结构,每一个元素是M1向量,记录每一代的最优个体% BESTY K1矩阵,记录每一代的最优个体的评价函数值% ALLX K1细胞结构

6、,每一个元素是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;end%输出变量初始化ALLX=cell(K,1);%细胞结构,每一个元素是MN矩阵,记录每一代的个体ALLY=zeros(K,N);%KN矩阵,记录每一代评价函数值BESTX=cell(K,1);%细胞结构,每一个元素是M1向量,记录每一代的最优个体BESTY=zeros(K,1);%K1矩阵,记

7、录每一代的最优个体的评价函数值k=1;%迭代计数器初始化% 第二步:迭代过程while k=K% 以下是交叉过程 newfarm=zeros(M,2*N); Ser=randperm(N);%两两随机配对的配对表 A=farm(:,Ser(1); B=farm(:,Ser(2); P0=unidrnd(M-1); a=A(1:P0,:);B(P0+1):end,:);%产生子代a b=B(1:P0,:);A(P0+1):end,:);%产生子代b newfarm(:,2*N-1)=a;%加入子代种群 newfarm(:,2*N)=b; for i=1:(N-1) A=farm(:,Ser(i)

8、; B=farm(:,Ser(i+1); P0=unidrnd(M-1); a=A(1:P0,:);B(P0+1):end,:); b=B(1:P0,:);A(P0+1):end,:); newfarm(:,2*i-1)=a; newfarm(:,2*i)=b; end FARM=farm,newfarm; % 选择复制 SER=randperm(3*N); FITNESS=zeros(1,3*N); fitness=zeros(1,N); for i=1:(3*N) Beta=FARM(:,i); FITNESS(i)=FIT(Beta,D,Alpha); end for i=1:N f1=FITNESS(SER(3*i-2); f2=FITNESS(SER(3*i-1); f3=FITNESS(SER(3*i); if f1=f2&f1=f3 farm(:,i)=FARM(:,SER(3*i-2); fitness(:,i)=FITNESS(:,SER(3*i-2); elseif f2=f1&f2rand&pos(1)=i AA=farm(:,i); BB=GaussMutation(AA,LB,UB); farm(:,i)=BB; end end disp(k); k=k+1;end源代码运行结果展示 第6页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 幼儿/小学教育 > 小学教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号