1. 问题定义

输入:加权的完全无向图G=(V,E), 权值函数c: E → R+, c满足三角不等式

输出:权值最小的哈密顿环

哈密顿环指的是包含V中的每一个顶点恰一次的简单环。哈密顿环的权值指的是其中所有边的权值之和。如果旅行商问题的权值函数满足三角不等式,即c(u,w)≤c(u,v) + c(v,w)对任意u,v,w都成立,则称它满足三角不等式。无论旅行商问题是否满足三角不等式,它均是NP-完全问题。相关定理表明,不满足三角不等式的旅行商问题不存在常数近似比的近似算法,除非NP=P。

求解旅行商问题要求选用图中的一组边,将图中所有顶点连接成一个简单环。在图中,最小生成树T*总是以总代价最小的方式将所有顶点相互连接。因此,以深度优化方式遍历最小生成树T*中的每条边两遍,可得到访问所有顶点的回路L,然后将回路L改造成一个简单环C,从而得到问题的一个近似解C。分析近似比时,问题的优化解C*和近似解C可以通过最小生成树T*关联。由此,可得到以下算法。

2. 近似算法设计

1. 任意选择V中的一个顶点r,作为树根节点;

2. 调用Prim算法得到图G(V,E)的最小生成树T*;

3. 先序遍历T*,访问T*中的每条边两遍,得到顶点序列L;

4. 删除L中的重复顶点形成哈密顿环C;

5. 输出C.

3. 算法的性能分析

3.1 时间复杂度

该算法的时间复杂度为O(|V|^2 * log|V|)。事实上,第2步开销为O(|E| * log|V|)且图G是完全图,O(|E| * log|V|)等于O(|V|^2 * log|V|)。第3~4步的开销为O(|V|),因为最小生成树恰有|V| - 1条边。

3.2 近似精度

对于近似解C,由于L是遍历T*的每条边两次得到的回路,则有c(L) = 2 * c(T*), 而C又是关于L删除某些重复边后得到的结果,因此C ≤ 2 * c(T*)。

对于优化解C*,由于C*是一个简单环,则删除任一条边便可生成树,而且该树的代价一定不低于最小生成树的代价,因此有c(C*) ≥ c(T*)。

综上,有C ≤ 2 * c(T*) ≤ 2 * C*。所以C / C* ≤ 2,该算法的近似比为2。

4. 拓展

在最小生成树的基础上求解近似问题,其近似比为2。那是否存在某种算法使得近似比更好?事实上,将最小生成树算法与最大匹配算法结合,就可以实现近似比为3/2的算法,但是该算法的时间复杂度较高。

近似算法之旅行商问题相关推荐

  1. 什么是近似算法?它适用于哪些问题?这篇文章给你答案

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 罗素曾说:所有精确科学都被近似思想所主宰.本文介绍了近似算法及其对 ...

  2. 理论计算机初步:概率算法和近似算法

    已经提到了显示中大多数难解问题问题最后都被证明是NP-完全问题.这意味着,除非NP=P,它们是不可能有多项式时间算法的(而且,在 这篇文章提到即使NP=P,人们也可能找不到一个NP完全问题的「有效」算 ...

  3. 算法导论之NP完全性和近似算法

    NP完全性和近似算法 在理解NP完全性之前,笔者想引入关于科学与伪科学的定义.凡可接受实践检验.可被证实和被否正的为科学,相反之为非科学,而伪科学是非科学之子集,与科学相对立,认定非科学为科学的即是伪 ...

  4. 创新实训团队记录:为BR-MTC问题设计一个近似算法

    创新实训团队记录 : 为BR-MTC问题设计近似算法 阅读书籍和论文 近似算法设计思路变化总结 算法框架 改变初始顶点集 继续添加路径,作为新的初始顶点集 程序验证 近似解与最优解存在差距&& ...

  5. 由旅行商问题认识何为状态压缩

    动态规划 动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法.20世纪50年代初美国数学家R.E.Bellman等 ...

  6. TSP_旅行商问题 - 模拟退火算法(三)

    一.前言 [旅行商问题]旅行商问题(TravelingSalesmanProblem,TSP)是一个经典的组合优化问题.经典的TSP可以描述为:一个商品推销员要去若干个城市推销商品,该推销员从一个城市 ...

  7. 解决旅行商问题的方法

    旅行商问题 旅行商问题 定义: 简介: 智能优化算法解决旅行商问题 遗传算法 TSP问题基本概念 遗传算法的基本原理 1.设计算法的编码方式 2.设计遗传算法的适应度函数 3.设计遗传算法的选择操作 ...

  8. 旅行商问题(TSP)简介

    什么是旅行商问题 旅行商问题(TravelingSalesmanProblem,TSP)是一个经典的组合优化问题.经典的TSP可以描述为:一个商品推销员要去若干个城市推销商品,该推销员从一个城市出发, ...

  9. 基于组合优化的旅行商问题

    基于组合优化的旅行商问题 组合优化 组合优化中的TSP 综述 一.问题叙述 二.图在计算机上的表示 三.TSP问题的暴力解法 四.Prim算法.Kruskal算法拓展 五.利用最小生成树的结果来找旅行 ...

  10. 旅行商问题的蚁群算法

    旅行商问题是一个经典的组合优化问题,它的提出和研究有着悠久的历史.最早的描述是1759年欧拉研究的骑士环游问题,即对于国际象棋棋盘中的64个方格,走访64个方格一次且仅一次,并且最终返回到起始点.19 ...

最新文章

  1. 树套树 ----- P1975 [国家集训队]排队(树状数组套权值线段树求动态逆序对)
  2. 跨平台C++开源码的两种经常使用编译方式
  3. 在myeclipse中导入图片
  4. ES6/ES2015核心内容(上)
  5. 项目中和时间相关的要注意的地方
  6. 图的遍历、最小生成树、最短路径
  7. Android布局大全
  8. Java EE 7 / JAX-RS 2.0 – REST上的CORS
  9. 解决VM虚拟机中ubuntu系统上不了网的问题
  10. leetcode 删除链表的倒数第N个节点
  11. Python网络编程之socketserver实现多并发
  12. pythonjs设置_在节点js中设置env变量并在python脚本中使用
  13. 保险科技服务商豆包网完成9500万新一轮融资,博将资本领投
  14. 基于动态规划DTW算法加速衡量两个不同的时间序列的相似性
  15. OGNL表达式的介绍
  16. 云服务器我的数据保存在哪个文件夹,云服务器存储在哪里
  17. css样式代码的基本格式
  18. iOS- 添加UIWindow蒙版
  19. 程序员的自我修养-读后感
  20. C#个人博客系统源码(前台+后台管理)

热门文章

  1. 大数据四大阵营之OLTP阵营(上)
  2. Flink1.14.4 与 Flinkcdc 2.2.1 遇keng
  3. 渝粤题库 陕西师范大学 《中国古代文学(四)》作业
  4. 复合梯形的matlab求解,MATLAB 利用复合梯形公式求解积分
  5. Install Ubuntu18.04.1 and Win7 on A53S
  6. 谷歌Mediapipe运行环境配置
  7. There was a problem confirming the ssl certificate: [SSL: CERTIFICATE_VERIFY_FAILED]
  8. http状态码200,300,404等是什么意思
  9. php date 格式时分秒,PHP 把秒数转为时分秒格式
  10. wpf,silverlight,wp7,winform等学习资料整合(一)