新浪博客

烟花优化算法求解TSP离散问题MATLAB源码

2020-09-15 16:46阅读:
烟花优化算法是2010年提出来,相对其他算法可算是一个比较新颖的算法,所以越来越多的人开始使用烟花算法来求解实际问题和写论文。
但是烟花算法和其他群体类算法一样,如粒子群算法、布谷鸟算法、蝙蝠算法等等,它是求解连续函数的问题,它的编码也是实数编码。对于一些离散问题,如旅行商TSP问题,这些算法就不怎么适用了,需要一定的转换。
重点来了:很多人的转换方法其实是不对的,金玉其外,败絮其中。比如TSP问题,他们依然使用实数编码,如实数编码是【0.44 0.62 0.56 0.67 0.32 0.42 0.76 0.28 0.05 0.44】,他们只是解码的时候将这些实数从小到大排序,然后用离散的索引编码,如上面实数编码的从小到大排序的索引为【9 8 5 6 1 10 3 2 4 7
看起来好像是实现了离散编码,所以我说它是金玉其外。
那为啥我又说它是败絮其中呢?因为:(1)这种方法本质还是连续编码,不能叫离散编码;(2)中间这个转换是不确定的,也就没有继承性,对优化问题是没有任何帮助的。什么意思呢?就是说我们的优化算法都是一代一代搜索达到最优的,一般下一代的最优解是在上一代最优解的基础上进化得到的。这种转换方式的不确定性是指上一代的最优解和下一代的最优解没有什么关系,甚至会
出现互不相干。
我不知道说到这你能理解了吗。
为此,我想到了一种方法,实现了用烟花算法求解离散问题,如TSP问题。在这个问题中,编码是离散的自然数编码,即1~N编码,然后我根据烟花算法的原理对离散编码时的爆炸火花和爆炸半径进行了定义,效果很好!先看看效果图。(因为我写的是最基本的烟花算法,可以在这个算法的基础上进行改进,当然参数设置也会影响程序的效果)
程序效果图如下:
烟花优化算法求解TSP离散问题MATLAB源码 TSP路径图
烟花优化算法求解TSP离散问题MATLAB源码 烟花优化算法收敛曲线

所有的程序文件如下:代码为付费服务,有需要的可以联系我QQ3171304690,非诚勿扰,谢谢!
烟花优化算法求解TSP离散问题MATLAB源码所有程序文件

主程序代码如下:
%%%% 烟花算法求解TSP问题
%%%% by 圆 一个有心的人在用心做事
%%%% 2020-09-10
%%%% 如有问题请联系 QQ3171304690/530807088(好友已满) 新浪微博:MATLAB圆创工作室
% ================ 高 端 定 制 · 华 丽 分 割 ===================
烟花优化算法求解TSP离散问题MATLAB源码
烟花优化算法求解TSP离散问题MATLAB源码
烟花优化算法求解TSP离散问题MATLAB源码
烟花优化算法求解TSP离散问题MATLAB源码

我的更多文章

下载客户端阅读体验更佳

APP专享