\(\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. vagrant 修改配置生效

    vagrant reload --provision 起因 看 log 的时候以为写入错误,排查了几次才发现是系统时间不对,这里记录一下解决过程 手动同步时间 yum install ntpdate ...

  2. 【转载】Spring Cloud Gateway监控

    http://www.imooc.com/article/290822 欢迎加入Spring Cloud Gateway监控豪华套餐-- 只要为Spring Cloud Gateway添加Spring ...

  3. macOS 中有什么好用的虚拟机软件?

    macOS 中有什么好用的虚拟机软件? https://www.zhihu.com/question/66366176/answer/268256386 问题:1.macOS是否有专门的虚拟机软件?或 ...

  4. C#/.NET/.NET Core技术前沿周刊 | 第 18 期(2024年12.16-12.22)

    前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...

  5. Qt通用方法及类库3

    函数名 //设置全局样式 static void setStyle(QUIWidget::Style style); static void setStyle(const QString &q ...

  6. 基于Redis有序集合实现滑动窗口限流

    滑动窗口算法是一种基于时间窗口的限流算法,它将时间划分为若干个固定大小的窗口,每个窗口内记录了该时间段内的请求次数.通过动态地滑动窗口,可以动态调整限流的速率,以应对不同的流量变化. 整个限流可以概括 ...

  7. 收藏几个常用的vue自定义组件,抄自 他人,以防丢失

    在 Vue,除了核心功能默认内置的指令 ( v-model 和 v-show ),Vue 也允许注册自定义指令.它的作用价值在于当开发人员在某些场景下需要对普通 DOM 元素进行操作. Vue自定义指 ...

  8. C51--05---LCD1602调试工具

    一.LCD1602调试工具 单片机调试工具: 数码管 液晶屏 串口 数码管需要不断进行扫描,一旦扫描不及时就会不断闪烁,并且可显示的数据太过局限: 串口需要使用电脑进行发送指令,不易操作与携带: 所以 ...

  9. 深入解析 Spring AI 系列:解析OpenAI接口对接

    今天我们将主要探讨OpenAI是如何进行接口对接的,虽然我们不打算深入细节,但会对整体流程进行一个大概的了解.后续会逐步分析其中的具体细节,大家可以耐心等待,逐步展开.好的,现在让我们开始,下面是我简 ...

  10. ClickHouse-3引擎

    引擎 数据库引擎 index 表引擎 数据库引擎 数据库引擎允许您处理数据表. 默认情况下,ClickHouse使用Atomic数据库引擎.它提供了可配置的table engines和SQL dial ...