<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>阅微堂 &#187; 复杂性理论</title>
	<atom:link href="http://zhiqiang.org/blog/tag/%e5%a4%8d%e6%9d%82%e6%80%a7%e7%90%86%e8%ae%ba/feed" rel="self" type="application/rss+xml" />
	<link>http://zhiqiang.org/blog</link>
	<description>zhiqiang&#039;s personal blog</description>
	<lastBuildDate>Thu, 02 Sep 2010 00:59:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>测不准原理还是不确定性原理 - 谈量子物理史话一</title>
		<link>http://zhiqiang.org/blog/science/quantum-history-uncertainty-principle.html</link>
		<comments>http://zhiqiang.org/blog/science/quantum-history-uncertainty-principle.html#comments</comments>
		<pubDate>Sun, 16 Dec 2007 05:24:26 +0000</pubDate>
		<dc:creator>zhiqiang</dc:creator>
				<category><![CDATA[自然科学]]></category>
		<category><![CDATA[不可计算]]></category>
		<category><![CDATA[不可证明]]></category>
		<category><![CDATA[不确定性]]></category>
		<category><![CDATA[复杂性理论]]></category>
		<category><![CDATA[测不准]]></category>
		<category><![CDATA[物理]]></category>
		<category><![CDATA[计算模型]]></category>

		<guid isPermaLink="false">http://zhiqiang.org/blog/posts/quantum-history-uncertainty-principle.html</guid>
		<description><![CDATA[我前方是一个美丽的背影。
此刻，在我观测之前，她是50%的ＭＶ，50%的ＫＬ。是两者量子态的迭加。
我摒住呼吸，轻轻的踏上一步，头微微一扭---
说时迟那时快，在这一瞬间，波函数轰然塌缩，一切都无可挽回了。
我默默的走开，心中的悲哀难以自抑。
我知道我刚刚杀死了一名绝世美女。
最近在看《上帝掷骰子吗——量子物理史话》，刚看到第七章不确定性。本来这些想...]]></description>
			<content:encoded><![CDATA[<blockquote><p>我前方是一个美丽的背影。<br />
此刻，在我观测之前，她是50%的ＭＶ，50%的ＫＬ。是两者量子态的迭加。<br />
我摒住呼吸，轻轻的踏上一步，头微微一扭---<br />
说时迟那时快，在这一瞬间，波函数轰然塌缩，一切都无可挽回了。<br />
我默默的走开，心中的悲哀难以自抑。<br />
我知道我刚刚杀死了一名绝世美女。</p></blockquote>
<p>最近在看《上帝掷骰子吗——量子物理史话》，刚看到第七章不确定性。本来这些想法应该把书看完再写，有些问题在后面章节已经有解答。但我担心作者所写的影响我自己的思考，所以先写一点。</p>
<p>Uncertainty Principle是海森堡在1927年提出的。最开始的思想大致是：粒子位置的不确定性乘上粒子质量再乘以速度的不确定性不能小于一个确定量——普郎克常数。直观的看来</p>
<blockquote><p>为了预言一个粒子未来的位置和速度，人们必须能准确地测量它现在的位置和速度。显而易见的办法是将光照到这粒子上，一部分光波被此粒子散射开来，由此指明它的位置。然而，人们不可能将粒子的位置确定到比光的两个波峰之间距离更小的程度，所以必须用短波长的光来测量粒子的位置。现在，由普郎克的量子假设，人们不能用任意少的光的数量，至少要用一个光量子。这量子会扰动这粒子，并以一种不能预见的方式改变粒子的速度。而且，位置测量得越准确，所需的波长就越短，单独量子的能量就越大，这样粒子的速度就被扰动得越厉害。换言之，你对粒子的位置测量得越准确，你对速度的测量就越不准确，反之亦然。<sup>[1]</sup></p></blockquote>
<p>按照这个意思，Uncertainty Principle应该是指<strong>测不准原理</strong>。在量子物理史话中则指出，量子物理学家在这个方面走的更远。后来，Uncertainty Principle更多的被翻译为<strong>不确定性原理</strong>。</p>
<p>这中间有什么区别呢？直接从字面意思上看就OK了。测不准原理多半还有一种可能性：“一个电子实际上是同时具有准确的位置和动量的，只不过我们出于某种限制无法得知罢了”<sup>[2]</sup>。</p>
<p>但哥本哈根派严厉地打击这种观点，<strong>物理量必须依赖于观测而存在</strong>，所以根本就没有一个电子<strong>实际上</strong>同时具有准确的位置和动量这样的说法(因为观测不到)：<sup>[2]</sup></p>
<blockquote><p>不存在一个客观的，绝对的世界。唯一存在的，就是我们能够观测到的世界。物理学的全部意义，不在于它能够揭示出自然“是什么”，而在于它能够明确，关于自然我们能“说什么”。没有一个脱离于观测而存在的绝对自然，只有我们和那些复杂的测量关系，熙熙攘攘纵横交错，构成了这个令人心醉的宇宙的全部。测量是新物理学的核心，测量行为创造了整个世界。</p></blockquote>
<p>但我对这些一直心存疑问，那便是“观测”的本质。我不太明白物理学上的“观测”是如何模型化的。但理论计算机里面有相同的概念，它便是<a href="http://zhiqiang.org/blog/posts/preliminary-computer-theory-algorithms-and-calculation-model.html" target="_blank">计算</a>，相应的测不准原理和不确定性原理则对应了<strong>不可计算</strong>和<strong>不可证明</strong>(同样碰巧的是它们的英文也同时都是<strong><em>undecidable</em></strong>，虽然后者有时候也用<em><strong>independent</strong></em>)。</p>
<p>何谓<strong>计算</strong>？一个历史上公认的原理(但也是无法证明的)便是：</p>
<blockquote><p><span style="background-color: #ffffff;">Turing计算模型是普适的(universal)。</span></p></blockquote>
<p>这样在Turing模型下，我们便定义了<strong>不可计算</strong>，指在Turing计算模型下无法计算的问题。一个经典的不可计算问题便是Turing停机问题，指判断任何一个Turing机是否停机。</p>
<p>而<strong>不可证明</strong>则是指与某公理体系独立的问题，相当于不确定。比如平行线第五公设（过直线外任一点只有一条直线与之平行），它对于之前几条几何公理而言便是不可证明的。第五公设它可以是正确的，相应发展为欧几里得几何；也可以是错误的，从而导致非欧几何。</p>
<p>如果把计算对应观测，不可计算和不可证明的关系十分类似于测不准原理和不确定原理。但物理学则认为测不准等同于不确定。但在计算理论上不可计算和不可证明等同么？无法计算就是不确定的吗？显然不是，一个例子便是在信息论中应用广泛的<a href="http://www.mirrorin.com/wiki/ZW4ud2lr/aXBlZGlh/Lm9yZy93/aWtpLw_3/D_3D/Kolmogorov_complexity" target="_blank">Kolmogorov complexity</a>。</p>
<p>待续...</p>
<p>[1] 《时间简史》</p>
<p>[2] 《上帝掷骰子吗——量子物理史话》</p>
<div><h2>相关文章</h2><ul><li><a href="http://zhiqiang.org/blog/science/computer-science/why-quantum-computation-why-study-quantum-computing.html">Why Quantum Computation? - 为什么要研究量子计算？</a> <small>最近被要求学习量子，所用教材是Berkeley的Vazirani在2004年所开的Intro, Qubits, Measurements, Entanglement的notes。下面是这套讲义的第一章的开头部分： There are se...</small></li><li><a href="http://zhiqiang.org/blog/science/computer-science/np-hard.html">TCS：NP-hard</a> <small>好久没有写我的理论计算机初步系列了，其实复杂性这一块，虽然平时经常遇到，但由于问题都过于本质和困难，想这方面问题的时间反而不多。Ko教...</small></li><li><a href="http://zhiqiang.org/blog/science/countable-coloring-of-real.html">实数上的可数颜色染色问题</a> <small>   命题：实数集$$\mathcal{R}$$上的任何一个可数种颜色染色方案，都存在四个不等的同色点$$x, y, z, w$$使得$$x+y=z+w$$。   这个问题是一个月前在Computational C...</small></li><li><a href="http://zhiqiang.org/blog/science/a-mirror-problem.html">平面镜成像问题</a> <small>今天水木十大有一个很搞笑的题目。大家来看看，如果单凭直觉你会选什么？     在水平地面上，竖直放一个平面镜，一个人站在平面镜前，刚好能在...</small></li><li><a href="http://zhiqiang.org/blog/science/a-little-more-than-paper-doctoral-dissertation-get-nobel.html">一页纸多一点的博士论文拿到诺奖</a> <small>故事发生在二十世纪初的法国。

巴黎。一样的延续着千百年的灯红酒绿，香榭丽舍大道上散发着繁华和暧昧，红磨坊里弥漫着躁动与彷徨。而在此时...</small></li><li><a href="http://zhiqiang.org/blog/resource/the-full-text-of-the-nobel-wills.html">诺贝尔的遗嘱全文</a> <small>我，签名人艾尔弗雷德-伯哈德-诺贝尔，经过郑重的考虑后特此宣布，下文是关于处理我死后所留下的财产的遗嘱：
在此我要求遗嘱执行人以如下方式...</small></li><li><a href="http://zhiqiang.org/blog/science/computer-science/preliminary-computer-theory-p-vs-np-an-overview-of-the-problem.html">理论计算机初步：P vs NP - 问题概述</a> <small>P = NP?
这个问题，作为理论计算机科学的核心问题，其声名早已经超越了这个领域。它是Clay研究所的七个百万美元大奖问题之一，在2006国际数学家大...</small></li><li><a href="http://zhiqiang.org/blog/science/computer-science/preliminary-computer-theory-p-vs-np-past-present-and-future.html">理论计算机初步：P vs NP - 历史，现状和未来</a> <small>上篇文章已经提到，P vs NP是理论计算机科学的核心问题。从数学的角度来说，它和其他历史上有名的数学问题一样，给与人们一个智力上重大的挑战。...</small></li></ul></div>    <p></p>
    <hr noshade style="margin:0;height:1px" />
    <p>&copy; zhiqiang for <a href="http://zhiqiang.org/blog">阅微堂</a>, 2007. | <a href="http://zhiqiang.org/blog/science/quantum-history-uncertainty-principle.html">&#38142;&#25509;</a> | <a href="http://zhiqiang.org/blog/science/quantum-history-uncertainty-principle.html#comments">17 &#26465;&#35780;&#35770;</a></p>]]></content:encoded>
			<wfw:commentRss>http://zhiqiang.org/blog/science/quantum-history-uncertainty-principle.html/feed</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>TCS：NP-hard</title>
		<link>http://zhiqiang.org/blog/science/computer-science/np-hard.html</link>
		<comments>http://zhiqiang.org/blog/science/computer-science/np-hard.html#comments</comments>
		<pubDate>Wed, 28 Nov 2007 15:32:05 +0000</pubDate>
		<dc:creator>zhiqiang</dc:creator>
				<category><![CDATA[计算机科学]]></category>
		<category><![CDATA[NP hard]]></category>
		<category><![CDATA[NP vs P]]></category>
		<category><![CDATA[NP-complete]]></category>
		<category><![CDATA[NP完全]]></category>
		<category><![CDATA[NP难]]></category>
		<category><![CDATA[复杂性理论]]></category>

		<guid isPermaLink="false">http://zhiqiang.org/blog/posts/np-hard.html</guid>
		<description><![CDATA[好久没有写我的理论计算机初步系列了，其实复杂性这一块，虽然平时经常遇到，但由于问题都过于本质和困难，想这方面问题的时间反而不多。Ko教授就跟我说也许NP verse P这个题并不难，只不过大家认为它很难，结果就没有多少人去做了，大家一遇到这个问题都远远得绕开。话虽如此，我还是不敢去碰的。
很多人一看到NP-hard，就从字面上理解成为比NP还难的问题。但如果这...]]></description>
			<content:encoded><![CDATA[<p style="font-size: 90%; color: #888">好久没有写我的<a href="http://zhiqiang.org/blog/posts/preliminary-computer-theory-preface.html" target="_blank">理论计算机初步系列</a>了，其实复杂性这一块，虽然平时经常遇到，但由于问题都过于本质和困难，想这方面问题的时间反而不多。Ko教授就跟我说也许<a href="http://zhiqiang.org/blog/posts/preliminary-computer-theory-p-vs-np-an-overview-of-the-problem.html" target="_blank">NP verse P</a>这个题并不难，只不过大家认为它很难，结果就没有多少人去做了，大家一遇到这个问题都远远得绕开。话虽如此，我还是不敢去碰的。</p>
<p>很多人一看到NP-hard，就从字面上理解成为比NP还难的问题。但如果这里的&#x201C;更难&#x201D;指得是解决问题所花费时间更长的话，这个论断是不正确的。从算法角度来看，NP-hard问题的确比NP难，但比NP还难（指花费时间更多）的问题却不见得是NP-hard的。</p>
<p>仔细检查NP-hard的定义：一个问题(语言)L是NP-Hard的，当且仅当3SAT问题可以在多项式时间规约到L，即存在一个可多项式时间计算函数f，使得<img src="http://zhiqiang.org/blog/wp-content/cache/tex_aa59c24b96493c18724674a6f3ed56a6.png" style="vertical-align:middle; " class="tex" alt="\phi\in 3SAT" />当且仅当<img src="http://zhiqiang.org/blog/wp-content/cache/tex_5fac70eddb0fc7542567d210c8908c01.png" style="vertical-align:middle; " class="tex" alt="f(\phi)\in L" />。</p>
<p>注意NP-hard的概念只有在NP!=P的时候才有意义，因为在NP=P的时候，除了空集和全集语言外，所有问题都是NP-hard的。</p>
<p>但在NP!=P的时候，NP-hard问题的分布呈什么状态呢？</p>
<p>定理1：所有unary语言都不可能是NP-hard的(除非NP=P)。语言L是unary的，指L里的任一元素都是1<sup>n</sup>的形式。</p>
<p>根据此定理，如果我们能找到一个NP-hard的unary的undecidable问题，就证明NP=P了 <img src='http://zhiqiang.org/blog/wp-includes/images/smilies/smile.gif' alt=':)' class='wp-smiley' /> 。 </p>
<p>定理2：Turing机停机问题是NP-hard<sup>(by Dr. Sun)</sup>。</p>
<p>这个定理有点出人意料，但仔细想想也不难证明。而且这个问题不难转成unary的形式，可惜这个转化过程不是多项式时间的，所以转化过后就不一定是NP-hard的了。</p>
<p>思考1：NEXP里有问题不是NP-Hard吗？</p>
<p>思考2：为什么NP-complete用多项式时间规约，PSPACE-complete也用多项式时间归约，而不是多项式空间规约？</p>
<div><h2>相关文章</h2><ul><li><a href="http://zhiqiang.org/blog/science/computer-science/what-if-p-np.html">What if P = NP?</a> <small>Princeton的Sanjeev Arora和Boaz Barak最近写了一本计算复杂性方面的书：Complexity Theory: A Modern Approach，其初稿提供下载，并承诺出版后也会继续保留——要是...</small></li><li><a href="http://zhiqiang.org/blog/science/computer-science/preliminary-computer-theory-p-vs-np-an-overview-of-the-problem.html">理论计算机初步：P vs NP - 问题概述</a> <small>P = NP?
这个问题，作为理论计算机科学的核心问题，其声名早已经超越了这个领域。它是Clay研究所的七个百万美元大奖问题之一，在2006国际数学家大...</small></li><li><a href="http://zhiqiang.org/blog/science/quantum-history-uncertainty-principle.html">测不准原理还是不确定性原理 - 谈量子物理史话一</a> <small>我前方是一个美丽的背影。
此刻，在我观测之前，她是50%的ＭＶ，50%的ＫＬ。是两者量子态的迭加。
我摒住呼吸，轻轻的踏上一步，头微微一扭---
...</small></li><li><a href="http://zhiqiang.org/blog/science/computer-science/minesweeper-is-np-complete.html">扫雷是NP完全问题</a> <small>本科时有同学扫雷最快可以在60多秒完成高级难度，让我这种最快130秒的人非常惭愧，当时就想着编一个全自动的扫雷程序，不过一直也没写。今天才...</small></li><li><a href="http://zhiqiang.org/blog/science/computer-science/most-windows-game-are-np-complete.html">Windows游戏中的NP完全问题</a> <small>上篇文章扫雷是NP完全问题之后，You Xu提到＂不光扫雷是NP 完全问题，空当接龙问题也极有可能是一个NP完全问题。目前最好的通用 planner只能解半副牌...</small></li><li><a href="http://zhiqiang.org/blog/science/computer-science/introduce-probabilistic-checkable-proof.html">PCP - Probabilistic Checkable Proof</a> <small>PS: PCP可以说是理论计算机领域近20年来的最重要的结果之一，它给了NP问题一个新的刻画，并且提供了一种证明近似算法下界的方法。下面是yijia写的PCP...</small></li><li><a href="http://zhiqiang.org/blog/science/computer-science/minimum-manhattan-network-at-25th-socg.html">正当志愿填报时-复旦大三本科生解决世界级几何猜想？</a> <small>最近很热的一条新闻，关键词：复旦大学，大三本科生，世界级猜想，内地数学家已经阔别了整整十八年的最高级别的会议…  &#160;  论文信息：  Minimum...</small></li><li><a href="http://zhiqiang.org/blog/science/computer-science/database-query-is-np-hard.html">数据库查询是NP-Hard问题</a> <small>问题来自美人他爹和Wangjianshuo's blog  一个查询的例子：NOT (AND ((C1&gt;5), OR ((C2&lt;6),(C3&lt;&gt;9))))  问题1：给出两个这样的查询Q1和Q2，如何确定Q1的结果是...</small></li><li><a href="http://zhiqiang.org/blog/science/computer-science/preliminary-computer-theory-p-vs-np-past-present-and-future.html">理论计算机初步：P vs NP - 历史，现状和未来</a> <small>上篇文章已经提到，P vs NP是理论计算机科学的核心问题。从数学的角度来说，它和其他历史上有名的数学问题一样，给与人们一个智力上重大的挑战。...</small></li></ul></div>    <p></p>
    <hr noshade style="margin:0;height:1px" />
    <p>&copy; zhiqiang for <a href="http://zhiqiang.org/blog">阅微堂</a>, 2007. | <a href="http://zhiqiang.org/blog/science/computer-science/np-hard.html">&#38142;&#25509;</a> | <a href="http://zhiqiang.org/blog/science/computer-science/np-hard.html#comments">3 &#26465;&#35780;&#35770;</a></p>]]></content:encoded>
			<wfw:commentRss>http://zhiqiang.org/blog/science/computer-science/np-hard.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>理论计算机初步：P vs NP - 历史，现状和未来</title>
		<link>http://zhiqiang.org/blog/science/computer-science/preliminary-computer-theory-p-vs-np-past-present-and-future.html</link>
		<comments>http://zhiqiang.org/blog/science/computer-science/preliminary-computer-theory-p-vs-np-past-present-and-future.html#comments</comments>
		<pubDate>Thu, 24 Aug 2006 00:08:51 +0000</pubDate>
		<dc:creator>zhiqiang</dc:creator>
				<category><![CDATA[计算机科学]]></category>
		<category><![CDATA[P vs NP]]></category>
		<category><![CDATA[复杂性理论]]></category>
		<category><![CDATA[理论计算机初步]]></category>

		<guid isPermaLink="false">http://zhiqiang.org/blog/413.html</guid>
		<description><![CDATA[上篇文章已经提到，P vs NP是理论计算机科学的核心问题。从数学的角度来说，它和其他历史上有名的数学问题一样，给与人们一个智力上重大的挑战。而更为重要的是，在无数与计算有关的的学术领域中，NP-完全问题以各种不同形式层出不穷。因此，这并不是一个纯粹的与世独立的智力游戏，而是对计算机科学有全面影响力的问题。
历史上的进展
从上个世界70年代初这个问...]]></description>
			<content:encoded><![CDATA[<p><a href="http://zhiqiang.org/blog/412.html" title="P vs NP 问题概述">上篇文章</a>已经提到，P vs NP是理论计算机科学的核心问题。从数学的角度来说，它和其他历史上有名的数学问题一样，给与人们一个智力上重大的挑战。而更为重要的是，在无数与计算有关的的学术领域中，NP-完全问题以各种不同形式层出不穷。因此，这并不是一个纯粹的与世独立的智力游戏，而是对计算机科学有全面影响力的问题。</p>
<h4>历史上的进展</h4>
<p>从上个世界70年代初这个问题被Cook提出以来，人们发展了各种工具来试图解决它，下面引自堵丁柱&amp;葛可一的《计算复杂性导论》前言：</p>
<blockquote><p>人们在七十年代开始对NP-完全问题的研究主要是横向发展，也就是以许多不同的计算模型来分析难解问题的本质。这些新的计算模型包括了平行计算模型、概率计算模型、布尔线路、判断树、平均复杂性、交互证明系统以及程式长度复杂性等等。对这些新的计算模型的研究一方面使我们对难解问题有了更深一层的认识，一方面也产生了一些预想不到的应用。最显著的一个例子就是计算密码学的革命性突破：基于NP问题的公钥密码体系。另一个有名的例子是线性规划的多项式时间解的发现。</p>
<p>到了八十年代中，对NP-完全问题的研究有了纵向的突破，在许多表面看来并不相关的计算模型之间发现了深刻的刻划关系。这些刻划关系不但解决了几个令人困扰多年的未解问题，同时也刺激了其它相关领域的发展。其中之一是对线路复杂性的研究发现了一些问题在某种有限制的线路模型中必有指数下界。这些结果使用了组合数学与概率方法等新的数学工具，并且解决了一个有名的有关多项式分层的未解问题。另一个更重大的结果是以概率可验证明对NP类的刻划。由此得出了许多组合优化问题近似解的NP-完全性，从而刺激了算法界对近似算法研究的新热潮。这个结果来自于对交互证明系统这个概念的扩展，并且使用了线性代数与编码理论等数学证明技巧。</p></blockquote>
<p>但是，明显的，目前还没有一个看上去有希望的方向。相反的，1993年Razborov和Rudich证明的一个结果表明，给定一个特定的可信的假设，在某种意义下“自然”的证明不能解决<strong>P</strong> vs <strong>NP</strong>问题。这表明一些现在似乎最有希望的方法不太可能成功。随着更多这类的定理得到证明，该定理的可能证明有越来越多的陷阱要规避。</p>
<p>数学里最伟大的定理之一——费马大定理，用了数学家300多年时光。P vs NP问题，作为理论计算机领域最困难的问题，40年时间似乎太短了。</p>
<p>不过我还是相信，这个问题被拖这么长时间，是因为没有足够伟大的数学家来做这个问题。</p>
<h4>大牛们怎么看？</h4>
<p>对于NP是否等于P，大家看法不一。在<a rel="调查报告下载" target="_blank" href="http://mathzqy.googlepages.com/poll.pdf">2002年对于100个研究者的调查</a>中，61人相信答案是否定的，9个相信答案是肯定的，22个不确定，而8个相信该问题可能和现在所接受的公理独立，所以不可能证明或证否。同时，在被询问到这个问题可能在何时被解决时，79个人给出了确切的数字，统计结果如下：</p>
<blockquote><p>1. P=NP will be resolved between 2002-2009: 5<br />
2. P=NP will be resolved between 2010-2019: 12<br />
3. P=NP will be resolved between 2020-2029: 13<br />
4. P=NP will be resolved between 2030-2039: 10<br />
5. P=NP will be resolved between 2040-2049: 5<br />
6. P=NP will be resolved between 2050-2059: 12<br />
7. P=NP will be resolved between 2060-2069: 4<br />
8. P=NP will be resolved between 2070-2079: 0<br />
9. P=NP will be resolved between 2080-2089: 1<br />
10. P=NP will be resolved between 2090-2099: 0<br />
11. P=NP will be resolved between 2100-2110: 7<br />
12. P=NP will be resolved between 2100-2199: 0<br />
13. P=NP will be resolved between 2200-3000: 5<br />
14. P=NP will never be resolved : 5.</p></blockquote>
<p>在<a rel="调查报告下载" target="_blank" href="http://mathzqy.googlepages.com/poll.pdf">这份调查报告</a>中，还有国际上著名的计算机学家对这个问题的看法，比如：</p>
<blockquote><p><strong>Avi Wigderson</strong>: (Institute of Advanced Study) I think this project is a bit premature. I think we know too little of what is relevant to even guess answers to your questions, certainly if "we" s replaced by "I"</p>
<p>The only thing I can definitely say, is that it is one of the most important and interesting questions ever asked by humans, and more people and resources should participate in filling up the holes that would allow better guesses of answers to your questions.</p>
<p><strong>姚期智</strong>: (Princeton) It's hard to say when the question will be resolved. I don't have even an educated guess. Probably the resolution is that P is not equal to NP. I think the mathematical techniques used will be beautiful.</p></blockquote>
<h4>可能的极为诡异的结果</h4>
<p>从实际应用来说，人们都希望NP=P，因为这意味着很多问题都能有有效的算法，但有些极为诡异的结果也是可能的，人们从这个结果中什么都得不到。</p>
<p>比如某一天人们最终使用某种数学上的技巧证明了NP问题的多项式时间算法的存在性，但并不知道如何找到它——这在数学上是极为可能的，那最终会怎么样呢？</p>
<p><strike>这种情况不会发生，事实上，在NP=P的假设下，人们已经找到了NP完全问题的多项法解法，但这并没有好太多，因为这个算法是这样的：</strike> 此段有问题，还没想太明白。</p>
<blockquote><p>// 接受NP完全语言的一个算法。<br />
//<br />
// 这是一个多项式时间算法当且仅当P=NP。<br />
//<br />
// “多项式时间”表示它在多项式时间内返回“是”，若<br />
// 结果是“是”，否则永远运行。<br />
//<br />
// 输入：S = 一个自然数的有限集<br />
// 输出：是 如果某个S的子集加起来等于0。<br />
// 否则，它永远运行没有输出。<br />
// 注：上面这是一个NP完全问题<br />
//<br />
// 程序数P 是你将一个整数P写为二进制，然后<br />
// 将位串考虑为一个程序。<br />
// 每个可能的程序都可以这样产生，<br />
// 虽然多数什么也不做因为有语法错误。</p>
<p>FOR N = 1...infinity<br />
FOR P = 1...N<br />
以S为输入运行程序数P N步<br />
IF <strike>程序输出一个完整的数学证明</strike>（错误处在此）<br />
AND 证明的每一步合法<br />
AND 结论是S确实有（或者没有）一个和为0的子集<br />
THEN<br />
OUTPUT 是（或者不是）并停机</p></blockquote>
<p><strike>如果NP=P，上面这个算法便是一个NP完全问题的多项式时间算法。可是它一点价值都没有，更不用说来解决实际问题了。</strike></p>
<h4>另一种可能性：独立问题？</h4>
<p>自从Godel的开创性结果以来，我们知道某些问题，比如连续统假设，是不可能从目前的条件（公理系统）推导出来的。有人怀疑P vs NP问题也是这样。这样的话，如果不存在NP完全问题的有效算法，我们不可能证明这一点。同样，如果存在一个有效的算法，我们也不可能找到它。</p>
<h4>花絮</h4>
<p>中国民科一向喜欢做大问题，不知为何很少向P vs NP问题下手，但他们的外国同行可不会客气，<a href="http://www.win.tue.nl/~gwoegi/P-versus-NP.htm">这里</a>就有一大帮，而且这些国外的前辈们专业多了，好多解答还提供pdf文档下载呢。</p>
<h5>参考文献：</h5>
<ol>
<li><a href="http://www.claymath.org/millennium/P_vs_NP/Official_Problem_Description.pdf">P verse NP problem</a></li>
<li><a href="http://www.win.tue.nl/~gwoegi/sipser.pdf">The history and status of P verse NP question</a></li>
<li><a target="_blank" href="http://youth.scnu.edu.cn/jsjxtw/Article_Print.asp?ArticleID=156">千禧年大奖难题（一）</a></li>
<li>堵丁柱, 葛可一, <em>计算复杂性导论</em> , 高等教育出版社, 2002</li>
</ol>
<div><h2>相关文章</h2><ul><li><a href="http://zhiqiang.org/blog/science/computer-science/preliminary-computer-theory-p-vs-np-an-overview-of-the-problem.html">理论计算机初步：P vs NP - 问题概述</a> <small>P = NP?
这个问题，作为理论计算机科学的核心问题，其声名早已经超越了这个领域。它是Clay研究所的七个百万美元大奖问题之一，在2006国际数学家大...</small></li><li><a href="http://zhiqiang.org/blog/science/computer-science/preliminary-computer-theory-approximation-algorithms-and-probability-algorithm.html">理论计算机初步：概率算法和近似算法</a> <small>前面已经提到了显示中大多数难解问题问题最后都被证明是NP-完全问题。这意味着，除非NP=P，它们是不可能有多项式时间算法的（而且，在这篇文章提...</small></li><li><a href="http://zhiqiang.org/blog/science/computer-science/preliminary-computer-theory-xiao-yun-wang-from-the-hash-function-to-crack-md5.html">理论计算机初步：从hash函数到王小云的MD5破解</a> <small>密码学是理论计算机的一个很大的方向。之前准备先写密码学概论再提在hash函数破解上做出重大贡献的王小云教授的工作，不过前两天王小云获得求是...</small></li><li><a href="http://zhiqiang.org/blog/science/computer-science/what-if-p-np.html">What if P = NP?</a> <small>Princeton的Sanjeev Arora和Boaz Barak最近写了一本计算复杂性方面的书：Complexity Theory: A Modern Approach，其初稿提供下载，并承诺出版后也会继续保留——要是...</small></li><li><a href="http://zhiqiang.org/blog/science/computer-science/np-hard.html">TCS：NP-hard</a> <small>好久没有写我的理论计算机初步系列了，其实复杂性这一块，虽然平时经常遇到，但由于问题都过于本质和困难，想这方面问题的时间反而不多。Ko教...</small></li><li><a href="http://zhiqiang.org/blog/science/quantum-history-uncertainty-principle.html">测不准原理还是不确定性原理 - 谈量子物理史话一</a> <small>我前方是一个美丽的背影。
此刻，在我观测之前，她是50%的ＭＶ，50%的ＫＬ。是两者量子态的迭加。
我摒住呼吸，轻轻的踏上一步，头微微一扭---
...</small></li><li><a href="http://zhiqiang.org/blog/science/computer-science/preliminary-computer-theory-preface.html">理论计算机初步：前言</a> <small>这段时间Blog的更新频率大大降低，因为发现没啥好写的，也没有写文章的欲望。前段时间提到了我加入中国赛客联盟，而且给的说明语是"算机|数学|算...</small></li></ul></div>    <p></p>
    <hr noshade style="margin:0;height:1px" />
    <p>&copy; zhiqiang for <a href="http://zhiqiang.org/blog">阅微堂</a>, 2006. | <a href="http://zhiqiang.org/blog/science/computer-science/preliminary-computer-theory-p-vs-np-past-present-and-future.html">&#38142;&#25509;</a> | <a href="http://zhiqiang.org/blog/science/computer-science/preliminary-computer-theory-p-vs-np-past-present-and-future.html#comments">15 &#26465;&#35780;&#35770;</a></p>]]></content:encoded>
			<wfw:commentRss>http://zhiqiang.org/blog/science/computer-science/preliminary-computer-theory-p-vs-np-past-present-and-future.html/feed</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>理论计算机初步：P vs NP - 问题概述</title>
		<link>http://zhiqiang.org/blog/science/computer-science/preliminary-computer-theory-p-vs-np-an-overview-of-the-problem.html</link>
		<comments>http://zhiqiang.org/blog/science/computer-science/preliminary-computer-theory-p-vs-np-an-overview-of-the-problem.html#comments</comments>
		<pubDate>Wed, 23 Aug 2006 14:40:08 +0000</pubDate>
		<dc:creator>zhiqiang</dc:creator>
				<category><![CDATA[计算机科学]]></category>
		<category><![CDATA[NP]]></category>
		<category><![CDATA[NP完全]]></category>
		<category><![CDATA[P vs NP]]></category>
		<category><![CDATA[复杂性理论]]></category>
		<category><![CDATA[理论计算机初步]]></category>

		<guid isPermaLink="false">http://zhiqiang.org/blog/412.html</guid>
		<description><![CDATA[P = NP?
这个问题，作为理论计算机科学的核心问题，其声名早已经超越了这个领域。它是Clay研究所的七个百万美元大奖问题之一，在2006国际数学家大会上，它是某个1小时讲座的主题。
要说起P和NP是什么东西，得先从算法的多项式时间复杂度谈起，注意，这里面的两个P都是指Polynomial。
一个问题的规模指的是输入的总位数，比如一个n个数的排序问题，输入规模就是n。注意，...]]></description>
			<content:encoded><![CDATA[<blockquote><p>P = NP?</p></blockquote>
<p>这个问题，作为理论计算机科学的核心问题，其声名早已经超越了这个领域。它是<a href="http://www.claymath.org/millennium/P_vs_NP/">Clay研究所的七个百万美元大奖问题之一</a>，在<a href="http://icm2006.org/" target="_blank">2006国际数学家大会</a>上，它是<a href="http://icm2006.org/v_f/web_fr.php" target="_blank" rel="ICM 2006 一小时讲座列表">某个1小时讲座</a>的<a href="http://icm2006.org/AbsDef/Invited/wigderson.pdf" target="_blank" rel="讲座的摘要">主题</a>。</p>
<p>要说起P和NP是什么东西，得先从算法的多项式时间复杂度谈起，注意，这里面的两个P都是指Polynomial。</p>
<p>一个问题的规模指的是输入的总位数，比如一个n个数的排序问题，输入规模就是n。注意，在某些时候，输入规模是要值得注意的，比如判定一个数n是否是一个质数这个问题，它的输入规模并不是n，而是log(n)，因为一个数n用大约log(n)位就能表示出来了，这也是为何枚举因子判定素数的算法并不是多项式时间算法的原因。</p>
<p>如果一个算法，它能在以输入规模为参变量的某个多项式的时间内给出答案，则称它为<strong>多项式时间算法</strong>。注意：这里的多项式时间是指算法<font color="#ff0000">运行的步数</font>。一个算法是否是多项式算法，与计算模型的具体的物理实现没有关系，虽然大多数假想的计算模型不可能有任何物理的实现。</p>
<p><strong>P</strong>指确定型图灵机上的具有多项式算法的问题集合，<strong>NP</strong>指非确定型图灵机上具有多项式算法的问题集合，这里N是Non-Deterministic的意思（图灵机的概念见<a href="http://zhiqiang.org/blog/390.html">理论计算机初步：算法和计算模型</a>）。</p>
<p>脱离图灵机的概念，就在普通的计算机上看，P问题是指能够<font color="#ff0000">在多项式时间求解</font>的判定问题（判定问题指只需要回答是和不是的问题），而NP问题则是指那些其肯定解能够<font color="#ff0000">在给定正确信息下在多项式时间内验证</font>的判定问题。比如，要判定一个数是合数，如果给我一个约数，我们就很快判定它就是合数。所以判定一个数是合数的问题属于NP。 下面是一些NP问题的例子：</p>
<blockquote>
<h5>零子集和问题</h5>
<p>给n个整数，判断是否可以从中找到若干个数，其和为0。</p>
<h5>旅行商问题</h5>
<p>有n个城市，一个推销员要从其中某一个城市出发，不重复地走遍所有的城市，再回到他出发的城市。问这个推销员的最短路程(是否小于指定的K)。</p></blockquote>
<p>从上面的定义知道，NP包含P。P vs NP问题指<font color="#ff0000">P是否完全等于NP</font>，即确定型图灵机和非确定图灵机的性能是否一样。</p>
<p>人们为何要提出NP问题？因为，大多数遇到的自然的难解问题，最后都发现它们是NP问题。如果我们能证明NP跟P的关系，则解决了无数问题的算法复杂度问题。</p>
<p>NP里面有无数个不同的问题，我们是否要一个一个地判定它们是否属于P呢？P vs NP问题的美妙和简洁之处便在于在NP中，有一个子类，<strong>NP完全</strong>(NP Complete，简记为<strong>NPC</strong>)问题，指的是那些NP中最难的那些问题：所有其它的NP问题都可以归约到这些NP完全问题。也就是说，只要这些NP完全问题的某一个得到解决，无论是证明其存在多项式算法，还是不存在，都意味着P vs NP问题的解决。</p>
<p>而几乎所有NP里面无法确定是否属于P的问题最后都被证明为NP完全。正因为如此，多数理论计算机学家都猜测P≠NP。目前已知的NP完全问题数以千计，上面引用中的例子都是完全问题，更多NP完全问题见<a href="http://www.nada.kth.se/~viggo/problemlist/compendium.html">NP完全问题的不完全列表</a>。</p>
<p>一个很自然的想法是如果NP≠P，则NP-P里面的问题都是完全问题。至少有两个自然的问题，一个是大数分解（给出一个数的质因数分解式），另一个是图同构问题（给出两个图，它们是否同构），它们既没有被证明是P的，也没有被证明是NP-完全。但是更惊人的是还有这个定理：</p>
<blockquote><p>如果NP≠P，那么NP-P中存在非NP完全问题。</p></blockquote>
<p>当然，这种问题具体是什么样子，是无法用直观的语言表示出来，它纯粹是一个数学上的构造性证明。</p>
<p><strong>参阅</strong>：</p>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Complexity_classes_P_and_NP">Complexity classes P and NP - Wikipedia, the free encyclopedia</a>, <a href="http://zh.wikipedia.org/wiki/P/NP%E9%97%AE%E9%A2%98">P/NP问题- Wikipedia</a></li>
<li><a href="http://en.wikipedia.org/wiki/Turing_machine">Turing machine - Wikipedia, the free encyclopedia</a>, <a href="http://zh.wikipedia.org/wiki/%E5%9B%BE%E7%81%B5%E6%9C%BA">图灵机- Wikipedia</a></li>
<li><a href="http://en.wikipedia.org/wiki/NP-hard">NP-hard - Wikipedia, the free encyclopedia</a>,</li>
</ul>
<p>备注：中国大陆可以通过<a href="http://browseatwork1.com">http://browseatwork1.com</a> <a href="http://browseatwork1.com/nph-proxy.cgi/000000A/http/wikipedia.org/">访问wikipedia</a>.</p>
<div><h2>相关文章</h2><ul><li><a href="http://zhiqiang.org/blog/science/computer-science/preliminary-computer-theory-p-vs-np-past-present-and-future.html">理论计算机初步：P vs NP - 历史，现状和未来</a> <small>上篇文章已经提到，P vs NP是理论计算机科学的核心问题。从数学的角度来说，它和其他历史上有名的数学问题一样，给与人们一个智力上重大的挑战。...</small></li><li><a href="http://zhiqiang.org/blog/science/computer-science/what-if-p-np.html">What if P = NP?</a> <small>Princeton的Sanjeev Arora和Boaz Barak最近写了一本计算复杂性方面的书：Complexity Theory: A Modern Approach，其初稿提供下载，并承诺出版后也会继续保留——要是...</small></li><li><a href="http://zhiqiang.org/blog/science/computer-science/np-hard.html">TCS：NP-hard</a> <small>好久没有写我的理论计算机初步系列了，其实复杂性这一块，虽然平时经常遇到，但由于问题都过于本质和困难，想这方面问题的时间反而不多。Ko教...</small></li><li><a href="http://zhiqiang.org/blog/science/computer-science/preliminary-computer-theory-approximation-algorithms-and-probability-algorithm.html">理论计算机初步：概率算法和近似算法</a> <small>前面已经提到了显示中大多数难解问题问题最后都被证明是NP-完全问题。这意味着，除非NP=P，它们是不可能有多项式时间算法的（而且，在这篇文章提...</small></li><li><a href="http://zhiqiang.org/blog/science/computer-science/preliminary-computer-theory-xiao-yun-wang-from-the-hash-function-to-crack-md5.html">理论计算机初步：从hash函数到王小云的MD5破解</a> <small>密码学是理论计算机的一个很大的方向。之前准备先写密码学概论再提在hash函数破解上做出重大贡献的王小云教授的工作，不过前两天王小云获得求是...</small></li><li><a href="http://zhiqiang.org/blog/science/quantum-history-uncertainty-principle.html">测不准原理还是不确定性原理 - 谈量子物理史话一</a> <small>我前方是一个美丽的背影。
此刻，在我观测之前，她是50%的ＭＶ，50%的ＫＬ。是两者量子态的迭加。
我摒住呼吸，轻轻的踏上一步，头微微一扭---
...</small></li><li><a href="http://zhiqiang.org/blog/science/computer-science/computation-under-time-travel-machine-19.html">时间机器上的计算 - Quantum Computing Since Democritus 19th</a> <small> 来源：Scott Aaronson的Quantum Computing Since Democritus的第19次课程。Aaronson是MIT的年青教授，也是理论计算机届的Terry Tao。美国大学课程的开放性和创造性由...</small></li><li><a href="http://zhiqiang.org/blog/science/computer-science/preliminary-computer-theory-preface.html">理论计算机初步：前言</a> <small>这段时间Blog的更新频率大大降低，因为发现没啥好写的，也没有写文章的欲望。前段时间提到了我加入中国赛客联盟，而且给的说明语是"算机|数学|算...</small></li><li><a href="http://zhiqiang.org/blog/science/computer-science/minimum-manhattan-network-at-25th-socg.html">正当志愿填报时-复旦大三本科生解决世界级几何猜想？</a> <small>最近很热的一条新闻，关键词：复旦大学，大三本科生，世界级猜想，内地数学家已经阔别了整整十八年的最高级别的会议…  &#160;  论文信息：  Minimum...</small></li></ul></div>    <p></p>
    <hr noshade style="margin:0;height:1px" />
    <p>&copy; zhiqiang for <a href="http://zhiqiang.org/blog">阅微堂</a>, 2006. | <a href="http://zhiqiang.org/blog/science/computer-science/preliminary-computer-theory-p-vs-np-an-overview-of-the-problem.html">&#38142;&#25509;</a> | <a href="http://zhiqiang.org/blog/science/computer-science/preliminary-computer-theory-p-vs-np-an-overview-of-the-problem.html#comments">9 &#26465;&#35780;&#35770;</a></p>]]></content:encoded>
			<wfw:commentRss>http://zhiqiang.org/blog/science/computer-science/preliminary-computer-theory-p-vs-np-an-overview-of-the-problem.html/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>
