|
1-PSO算法视频讲解分享:
百度网盘链接1:https://pan.baidu.com/s/1sm4fxQd 密码:965u
百度网盘链接2:https://pan.baidu.com/s/1Akz8DFiwGT3Ogww3BwCLww 密码:m4cv
具体链接在halcom.cn论坛,联系人QQ:3283892722
该论坛是一个学习交流平台,我会逐一的和大家分享学习。
欢迎大家录制视频,并提交给我,我来设置视频,你可在论坛进行打赏分享。
视频专用播放器:http://halcom.cn/forum.php?mod=viewthread&tid=258&extra=page%3D1
- clc,clear,close all
- warning off
- format longG
- % PSO 参数
- c1 = 1.4995;
- c2 = 1.4995;
- Vmin = -1;
- Vmax = 1;
- maxiter = 20; % 迭代次数
- sizepop = 10; % 种群数量
- popmin1 = -1; popmax1 = 1; % x1
- % 初始化种群
- for i=1:sizepop
- x1 = popmin1 + (popmax1-popmin1)*rand;
- pop(i,1) = x1;
- fitness(i) = fun([x1]);
- V(i,1) = 0;
- end
- % 记录一组最优值
- [bestfitness,bestindex]=min(fitness);
- zbest=pop(bestindex,:); %全局最佳
- gbest=pop; %个体最佳
- fitnessgbest=fitness; %个体最佳适应度值
- fitnesszbest=bestfitness; %全局最佳适应度值
- % 迭代寻优
- for i=1:maxiter
-
- for j=1:sizepop
- % 速度更新
- V(j,:) = V(j,:) + c1*rand*(gbest(j,:) - pop(j,:)) + c2*rand*(zbest - pop(j,:));
- % V--x1
- if V(j,1)>Vmax
- V(j,1)=Vmax;
- end
- if V(j,1)<Vmin
- V(j,1)=Vmin;
- end
- % 个体更新
- % pop(j,:) = pop(j,:) + 0.5 * V(j,:);
- pop(j,1) = pop(j,1) + 0.5 * V(j,1);
- % 适应度更新
- fitness(j) = fun(pop(j,:));
-
- % 比较 个体间比较
- if fitness(j)<fitnessgbest(j)
- fitnessgbest(j) = fitness(j);
- gbest(j,:) = pop(j,:);
- end
- if fitness(j)<bestfitness
- bestfitness = fitness(j);
- zbest = pop(j,:);
- end
-
- end
- fitness_iter(i) = bestfitness;
-
- end
- disp('最优解')
- disp(zbest)
- fprintf('\n')
- figure('color',[1,1,1])
- plot(fitness_iter,'ro-','linewidth',2)
- figure('color',[1,1,1])
- loglog(fitness_iter,'ro-','linewidth',2)
复制代码
案例分享:
【1】粒子群算法PSO视频讲解
【2】基于PSO的火车票分配问题:链接:http://pan.baidu.com/s/1nvRYrg9 密码:bfua
【3】基于PSO的机器人路径优化问题:链接:http://pan.baidu.com/s/1jI0uNlk
【4】PSO_source_error_NRMSE_惯性因子gbest,改进的PSO算法结构体化编程
【5】
|
|