当前位置:   article > 正文

34章 NP完全_子图同构问题取两个无向图g_1和g_2,并询问g_1是否同构于g_2的子图。证明子图同构

子图同构问题取两个无向图g_1和g_2,并询问g_1是否同构于g_2的子图。证明子图同构

1、P问题

P ={ L ∈{0,1}*: 存在一个算法A,可以在多项式时间内判定L}

P也是能在多项式内被接受的语言类

P = {L : L能被一个多项式时间算法所接受}

PATH = {<G, u, v, k>: G = (V,E)是一个无向图,u,v  ∈ V, k >= 0是一个整数,即G中从u到v存在一条长度至多为k的路径}

是P问题,可以在多项式时间内被接受


2、NP问题

复杂类NP是能被一个多项式时间算法验证的语言类


区别:P是判定,存在一个多项式算法,NP是判定,即存在一个算法可以在多项式时间内验证一个解是否正确。


3、NP完全(NPC)

一个问题是NPC表示:

1) 它是一个NP问题

2)其他属于NP的问题都可归约成它。

可归约是指对每个问题L,总有一个多项式时间多对一的变换,即一个决定性的算法可以将实例l ∈ L转化成实例c ∈ C.并让c回答yes当且仅当此答案对l也是yes

为了证明某个问题A实际上是NPC问题,必须找出一个已知的NPC问题可以变换成A


NPC问题:

1)布尔公式可满足性

SAT = {<Φ>: Φ是一个可满足的布尔公式}

2)3-CNF :3合取范式

3CNF形式的布尔公式的可满足性问题

3)电路可满足性问题

CIRCUIT-SAT = {<C> : C是一个可满足的布尔组合电路}

4)团问题 是关于寻找图中规模最大的团的最优化问题

CLIQUE = {<G, k> : G是一个包含规模为k的团的图}

5)顶点覆盖问题,顶点覆盖的规模是指它所包含的顶点数

VERTEX-CORVER = {<G, k>: 图G有一个规模为k的顶点覆盖}

6)哈密顿回路问题  哈密顿回路是通过V中每个顶点的简单回路

HAM-CYCLE = {<G>: G是哈密顿图},存在哈密顿回路的图

7)旅行商问题

TSP = {<G, c, k>: G = (V, E)是一个完全图,c是V*V->Z上的一个函数,k ∈ Z, G中包含一个最大花费为k的旅行回路 }

8)子集和问题

SUBSET-SUM = {<S, t>: 存在一个子集S' ∈ S, 使得t  = Σs s ∈ S'}

9)子图同构问题: 两个无向图G1, G2,G1是否与G2的一个子图同构

10)背包问题

11)图着色问题

给定一个无向图G=(V, E),其中V为顶点集合,E为边集合,图着色问题即为将V分为K个颜色组,每个组形成一个独立集,即其中没有相邻的顶点。其优化版本是希望获得最小的K值。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/243724
推荐阅读
相关标签
  

闽ICP备14008679号