Yin的笔记本

vuePress-theme-reco Howard Yin    2021 - 2025
Yin的笔记本 Yin的笔记本

Choose mode

  • dark
  • auto
  • light
Home
Category
  • CNCF
  • Docker
  • namespaces
  • Kubernetes
  • Kubernetes对象
  • Linux
  • MyIdeas
  • Revolution
  • WebRTC
  • 云计算
  • 人工智能
  • 分布式
  • 图像处理
  • 图形学
  • 微服务
  • 数学
  • OJ笔记
  • 博弈论
  • 形式语言与自动机
  • 数据库
  • 服务器运维
  • 编程语言
  • C
  • Git
  • Go
  • Java
  • JavaScript
  • Python
  • Nvidia
  • Rust
  • Tex
  • Shell
  • Vue
  • 视频编解码
  • 计算机网络
  • SDN
  • 论文笔记
  • 讨论
  • 边缘计算
  • 量子信息技术
Tag
TimeLine
About
查看源码
author-avatar

Howard Yin

303

Article

153

Tag

Home
Category
  • CNCF
  • Docker
  • namespaces
  • Kubernetes
  • Kubernetes对象
  • Linux
  • MyIdeas
  • Revolution
  • WebRTC
  • 云计算
  • 人工智能
  • 分布式
  • 图像处理
  • 图形学
  • 微服务
  • 数学
  • OJ笔记
  • 博弈论
  • 形式语言与自动机
  • 数据库
  • 服务器运维
  • 编程语言
  • C
  • Git
  • Go
  • Java
  • JavaScript
  • Python
  • Nvidia
  • Rust
  • Tex
  • Shell
  • Vue
  • 视频编解码
  • 计算机网络
  • SDN
  • 论文笔记
  • 讨论
  • 边缘计算
  • 量子信息技术
Tag
TimeLine
About
查看源码
  • NP问题

    • 3CNF-SAT问题
      • K团问题
        • 汉密尔顿回路问题
          • 深入理解:最优化问题和判定问题
            • NPCNPCNPC的意义
              • 如何证明一个问题是NPCNPCNPC问题
                • 基本的NP完全问题

                NP问题

                vuePress-theme-reco Howard Yin    2021 - 2025

                NP问题


                Howard Yin 2020-12-25 16:00:02 数学算法
                • NPNPNP表示“Non-Deterministic Polynomial”——“非确定的多项式”
                  • 解可以在多项式时间内验证
                  • 非确定的图灵机在多项式时间内可以解决
                • PPP表示“Polynomial”——“多项式”
                  • 是一个NPNPNP问题
                  • 确定的图灵机在多项式时间内可以解决
                • “NPCNPCNPC”表示“Non-Deterministic Polynomial Complete”——“非确定的多项式完全”
                  • 是一个NPNPNP问题
                  • 任何NP问题都可以在多项式时间内规约到这个问题
                • “NPHNPHNPH”表示“Non-Deterministic Polynomial Hard”——“非确定的多项式难”
                  • 解不能在多项式时间内验证
                  • 任何NP问题都可以在多项式时间内规约到这个问题

                PPP问题和NPNPNP问题的解都可以在多项式时间内验证

                # 3CNF-SAT问题

                给定nnn个布尔变量x1,x2,x3…xnx_1,x_2,x_3\dots x_nx1​,x2​,x3​…xn​和一个布尔表达式CCC,形式为:

                • 由一系列子句合取组成:C=C1∧C2∧C3∧⋯∧CMC=C_1\wedge C_2\wedge C_3\wedge\dots\wedge C_MC=C1​∧C2​∧C3​∧⋯∧CM​
                • 每个子句由三个变量析取而成:Cm=(xi∨xj∨xk)C_m=(x_i\vee x_j\vee x_k)Cm​=(xi​∨xj​∨xk​)

                求使布尔表达式为真的布尔变量x1,x2,x3…xnx_1,x_2,x_3\dots x_nx1​,x2​,x3​…xn​值。

                显然,对于一组布尔变量x1,x2,x3…xnx_1,x_2,x_3\dots x_nx1​,x2​,x3​…xn​值,依次求解每个子句的值,再求其析取的值即得最终的值,时间复杂度为O(n)O(n)O(n),是NPNPNP问题。

                # K团问题

                “kkk团”是指一种有kkk个点的子图,子图中的点两两之间都有边相连。

                kkk团问题就是给定一个图GGG和整数kkk,求GGG的kkk团。

                显然,对于GGG中的任意kkk个顶点组合,只需要判断两两之间是否有边即可判断是否是kkk团,时间复杂度O(n2)O(n^2)O(n2),是NPNPNP问题。

                # 汉密尔顿回路问题

                汉密尔顿回路是指一条经过无向图中所有点且每个点只经过一次的路径。

                汉密尔顿回路问题就是给定一个图GGG寻找它的汉密尔顿回路。

                显然,对于nnn个顶点的排列,只需要依次判断顶点之间是否重复以及相邻顶点间是否有边即可验证是否是汉密尔顿回路,时间复杂度为O(n)O(n)O(n),是NPNPNP问题。

                # 深入理解:最优化问题和判定问题

                一个最优化问题可以和一个判定问题对应起来:

                • 判定问题验证一个解是否满足条件
                • 最优化问题找出所有满足条件的解,或从满足条件的解中找出最好的解

                PPP、NPNPNP、NPCNPCNPC可以如下表示:

                • PPP类最优化问题:
                  • 对应的判定问题可以在多项式时间内解决
                  • 对应的最优化问题可以在多项式时间内解决
                • NPNPNP类最优化问题:
                  • 对应的判定问题可以在多项式时间内解决
                  • 对应的最优化问题不一定能在多项式时间内解决
                • NPCNPCNPC类最优化问题:
                  • 对应的判定问题可以在多项式时间内解决
                  • 对应的最优化问题不一定能在多项式时间内解决
                  • 所有的NPNPNP问题都可以在多项式时间内归约到这个问题
                • NPHNPHNPH类最优化问题:
                  • 对应的判定问题不能在多项式时间内解决
                  • 所有的NPNPNP问题都可以在多项式时间内归约到这个问题

                # NPCNPCNPC的意义

                • 若能证明某个NPNPNP完全问题多项式时间可解,则所有NPNPNP问题均可多项式时间求解,从而有P=NPP=NPP=NP。
                • 若能证明某个NPNPNP完全问题多项式时间不可解,则所有NPNPNP问题均不可多项式时间求解,从而有P≠NPP\not=NPP​=NP。

                目前是否有P=NPP=NPP=NP还在探索之中,普遍认为P≠NPP\not=NPP​=NP。

                # 如何证明一个问题是NPCNPCNPC问题

                1. 证明该问题是一个NPNPNP问题:找出一个多项式时间内验证解的办法
                2. 将该问题规约到一个NPCNPCNPC问题:找出一个多项式时间内将某个已知NPCNPCNPC问题的解转化为该问题的解的办法,并证明当且仅当NPCNPCNPC问题有解时该问题有解

                # 基本的NP完全问题

                • SAT问题(Boolean Satisfiability Problem)
                • 最大团问题(Maximum Clique Problem)
                • 图着色问题(Graph Coloring Problem)
                • 哈密顿回路问题(Hamiltonian Cycle Problem)
                • TSP问题(Traveling Salesman Problem)
                • 顶点覆盖问题(Vertex Cover Problem)
                • 最长路径问题(Longest Path Problem)
                • 子集和问题(Sum of Subset Problem)
                帮助我们改善此页面!
                创建于: 2020-12-25 16:00:28

                更新于: 2020-12-25 16:00:28