预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

基于遗传算法(粒子群算法、人工鱼群算法等)的投影寻踪模型MATLAB源代码投影寻踪是一种处理多因素复杂问题的统计方法,其基本思路是将高维数据向低维空间进行投影,通过低维投影数据的散布结构来研究高维数据特征,可用于聚类、分类、综合评价、预测等。投影寻踪模型最终可归结为一个非线性连续函数优化模型,可以采用遗传算法、粒子群算法、人工鱼群算法或人工免疫克隆优化算法等进行求解,得到最优的投影向量。%%第一步:仿真参数设置clcclearcloseallloaddata1.txtD=data1;%导入D矩阵[n,p]=size(D);K=300;%迭代次数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团队主页→%%整理输出结果Best_a=(BESTX{K})';%方向向量d=zeros(n,p);Djmax=max(D);Djmin=min(D);fori=1:nd(i,:)=(D(i,:)-Djmin)./(Djmax-Djmin);endZ=zeros(n,1);fori=1:nZ(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]);%图形边界根据需要显示gridonxlabel('','FontName','TimesNewRoman','FontSize',12);ylabel('ProjectiveValue','FontName','TimesNewRoman','Fontsize',12);figure[newZ,I]=sort(Z);plot(abs(newZ),'bd','LineWidth',1,'MarkerEdgeColor','k','MarkerFaceColor','b','MarkerSize',5);%axis([1,12,0,2.5]);%图形边界根据需要显示gridonxlabel('','FontName','TimesNewRoman','FontSize',12);ylabel('ProjectiveValue','FontName','TimesNewRoman','Fontsize',12);%%disp('最佳投影向量为')disp(Best_a);function[BESTX,BESTY,ALLX,ALLY]=IGAUCP(K,N,Pm,LB,UB,D,Alpha)%%遗传算法求解投影寻踪模型%GreenSim团队——专业级算法设计&代写程序%欢迎访问GreenSim团队主页→%%输入参数列表%K迭代次数%N种群规模,要求是偶数%Pm变异概率%LB决策变量的下界,M×1的向量%UB决策变量的上界,M×1的向量%D原始样本数据,n×p的矩阵%Alpha窗口半径系数,典型取值0.1%%输出参数列表%BESTXK×1细胞结构,每一个元素是M×1向量,记录每一代的最优个体%BESTYK×1矩阵,记录每一代的最优个体的评价函数值%ALLXK×1细胞结构,每一个元素是M×N矩阵,记录全部个体%ALLYK×N矩阵,记录全部个体的评价函数值%%第一步:M=length(LB);%决策变量的个数%种群初始化,每一列是一个样本farm=zeros(M,N);fori=1:Mx=unifrnd(LB(i),UB(i),1,N);farm(i,:)=x;end%输出变量初始化ALLX=cell(K,1);%细胞结构,每一个元素是M×N矩阵,记录每一代的个体ALLY=zeros(K,N);%K×N矩阵,记录每一代评价函数值BESTX=cell(K,1);%细胞结构,每一个元素是M×1向量,记录每一代的最优个体BESTY=zeros(K,1);%K×1矩阵,记录每一代的最优个体的评价函数值k=1;%迭代计数器初始化%%第二步:迭代过程whilek<=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,:)