向10岁的孩子解释P = NP问题


54

这是我在这个网站上的第一个问题。我正在攻读计算理论的硕士学位。您将如何向一个10岁的孩子解释P = NP问题,为什么它会有这么多的金钱奖励?

你拿?

我的脑海一清二楚,我将更新这个问题。


11
我倾向于将其作为非研究水平的理论计算机科学来关闭。
戴夫·克拉克

11
@戴夫:应该由研究人员回答,所以也许把它问到研究人员去的地方就足够了吗?
杰里米

11
我认为这是合理的。有一篇著名的论文叫做《如何向孩子解释零知识协议》,我认为这将被视为研究水平。的确,选择“最佳答案”可能很困难,但是对于软性问题通常是这样。另外,如果提出足够有趣的答案,那么这个问题最终可能会成为网站的良好广告……许多人可能会链接到此处给出的答案,要求提供P对NP的解释。
菲利普·怀特

7
但实际上应该是CW。
Suresh Venkat

5
我问这个动机是因为问题的措辞给我的印象是您对自己的问题的答案不太感兴趣(这似乎是开始对话的一种方式,而不是真正的问题),而不是因为问题很愚蠢。根据您的回答,您似乎是为了提出问题而问这个问题,因此我对回答这个问题不感兴趣,因为它无济于事。我们与Stack Overflow有不同的文化,但是现在不相关了。
伊藤刚(Tsuyoshi Ito)

Answers:


33

我使用这3张幻灯片来说明为什么要为NP问题提出快速算法这么难(不可能)?

垃圾箱包装 垃圾箱包装是NP完整的1 垃圾箱包装是NP完整的2


很容易理解。

4
我认为,随着块数量的增加,需要扩展“缩放比例”的“绝非易事”
Ian Ringrose

3
很好的例子,但是在文献中它不是称为矩形包装问题吗?
Mohammad Al-Turkistany

1
@ user54609 NP-complete并不意味着我们可以验证压缩在多项式时间内是最优的。NP完全意味着我们可以验证一个解决方案在多项式时间内是可行的(而不是在多项式时间内始终找到它(除非P == NP))。
2014年

1
哦,所以决策问题是“有可行的解决方案”。我懂了。
ithisa 2014年

21

斯科特·亚伦森在演讲中谈到了这个问题。

TEDxCaltech-Scott Aaronson-21世纪的物理学:费恩曼阴影下的辛劳

警告:请不要直接向您的祖母/ 10岁孩子讲这个话题。为什么?观看它,您将知道。;-)

编辑:
给孩子8个皇后难题来解决。还给他时间限制。

如果他“找到”解决方案,那么他就是一个聪明的孩子,您可以立即开始教他CS。:)
否则,您向他展示解决方案,并请他“检查”是否正确。

ClassCheckFindExamplePEasyEasyMultiply numbersNPEasyHard8 queens

P

NP

如果我们可以如此轻松地“检查”解决方案,那为什么不能轻松地“找到”解决方案呢?

您在CS中所做的就是解决问题或证明没有人能做到。

ClassCheckFindPEasyEasyNPEasyEasy
P=NP

NPPNP


3
也许您可以总结Scott的解释的精髓。
戴夫·克拉克

2
我一直很好奇所有P = NP大惊小怪的事,现在我知道了!
Lee Kowalkowski

由于P∈NP,因此可以在这里澄清您在谈论NP的非P部分。
大卫

+1在该线程中有很多很棒的答案,但这是唯一甚至试图定义P和NP含义的答案!
Mark E. Haase 2014年

“如果我们能够如此轻松地“检查”解决方案,那为什么我们不能轻松地“找到”解决方案呢?” ---这个问题还没有回答!否则,这是对我最好的答案。

19

人们使用计算机进行搜索的主要内容之一。诸如Google之类的程序甚至被称为“搜索引擎”,它们每天使用数百万次。最近,一台计算机在危险中击败了人类,因为它能够超快速地搜索大量数据。

但是有些东西甚至连计算机都很难搜索。听起来很奇怪,不是吗?一个例子是逆乘法。当然,如果我说“ 5乘3是多少?” 您可以在一纳秒内说出“ 15”,哇!但是,“两个互斥的数字等于21”的答案是什么?(等待答案,7 x3。)对!现在,哪两个数字相乘等于23?(等待答案或沮丧。)

乘以等于23的唯一两个数字是1和23本身。那需要一些思考,不是吗?23是个小数字。考虑一下这个数字是否长数百位数。事实是,世界上最好的程序无法比7岁的孩子更好地逆转乘法,只测试一个数字,然后测试下一个,然后测试下一个。计算机可以更快地完成它,但是我们真的不知道如何告诉计算机使其更聪明。人们可以从中获得博士学位,而且他们只知道如何告诉计算机更智能地进行逆乘法。

因此,也许没有更明智的方法。但是也许有,但我们还没有找到它。这是一言以蔽之的P / NP问题:如果我能识别马上回答- 1次23 23,咄-这是否帮助我寻找答案快?人们认为,找出答案的人(是或否)将赢得一百万美元非常重要。


4
好一个 保理偶然是一个不好的例子(或者是吗?),这可能并不重要。
拉斐尔

4
因子分解就是Mike Sipser在克莱数学学院的“向公众解释P / NP”视频中使用的示例。我想这对他是否足够好.....
Aaron Sterling

3
子集和的问题可以向尚未学习乘法的学生解释!
Tegiri Nenashi'3

16

我认为用Sudoku可以很温和地解释P对NP问题。我假设所讨论的十岁孩子对Sudoku很熟悉。在我的解释中,我将力求简单而不是严格。

这是我向一个假设的十岁孩子解释P = NP的尝试:

如果您有尚未完成的Sudoku拼图,而您想完成,那确实很难。另一方面,如果您的朋友解决了问题并且您擅长算术,那么检查您的朋友对难题的解决方案是否正确并不难。

P = NP问题询问是否有一个非常快速,逐步的过程来解决尚未完成的数独难题。循序渐进的过程必须非常清晰,易于理解,甚至连计算机都可以理解并使用它来自动,快速地解决数独难题。如果有一个如此快速的逐步过程,那就是数学家所说的“多项式时间算法”(我将在您年纪大的时候解释这意味着什么)。

实际上,计算机科学家和计算机程序员已经发现了许多其他难题和非常重要的问题,这些问题和数独一样难以解决。了解这些问题是否可以解决非常重要,因为计算机可以帮助我们更快地完成许多工作。例如,它们可以帮助我们更有效地调度火车,破解密码,甚至可以帮助构建真正具有人工智能能力的智能计算机。

如果人们能够解决P = NP,将会发生很多非常好的事情。当然,还会出现一些问题,因为使用秘密代码将私人消息保密变得更加困难。

大多数聪明的数学家认为P = NP是不正确的。换句话说,大多数人认为没有人能够迅速解决真正困难的数独难题。但是,从来没有人能够证明P不等于NP,因此一个名为Clay数学研究所的组织为第一笔证明P = NP正确的证据或一等奖提供了100万美元的奖金。证明它是错误的。

如您所见,我从字面上解释了“向十岁的孩子解释”的部分。:)

希望这可以帮助。


一次很好的尝试,尽管我不知道10岁的孩子会不会知道数独游戏。
chazisop 2011年

2
@chazisop根据经验,我可以说数独谜题的基本版本(即在4x4网格上)是作为3和4年级的孩子练习的,所以这不是一个不合理的假设。
鲍勃·弗雷泽

n1000

1
@Mohsin,非常欢迎。@Raphael,我认为不需要删除P和NP了;一个十岁的孩子可能只是接受我对问题的定义,而无需知道P和NP的含义,而且我不确定如果不参考它怎么解释这个问题:)。另外,我确实说过我赞成清晰而不是完全准确……因此,我认为互换使用“非常快”和“多项式时间”并不公平。
菲利普·怀特

我的观点是,“快速”的使用不会产生清晰度。假设P = NP,也许“唯一”的问题是我们正在寻找“快速”的算法来解决不能“快速”解决的问题,而只能解决多项式问题。
拉斐尔

8

这是我向妈妈解释的方式,希望它将为您服务:)

有些问题很容易找到解决方案(P,但称其为“容易解决”),很容易检查给定解决方案是否正确(NP,但我们称它们为“容易检查”) ),以及既不容易解决也不容易检查的问题。为简单起见,假定“易”已正式定义,并且每个问题都有唯一的解决方案。

现在,人们已经能够证明(使用数学方法)“容易解决”和“容易检查”这两个概念之间的有趣关系,从而使某些问题不易解决,而另一些问题则不易检查。这种结果的一个基本示例是,一个易于解决的问题也很容易得到检查:只需找到其解决方案并将其与给出的解决方案进行比较即可。

令人着迷的是,对于许多实际问题(例如,在利润很少的情况下,确定是否可能分配学生到教授和教室),尚不知道是否有“简单”的方法来解决,但是已知如何轻松地检查解决方案是否正确。人们尝试了很多并失败了,然后试图证明这是不可能的,并且也失败了:他们只是不知道。有些人认为所有易于检查的问题都是容易解决的(我们应该多考虑一下),有些人则认为相反,我们不应浪费时间试图为这些问题找到简单的解决方案。

我们发现的是如何显示问题之间的联系(例如,如果您知道如何去学校,您知道如何去前面的面包店)和与所有其他易于检查的问题相关联的容易检查的问题( NP完整的,但我们称它们为“关键问题”),这样,如果某人一天证明某个关键问题很容易解决,那么所有易于检查的问题也都可以轻松解决(即P = NP)。另一方面,如果某人表明一个关键问题不能轻易解决,那么其他任何一个都不容易解决(即P <NP)。

因此,这个问题非常诱人,并且在实践中相对重要(尽管有些人认为我们应该更关注“简单”的替代定义),并且人们在辩论中投入了大量的金钱和时间。



1

我对将这个问题解释给10岁甚至是外行的人而不会引起对关键概念的误解表示怀疑。

所有关于“找到解决方案”与“检查解决方案”的“易用性”与“难度”的解释都是假设的是Cobham的论点,在一般情况下可以说是错误的,充其量只能说是一条经验法则。


这不是问题的答案。
戴夫·克拉克

为什么不?问题是“您将如何向一个10岁的孩子解释P = NP问题”,而我的回答是,可能没有一个不会误解该问题的正确解释。您当然可能不同意我的回答,但是为什么您声称它没有解决问题呢?
Antonio Valerio Miceli-Barone

3
我认为,这是一个可能的答案,尽管我不同意。的确,我们不能无意识地将P识别为“在现实世界中可以有效解决的一系列问题”。但是,我不认为这排除了解释P =?NP问题的可能性。一个直觉水平的十岁孩子。例如,十岁左右的孩子学习圆形区域。对区域进行任何严格的处理都需要格外小心,但这并不排除以有用的方式在直观的水平上教授区域概念的可能性。
伊藤刚(Tsuyoshi Ito)

P

1
P

1

NP等各种经典棋盘游戏(例如战舰或(最近)的视频游戏)的制胜策略均已证明是NP完整的,这是向新手介绍/描述某些核心理论的绝佳方法/角度。

作为NP完全决断问题的战列舰 Merlijn Sevenster ICGA杂志2004年9月

minesweeper是数学家RW Kaye提出的NP完整常见问题解答。2000年春季发行的Mathematical Intelligencer(第22卷,第2卷,第9--15页)

游戏是一项艰巨的工作,但必须有人做!Giovanni Viglietta的arxiv纸。分析《吃豆人》,《特隆》,《洛德亚军》,《巨石破折号》,《戴夫克托》,《明德班德》,《管家狂热》,《史酷派》,《波斯王子》,《雷明斯》,《毁灭战士》,《拼图泡泡3》和《星际争霸》的计算复杂性。

吃豆子是上面纸上很难的极端技术杂志文章


另请参见Kendall,Parkes,Spoerer进行的NP复杂拼图调查,以及使用算法玩游戏: Demaine和Hearn的算法组合博弈论
vzn

0

这是我对这个问题的看法。

木堂

您知道我们在生活中面临许多问题。你可以说挑战。有些很难,有些容易。例如,您经常需要添加两个数字。昨晚,我们在国际象棋棋盘上,我们必须击败邻居。好吧,将两个数字相加是一个简单而直接的问题,涉及的步骤有限。此类问题称为P类问题,因为存在许多非常简单的问题,这些问题需要反复进行以获得解决方案的离散步骤。

另一方面,昨晚在我们的胸部比赛中,赢得比赛的最佳策略是什么?我们可以将第一个棋子移动一个步骤,或者将第二个棋子移动一个步骤,或者我们可以将第二个棋子移动两个步骤,然后将第一个棋子移动一个步骤,这样您就会发现有很多可能性。但是,对于我们来说,有没有一种方法或一种方法可以使我们获得完整的,有序的动作集,从而产生最佳效果并成为将军?因此,您会发现它很难退出,因为每一步都有这么多可能性。正如卡尔·萨根所说,数十亿美元。

但是,亲爱的,如果我告诉您所有董事会职位,并问您是死守吗?当然,您可以在几次检查中快速分辨出国王还有什么法律动议。

因此,这些问题很难解决,但是如果可以通过几个简单步骤轻松验证它们的解决方案,则将它们称为NP问题。

现在,您问P = NP是什么意思?实际上,这个问题意味着是否有一种方法可以找到一种更简单的解决方案,以便为象棋游戏找到最佳策略或有序的动作列表,而无需像我们简单地进行加法那样经历所有数十亿种可能性?这个简单的问题尚未得到解答。我们没有任何证据可以证明它的真实性或拒绝性,但是如果我们这样做,它将是突破性的。如果这是真的,我们的文明可能会通过将非常复杂的探针变成P类问题来解决它们。人们将能够在几秒钟内破解密码,对消息进行解密等等,这就是为什么这个问题被认为是千年最重要的问题之一的原因。


可能值得收紧本文。您是否尝试过大声阅读?
安德拉斯·萨拉蒙

我认为,不应像数学定义那样严格地收紧一切。
Mohsin Hijazee'3

如果您太紧了文本,那么在进入下一个概念之前,普通人将没有足够的“空间”来理解一个概念。
伊恩·林格罗斯

n×n

该链接可能比以前的链接更清晰:cstheory.stackexchange.com/questions/6563/…–
Juan Bermejo Vega
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.