\(\S\) 结论

TSP问题:n阶带权无向完全图中,找权值最小的哈密顿回路(无向图中遍历所有顶点的回路)

优化问题,记最优解为OPT

对于一般的n顶点TSP问题(非Metric),任意 多项式时间内可计算的函数f(n) 均不可近似,除非P = NP

已知 哈密顿回路存在性判定 是经典的NPC问题;f(n)举例:\(f(n) = 2^n\)

\(\S\) 证明

思路

去证假设有那么个f(n)的近似比存在,则可在多项式时间内求解哈密顿回路这个NPC问题,则P = NP

具体过程

(从NPC问题实例出发归约到TSP问题)

对于一个n顶点哈密顿回路的实例,我们在此基础上构造一张完全图:

  • 对于原实例图中已有的边,定义权重为\(1\)
  • 对于原实例图中没有的边,定义权重为\(nf(n)\) (\(f(n)\)多项式时间内可计算,且因为是近似比,\(f(n)>1\))

构造的新图即为n顶点的TSP问题。则对于新图,可分析:

  • 原实例图存在哈密顿回路 \(\Leftrightarrow\) 新图中至少有那个哈密顿回路,且必然权重最小,所以\(OPT = n\);
  • 原实例图没有哈密顿回路 \(\Leftrightarrow\) 新图必然要用到新加的权重为\(nf(n)\)的边,所以\(OPT > nf(n)\);

NPC问题归约后的两种情况出现了Gap,且这个Gap无法被近似比逾越!

那如果n顶点TSP问题有某个 近似比为f(n) 的近似算法,那不妨对新图使用该算法:

  • 若\(OPT = n\),则根据定义,得到的解 \(cost \leq nf(n)\)
  • 若\(OPT > nf(n)\),则得到的解 \(cost > OPT > nf(n)\)

由于不存在其他的OPT情况(有Gap),所以反向推导也成立。即我们可以通过该近似算法,在多项式时间内判断原实例图是否存在哈密顿回路,即解决了NPC问题,即P = NP

得证

\(\S\) 总结:引入Gap的归约

记L为NPC判定问题(L is NP-complete Language),P为某个优化问题(an optimization problem)

从L到P的 引入Gap的归约(Gap-introducing reduction),会伴生两个函数\(f\)和\(\alpha\)的,对于L的某个实例x,他们可以在多项式时间内输出P的某个实例I,满足

①P为最小化的优化问题,\(\alpha(|I|) \geq 1\):

  • \(x \in L \Rightarrow OPT \leq f(I)\)
  • \(x \notin L \Rightarrow OPT > \alpha(|I|) \cdot f(I)\)

②P为最大化的优化问题,\(\alpha(|I|) \leq 1\):

  • \(x \in L \Rightarrow OPT \geq f(I)\)
  • \(x \notin L \Rightarrow OPT < \alpha(|I|) \cdot f(I)\)

TSP问题的不可近似性的更多相关文章

  1. JVM内存模型、指令重排、内存屏障概念解析

    在高并发模型中,无是面对物理机SMP系统模型,还是面对像JVM的虚拟机多线程并发内存模型,指令重排(编译器.运行时)和内存屏障都是非常重要的概念,因此,搞清楚这些概念和原理很重要.否则,你很难搞清楚哪 ...

  2. [Machine Learning] 机器学习常见算法分类汇总

    声明:本篇博文根据http://www.ctocio.com/hotnews/15919.html整理,原作者张萌,尊重原创. 机器学习无疑是当前数据分析领域的一个热点内容.很多人在平时的工作中都或多 ...

  3. Spark入门实战系列--8.Spark MLlib(上)--机器学习及SparkMLlib简介

    [注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .机器学习概念 1.1 机器学习的定义 在维基百科上对机器学习提出以下几种定义: l“机器学 ...

  4. sqlserver数据库学习(-)数据类型

    ecimal 数据类型最多可存储 38 个数字,所有数字都能够放到小数点的右边.decimal 数据类型存储了一个准确(精确)的数字表达法:不存储值的近似值. 定义 decimal 的列.变量和参数的 ...

  5. paper 12:机器学习常见算法分类汇总

    机器学习无疑是当前数据分析领域的一个热点内容.很多人在平时的工作中都或多或少会用到机器学习的算法.这里南君先生为您总结一下常见的机器学习算法,以供您在工作和学习中参考. 机器学习的算法很多.很多时候困 ...

  6. 深度神经网络DNN的多GPU数据并行框架 及其在语音识别的应用

    深度神经网络(Deep Neural Networks, 简称DNN)是近年来机器学习领域中的研究热点,产生了广泛的应用.DNN具有深层结构.数千万参数需要学习,导致训练非常耗时.GPU有强大的计算能 ...

  7. SqlServer中decimal(numeric )、float 和 real 数据类型的区别[转]

    decimal(numeric )             同义,用于精确存储数值 float 和 real                      不能精确存储数值   decimal 数据类型最 ...

  8. 【深度学习系列2】Mariana DNN多GPU数据并行框架

    [深度学习系列2]Mariana DNN多GPU数据并行框架  本文是腾讯深度学习系列文章的第二篇,聚焦于腾讯深度学习平台Mariana中深度神经网络DNN的多GPU数据并行框架.   深度神经网络( ...

  9. 超文本传输协议-HTTP/1.1

    超文本传输协议-HTTP/1.1(修订版) ---译者:孙超进本协议不限流传发布.版权声明Copyright (C) The Internet Society (1999). All Rights R ...

  10. NLP︱词向量经验总结(功能作用、高维可视化、R语言实现、大规模语料、延伸拓展)

    R语言由于效率问题,实现自然语言处理的分析会受到一定的影响,如何提高效率以及提升词向量的精度是在当前软件环境下,比较需要解决的问题. 笔者认为还存在的问题有: 1.如何在R语言环境下,大规模语料提高运 ...

随机推荐

  1. shell脚本忽略错误继续执行

    在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行.如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set +e 命令来取消该设置. 例如,下面是一个忽略错误并继 ...

  2. 【转载】 进行API开发选gRPC还是HTTP APIs

    https://www.cnblogs.com/yilezhu/p/10645804.html 开始之前先看一下gRPC与带有j'son的HTTP APIs对比表格 gRPC的优势 性能 gRPC消息 ...

  3. Socat 命令总结

    事以密成,语以泄败. 导航 介绍 基本语法 用法示例 回显输入 回显输入 over TCP/UDP 正向连接 shell 反向连接 shell 端口转发 网络服务 文件传输 管道传输 加密传输 TUN ...

  4. error: undefined reference to `cv::imread(cv::String const&, int)' 解决方法

    方法1 原文链接:https://blog.csdn.net/WhiteLiu/article/details/72901520 编译时出现下列错误: undefined reference to ' ...

  5. [转]如何将 PDF 批量导入到iPhone或iPad?| 技能Get!

    电脑上没看完的 PDF,想在移动端继续阅读? 问题来了!如何随身携带大量PDF文档?如何将电脑上的 PDF 文档快速导入到你的 iPhone 和 iPad 呢?链接数据线已经 out 了,现在告诉大家 ...

  6. [转]C#中委托类型的BeginInvoke和EndEndInvoke方法的理解和应用

    参考链接: 1.[C#基础]c#中的BeginInvoke和EndEndInvoke 2.C#当中的BeginInvoke和EndInvoke

  7. 从零开始的Python世界生活——语法基础先导篇(Python小白零基础光速入门上手)

    从零开始的Python世界生活--语法基础先导篇(Python小白零基础光速入门上手) 1. 准备阶段 1.1 下载并安装Python 1.1.1 下载步骤: 访问Python官方网站:点击这里下载P ...

  8. C Primer Plus 第6版 第五章 编程练习参考答案

    编译环境VS Code+WSL GCC 源码在文末下载 /*第1题*************************/ #include<stdio.h> #define MIN_TO_H ...

  9. Solution Set - Codeforces Global Round 1~8

    目录 Codeforces Global Round 1 A. Parity B. Tape C. Meaningless Operations D. Jongmah E. Magic Stones ...

  10. Kubernetes 轻松管理资源

    资源管理介绍 在kubernetes中,所有的内容都抽象为资源,用户需要通过操作资源来管理kubernetes. kubernetes的本质上就是一个集群系统,用户可以在集群中部署各种服务,所谓的部署 ...