• 改进的人工鱼群算法求解TSP问题的研究(Matlab代码实现)


     💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥

    🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

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

    目录

    1 概述

    3 参考文献

    4 Matlab代码实现

    1 概述

    摘要:针对旅行商(traveling salesman problem, TSP)是一个NP问题,本文使用改进的人工鱼群算法(improved artificial fish swarm algorithm, AFSA)进行线路的优化。首先阐述了TSP问题基本概念,其次针对基本的人工鱼群算法分别优化:(1)使用Laplace进行种群初始化,提高种群多样性;(2)使用正弦余弦算法取代觅食行为,保证算法在全局和局部范围内具有一定的平衡性;(3)利用人工蜂群算法对每一次迭代后的个体进行筛选,保证了算法的解的质量。仿真实验中本文算法在TSP路径规划方面具有一定的效果。 

    部分代码:

    1. clear
    2. clc
    3. tic %开始计时
    4. [num_Citys,CityPosition]=ReadTSPFile('ulysses22.tsp'); %读取.tsp文件
    5. %% 计算两两城市之间的距离
    6. h=pdist(CityPosition);
    7. D=squareform(h);
    8. %% 初始化参数
    9. FishNum=9; %生成10只人工鱼
    10. Max_gen=200; %最多迭代次数
    11. trynumber=500; %最多试探次数
    12. Visual=16; %感知距离
    13. deta=0.8; %拥挤度因子
    14. %% 鱼群初始化,每一行表示一条鱼
    15. initFish=AF_init(FishNum,num_Citys);
    16. BestX=zeros(Max_gen,num_Citys); %记录每次迭代过程中最优路径
    17. BestY=zeros(Max_gen,1); %记录每次迭代过程中最优路径的距离
    18. besty=inf; %最优总距离,初始化为无穷大
    19. gen=1;
    20. currX=initFish;
    21. currY=AF_foodconsistence(currX,D);
    22. while gen<=Max_gen
    23. for i=1:FishNum
    24. [Xinext,flag]= AF_movestrategy(currX,i,D,Visual,deta,trynumber);
    25. currX(i,:)=Xinext;
    26. end
    27. currY=AF_foodconsistence(currX,D);
    28. [Ymin,index]=min(currY);
    29. if Ymin<besty
    30. besty=Ymin;
    31. bestx=currX(index,:);
    32. BestY(gen)=besty;
    33. BestX(gen,:)=bestx;
    34. else
    35. BestY(gen)=BestY(gen-1);
    36. BestX(gen,:)=BestX(gen-1,:);
    37. end
    38. disp(['第',num2str(gen),'次迭代,得出的最优值:',num2str(BestY(gen))]);
    39. gen=gen+1;
    40. end
    41. figure
    42. plot(1:Max_gen,BestY)
    43. xlabel('迭代次数')
    44. ylabel('优化值')
    45. title('鱼群算法迭代过程')
    46. s=num2str(bestx(1));
    47. for i=2:num_Citys
    48. s=strcat(s,'->');
    49. s=strcat(s,num2str(bestx(i)));
    50. end
    51. s=strcat(s,'->');
    52. s=strcat(s,num2str(bestx(1)));
    53. disp(['得出的最优路径:',s,',最优值:',num2str(besty)]);
    54. toc %结束计时

    👨‍🎓博主课外兴趣:中西方哲学,送予读者:

    👨‍💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。当哲学课上老师问你什么是科学,什么是电的时候,不要觉得这些问题搞笑,哲学就是追究终极问题,寻找那些不言自明只有小孩子会问的但是你却回答不出来的问题。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能让人胸中升起一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它居然给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“真理”上的尘埃吧。

         或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎

    3 参考文献

    部分理论引用网络文献,若有侵权请联系博主删除。 

    [1]吴剑杰.改进的人工鱼群算法求解TSP问题的研究[J].科技通报,2021,37(08):66-70.DOI:10.13774/j.cnki.kjtb.2021.08.012.

    4 Matlab代码实现

  • 相关阅读:
    SpringBoot自动装配原理@EnableAutoConfiguration
    5.1SpringBoot整合Kafka(工具安装Kafka+Tools)
    JavaScript 中的 change
    【C语言期末不挂科——指针篇1】
    FPGA学习专栏-串口通信(xinlinx)
    大数据技术之Zookeeper案例总结
    c++虚拟继承那些事
    MySQL:存储过程与存储引擎
    Git远程克隆或提交代码到github报错fatal: unable to access xxx
    WLAN AP安全策略中WPA认证与WPA2认证的差异
  • 原文地址:https://blog.csdn.net/weixin_46039719/article/details/126452181