NP (复杂度)

✍ dations ◷ 2025-08-15 14:02:50 #复杂度类,计算机科学中未解决的问题

非决定性多项式集合(英语:non-deterministic polynomial,缩写:NP)是计算理论中最重要的集合之一。它包含P和NP-complete。P集合的问题即在多项式时间内可以找出解的决策性问题(decision problem)集合。注意NP包含P和NP-complete问题, 因此NP集合中有简单的问题和不容易快速得到解的难题。是一个计算机科学中知名的难题。

决策问题:一个决策问题(decision problem)是指其输出,只有“是”或“否”的问题。例如,搜索问题为询问 x 是否出现在一个集合 A 中?若有则输出“是”,否则输出“否”。
P集合: 当一个决策问题存在一个O(nk)时间复杂度的算法时,则称此问题落在P 的集合中。

有一些决策问题,人类目前尚无法将他们归入集合 P 中。为了思考这些问题,于是在一般算法可采用的功能上,扩增以下虚构的新指令。这些新指令虽然不存在于现实中,但是对探讨这些难题的性质及彼此的关系,有很大的帮助。以下是这些虚构的新指令:

1. choice(S):自集合 S 中,选出会导致正确解的一个元素。当集合 S 中无此元素时,则可任意选择一个元素。

2. failure():代表失败结束。

3. success():代表成功结束。
其中 choice(S)可以解释成,在求解的过程中,神奇地猜中集合 S 中其中一个元素,使其结果是成功的;并且这三个指令只需要 O(1)时间来运行。当然,choice(S) 是如何快速猜中的,在此是不需讨论的,因为毕竟它只是虚构的。在添加这些虚构功能后,所设计出的算法,被称为非决定性算法(non-deterministic algorithm);相较之下,原来一般的算法,就称为决定性算法(deterministic algorithm)。利用非决定性算法,我们定义出另一个集合 NP:

NP: 当一个决策问题存在一个O(nk)时间复杂度的算法时,则称此问题落在NP 的集合中。

满足问题 (satisfiability problem,简称 SAT),就是一个NP中的典型难题。

满足问题:令 x 1,x 2,…,x n 代表布尔变量(boolean variables)(其值非真(true)即假(false)的变量)。令-xi 代表 xi 的相反数(negation)。一个布尔公式是将一些布尔变量及其相反数利用而且(and)和或(or)所组成的表达式。满足问题是判断是否存在一种指定每个布尔变量真假值的方式,使得一个布尔公式为真。

输入:一个 n 个变量的布尔公式

例如: (-x 1∨ -x 2 ∨ x 3)∧ (x 1 ∨ x 4)∧(x 2 ∨ -x 1)

输出:是否存在一种指定每个布尔变量真假值的方式,使得此公式为真?例如: 是(当 x 1=真,x 2=真,x 3=真,x 4=真时,此公式为真)

利用满足问题可以定义出NP-hard和NP-complete。但是我们需要一个问题转换的概念。问题转换技巧,其所需要转换的时间皆需在多项式时间(即 O (nk))内完成。利用此多项式时间的转换,我们可以将 NP中的难题创建起一些有趣的关系。

问题转换:针对两个问题 A 和 B ,如果存在一个 O (nk)时间的(决定性)算法,将每一个问题 A 的输入转换成问题 B 的输入,使得问题 A 有解时,若且惟若,问题 B 有解。此关系被称为,问题 A 转换成(reduce to)问题 B ,可表示成 A ∝ B 。

一个问题 L 被称为是 NP-hard,若且惟若,满足问题转换成 L(即满足问题∝L)。满足问题是 NP 中的难题,而 NP-hard 的问题则是满足问题派生(转换)出来的。

一个问题 L 被称为是 NP-complete,若且惟若,L ∈NP 而且 L ∈NP-hard。

史蒂芬库克(Stephen Cook)证明了一个十分重要的性质:

性质(A):“任一个 NP 内的问题都可以,在多项式时间内,被转换成满足问题。”

性质(B):“任一个 NP 内的问题都可以,在多项式时间内,被转换成任一个 NP-complete 问题。”

性质(C):“任一个 NP 内的问题都可以,在多项式时间内,被转换成任一个 NP-hard 问题。”

性质(D):“满足问题在集合 P 中,当且仅当,P=NP。”

比如说,一个决策性问题:输入一个整数x, 请回答x是否为偶数(even number)。我们利用一个程序判断x除以2是否整除即可得到最后结果 。此程序是决定性算法, 并且其时间复杂度为O(1)=O(n0), 因此此问题落入P集合中。

再举一个例子,下面是满足问题的一个非决定性算法。

Algorithm satisfiability (E (x 1, … , xn ))

{Step 1: for i =1 to n do

xi ←choice (true, false) /*利用 choice 直接猜中 xi 的真假值*/

Step 2: if E (x 1, … , x n) is true then success () /*计算此布尔公式是否为真*/

    else failure ();
}


上述的非决定性算法的时间复杂度为O(n1)即代表满足问题落入NP集合中。

相关

  • CoSsub2/sub二硫化钴是一种无机化合物,化学式为CoS2,具有黄铁矿结构。二硫化钴在120K以下具有铁磁性,高于此温度时有顺磁性。二硫化钴可由单质直接化合得到:以无水、无氧的甲苯为溶剂,氯化钴
  • 所罗门·格伦布所罗门·沃尔夫·格伦布(英语:Solomon Wolf Golomb,1932年5月30日-2016年5月1日),美国数学家。在南加州大学任职工程师及电力工程教授一职。最出名的是他所写的数学游戏。最引人注
  • 戴孚戴孚,唐代谯郡(今安徽亳州)人。生平不详,唐肃宗至德二年(757年)与好友顾况同登进士第。授官校书郎,大历六年(771年)在桐庐县令郑锋家听神仙诵诗,终官饶州录事参军。著有《广异记》二十
  • 昌邑市昌邑市,古称鄑邑、都昌,是潍坊市下辖的一个县级市,在中国山东省北部偏东,面积1627.5平方千米,人口58万(2011年)。属龙山文化和大汶口文化,古称密乡、都昌。秦始皇二十六年(前221年)灭
  • 丹尼·福特森丹尼尔·安东尼·福特森(英语:Daniel Anthony Fortson,1976年3月27日-),美国职业篮球球员,身高2.03米,体重168公斤,司职大前锋或中锋,以力量惊人著称。福特森出生于费城,大学就读于辛辛
  • 小行星11754小型星11754(11754 Herbig),天文学临时编号2560 P-L或1994 QH是一个位在小行星带的小行星。于1960年9月24日被科内利斯·约翰内斯·万·豪敦()、汤姆·赫雷尔斯()和英格丽·万·豪
  • 宇佐美奈奈宇佐美 奈奈(うさみ なな、本名:宇佐美 奈々、1992年12月31日-),于2012年出道的日本AV女优。宇佐美奈奈有一部作品名为《No Title》,即“无题”,原因是发行商不知道应为这么漂亮的
  • 蔡卞蔡卞(1048年-1117年),字元度,仙游人,北宋政治人物。熙宁三年(1070年)与兄蔡京同时中进士。哲宗绍圣四年(1097年)拜尚书左丞。参与对元祐党人的清算。元符三年宋徽宗即位,罢章惇、蔡卞、
  • 吕元夫吕元夫(1470年-?年),字仲仁,直隶常州府无锡县人,明朝政治人物、诗人。应天府乡试第一百二十一名举人。弘治九年(1496年)中式丙辰科二甲第五十九名进士。弘治十八年,任吏部文选司主事。
  • 法海 (白蛇传)法海,是《白蛇传》的角色,为镇江金山寺住持,拥有极其强大的法力,法号含义:“法”力无边,有如大“海”。本着拯救苍生的信念,四处降妖除魔。常备法器:袈裟、佛珠、禅杖、盆钵。在故事