<?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; NP hard</title>
	<atom:link href="http://zhiqiang.org/blog/tag/np-hard/feed" rel="self" type="application/rss+xml" />
	<link>http://zhiqiang.org/blog</link>
	<description>理工科背景的证券从业人员</description>
	<lastBuildDate>Sun, 05 Feb 2012 03:59:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>数据库查询是NP-Hard问题</title>
		<link>http://zhiqiang.org/blog/science/computer-science/database-query-is-np-hard.html</link>
		<comments>http://zhiqiang.org/blog/science/computer-science/database-query-is-np-hard.html#comments</comments>
		<pubDate>Tue, 22 Dec 2009 23:43:00 +0000</pubDate>
		<dc:creator>zhiqiang</dc:creator>
				<category><![CDATA[计算机科学]]></category>
		<category><![CDATA[NP hard]]></category>
		<category><![CDATA[数据库]]></category>

		<guid isPermaLink="false">http://zhiqiang.org/blog/science/computer-science/database-query-is-np-hard.html</guid>
		<description><![CDATA[博客 » 计算机科学 » 数据库 » 问题来自美人他爹和Wangjianshuo's blog 一个查询的例子：NOT (AND ((C1&#62;5), OR ((C2&#60;6),(C3&#60;&#62;9)))) 问题1：给出两个这样的查询Q1和Q2，如何确定Q1的结果是否是Q2结果的子集？ 上面两篇文章主要是讨论实际工作中怎么解决问题1。下面从理论上分析一下这个问题。 问题2：判断Q1查询结果是否为空集。 在问题1中让Q2查询结果为空集，故问题1是比问题2...]]></description>
			<content:encoded><![CDATA[<p id="breadcrumb" class="breadcrumb"><a href="http://zhiqiang.org/blog/">博客</a> » <a href="http://zhiqiang.org/blog/category/science/computer-science">计算机科学</a> » <a href='http://zhiqiang.org/blog/tag/%e6%95%b0%e6%8d%ae%e5%ba%93'>数据库</a>  » </p><p>问题来自<a href="http://www.meirendaddy.com/blog/?p=694">美人他爹</a>和<a href="http://home.wangjianshuo.com/archives/20091213_i_am_not_computer_science_major.htm">Wangjianshuo's blog</a></p>
<p>一个查询的例子：NOT (AND ((C1&gt;5), OR ((C2&lt;6),(C3&lt;&gt;9))))</p>
<p>问题1：给出两个这样的查询Q1和Q2，如何确定Q1的结果是否是Q2结果的子集？</p>
<p>上面两篇文章主要是讨论实际工作中怎么解决问题1。下面从理论上分析一下这个问题。</p>
<p>问题2：判断Q1查询结果是否为空集。</p>
<p>在问题1中让Q2查询结果为空集，故问题1是比问题2更难的一个问题。</p>
<p>论断：问题2是<a href="http://zhiqiang.org/blog/tag/np-hard">NP-hard</a>的。</p>
<p>证明：从3SAT问题很容易规约到问题2。</p>
<p>结论：问题1是NP-Hard的，除非NP=P，不可能有多项式级别的解。也就是理论上而言，解决上面的问题除了枚举没有别的好方法了。</p>
<p>当然以上只是理论，实际应用中，<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_ed11dc9af96ff98159e9c06973c09457.gif' style='vertical-align: middle; border: none; ' class='tex' alt="3^n" /></span><script type='math/tex'>3^n</script>的计算速度和<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_d1db0d9c696a8c056e7117dbbb4ef6db.gif' style='vertical-align: middle; border: none; ' class='tex' alt="2^n" /></span><script type='math/tex'>2^n</script>的计算速度还是有很大的区别。如何解决NP-Hard问题也是一个被广泛研究的课题，毕竟实际工作中很多问题都是NP-Hard的。</p>
<div><h4>相关文章</h4><ul><li><a href="http://zhiqiang.org/blog/science/computer-science/np-hard.html">TCS：NP-hard</a></li><li><a href="http://zhiqiang.org/blog/science/computer-science/minesweeper-is-np-complete.html">扫雷是NP完全问题</a></li><li><a href="http://zhiqiang.org/blog/science/computer-science/most-windows-game-are-np-complete.html">Windows游戏中的NP完全问题</a></li><li><a href="http://zhiqiang.org/blog/science/computer-science/introduce-probabilistic-checkable-proof.html">PCP - Probabilistic Checkable Proof</a></li><li><a href="http://zhiqiang.org/blog/it/to-get-gibberish-wordpress-move-to-dreamhost.html">搞定乱码，WordPress搬家到dreamhost</a></li><li><a href="http://zhiqiang.org/blog/it/speedup-blog-optimize-wordpress-database.html">加速blog：监测和优化WordPress数据库</a></li><li><a href="http://zhiqiang.org/blog/it/change-pivotcache-source.html">动态修改Excel数据表的数据来源</a></li><li><a href="http://zhiqiang.org/blog/it/script-to-add-odbc-source.html">用脚本添加ODBC数据源</a></li><li><a href="http://zhiqiang.org/blog/it/use-adodb-in-matlab.html">Matlab中使用ADODB访问数据库</a></li></ul></div>    <p></p>
    <hr noshade style="margin:0;height:1px" />
    <p>&copy; zhiqiang for <a href="http://zhiqiang.org/blog">阅微堂</a>, 2009. | <a href="http://zhiqiang.org/blog/science/computer-science/database-query-is-np-hard.html">&#38142;&#25509;</a> | <a href="http://zhiqiang.org/blog/science/computer-science/database-query-is-np-hard.html#comments">2 &#26465;&#35780;&#35770;</a></p>]]></content:encoded>
			<wfw:commentRss>http://zhiqiang.org/blog/science/computer-science/database-query-is-np-hard.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PCP - Probabilistic Checkable Proof</title>
		<link>http://zhiqiang.org/blog/science/computer-science/introduce-probabilistic-checkable-proof.html</link>
		<comments>http://zhiqiang.org/blog/science/computer-science/introduce-probabilistic-checkable-proof.html#comments</comments>
		<pubDate>Sun, 19 Oct 2008 09:11:22 +0000</pubDate>
		<dc:creator>zhiqiang</dc:creator>
				<category><![CDATA[计算机科学]]></category>
		<category><![CDATA[NP hard]]></category>
		<category><![CDATA[PCP]]></category>
		<category><![CDATA[复杂性]]></category>
		<category><![CDATA[高等理论计算机]]></category>

		<guid isPermaLink="false">http://zhiqiang.org/blog/?p=859</guid>
		<description><![CDATA[博客 » 计算机科学 » NP hard » PS: PCP可以说是理论计算机领域近20年来的最重要的结果之一，它给了NP问题一个新的刻画，并且提供了一种证明近似算法下界的方法。下面是yijia写的PCP介绍。 作者：yijia 我们可以从最基本的NP开始。一般NP的定义是基于nondeterministic Turing machine，但我们也可以用类似于Interactive Proof的系统来刻画： 一个语言是在NP内当且仅当存在一个多项式时间的算...]]></description>
			<content:encoded><![CDATA[<p id="breadcrumb" class="breadcrumb"><a href="http://zhiqiang.org/blog/">博客</a> » <a href="http://zhiqiang.org/blog/category/science/computer-science">计算机科学</a> » <a href='http://zhiqiang.org/blog/tag/np-hard'>NP hard</a>  » </p><p>PS: PCP可以说是理论计算机领域近20年来的最重要的结果之一，它给了<a href="http://zhiqiang.org/blog/science/computer-science/preliminary-computer-theory-p-vs-np-an-overview-of-the-problem.html" target="_self">NP问题</a>一个新的刻画，并且提供了一种证明近似算法下界的方法。下面是yijia写的PCP介绍。</p>
<p>作者：yijia</p>
<p>我们可以从最基本的NP开始。一般NP的定义是基于nondeterministic Turing machine，但我们也可以用类似于Interactive Proof的系统来刻画：</p>
<p>一个语言<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_f09564c9ca56850d4cd6b3319e541aee.gif' style='vertical-align: middle; border: none; ' class='tex' alt="Q" /></span><script type='math/tex'>Q</script>是在NP内当且仅当存在一个多项式时间的算法<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_5206560a306a2e085a437fd258eb57ce.gif' style='vertical-align: middle; border: none; ' class='tex' alt="V" /></span><script type='math/tex'>V</script>  (i.e., prover) 满足下面一系列条件：</p>
<ol>
<li><span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_5206560a306a2e085a437fd258eb57ce.gif' style='vertical-align: middle; border: none; ' class='tex' alt="V" /></span><script type='math/tex'>V</script>有两个输入<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_9dd4e461268c8034f5c8564e155c67a6.gif' style='vertical-align: middle; border: none; padding-bottom:2px;' class='tex' alt="x" /></span><script type='math/tex'>x</script>和<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_415290769594460e2e485922904f345d.gif' style='vertical-align: middle; border: none; padding-bottom:1px;' class='tex' alt="y" /></span><script type='math/tex'>y</script>，并且<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_0c5f507a618aac8497cf1b5407949659.gif' style='vertical-align: middle; border: none; ' class='tex' alt="|y|=poly(|x|)" /></span><script type='math/tex'>|y|=poly(|x|)</script>；</li>
<li>对于任意的<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_9dd4e461268c8034f5c8564e155c67a6.gif' style='vertical-align: middle; border: none; padding-bottom:2px;' class='tex' alt="x" /></span><script type='math/tex'>x</script>， 我们有<br />
2.1. 如果<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_55cb0fad3efd248662c6b70819aad41e.gif' style='vertical-align: middle; border: none; ' class='tex' alt="x \in Q" /></span><script type='math/tex'>x \in Q</script>，那么存在一个<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_415290769594460e2e485922904f345d.gif' style='vertical-align: middle; border: none; padding-bottom:1px;' class='tex' alt="y" /></span><script type='math/tex'>y</script>使得<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_05550d1b7029ec8bc75af01b132dc666.gif' style='vertical-align: middle; border: none; ' class='tex' alt="V(x,y)=1" /></span><script type='math/tex'>V(x,y)=1</script>，i.e., <span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_5206560a306a2e085a437fd258eb57ce.gif' style='vertical-align: middle; border: none; ' class='tex' alt="V" /></span><script type='math/tex'>V</script> accepts <span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_90cbc22edf225adf8a68974f51227f05.gif' style='vertical-align: middle; border: none; ' class='tex' alt="(x,y)" /></span><script type='math/tex'>(x,y)</script>;<br />
2.2 如果<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_ae9ccbbf4aa6a9d46d7e2cb3a8cd5ff3.gif' style='vertical-align: middle; border: none; ' class='tex' alt="x \not\in Q" /></span><script type='math/tex'>x \not\in Q</script>，那么对于任意y都有<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_9dc1a0717474ce723ed03113d36f2e56.gif' style='vertical-align: middle; border: none; ' class='tex' alt="V(x,y)=0" /></span><script type='math/tex'>V(x,y)=0</script>，i.e.,<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_5206560a306a2e085a437fd258eb57ce.gif' style='vertical-align: middle; border: none; ' class='tex' alt="V" /></span><script type='math/tex'>V</script> rejects <span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_90cbc22edf225adf8a68974f51227f05.gif' style='vertical-align: middle; border: none; ' class='tex' alt="(x,y)" /></span><script type='math/tex'>(x,y)</script>.</li>
</ol>
<p>在2.1中，<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_415290769594460e2e485922904f345d.gif' style='vertical-align: middle; border: none; padding-bottom:1px;' class='tex' alt="y" /></span><script type='math/tex'>y</script>可以看成是<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_55cb0fad3efd248662c6b70819aad41e.gif' style='vertical-align: middle; border: none; ' class='tex' alt="x \in Q" /></span><script type='math/tex'>x \in Q</script> 的一个证明。对于3Sat问题，我们可以设计这样的<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_5206560a306a2e085a437fd258eb57ce.gif' style='vertical-align: middle; border: none; ' class='tex' alt="V" /></span><script type='math/tex'>V</script>: <span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_9dd4e461268c8034f5c8564e155c67a6.gif' style='vertical-align: middle; border: none; padding-bottom:2px;' class='tex' alt="x" /></span><script type='math/tex'>x</script>是一个3CNF公式，而y是一个对<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_9dd4e461268c8034f5c8564e155c67a6.gif' style='vertical-align: middle; border: none; padding-bottom:2px;' class='tex' alt="x" /></span><script type='math/tex'>x</script>中所有变元的赋值。Prover <span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_5206560a306a2e085a437fd258eb57ce.gif' style='vertical-align: middle; border: none; ' class='tex' alt="V" /></span><script type='math/tex'>V</script>就是用来验证y是否满足x。直观上<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_5206560a306a2e085a437fd258eb57ce.gif' style='vertical-align: middle; border: none; ' class='tex' alt="V" /></span><script type='math/tex'>V</script>必须读完整个<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_415290769594460e2e485922904f345d.gif' style='vertical-align: middle; border: none; padding-bottom:1px;' class='tex' alt="y" /></span><script type='math/tex'>y</script>才能确认<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_51f48eb6d63abe9d09170574d43f0353.gif' style='vertical-align: middle; border: none; ' class='tex' alt="x\in Q" /></span><script type='math/tex'>x\in Q</script>。 那么有没有可能改进这一点，让<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_5206560a306a2e085a437fd258eb57ce.gif' style='vertical-align: middle; border: none; ' class='tex' alt="V" /></span><script type='math/tex'>V</script>只读<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_415290769594460e2e485922904f345d.gif' style='vertical-align: middle; border: none; padding-bottom:1px;' class='tex' alt="y" /></span><script type='math/tex'>y</script>的一部分，来增加效率? 比如现有的Graph Minor Theory的证明有几百页，如果只要其中几页就能确认其正确那么就会省去Reviewer的很多时间。如果<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_5206560a306a2e085a437fd258eb57ce.gif' style='vertical-align: middle; border: none; ' class='tex' alt="V" /></span><script type='math/tex'>V</script>是个确定时间的算法，这就等价于要求<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_41af7600620f1f233be00c0fffb2b9d2.gif' style='vertical-align: middle; border: none; ' class='tex' alt="|y|=o(|x|)" /></span><script type='math/tex'>|y|=o(|x|)</script>。那么如果每个NP问题都有这样的Prover， 我们就可以证明NP包含Subexponential Time里。一般公认这不可能成立。</p>
<p>但如果我们允许<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_5206560a306a2e085a437fd258eb57ce.gif' style='vertical-align: middle; border: none; ' class='tex' alt="V" /></span><script type='math/tex'>V</script>使用Randomness，问题就开始变得有趣了。这也就是Probabilistic Checkable Proof (PCP)。</p>
<p>要定义一个PCP系统, 我们先要给定两个函数<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_a24e18feb278f6b3663fc047697f13b3.gif' style='vertical-align: middle; border: none; ' class='tex' alt="r,q: N \rightarrow N" /></span><script type='math/tex'>r,q: N \rightarrow N</script>。我们说一个随机算法<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_5206560a306a2e085a437fd258eb57ce.gif' style='vertical-align: middle; border: none; ' class='tex' alt="V" /></span><script type='math/tex'>V</script>是一个(r(n),q(n))-restricted verifier, 如果<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_5206560a306a2e085a437fd258eb57ce.gif' style='vertical-align: middle; border: none; ' class='tex' alt="V" /></span><script type='math/tex'>V</script>在输入<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_90cbc22edf225adf8a68974f51227f05.gif' style='vertical-align: middle; border: none; ' class='tex' alt="(x,y)" /></span><script type='math/tex'>(x,y)</script>上使用<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_d86236b599fa444d880396e23fdaebb1.gif' style='vertical-align: middle; border: none; ' class='tex' alt="O(r(|x|))" /></span><script type='math/tex'>O(r(|x|))</script>位随机数，访问<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_415290769594460e2e485922904f345d.gif' style='vertical-align: middle; border: none; padding-bottom:1px;' class='tex' alt="y" /></span><script type='math/tex'>y</script>的<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_d0cb8f11912580bcab56771bfb2898b4.gif' style='vertical-align: middle; border: none; ' class='tex' alt="O(q(|x|))" /></span><script type='math/tex'>O(q(|x|))</script>位。直观上，V 扔了<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_d86236b599fa444d880396e23fdaebb1.gif' style='vertical-align: middle; border: none; ' class='tex' alt="O(r(|x|))" /></span><script type='math/tex'>O(r(|x|))</script>个骰子，然后根据结果去访问证明y 的<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_d0cb8f11912580bcab56771bfb2898b4.gif' style='vertical-align: middle; border: none; ' class='tex' alt="O(q(|x|))" /></span><script type='math/tex'>O(q(|x|))</script>位。 当然V还要是一个多项式时间算法，<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_0c5f507a618aac8497cf1b5407949659.gif' style='vertical-align: middle; border: none; ' class='tex' alt="|y|=poly(|x|)" /></span><script type='math/tex'>|y|=poly(|x|)</script>， 同时满足所谓的non-adaptive条件（写起来太罗嗦了，所以就不写了)。</p>
<p>我们说这样的<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_5206560a306a2e085a437fd258eb57ce.gif' style='vertical-align: middle; border: none; ' class='tex' alt="V" /></span><script type='math/tex'>V</script>定义了一个语言<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_f09564c9ca56850d4cd6b3319e541aee.gif' style='vertical-align: middle; border: none; ' class='tex' alt="Q" /></span><script type='math/tex'>Q</script>当且仅当对于任意的<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_9dd4e461268c8034f5c8564e155c67a6.gif' style='vertical-align: middle; border: none; padding-bottom:2px;' class='tex' alt="x" /></span><script type='math/tex'>x</script>， 我们有<br />
(a) 如果<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_55cb0fad3efd248662c6b70819aad41e.gif' style='vertical-align: middle; border: none; ' class='tex' alt="x \in Q" /></span><script type='math/tex'>x \in Q</script>，那么存在一个y 使得<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_50778c6222040e7e7f5affe04bb3315c.gif' style='vertical-align: middle; border: none; ' class='tex' alt="Pr[V(x,y)=1]=1" /></span><script type='math/tex'>Pr[V(x,y)=1]=1</script>;<br />
(b) 如果<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_ae9ccbbf4aa6a9d46d7e2cb3a8cd5ff3.gif' style='vertical-align: middle; border: none; ' class='tex' alt="x \not\in Q" /></span><script type='math/tex'>x \not\in Q</script>，那么对于任意y都有<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_a807fd252e9a8502d4c666324de4d21b.gif' style='vertical-align: middle; border: none; ' class='tex' alt="Pr[V(x,y)=1]<1/2" /></span><script type='math/tex'>Pr[V(x,y)=1]<1/2</script>.</p>
<p>要注意的是并不是所有的<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_5206560a306a2e085a437fd258eb57ce.gif' style='vertical-align: middle; border: none; ' class='tex' alt="V" /></span><script type='math/tex'>V</script>都定义了一个语言，因为(b)不是总能满足的。</p>
<p>非常壮观的PCP定理就是</p>
<p><strong>Theorem 1. NP=PCP(<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_52e05a8b1b15239cc2aa291731c6f87e.gif' style='vertical-align: middle; border: none; ' class='tex' alt="\log n,1" /></span><script type='math/tex'>\log n,1</script>)</strong></p>
<p>也就是说，对于每个NP语言我们都可以构造一个<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_5206560a306a2e085a437fd258eb57ce.gif' style='vertical-align: middle; border: none; ' class='tex' alt="V" /></span><script type='math/tex'>V</script>，在每个<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_90cbc22edf225adf8a68974f51227f05.gif' style='vertical-align: middle; border: none; ' class='tex' alt="(x,y)" /></span><script type='math/tex'>(x,y)</script>上，仅使用<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_e255adac467bb5f89a8a36c18fdf4267.gif' style='vertical-align: middle; border: none; ' class='tex' alt="O(\log|x|)" /></span><script type='math/tex'>O(\log|x|)</script>位随机数，访问证明<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_415290769594460e2e485922904f345d.gif' style='vertical-align: middle; border: none; padding-bottom:1px;' class='tex' alt="y" /></span><script type='math/tex'>y</script>中的常数多位，就能以很高的概率正确判断是否<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_55cb0fad3efd248662c6b70819aad41e.gif' style='vertical-align: middle; border: none; ' class='tex' alt="x \in Q" /></span><script type='math/tex'>x \in Q</script>。</p>
<p>由于可以证明PCP(<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_52e05a8b1b15239cc2aa291731c6f87e.gif' style='vertical-align: middle; border: none; ' class='tex' alt="\log n,1" /></span><script type='math/tex'>\log n,1</script>)对于多项式时间规约(PTIME reductions)封闭，所以PCP定理也可以叙述为</p>
<p><strong>Theorem 2. 3Sat <span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_986c22f151c46acac223b858e3fcf6fd.gif' style='vertical-align: middle; border: none; padding-bottom:1px;' class='tex' alt="\in" /></span><script type='math/tex'>\in</script> PCP(<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_52e05a8b1b15239cc2aa291731c6f87e.gif' style='vertical-align: middle; border: none; ' class='tex' alt="\log n,1" /></span><script type='math/tex'>\log n,1</script>)</strong></p>
<p>除了本身非常有趣和counter intuitive，PCP的一个重要应用就是近似算法的下界:</p>
<p><strong>Corollary. 如果NP<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_f9bb70af966a4abbd08b776e6c5971ad.gif' style='vertical-align: middle; border: none; ' class='tex' alt="\ne" /></span><script type='math/tex'>\ne</script>P, 那么Max-3Sat没有PTAS，同时Max-Clique不存在constant approximation。</strong></p>
<p>这个结论的证明就是通过PCP，构造所谓的Gap Instances：给定常数<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_e6885dfcb4c4a8ddb730c59135ffe731.gif' style='vertical-align: middle; border: none; ' class='tex' alt="\delta \in (0,1)" /></span><script type='math/tex'>\delta \in (0,1)</script>，<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_3574f45dd11753e37c4def86a7f0c29b.gif' style='vertical-align: middle; border: none; ' class='tex' alt="Gap_\delta" /></span><script type='math/tex'>Gap_\delta</script>-3Sat是如下的问题</p>
<p>input: 一个3CNF公式<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_9dd4e461268c8034f5c8564e155c67a6.gif' style='vertical-align: middle; border: none; padding-bottom:2px;' class='tex' alt="x" /></span><script type='math/tex'>x</script>使得要么存在一个满足<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_9dd4e461268c8034f5c8564e155c67a6.gif' style='vertical-align: middle; border: none; padding-bottom:2px;' class='tex' alt="x" /></span><script type='math/tex'>x</script>的赋值，要么所有的赋值最多满足<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_77a3b715842b45e440a5bee15357ad29.gif' style='vertical-align: middle; border: none; ' class='tex' alt="\delta" /></span><script type='math/tex'>\delta</script>-fraction的clauses。<br />
question：<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_9dd4e461268c8034f5c8564e155c67a6.gif' style='vertical-align: middle; border: none; padding-bottom:2px;' class='tex' alt="x" /></span><script type='math/tex'>x</script> 是否可满足？</p>
<p><strong>Corollary 3. 存在一个<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_77a3b715842b45e440a5bee15357ad29.gif' style='vertical-align: middle; border: none; ' class='tex' alt="\delta" /></span><script type='math/tex'>\delta</script>，使得存在一个3Sat到<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_3574f45dd11753e37c4def86a7f0c29b.gif' style='vertical-align: middle; border: none; ' class='tex' alt="Gap_\delta" /></span><script type='math/tex'>Gap_\delta</script>-3Sat的规约。</strong></p>
<p>实际上我们可以证明</p>
<p>Theorem PCP定理成立当且仅当上面的Corollary成立。</p>
<p>现在PCP定理有两个证明：一个就是由Arora，Sudan等人在90初完成的基于代数的方法，直接证明Theorem 2。证明的核心某种意义上就是Error Correcting Code。另一个就是Dinur前几年完成的基于Expander的组合方法，直接证明Cororllary 3。前者的证明很长，但实际上比较初等，而后者短一些且非常漂亮。</p>
<div><h4>相关文章</h4><ul><li><a href="http://zhiqiang.org/blog/science/computer-science/complexity-of-prime-sieve.html">素数筛法的复杂度</a></li><li><a href="http://zhiqiang.org/blog/science/computer-science/advanced-theoretical-computer-science-i-lectures.html">高等理论计算机I</a></li><li><a href="http://zhiqiang.org/blog/science/why-the-world-needs-quantum-mechanics.html">为什么这个世界需要量子机制</a></li><li><a href="http://zhiqiang.org/blog/science/computer-science/np-hard.html">TCS：NP-hard</a></li><li><a href="http://zhiqiang.org/blog/science/computer-science/minesweeper-is-np-complete.html">扫雷是NP完全问题</a></li><li><a href="http://zhiqiang.org/blog/science/computer-science/most-windows-game-are-np-complete.html">Windows游戏中的NP完全问题</a></li><li><a href="http://zhiqiang.org/blog/science/computer-science/database-query-is-np-hard.html">数据库查询是NP-Hard问题</a></li></ul></div>    <p></p>
    <hr noshade style="margin:0;height:1px" />
    <p>&copy; zhiqiang for <a href="http://zhiqiang.org/blog">阅微堂</a>, 2008. | <a href="http://zhiqiang.org/blog/science/computer-science/introduce-probabilistic-checkable-proof.html">&#38142;&#25509;</a> | <a href="http://zhiqiang.org/blog/science/computer-science/introduce-probabilistic-checkable-proof.html#comments">6 &#26465;&#35780;&#35770;</a></p>]]></content:encoded>
			<wfw:commentRss>http://zhiqiang.org/blog/science/computer-science/introduce-probabilistic-checkable-proof.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Windows游戏中的NP完全问题</title>
		<link>http://zhiqiang.org/blog/science/computer-science/most-windows-game-are-np-complete.html</link>
		<comments>http://zhiqiang.org/blog/science/computer-science/most-windows-game-are-np-complete.html#comments</comments>
		<pubDate>Fri, 13 Jun 2008 02:13:08 +0000</pubDate>
		<dc:creator>zhiqiang</dc:creator>
				<category><![CDATA[计算机科学]]></category>
		<category><![CDATA[NP hard]]></category>
		<category><![CDATA[游戏]]></category>
		<category><![CDATA[空当接龙]]></category>
		<category><![CDATA[蜘蛛纸牌]]></category>

		<guid isPermaLink="false">http://zhiqiang.org/blog/?p=798</guid>
		<description><![CDATA[博客 » 计算机科学 » 游戏 » 上篇文章扫雷是NP完全问题之后，You Xu提到＂不光扫雷是NP 完全问题，空当接龙问题也极有可能是一个NP完全问题。目前最好的通用 planner只能解半副牌＂。他说对了，不光扫雷，Windows自带的游戏都是NP完全的。Windows自带的游戏除了扫雷，还有空当接龙和蜘蛛纸牌。 空当接龙是NP完全问题 论文：Malte Helmert, Complexity results for standard benchmark domains in pla...]]></description>
			<content:encoded><![CDATA[<p id="breadcrumb" class="breadcrumb"><a href="http://zhiqiang.org/blog/">博客</a> » <a href="http://zhiqiang.org/blog/category/science/computer-science">计算机科学</a> » <a href='http://zhiqiang.org/blog/tag/%e6%b8%b8%e6%88%8f'>游戏</a>  » </p><p>上篇文章<a href="http://zhiqiang.org/blog/science/computer-science/minesweeper-is-np-complete.html">扫雷是NP完全问题</a>之后，<a href="http://youxu.info" target="_blank">You Xu</a>提到＂不光扫雷是NP 完全问题，<a href="http://zhiqiang.org/blog/entertainment/fan-tan-game-empty-when-most-difficult-relationship.html">空当接龙</a>问题也极有可能是一个NP完全问题。目前最好的通用 planner只能解半副牌＂。他说对了，不光扫雷，Windows自带的游戏都是NP完全的。Windows自带的游戏除了扫雷，还有空当接龙和蜘蛛纸牌。</p>
<h3>空当接龙是NP完全问题</h3>
<p>论文：Malte Helmert, <a href="ftp://ftp.informatik.uni-freiburg.de/documents/papers/ki/helmert-aij03.ps.gz" target="_blank">Complexity results for standard benchmark domains in planning</a>, Artificial Intelligence Journal 143(2):219-262, 2003.</p>
<h3>蜘蛛纸牌是NP完全问题</h3>
<p>论文：Springer Berlin, Heidelberg, <a href="http://www.springerlink.com/content/b40703p37h74j220/" target="_blank">The Complexity of Solitaire</a>, Mathematical Foundations of Computer Science 2007: 182-193, 2007</p>
<p>顺便提一下蜘蛛纸牌的可以获胜的概率高达82-91.5%。而我平时自己玩的时候20%都不到。差距啊。</p>
<div><h4>相关文章</h4><ul><li><a href="http://zhiqiang.org/blog/science/computer-science/np-hard.html">TCS：NP-hard</a></li><li><a href="http://zhiqiang.org/blog/science/computer-science/minesweeper-is-np-complete.html">扫雷是NP完全问题</a></li><li><a href="http://zhiqiang.org/blog/science/computer-science/introduce-probabilistic-checkable-proof.html">PCP - Probabilistic Checkable Proof</a></li><li><a href="http://zhiqiang.org/blog/science/computer-science/database-query-is-np-hard.html">数据库查询是NP-Hard问题</a></li><li><a href="http://zhiqiang.org/blog/entertainment/fan-tan-game-empty-when-most-difficult-relationship.html">空当接龙中最难的关</a></li><li><a href="http://zhiqiang.org/blog/science/strategy-games-doctors-and-patients-i.html">策略游戏：医生和病人（I）</a></li><li><a href="http://zhiqiang.org/blog/science/15-puzzle.html">15 puzzle</a></li><li><a href="http://zhiqiang.org/blog/science/rotate-coin-games.html">硬币游戏</a></li><li><a href="http://zhiqiang.org/blog/science/computer-science/boxes-problem-on-static-data-structure-problems.html">摸箱子问题以及应用</a></li><li><a href="http://zhiqiang.org/blog/entertainment/cat-game.html">堵猫游戏</a></li></ul></div>    <p></p>
    <hr noshade style="margin:0;height:1px" />
    <p>&copy; zhiqiang for <a href="http://zhiqiang.org/blog">阅微堂</a>, 2008. | <a href="http://zhiqiang.org/blog/science/computer-science/most-windows-game-are-np-complete.html">&#38142;&#25509;</a> | <a href="http://zhiqiang.org/blog/science/computer-science/most-windows-game-are-np-complete.html#comments">4 &#26465;&#35780;&#35770;</a></p>]]></content:encoded>
			<wfw:commentRss>http://zhiqiang.org/blog/science/computer-science/most-windows-game-are-np-complete.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>扫雷是NP完全问题</title>
		<link>http://zhiqiang.org/blog/science/computer-science/minesweeper-is-np-complete.html</link>
		<comments>http://zhiqiang.org/blog/science/computer-science/minesweeper-is-np-complete.html#comments</comments>
		<pubDate>Wed, 11 Jun 2008 14:38:21 +0000</pubDate>
		<dc:creator>zhiqiang</dc:creator>
				<category><![CDATA[计算机科学]]></category>
		<category><![CDATA[NP hard]]></category>
		<category><![CDATA[扫雷]]></category>

		<guid isPermaLink="false">http://zhiqiang.org/blog/?p=797</guid>
		<description><![CDATA[博客 » 计算机科学 » NP hard » 本科时有同学扫雷最快可以在60多秒完成高级难度，让我这种最快130秒的人非常惭愧，当时就想着编一个全自动的扫雷程序，不过一直也没写。今天才知道，原来扫雷问题是NP完全的... 结果于2000年发表在Mathematical Intelligencer上，论文题目是Minesweeper is NP-complete，这里有作者的简单的问题和证明介绍。证明方法是证明扫雷问题可以编码任何逻辑电路...]]></description>
			<content:encoded><![CDATA[<p id="breadcrumb" class="breadcrumb"><a href="http://zhiqiang.org/blog/">博客</a> » <a href="http://zhiqiang.org/blog/category/science/computer-science">计算机科学</a> » <a href='http://zhiqiang.org/blog/tag/np-hard'>NP hard</a>  » </p><p>本科时有同学扫雷最快可以在60多秒完成高级难度，让我这种最快130秒的人非常惭愧，当时就想着编一个全自动的扫雷程序，不过一直也没写。今天才知道，原来扫雷问题是<a href="http://zhiqiang.org/blog/science/computer-science/np-hard.html" target="_blank">NP完全的</a>...</p>
<p>结果于2000年发表在<em>Mathematical Intelligencer</em>上，论文题目是Minesweeper is NP-complete，这里有<a href="http://web.mat.bham.ac.uk/R.W.Kaye/minesw/ordmsw.htm" target="_blank">作者的简单的问题和证明介绍</a>。证明方法是证明扫雷问题可以编码任何逻辑电路，包括NP-hard的3SAT问题。作者还有一个<a href="http://web.mat.bham.ac.uk/R.W.Kaye/minesw/ASE2003.pdf" target="_blank">非常直观的PPT</a>演示证明过程，比如下图展示如何编码AND逻辑门：<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_e3cb701ac0ea4b7279633cec474ae96b.gif' style='vertical-align: middle; border: none; padding-bottom:1px;' class='tex' alt="t=u\wedge v" /></span><script type='math/tex'>t=u\wedge v</script></p>
<p align="center"><img src="http://lh4.ggpht.com/mathzqy/SE_idBu0a5I/AAAAAAAAC4g/1-YdNAowPg8/20080611223237750.jpg?imgmax=576"/> </p>
<p>它是NP完全问题说明如果程序要想完全正确，所费的时间最坏情况下将是指数的。不过我猜测对于大部分的扫雷的实例还是很容易的，而且NPC所用的规约实例特别大，所以编一个能较快速度解决大部分windows自带的那个高级难度的扫雷问题还是可行的，不知道是否已经有这方面的程序。</p>
<div><h4>相关文章</h4><ul><li><a href="http://zhiqiang.org/blog/science/computer-science/np-hard.html">TCS：NP-hard</a></li><li><a href="http://zhiqiang.org/blog/science/computer-science/most-windows-game-are-np-complete.html">Windows游戏中的NP完全问题</a></li><li><a href="http://zhiqiang.org/blog/science/computer-science/introduce-probabilistic-checkable-proof.html">PCP - Probabilistic Checkable Proof</a></li><li><a href="http://zhiqiang.org/blog/science/computer-science/database-query-is-np-hard.html">数据库查询是NP-Hard问题</a></li></ul></div>    <p></p>
    <hr noshade style="margin:0;height:1px" />
    <p>&copy; zhiqiang for <a href="http://zhiqiang.org/blog">阅微堂</a>, 2008. | <a href="http://zhiqiang.org/blog/science/computer-science/minesweeper-is-np-complete.html">&#38142;&#25509;</a> | <a href="http://zhiqiang.org/blog/science/computer-science/minesweeper-is-np-complete.html#comments">20 &#26465;&#35780;&#35770;</a></p>]]></content:encoded>
			<wfw:commentRss>http://zhiqiang.org/blog/science/computer-science/minesweeper-is-np-complete.html/feed</wfw:commentRss>
		<slash:comments>20</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[博客 » 计算机科学 » NP hard » 好久没有写我的理论计算机初步系列了，其实复杂性这一块，虽然平时经常遇到，但由于问题都过于本质和困难，想这方面问题的时间反而不多。Ko教授就跟我说也许NP verse P这个题并不难，只不过大家认为它很难，结果就没有多少人去做了，大家一遇到这个问题都远远得绕开。话虽如此，我还是不敢去碰的。 很多人一看到NP-hard，就从字面上理解...]]></description>
			<content:encoded><![CDATA[<p id="breadcrumb" class="breadcrumb"><a href="http://zhiqiang.org/blog/">博客</a> » <a href="http://zhiqiang.org/blog/category/science/computer-science">计算机科学</a> » <a href='http://zhiqiang.org/blog/tag/np-hard'>NP hard</a>  » </p><p style="font-size: 90%; color: #888">好久没有写我的<a href="http://zhiqiang.org/blog/science/computer-science/preliminary-computer-theory-preface.html" target="_blank">理论计算机初步系列</a>了，其实复杂性这一块，虽然平时经常遇到，但由于问题都过于本质和困难，想这方面问题的时间反而不多。Ko教授就跟我说也许<a href="http://zhiqiang.org/blog/science/computer-science/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，使得<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_aa59c24b96493c18724674a6f3ed56a6.gif' style='vertical-align: middle; border: none; ' class='tex' alt="\phi\in 3SAT" /></span><script type='math/tex'>\phi\in 3SAT</script>当且仅当<span class='MathJax_Preview'><img src='http://zhiqiang.org/blog/wp-content/plugins/latex/cache/tex_5fac70eddb0fc7542567d210c8908c01.gif' style='vertical-align: middle; border: none; ' class='tex' alt="f(\phi)\in L" /></span><script type='math/tex'>f(\phi)\in L</script>。</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><h4>相关文章</h4><ul><li><a href="http://zhiqiang.org/blog/science/computer-science/what-if-p-np.html">What if P = NP?</a></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></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></li><li><a href="http://zhiqiang.org/blog/science/quantum-history-uncertainty-principle.html">测不准原理还是不确定性原理 - 谈量子物理史话一</a></li><li><a href="http://zhiqiang.org/blog/science/computer-science/minesweeper-is-np-complete.html">扫雷是NP完全问题</a></li><li><a href="http://zhiqiang.org/blog/science/computer-science/most-windows-game-are-np-complete.html">Windows游戏中的NP完全问题</a></li><li><a href="http://zhiqiang.org/blog/science/computer-science/introduce-probabilistic-checkable-proof.html">PCP - Probabilistic Checkable Proof</a></li><li><a href="http://zhiqiang.org/blog/science/computer-science/database-query-is-np-hard.html">数据库查询是NP-Hard问题</a></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>
	</channel>
</rss>

