算法: TSP 问题

作者: 写代码的海怪 | 来源:发表于2019-02-17 06:45 被阅读28次

简介

TSP (Traveling Salesman Problem) 问题是一个经典的最短路径问题,它和我们平时看到的最短路径不同点是最短路径还包含了回来的路径。如下图,如果从节点1 开始也要在节点 1 结束。

这一个小小的回程问题使得整个问题都变复杂了,我们熟悉的 Dijkstra 不能用,要说某个点到所有点距离最小好像和最小生成树 (MST) 有关,但是计算回来的路径使得 MST 也不能用。

到目前为止还没有一个最优的解决方案,都是一些趋于最优的解决方案。

应用

这个问题有很多应用场景:

  1. 在网络里去找最优的路由
  2. 最容易理解的就是顺风送快递,送完快递还要考虑回来的路程

现有的解决方案

为什么说是现有的解决方案呢?因为这个问题还没有找到最优的解,都是趋于最优的解。判断这趋于最优的方法我们一般使用一个比率来做。

Approximation Ratio = 算法的质量/最优解的质量

目前已有算法的最优比率是 2/1,3/2,123/122,这里是越趋于 1 越好。

2/1

2/1 的这个算法主要使用了最小生成树,将最小生成树的总权重 * 2 就是 TSP 问题的答案。这个算法很容易理解,要经过所有的点还要路径小的 MST 能满足开始节点去往每个节点的最小距离,而要计算回来的路程,所以要将 MST Double 一下,这个 Double 就是回来的距离。

最优的比率计算如下:

length(MST) ≤ length(最优解图中去掉一条边) ≤ OPT

length(我们的算法) = 2 * length(MST) ≤ 2 OPT

3/2

这个算法还是以上面算法为基础,不过它没那么傻将 MST 双倍。而是对于那呢入度为奇数的节点连一个捷径。

相关文章

  • awesome 蚁群算法

    蚁群算法介绍(以TSP问题为例)

  • 算法: TSP 问题

    简介 TSP (Traveling Salesman Problem) 问题是一个经典的最短路径问题,它和我们平时...

  • awesome 禁忌搜索

    禁忌搜索(Tabu Search)算法及python实现 实验10 禁忌搜索算法求解tsp问题

  • 几种蚁群算法介绍

    蚂蚁系统 最早的蚁群算法,其在小规模TSP中性能尚可,再大规模TSP问题中性能下降,容易停滞。其解决旅行商问题(T...

  • TSP问题—近似算法

    本章涉及知识点1、NP完全问题和其解题策略2、TSP问题定义3、案例引出4、满足三角不等式的TSP模型5、近似算法...

  • TSP问题—蚁群算法(ACO)

    TSP问题—蚁群算法(ACO) 蚁群算法(AG)是一种模拟蚂蚁觅食行为的模拟优化算法,它是由意大利学者Dorigo...

  • 旅行商问题的解法

    一、动态规划 模拟退火算法解决TSP问题: 思路: 参数选取,包括初始温度、冷却系数(coolingFactor,...

  • TSP解决之道——蚁群算法

    参考 蚁群算法java实现以及TSP问题蚁群算法求解 蚁群算法原理与应用讲解 蚁群算法原理与应用1-自然计算与群体...

  • 求解TSP问题

    作业二:Hopfield、GA、ACO求解TSP问题 一、问题描述 TSP问题(Traveling Salesma...

  • 旅行商问题的近似最优解(局部搜索、模拟退火、遗传算法)

    旅行商问题的近似最优解(局部搜索、模拟退火、遗传算法) 关键字:旅行商问题,TSP,局部搜索,模拟退火,遗传算法 ...

网友评论

    本文标题:算法: TSP 问题

    本文链接:https://www.haomeiwen.com/subject/zwdnsqtx.html