tsp目录html
- 最简单的实践 juejin.im/post/5d1b14…
- 最简单的理论 juejin.im/post/5d1b15…
- 当前tsp的现状 juejin.im/post/5d1b19…
- 单起点任务分配 juejin.im/post/5d1c6d…
- 多起点任务分配 juejin.im/post/5d1dbe…
- 更简洁的多起点分配 juejin.im/post/5d1dc2…
- 起点时间窗 juejin.im/post/5d1f1f…
- 终点时间窗和hk juejin.im/post/5d1f44…
- LK简介 juejin.im/post/5d25b8…
- tsp系列暂停一下 juejin.im/post/5d302e…
这一篇能够当作前言来看, 主要是介绍一下TSP目前的状况算法
目前主流的tsp算法有三个网络
- LK算法
- LK基础算法, 他的思路就是交换路径上的点的顺序(就是用一段路径去替换另外一段), LK自己在上世纪60年代实现了2交换, 3交换(3条路径)…
- L 贝尔实验室的 shen lin, 没错华裔
- K 贝尔实验室的brian kernighan
- LKH算法, 以LK交换为基础, 实现了更复杂的动态交换技术. 尝试类算法的表明和巅峰. H再上个世纪90年代实现了5交换, 后来又实现了动态交换.
- H keld helsgaun
- 动态交换最初由Applegate实现, 基于gates-papadimitriou的成果, 没错这个gates就是微软的那个bill gates, 这个成果是他念大学时作出来的, 一个本科生, 人家不要文凭, 不是由于没法毕业, 而是由于学业对他而言不够有挑战性.
- LK的链式算法, 顾名思义, 就是一次LK结果以后, 进行简单的随机交换(例如4交换), 而后, 再作一次LK, 简单的说就是链式调用LK. 它垄断了上个世纪90年代的路线搜寻, concorde用到了他. 10万城市, 仅需1s, 拿到1%偏差的结果.
- 遗传算法, 选取两条路线进行配种, 例如EAX边交叉法, 两条路线A和B, 在A(妈妈)中选择一段边做为基础, 而后在A和B(爸爸)中选择线段(优先使用B)构建一条路径(可能会造成局部回路).
- 永田裕一采用EXA构造了很是有竞争力的方案, 他的蒙娜丽莎TSP方案很是精妙.
- 线性规划, 表明做品concorde 这个领域的概念和扩展都比较多, 后面专门介绍吧.
其余扎偏枪成功的算法, 这些算法虽然是为了TSP而生, 可是实际对TSP没有太多影响, 却在其余领域大放异彩.ide
- 退火算法, 做为一个通用的搜索算法, 它取得了巨大的成功.
- 蚁群算法, 他在时序调度, 蛋白质基因测序等等不少领域大显身手.
- 神经网络 neural network
- 禁忌搜索 tabu search
- 蜂群算法 honey bee
参考连接:post
之因此三连发, 是前面2篇写好好久了. 可是, 一直以为思路不通透, 或许有问题, 昨天晚上都想通了, 而后, 这第三篇很简单, 就一块儿放出来了, 后面会出现有难度的内容, 我们立刻就去搞线性规划或者lk 或者生成树, 我在犹豫用哪个. 可能会先讲一下生成树作规划的重大优点吧.3d