💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥
🎉作者研究:🏅🏅🏅本科计算机专业,研究生电气学硕。主要研究方向是电力系统和智能算法、机器学习和深度学习。目前熟悉python网页爬虫、机器学习、群智能算法、深度学习的相关内容。希望将计算机和电网有效结合!⭐️⭐️⭐️
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者,博主专门做了一个专栏目录,整个专栏只放了一篇文章,足见我对其重视程度:博主专栏目录。做到极度细致,方便大家进行学习!亲民!!!还有我开了一个专栏给女朋友的,很浪漫的喔,代码学累的时候去瞧一瞧,看一看:女朋友的浪漫邂逅。有问题可以私密博主,博主看到会在第一时间回复。
📝目前更新:🌟🌟🌟电力系统相关知识,期刊论文,算法,机器学习和人工智能学习。
🚀支持:🎁🎁🎁如果觉得博主的文章还不错或者您用得到的话,可以关注一下博主,如果三连收藏支持就更好啦!这就是给予我最大的支持!
🎉🎉欢迎您的到来🎉🎉
⛅⛅⛅ 📃个人主页:电力系统科研室🌈🌈🌈
📚📚📚📋专栏目录:电力系统与算法之美👨💻👨💻👨💻
👨🎓博主课外兴趣:中西方哲学,送予读者:
👨💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。当哲学课上老师问你什么是科学,什么是电的时候,不要觉得这些问题搞笑,哲学就是追究终极问题,寻找那些不言自明只有小孩子会问的但是你却回答不出来的问题。在我这个专栏记录我有空时的一些哲学思考和科研笔记:科研和哲思。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能让人胸中升起一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它居然给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“真理”上的尘埃吧。
或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎

📋📋📋本文目录如下:⛳️⛳️⛳️
目录

普通粒子群算法(Particle Swarm Optimization Algorithm,PSO)的粒子初始位置、更新速度都是连续函数,与之对应,位置和速度更新均为离散值的算法是离散PSO算法(Discrete Particle Swarm Optimization Algorithm, DPSO);
一般就是在跟新粒子位置后,对粒子进行离散点处理;
比如:你的粒子的离散点是0到9的整数。那么对每个粒子更新位置后,比如是在(0,1)范围内的随机数。那么就(0,0.1)范围令其值为0;(0.1,0.2)范围令其值为1;............(0.9.1)范围令其值为9。当然初始位置值也需要这样处理.
本文仅展现部分代码,全部代码见:🍞正在为您运送作品详情


- function main()
- %% 初始化城市位置向量
- city_nums=5;
- %% 初始化微粒群参数
- particle_nums=100;
- %% 最大进化代数
- max_iter=100;
- %% 速度位置更新方式 v=(c1max-i/itermax*(c1max-c1min))*v+c2(Pbest-Pi)+c3(Pgbest-Pi);
- %% 速度由N*N的矩阵来表示;
- %% 微粒个数为particle_nums;
- %% position_Matrix(1:city_nums):当前微粒路径
- %% position_Matrix(city_nums+1):当前微粒适应度值
- %% position_Matrix(city_nums+2:2*city_nums+1):个体最优路径
- %% position_Matrix(2*city_nums+2):个体最优适应度值
- city_position_x_max=10;city_position_y_max=10;city_position=rand(city_nums,2);
- city_position(:,1)=city_position(:,1)*city_position_x_max;
- city_position(:,2)=city_position(:,2)*city_position_y_max;
- %% 初始化城市距离矩阵
- city_distance=zeros(city_nums,city_nums);
- for i=1:city_nums
- for j=1:i
- city_distance(i,j)=sqrt((city_position(i,1)-city_position(j,1)).^2+(city_position(i,1)-city_position(j,1)).^2);
- city_distance(j,i)=city_distance(i,j);
- end
- end
- position_Matrix=zeros(2*city_nums+2,particle_nums);
- speed_current_Matrix=zeros(city_nums,city_nums,particle_nums);
- c_x=0.5;c_1_min=0.0;c_1_max=1;c_2=0.4;c_3=0.2;
- %% 初始化微粒的速度和位置
- for i=1:particle_nums
- position_Matrix(1:city_nums,i)=wGenerate(city_nums);
- position_Matrix(city_nums+1,i)=calFitness(position_Matrix(1:city_nums,i),city_distance);
- position_Matrix(city_nums+2:2*city_nums+1,i)=position_Matrix(1:city_nums,i);
- position_Matrix(2*city_nums+2,i)=position_Matrix(city_nums+1,i);
- st_Matrix=ones(city_nums).*c_x-eye(city_nums)>rand(city_nums);
- speed_current_Matrix(:,:,i)=(st_Matrix+st_Matrix')>ones(city_nums);
- end
- [globalBestFitness,thisIndex]=min(position_Matrix(2*city_nums+2,:),[],2);
- globalBestPath=position_Matrix(city_nums+2:2*city_nums+1,thisIndex);
- pathPlot(globalBestPath,city_position)
- title(num2str(globalBestFitness));
- %% 迭代过程
- for iter=1:max_iter
- for i=1:particle_nums
- PbestLinkM=linkM(position_Matrix(city_nums+2:2*city_nums+1,i));
- PgbestLinkM=linkM(globalBestPath);
- v_1_M=PM2VM(speed_current_Matrix(:,:,i),c_1_max-i./max_iter*(c_1_max-c_1_min));
- v_2_M=PM2VM(sub_M(PbestLinkM,speed_current_Matrix(:,:,i)),c_2);
- v_3_M=PM2VM(sub_M(PgbestLinkM,speed_current_Matrix(:,:,i)),c_3);
- v_M=and_M(and_M(v_1_M,v_2_M),v_3_M);
- for j=1:city_nums
- for k=j:city_nums
- if(v_M(j,k)==1)
- position_Matrix(1:city_nums,i)=add_M(position_Matrix(1:city_nums,i),[j;k]);
- end
- end
- end
- position_Matrix(city_nums+1,i)=calFitness(position_Matrix(1:city_nums,i),city_distance);
- if(position_Matrix(city_nums+1,i)
2*city_nums+2,i)) - position_Matrix(city_nums+2:2*city_nums+1,i)=position_Matrix(1:city_nums,i);
- position_Matrix(2*city_nums+2,i)=position_Matrix(city_nums+1,i);
- end
- end
- [globalBestFitness,thisIndex]=min(position_Matrix(2*city_nums+2,:),[],2);
- globalBestPath=position_Matrix(city_nums+2:2*city_nums+1,thisIndex);
- % st_Matrix=ones(city_nums).*c_x-eye(city_nums)>rand(city_nums);
- % speed_current_Matrix(:,:,thisIndex)=(st_Matrix+st_Matrix')>ones(city_nums);
- end
- grid on;
- figure
- pathPlot(globalBestPath,city_position)
- title(num2str(globalBestFitness));
部分理论引用网络文献,若有侵权请联系博主删除。