<?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://yueweitang.org/blog/category/science/computer-science/feed" rel="self" type="application/rss+xml" />
	<link>http://yueweitang.org/blog</link>
	<description>zhiqiang's personal blog</description>
	<lastBuildDate>Mon, 22 Jun 2009 15:32:35 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9-rare</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>正当志愿填报时-复旦大三本科生解决世界级几何猜想？</title>
		<link>http://yueweitang.org/blog/posts/minimum-manhattan-network-at-25th-socg.html</link>
		<comments>http://yueweitang.org/blog/posts/minimum-manhattan-network-at-25th-socg.html#comments</comments>
		<pubDate>Mon, 22 Jun 2009 15:32:35 +0000</pubDate>
		<dc:creator>zhiqiang</dc:creator>
				<category><![CDATA[计算机科学]]></category>
		<category><![CDATA[Minimum Manhattan Network]]></category>
		<category><![CDATA[NP完全]]></category>
		<category><![CDATA[高考]]></category>

		<guid isPermaLink="false">http://yueweitang.org/blog/posts/minimum-manhattan-network-at-25th-socg.html</guid>
		<description><![CDATA[最近很热的一条新闻，关键词：复旦大学，大三本科生，世界级猜想，内地数学家已经阔别了整整十八年的最高级别的会议…
&#160;
论文信息：
Minimum Manhattan Network is NP-Complete（PDF版本）     Francis Y. L. Chin, Zeyu Guo and He Sun
被25th Annual Symposium on Computational Geometry(SoCG)接收，SoCG是计算几何领域顶级会议。
关于作者排序：复旦大三本科生Zeyu Guo位居第二作者，目前第一作者为香港大学...]]></description>
			<content:encoded><![CDATA[<p>最近很热的<a href="http://news.xinhuanet.com/tech/2009-06/22/content_11581959.htm">一条新闻</a>，关键词：复旦大学，大三本科生，世界级猜想，内地数学家已经阔别了整整十八年的最高级别的会议…</p>
<p>&#160;</p>
<p>论文信息：</p>
<p><strong>Minimum Manhattan Network is NP-Complete（<a href="http://i.cs.hku.hk/~chin/paper/mmn-scg.pdf" target="_blank">PDF版本</a>）</strong>     <br />Francis Y. L. Chin, Zeyu Guo and He Sun</p>
<p>被<a href="http://www.madalgo.au.dk/socg2009/Html/Program/Program.html">25th Annual Symposium on Computational Geometry</a>(SoCG)接收，SoCG是计算几何领域顶级会议。</p>
<p>关于作者排序：复旦大三本科生Zeyu Guo位居第二作者，目前第一作者为香港大学计算机系教授。但此论文作者顺序应该是按照SoCG的惯例为字母排序，所以实际第一作者未知。</p>
<p>Minimum Manhattan Network问题是指平面上有若干个点，只使用水平和垂直的线段把它们都连起来，求需要的最小线段总长度。论文的结论是从3SAT规约证明了此问题是<a href="http://yueweitang.org/blog/posts/preliminary-computer-theory-p-vs-np-an-overview-of-the-problem.html">NP完全</a>的。NP完全问题已经成千上万个了，大部分的NP完全问题证出来都没人看。此结果比较重要是因为Minimum Manhattan Network本身的应用比较广泛。但要说它是世界级难题也太那个啥了。</p>
<p>&#160;</p>
<p>此新闻出现在高考填报志愿前期，对复旦大学招生应该助益不少，同样<a href="http://news.163.com/09/0622/04/5CCRBRTU000120GR.html">28岁清华研究生任湖北宜城市长</a>这条新闻也是如此 <img src='http://yueweitang.org/blog/wp-includes/images/smilies/bigsmile.gif' alt=':D' class='wp-smiley' /> </p>
<div><h2>相关文章</h2><ul><li><a href="http://yueweitang.org/blog/posts/np-hard.html">TCS：NP-hard</a><br/>...</li><li><a href="http://yueweitang.org/blog/posts/what-if-p-np.html">What if P = NP?</a><br/>...</li><li><a href="http://yueweitang.org/blog/posts/preliminary-computer-theory-p-vs-np-an-overview-of-the-problem.html">理论计算机初步：P vs NP -- 问题概述</a><br/>...</li></ul></div>    <p></p>
    <hr noshade style="margin:0;height:1px" />
    <p>&copy; zhiqiang for <a href="http://yueweitang.org/blog">阅微堂</a>, 2009. | <a href="http://yueweitang.org/blog/posts/minimum-manhattan-network-at-25th-socg.html">&#38142;&#25509;</a> | <a href="http://yueweitang.org/blog/posts/minimum-manhattan-network-at-25th-socg.html#comments">12 &#26465;&#35780;&#35770;</a></p>]]></content:encoded>
			<wfw:commentRss>http://yueweitang.org/blog/posts/minimum-manhattan-network-at-25th-socg.html/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>摸箱子问题以及在Static data structure problems上的应用</title>
		<link>http://yueweitang.org/blog/posts/boxes-problem-on-static-data-structure-problems.html</link>
		<comments>http://yueweitang.org/blog/posts/boxes-problem-on-static-data-structure-problems.html#comments</comments>
		<pubDate>Tue, 16 Dec 2008 08:24:54 +0000</pubDate>
		<dc:creator>zhiqiang</dc:creator>
				<category><![CDATA[计算机科学]]></category>
		<category><![CDATA[概率]]></category>
		<category><![CDATA[游戏]]></category>
		<category><![CDATA[理论计算机笔记]]></category>
		<category><![CDATA[策略]]></category>

		<guid isPermaLink="false">http://zhiqiang.org/blog/posts/boxes-problem-on-static-data-structure-problems.html</guid>
		<description><![CDATA[以前提到过，理论计算机这门课会邀请一些正在这边访问的教授来讲课，由于是本科生，所以这些教授一般都是讲些有趣的东西，比如之前的overhang 堆积木 -- 能伸出桌面多远？。今天这次课，来自Aarhus的Peter Bro Miltersen讲了一个很有趣的游戏问题。
现在有100个箱子，有一个学生，一张写着他的名字的名片被放在某个随机选择的箱子里面。现在这个学生可以检查不超过一半也就...]]></description>
			<content:encoded><![CDATA[<p>以前提到过，理论计算机这门课会邀请一些正在这边访问的教授来讲课，由于是本科生，所以这些教授一般都是讲些有趣的东西，比如之前的<a href="http://zhiqiang.org/blog/posts/overhang-stacking-wood-how-far-can-extend-desktop.html">overhang 堆积木 -- 能伸出桌面多远？</a>。今天这次课，来自Aarhus的<a href="http://www.brics.dk/%7Ebromille/">Peter Bro Miltersen</a>讲了一个很有趣的游戏问题。</p>
<p>现在有100个箱子，有一个学生，一张写着他的名字的名片被放在某个随机选择的箱子里面。现在这个学生可以检查不超过一半也就是50个箱子，希望能够把它的名字找出来。</p>
<p>很显然，这个学生没有什么好的方法，随机选择50个箱子打开，有一半的概率可以发现含有它的名字纸条的箱子。</p>
<p>OK，现在还是100个箱子，但是有100个学生，写着这些学生的名字的100张纸条随机放入100个箱子里(每个箱子恰好一张纸条)。现在每个学生可以检查不超过一半也就是50个箱子，每个学生希望能找到含有自己名字的箱子。如果在游戏中，所有学生都是独立的（他们不能互相讨论以及看到其他人的开箱结果），问所有学生都实现目标的概率有多大？</p>
<p>如果把每个学生的结果认为是独立的，那么成功的概率只有<img src="http://yueweitang.org/blog/wp-content/cache/tex_5deb1f2a4cb23a636322677c5b5711f8.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="2^{-100}" />，但其实我们可以做的比这要好得多。事实上，让每个学生都找到含有自己名字的箱子的概率可以高达0.3。</p>
<p>假设学生的名字就是它的编号，从1到100。第<img src="http://yueweitang.org/blog/wp-content/cache/tex_865c0c0b4ab0e063e5caa3387c1a8741.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="i" />个箱子里的编号是<img src="http://yueweitang.org/blog/wp-content/cache/tex_337778f4c628d9c80045adbc3a9a81b0.png" style="vertical-align:middle; " class="tex" alt="\pi(i)" />。第<img src="http://yueweitang.org/blog/wp-content/cache/tex_865c0c0b4ab0e063e5caa3387c1a8741.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="i" />个学生这样做：先打开第<img src="http://yueweitang.org/blog/wp-content/cache/tex_865c0c0b4ab0e063e5caa3387c1a8741.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="i" />个箱子，再打开第<img src="http://yueweitang.org/blog/wp-content/cache/tex_337778f4c628d9c80045adbc3a9a81b0.png" style="vertical-align:middle; " class="tex" alt="\pi(i)" />个箱子，再打开第<img src="http://yueweitang.org/blog/wp-content/cache/tex_30e74848e17f1241028df30d37626fb5.png" style="vertical-align:middle; " class="tex" alt="\pi(\pi(i))" />个箱子，以此继续下去，直到发现写着自己名字（也就是<img src="http://yueweitang.org/blog/wp-content/cache/tex_865c0c0b4ab0e063e5caa3387c1a8741.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="i" />）的纸条或者打开箱子数到达50个为止。</p>
<p>那么当且仅当在<img src="http://yueweitang.org/blog/wp-content/cache/tex_865c0c0b4ab0e063e5caa3387c1a8741.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="i" />到<img src="http://yueweitang.org/blog/wp-content/cache/tex_337778f4c628d9c80045adbc3a9a81b0.png" style="vertical-align:middle; " class="tex" alt="\pi(i)" />这个置换中含有长度超过50的圈时，有学生找不到含有自己名字的箱子。这个概率是<img src="http://yueweitang.org/blog/wp-content/cache/tex_8dde40b065bb39ce68f1acf77b65f3d8.png" style="vertical-align:middle; " class="tex" alt="\sum_{j=51}^{100}1/j \sim \ln 2" />（注意一个随机置换里含有一个长度为<img src="http://yueweitang.org/blog/wp-content/cache/tex_363b122c528f54df4a0446b6bab05515.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="j" />的圈的概率为<img src="http://yueweitang.org/blog/wp-content/cache/tex_f1efbba87e0ef8aba62fd9bfbd5605b8.png" style="vertical-align:middle; " class="tex" alt="1/j" />）。</p>
<p>所以上面策略的成功概率为 <img src="http://yueweitang.org/blog/wp-content/cache/tex_162fba3f0bfe98f043fa4148428acf72.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="1-\ln 2 \sim 0.3" />。</p>
<p>类似于以前提到的<a href="http://zhiqiang.org/blog/posts/game-one-hat.html">帽子游戏一</a>以及<a href="http://zhiqiang.org/blog/posts/game-two-hats.html">帽子游戏二</a>，我们要最大化一个团体都成功的概率，但是每个单个个体成功的概率又是一定的，那么我们只需要设计策略时，让大家要么几乎同时成功，要么几乎同时失败。就像上面的策略里，如果有人失败，意味着排列中有一个长度很大（大于n/2）的圈，这个圈上所有人同时也会失败，通过把失败的实例重合到一起，这样就提高了总体成功的概率。</p>
<p>上面这个问题不是孤立的，它可以应用在static data structure problems的下界证明上。对于后面这个问题，在最近是一个很热门的研究领域，但在这里写了也没人看，知道这个问题的也不需要看，所以我只提一下我们还可以做什么，下面是一个open problem，可以直接得出一个data structure问题的一个下界，是一个可以写学术论文的题目：</p>
<blockquote><p>Open problem：假设现在有<img src="http://yueweitang.org/blog/wp-content/cache/tex_21e2c0c0472b331622877accbe29b91b.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="2n" />个箱子，<img src="http://yueweitang.org/blog/wp-content/cache/tex_7b8b965ad4bca0e41ab51de7b31363a1.png" style="vertical-align:middle; padding-bottom:2px;" class="tex" alt="n" />个学生，学生们的名字纸条被放入随机选中的<img src="http://yueweitang.org/blog/wp-content/cache/tex_7b8b965ad4bca0e41ab51de7b31363a1.png" style="vertical-align:middle; padding-bottom:2px;" class="tex" alt="n" />个箱子里。现在每个学生可以检查不超过一半也就是<img src="http://yueweitang.org/blog/wp-content/cache/tex_7b8b965ad4bca0e41ab51de7b31363a1.png" style="vertical-align:middle; padding-bottom:2px;" class="tex" alt="n" />个箱子，以找到含有自己名字的箱子。问这时候学生可以采取什么样的策略最大化所有学生都成功找到含有自己名字的箱子的概率。</p>
</blockquote>
<p>期望结果：证明指数级小的下界或者找到常数概率的策略。</p>
<p>有兴趣的可以参考<a href="http://www.brics.dk/~bromille/Papers/succinct.pdf" target="_blank">The cell probe complexity of succinct data structures</a>.</p>
<div><h2>相关文章</h2><ul><li><a href="http://yueweitang.org/blog/posts/rotate-coin-games.html">硬币游戏</a><br/>...</li><li><a href="http://yueweitang.org/blog/posts/theoritical-analysis-marfia-game.html">杀人的理论分析</a><br/>...</li><li><a href="http://yueweitang.org/blog/posts/how-n-people-divide-a-cake-fairly.html">征集3个人分蛋糕的方法</a><br/>...</li><li><a href="http://yueweitang.org/blog/posts/strategy-games-doctors-and-patients-i.html">策略游戏：医生和病人（I）</a><br/>...</li><li><a href="http://yueweitang.org/blog/posts/game-two-hats.html">帽子游戏二</a><br/>...</li></ul></div>    <p></p>
    <hr noshade style="margin:0;height:1px" />
    <p>&copy; zhiqiang for <a href="http://yueweitang.org/blog">阅微堂</a>, 2008. | <a href="http://yueweitang.org/blog/posts/boxes-problem-on-static-data-structure-problems.html">&#38142;&#25509;</a> | <a href="http://yueweitang.org/blog/posts/boxes-problem-on-static-data-structure-problems.html#comments">13 &#26465;&#35780;&#35770;</a></p>]]></content:encoded>
			<wfw:commentRss>http://yueweitang.org/blog/posts/boxes-problem-on-static-data-structure-problems.html/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>网易笔试题</title>
		<link>http://yueweitang.org/blog/posts/163-written-test-problems.html</link>
		<comments>http://yueweitang.org/blog/posts/163-written-test-problems.html#comments</comments>
		<pubDate>Thu, 30 Oct 2008 04:58:21 +0000</pubDate>
		<dc:creator>zhiqiang</dc:creator>
				<category><![CDATA[计算机科学]]></category>
		<category><![CDATA[有道]]></category>
		<category><![CDATA[笔试]]></category>
		<category><![CDATA[网易]]></category>

		<guid isPermaLink="false">http://zhiqiang.org/blog/?p=870</guid>
		<description><![CDATA[笔试多了，便会发现题目大同小异，很多笔试考的时候就是考经验和见世面。下面收集一些。
Fibonacci数列中，一个Fibonacci数如果与它之前的Fibonacci数均互质，则称为Fibonacci质数。第一个Fibonacci质数为2，第二个为3，第三个为5。。。(Fibonacci数列为1, 1, 2, 3, 5, ...)。输入一个数K，则第K个Fibonacci质数所对应的序数是多少？

定理：
所以为Fibonacci质数当且仅当为质数或者4。

求极限li...]]></description>
			<content:encoded><![CDATA[<p>笔试多了，便会发现题目大同小异，很多笔试考的时候就是考经验和见世面。下面收集一些。</p>
<p>Fibonacci数列中，一个Fibonacci数如果与它之前的Fibonacci数均互质，则称为Fibonacci质数。第一个Fibonacci质数为2，第二个为3，第三个为5。。。(Fibonacci数列为1, 1, 2, 3, 5, ...)。输入一个数K，则第K个Fibonacci质数所对应的序数是多少？</p>
<blockquote><p><img src="http://yueweitang.org/blog/wp-content/cache/tex_b4d77ec3e184ad9485636d597ccfffba.png" style="vertical-align:middle; " class="tex" alt="F(0)=0, F(1)=1, F(2)=1, F(3)=2, F(4)=3, F(n+2)=F(n+1)+F(n)" /></p>
<p>定理：<img src="http://yueweitang.org/blog/wp-content/cache/tex_3edf343eff7df866768b791b1d92aa05.png" style="vertical-align:middle; " class="tex" alt="(F(n), F(m)) = F((n,m))" /></p>
<p>所以<img src="http://yueweitang.org/blog/wp-content/cache/tex_616689e1da200035e42c847af789d4bb.png" style="vertical-align:middle; " class="tex" alt="F(n)" />为Fibonacci质数当且仅当<img src="http://yueweitang.org/blog/wp-content/cache/tex_7b8b965ad4bca0e41ab51de7b31363a1.png" style="vertical-align:middle; padding-bottom:2px;" class="tex" alt="n" />为质数或者4。</p>
</blockquote>
<p>求极限lim(x-[x])，x趋于-3。</p>
<blockquote><p>极限不存在。没想到网易还考这玩意儿。</p>
</blockquote>
<p>编程题：输入一个正整数，若该数能用几个连续正整数之和表示，则输出所有可能的正整数序列。</p>
<blockquote><p>利用高斯求和公式，n+(n+1)+…+m = (n+m)(m-n+1)/2。</p>
</blockquote>
<p>new/delete和malloc/free的区别，并说说你在什么情况下会自另行建立自己的内存分配机制。</p>
<blockquote><p>malloc和free不知道构造函数和析构函数</p>
<p>malloc/free:只要给出想要的内存的长度就分配,并返加(void*)</p>
<p>new/delete:分配内存同时进行类型检测,内置了sizeof运算,如果分配类的话,自动调用类的构造函数,delete也是,释放内存时调类的析构</p>
<p>为什么有必要写自己的operator new和operator delete？</p>
<p>答案通常是：为了效率。缺省的operator new和operator delete具有非常好的通用性，它的这种灵活性也使得在某些特定的场合下，可以进一步改善它的性能。尤其在那些需要动态分配大量的但很小的对象的应用程序里，情况更是如此。</p>
<p>有这样一个方法来实现你的自定义的operator new：先让缺省operator new分配一些大块的原始内存，每块的大小都足以容纳很多个airplane对象。</p>
</blockquote>
<p>有两个字符串str1和str2，写一个函数实现在str1中查找str2的初始位置。要求不区分大小写。</p>
<blockquote><p>KMP算法？</p>
</blockquote>
<p>在字符串S中寻找最长的字符串x，条件是xx存在于S中。即是如：abcabcdcd中的abc。</p>
<p>有100个真币和一个假币，只知道真币与假币不等重，要求只称两次，得出是真币重还是假币重。</p>
<blockquote><p>101个钱币中，任取一个，其余100个分为2份，如果重量相同，取出的必定假币，与任何一个真币比较即可。如果重量不等，把重的50枚分为两分，如果不等，则假币重，否则假币轻。</p>
</blockquote>
<p>有<img src="http://yueweitang.org/blog/wp-content/cache/tex_a1ba37088b3ed9531c2788e0be9210ff.png" style="vertical-align:middle; " class="tex" alt="b_1/a_1,b_2/a_2,\cdots,b_n/a_n" />共<img src="http://yueweitang.org/blog/wp-content/cache/tex_7b8b965ad4bca0e41ab51de7b31363a1.png" style="vertical-align:middle; padding-bottom:2px;" class="tex" alt="n" />个分数，分母同号，证明：<img src="http://yueweitang.org/blog/wp-content/cache/tex_eccc44b928d2c9cdc62d55addddbad9c.png" style="vertical-align:middle; " class="tex" alt=" (b_1+b_2+\cdots+bn)/(a_1+a_2+\cdots+a_n)" />的值在上面<img src="http://yueweitang.org/blog/wp-content/cache/tex_7b8b965ad4bca0e41ab51de7b31363a1.png" style="vertical-align:middle; padding-bottom:2px;" class="tex" alt="n" />个分数值最大制和最小值之间．</p>
<blockquote><p>数学归纳法</p>
</blockquote>
<p>证明题：在三角形中，假设等角对等边，证明大角对大边。</p>
<p>问答题：为什么现在的计算机采用二进制？而不是八进制或十六进制？你认为以后的计算机会采用几进制？</p>
<p>程序设计题：有篇文章，找出文章中单词在词典中的序号，要求高效率．词典没排序．</p>
<blockquote><p>HASH？</p>
</blockquote>
<p>一个没有拷贝构造函数和重载＝运算符的Ｓtring类，会出现什么问题，如何解决？</p>
<blockquote><p>拷贝时将进行按位拷贝。指针地址而不是内容直接被拷贝，同一块内存可能被多个对象引用，可能在删除后被另一个对象再次调用，或者多次被删除。</p>
</blockquote>
<p>有一位警长，抓了三个逃犯。现警长决定给他们一次机会。他拿出3顶黑帽子，两顶白帽子，然后往这三个逃犯头上每人戴了一顶帽子，每个逃犯只能看到另外两个逃犯帽子的颜色，不能看到自己帽子的颜色，而且不能进行通讯，不能进行讨论，只能靠自己的推理推出来，如果猜出来了，放一条生路，否则处死。</p>
<p>警长先问第一逃犯，结果第一逃犯猜错了，被杀掉了。</p>
<p>警长问第二个逃犯，结果还是猜错了，同样被杀掉了。</p>
<p>警长再问第三个逃犯，结果第三个逃犯猜对了。</p>
<p>说明一下，每个逃犯在回答问题时，其他逃犯是听不到的。</p>
<p>为什么第三个一定能猜中，请你给出解释。</p>
<blockquote><p>如果A看到另外两个人都带白色帽子，那么自己肯定带黑色帽子。</p>
<p>如果A看到另外两个帽子一白一黑，而黑色帽子的那个人死了（一白一黑都死了），那么自己肯定不是白帽子，而是黑帽子。</p>
<p>如果A看到另外两个帽子都是黑色的，而第二个黑帽子也死了（如果A带白帽子，那么地一个黑帽子死了，第二个黑帽子应该知道自己帽子的颜色），那么A肯定不是带白帽子，而是带黑帽子。</p>
</blockquote>
<div><h2>相关文章</h2><ul><li><a href="http://yueweitang.org/blog/posts/worldquant-written-test-2007.html">WorldQuant的笔试题</a><br/>...</li><li><a href="http://yueweitang.org/blog/posts/emc-2008-10-writing-test.html">2008年10月EMC笔试</a><br/>...</li></ul></div>    <p></p>
    <hr noshade style="margin:0;height:1px" />
    <p>&copy; zhiqiang for <a href="http://yueweitang.org/blog">阅微堂</a>, 2008. | <a href="http://yueweitang.org/blog/posts/163-written-test-problems.html">&#38142;&#25509;</a> | <a href="http://yueweitang.org/blog/posts/163-written-test-problems.html#comments">26 &#26465;&#35780;&#35770;</a></p>]]></content:encoded>
			<wfw:commentRss>http://yueweitang.org/blog/posts/163-written-test-problems.html/feed</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>BlogBus搬家文件转WordPress导入文件</title>
		<link>http://yueweitang.org/blog/posts/move-blogbus-data-to-wordpress.html</link>
		<comments>http://yueweitang.org/blog/posts/move-blogbus-data-to-wordpress.html#comments</comments>
		<pubDate>Wed, 22 Oct 2008 04:38:47 +0000</pubDate>
		<dc:creator>zhiqiang</dc:creator>
				<category><![CDATA[计算机科学]]></category>
		<category><![CDATA[blogbus]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[搬家]]></category>

		<guid isPermaLink="false">http://zhiqiang.org/blog/posts/move-blogbus-data-to-wordpress.html</guid>
		<description><![CDATA[最近给某blog做了一次搬家，从Sina转到WordPress独立博客，网上已经有很多工具和方法，但可用而且耗用的不多，总是有一些乱七八糟的问题。这里说一下我是怎么做的吧，给大家多一个选择。
下面的这种方法不会丢失留言。
第一步，去blogbus的博客搬家工具下载回你的blog的数据（支持几乎所有主流BSP，比如sina, msn spaces等）。你会得到一个xml文档。
第二步，转成WordPress可以识...]]></description>
			<content:encoded><![CDATA[<p><label for="file">最近给某blog做了一次搬家，从Sina转到WordPress独立博客，网上已经有很多工具和方法，但可用而且耗用的不多，总是有一些乱七八糟的问题。这里说一下我是怎么做的吧，给大家多一个选择。</label></p>
<p><label for="file"><strong>下面的这种方法不会丢失留言。</strong></label></p>
<p><label for="file">第一步，去blogbus的<a href="http://banjia.blogbus.com/">博客搬家工具</a>下载回你的blog的数据（支持几乎所有主流BSP，比如sina, msn spaces等）。你会得到一个xml文档。</label></p>
<p><label for="file">第二步，转成WordPress可以识别的格式，用下面的上传框上传第一步得到的xml文档后，你会得到一个新的xml文档，它符合我们需要的WordPress格式。</label></p>
<p>
<form action="http://zhiqiang.org/tools/blogbus.php" method="post" enctype="multipart/form-data"><label for="file">BlogBus的搬家xml文件:</label>&#160;<br />
<input id="file" type="file" name="file" />
<input type="submit" name="submit" value='上传' /></form>
</p>
<p>最后一步，到你的WordPress后台导入第二步得到的xml文档即可，注意导入类型为WordPress。这样不会丢失留言。</p>
<p>注：第二步的后台处理文件借鉴了<a href="http://bingu.net/308/update-blogbus-to-wordpress/" target="_blank">bingu的转换程序</a>。</p>
<div><h2>相关文章</h2><ul><li><a href="http://yueweitang.org/blog/posts/how-delete-wordpress-category-base.html">如何去掉category permalink base？</a><br/>...</li><li><a href="http://yueweitang.org/blog/posts/google-gears-in-wordpress-26.html">WordPress 2.6中的Google Gears</a><br/>...</li><li><a href="http://yueweitang.org/blog/posts/wordpress-blog-has-different-domains.html">同一WordPress的blog可拥有多个域名</a><br/>...</li><li><a href="http://yueweitang.org/blog/posts/move-to-rent-server-cbn-speed-survey.html">搬家到CPH合租服务器 &#038; 速度调查</a><br/>...</li><li><a href="http://yueweitang.org/blog/posts/move-to-the-blog-server-bluehost.html">blog服务器搬家到bluehost</a><br/>...</li></ul></div>    <p></p>
    <hr noshade style="margin:0;height:1px" />
    <p>&copy; zhiqiang for <a href="http://yueweitang.org/blog">阅微堂</a>, 2008. | <a href="http://yueweitang.org/blog/posts/move-blogbus-data-to-wordpress.html">&#38142;&#25509;</a> | <a href="http://yueweitang.org/blog/posts/move-blogbus-data-to-wordpress.html#comments">34 &#26465;&#35780;&#35770;</a></p>]]></content:encoded>
			<wfw:commentRss>http://yueweitang.org/blog/posts/move-blogbus-data-to-wordpress.html/feed</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>PCP -- Probabilistic Checkable Proof</title>
		<link>http://yueweitang.org/blog/posts/introduce-probabilistic-checkable-proof.html</link>
		<comments>http://yueweitang.org/blog/posts/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[PS: PCP可以说是理论计算机领域近20年来的最重要的结果之一，它给了NP问题一个新的刻画，并且提供了一种证明近似算法下界的方法。下面是yijia写的PCP介绍。
作者：yijia
我们可以从最基本的NP开始。一般NP的定义是基于nondeterministic Turing machine，但我们也可以用类似于Interactive Proof的系统来刻画：
一个语言是在NP内当且仅当存在一个多项式时间的算法  (i.e., prover) 满足下面一系...]]></description>
			<content:encoded><![CDATA[<p>PS: PCP可以说是理论计算机领域近20年来的最重要的结果之一，它给了<a href="http://zhiqiang.org/blog/posts/preliminary-computer-theory-p-vs-np-an-overview-of-the-problem.html" target="_self">NP问题</a>一个新的刻画，并且提供了一种证明近似算法下界的方法。下面是yijia写的PCP介绍。</p>
<p>作者：<a href="http://zhangjialin.spaces.live.com/Blog/cns!8014D00B5A283C2F!2045.entry" target="_blank">yijia</a></p>
<p>我们可以从最基本的NP开始。一般NP的定义是基于nondeterministic Turing machine，但我们也可以用类似于Interactive Proof的系统来刻画：</p>
<p>一个语言<img src="http://yueweitang.org/blog/wp-content/cache/tex_f09564c9ca56850d4cd6b3319e541aee.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="Q" />是在NP内当且仅当存在一个多项式时间的算法<img src="http://yueweitang.org/blog/wp-content/cache/tex_5206560a306a2e085a437fd258eb57ce.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="V" />  (i.e., prover) 满足下面一系列条件：</p>
<ol>
<li><img src="http://yueweitang.org/blog/wp-content/cache/tex_5206560a306a2e085a437fd258eb57ce.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="V" />有两个输入<img src="http://yueweitang.org/blog/wp-content/cache/tex_9dd4e461268c8034f5c8564e155c67a6.png" style="vertical-align:middle; padding-bottom:2px;" class="tex" alt="x" />和<img src="http://yueweitang.org/blog/wp-content/cache/tex_415290769594460e2e485922904f345d.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="y" />，并且<img src="http://yueweitang.org/blog/wp-content/cache/tex_0c5f507a618aac8497cf1b5407949659.png" style="vertical-align:middle; " class="tex" alt="|y|=poly(|x|)" />；</li>
<li>对于任意的<img src="http://yueweitang.org/blog/wp-content/cache/tex_9dd4e461268c8034f5c8564e155c67a6.png" style="vertical-align:middle; padding-bottom:2px;" class="tex" alt="x" />， 我们有<br />
2.1. 如果<img src="http://yueweitang.org/blog/wp-content/cache/tex_55cb0fad3efd248662c6b70819aad41e.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="x \in Q" />，那么存在一个<img src="http://yueweitang.org/blog/wp-content/cache/tex_415290769594460e2e485922904f345d.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="y" />使得<img src="http://yueweitang.org/blog/wp-content/cache/tex_05550d1b7029ec8bc75af01b132dc666.png" style="vertical-align:middle; " class="tex" alt="V(x,y)=1" />，i.e., <img src="http://yueweitang.org/blog/wp-content/cache/tex_5206560a306a2e085a437fd258eb57ce.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="V" /> accepts <img src="http://yueweitang.org/blog/wp-content/cache/tex_90cbc22edf225adf8a68974f51227f05.png" style="vertical-align:middle; " class="tex" alt="(x,y)" />;<br />
2.2 如果<img src="http://yueweitang.org/blog/wp-content/cache/tex_ae9ccbbf4aa6a9d46d7e2cb3a8cd5ff3.png" style="vertical-align:middle; " class="tex" alt="x \not\in Q" />，那么对于任意y都有<img src="http://yueweitang.org/blog/wp-content/cache/tex_9dc1a0717474ce723ed03113d36f2e56.png" style="vertical-align:middle; " class="tex" alt="V(x,y)=0" />，i.e.,<img src="http://yueweitang.org/blog/wp-content/cache/tex_5206560a306a2e085a437fd258eb57ce.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="V" /> rejects <img src="http://yueweitang.org/blog/wp-content/cache/tex_90cbc22edf225adf8a68974f51227f05.png" style="vertical-align:middle; " class="tex" alt="(x,y)" />.</li>
</ol>
<p>在2.1中，<img src="http://yueweitang.org/blog/wp-content/cache/tex_415290769594460e2e485922904f345d.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="y" />可以看成是<img src="http://yueweitang.org/blog/wp-content/cache/tex_55cb0fad3efd248662c6b70819aad41e.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="x \in Q" /> 的一个证明。对于3Sat问题，我们可以设计这样的<img src="http://yueweitang.org/blog/wp-content/cache/tex_5206560a306a2e085a437fd258eb57ce.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="V" />: <img src="http://yueweitang.org/blog/wp-content/cache/tex_9dd4e461268c8034f5c8564e155c67a6.png" style="vertical-align:middle; padding-bottom:2px;" class="tex" alt="x" />是一个3CNF公式，而y是一个对<img src="http://yueweitang.org/blog/wp-content/cache/tex_9dd4e461268c8034f5c8564e155c67a6.png" style="vertical-align:middle; padding-bottom:2px;" class="tex" alt="x" />中所有变元的赋值。Prover <img src="http://yueweitang.org/blog/wp-content/cache/tex_5206560a306a2e085a437fd258eb57ce.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="V" />就是用来验证y是否满足x。直观上<img src="http://yueweitang.org/blog/wp-content/cache/tex_5206560a306a2e085a437fd258eb57ce.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="V" />必须读完整个<img src="http://yueweitang.org/blog/wp-content/cache/tex_415290769594460e2e485922904f345d.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="y" />才能确认<img src="http://yueweitang.org/blog/wp-content/cache/tex_51f48eb6d63abe9d09170574d43f0353.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="x\in Q" />。 那么有没有可能改进这一点，让<img src="http://yueweitang.org/blog/wp-content/cache/tex_5206560a306a2e085a437fd258eb57ce.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="V" />只读<img src="http://yueweitang.org/blog/wp-content/cache/tex_415290769594460e2e485922904f345d.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="y" />的一部分，来增加效率? 比如现有的Graph Minor Theory的证明有几百页，如果只要其中几页就能确认其正确那么就会省去Reviewer的很多时间。如果<img src="http://yueweitang.org/blog/wp-content/cache/tex_5206560a306a2e085a437fd258eb57ce.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="V" />是个确定时间的算法，这就等价于要求<img src="http://yueweitang.org/blog/wp-content/cache/tex_41af7600620f1f233be00c0fffb2b9d2.png" style="vertical-align:middle; " class="tex" alt="|y|=o(|x|)" />。那么如果每个NP问题都有这样的Prover， 我们就可以证明NP包含Subexponential Time里。一般公认这不可能成立。</p>
<p>但如果我们允许<img src="http://yueweitang.org/blog/wp-content/cache/tex_5206560a306a2e085a437fd258eb57ce.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="V" />使用Randomness，问题就开始变得有趣了。这也就是Probabilistic Checkable Proof (PCP)。</p>
<p>要定义一个PCP系统, 我们先要给定两个函数<img src="http://yueweitang.org/blog/wp-content/cache/tex_a24e18feb278f6b3663fc047697f13b3.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="r,q: N \rightarrow N" />。我们说一个随机算法<img src="http://yueweitang.org/blog/wp-content/cache/tex_5206560a306a2e085a437fd258eb57ce.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="V" />是一个(r(n),q(n))-restricted verifier, 如果<img src="http://yueweitang.org/blog/wp-content/cache/tex_5206560a306a2e085a437fd258eb57ce.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="V" />在输入<img src="http://yueweitang.org/blog/wp-content/cache/tex_90cbc22edf225adf8a68974f51227f05.png" style="vertical-align:middle; " class="tex" alt="(x,y)" />上使用<img src="http://yueweitang.org/blog/wp-content/cache/tex_d86236b599fa444d880396e23fdaebb1.png" style="vertical-align:middle; " class="tex" alt="O(r(|x|))" />位随机数，访问<img src="http://yueweitang.org/blog/wp-content/cache/tex_415290769594460e2e485922904f345d.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="y" />的<img src="http://yueweitang.org/blog/wp-content/cache/tex_d0cb8f11912580bcab56771bfb2898b4.png" style="vertical-align:middle; " class="tex" alt="O(q(|x|))" />位。直观上，V 扔了<img src="http://yueweitang.org/blog/wp-content/cache/tex_d86236b599fa444d880396e23fdaebb1.png" style="vertical-align:middle; " class="tex" alt="O(r(|x|))" />个骰子，然后根据结果去访问证明y 的<img src="http://yueweitang.org/blog/wp-content/cache/tex_d0cb8f11912580bcab56771bfb2898b4.png" style="vertical-align:middle; " class="tex" alt="O(q(|x|))" />位。 当然V还要是一个多项式时间算法，<img src="http://yueweitang.org/blog/wp-content/cache/tex_0c5f507a618aac8497cf1b5407949659.png" style="vertical-align:middle; " class="tex" alt="|y|=poly(|x|)" />， 同时满足所谓的non-adaptive条件（写起来太罗嗦了，所以就不写了)。</p>
<p>我们说这样的<img src="http://yueweitang.org/blog/wp-content/cache/tex_5206560a306a2e085a437fd258eb57ce.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="V" />定义了一个语言<img src="http://yueweitang.org/blog/wp-content/cache/tex_f09564c9ca56850d4cd6b3319e541aee.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="Q" />当且仅当对于任意的<img src="http://yueweitang.org/blog/wp-content/cache/tex_9dd4e461268c8034f5c8564e155c67a6.png" style="vertical-align:middle; padding-bottom:2px;" class="tex" alt="x" />， 我们有<br />
(a) 如果<img src="http://yueweitang.org/blog/wp-content/cache/tex_55cb0fad3efd248662c6b70819aad41e.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="x \in Q" />，那么存在一个y 使得<img src="http://yueweitang.org/blog/wp-content/cache/tex_50778c6222040e7e7f5affe04bb3315c.png" style="vertical-align:middle; " class="tex" alt="Pr[V(x,y)=1]=1" />;<br />
(b) 如果<img src="http://yueweitang.org/blog/wp-content/cache/tex_ae9ccbbf4aa6a9d46d7e2cb3a8cd5ff3.png" style="vertical-align:middle; " class="tex" alt="x \not\in Q" />，那么对于任意y都有<img src="http://yueweitang.org/blog/wp-content/cache/tex_a807fd252e9a8502d4c666324de4d21b.png" style="vertical-align:middle; " class="tex" alt="Pr[V(x,y)=1]&lt;1/2" />.</p>
<p>要注意的是并不是所有的<img src="http://yueweitang.org/blog/wp-content/cache/tex_5206560a306a2e085a437fd258eb57ce.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="V" />都定义了一个语言，因为(b)不是总能满足的。</p>
<p>非常壮观的PCP定理就是</p>
<p><strong>Theorem 1. NP=PCP(<img src="http://yueweitang.org/blog/wp-content/cache/tex_52e05a8b1b15239cc2aa291731c6f87e.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="\log n,1" />)</strong></p>
<p>也就是说，对于每个NP语言我们都可以构造一个<img src="http://yueweitang.org/blog/wp-content/cache/tex_5206560a306a2e085a437fd258eb57ce.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="V" />，在每个<img src="http://yueweitang.org/blog/wp-content/cache/tex_90cbc22edf225adf8a68974f51227f05.png" style="vertical-align:middle; " class="tex" alt="(x,y)" />上，仅使用<img src="http://yueweitang.org/blog/wp-content/cache/tex_e255adac467bb5f89a8a36c18fdf4267.png" style="vertical-align:middle; " class="tex" alt="O(\log|x|)" />位随机数，访问证明<img src="http://yueweitang.org/blog/wp-content/cache/tex_415290769594460e2e485922904f345d.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="y" />中的常数多位，就能以很高的概率正确判断是否<img src="http://yueweitang.org/blog/wp-content/cache/tex_55cb0fad3efd248662c6b70819aad41e.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="x \in Q" />。</p>
<p>由于可以证明PCP(<img src="http://yueweitang.org/blog/wp-content/cache/tex_52e05a8b1b15239cc2aa291731c6f87e.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="\log n,1" />)对于多项式时间规约(PTIME reductions)封闭，所以PCP定理也可以叙述为</p>
<p><strong>Theorem 2. 3Sat <img src="http://yueweitang.org/blog/wp-content/cache/tex_986c22f151c46acac223b858e3fcf6fd.png" style="vertical-align:middle; padding-bottom:2px;" class="tex" alt="\in" /> PCP(<img src="http://yueweitang.org/blog/wp-content/cache/tex_52e05a8b1b15239cc2aa291731c6f87e.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="\log n,1" />)</strong></p>
<p>除了本身非常有趣和counter intuitive，PCP的一个重要应用就是近似算法的下界:</p>
<p><strong>Corollary. 如果NP<img src="http://yueweitang.org/blog/wp-content/cache/tex_f9bb70af966a4abbd08b776e6c5971ad.png" style="vertical-align:middle; " class="tex" alt="\ne" />P, 那么Max-3Sat没有PTAS，同时Max-Clique不存在constant approximation。</strong></p>
<p>这个结论的证明就是通过PCP，构造所谓的Gap Instances：给定常数<img src="http://yueweitang.org/blog/wp-content/cache/tex_e6885dfcb4c4a8ddb730c59135ffe731.png" style="vertical-align:middle; " class="tex" alt="\delta \in (0,1)" />，<img src="http://yueweitang.org/blog/wp-content/cache/tex_3574f45dd11753e37c4def86a7f0c29b.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="Gap_\delta" />-3Sat是如下的问题</p>
<p>input: 一个3CNF公式<img src="http://yueweitang.org/blog/wp-content/cache/tex_9dd4e461268c8034f5c8564e155c67a6.png" style="vertical-align:middle; padding-bottom:2px;" class="tex" alt="x" />使得要么存在一个满足<img src="http://yueweitang.org/blog/wp-content/cache/tex_9dd4e461268c8034f5c8564e155c67a6.png" style="vertical-align:middle; padding-bottom:2px;" class="tex" alt="x" />的赋值，要么所有的赋值最多满足<img src="http://yueweitang.org/blog/wp-content/cache/tex_77a3b715842b45e440a5bee15357ad29.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="\delta" />-fraction的clauses。<br />
question：<img src="http://yueweitang.org/blog/wp-content/cache/tex_9dd4e461268c8034f5c8564e155c67a6.png" style="vertical-align:middle; padding-bottom:2px;" class="tex" alt="x" /> 是否可满足？</p>
<p><strong>Corollary 3. 存在一个<img src="http://yueweitang.org/blog/wp-content/cache/tex_77a3b715842b45e440a5bee15357ad29.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="\delta" />，使得存在一个3Sat到<img src="http://yueweitang.org/blog/wp-content/cache/tex_3574f45dd11753e37c4def86a7f0c29b.png" style="vertical-align:middle; padding-bottom:1px;" class="tex" alt="Gap_\delta" />-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><h2>相关文章</h2><ul><li><a href="http://yueweitang.org/blog/posts/why-the-world-needs-quantum-mechanics.html">为什么这个世界需要量子机制</a><br/>...</li><li><a href="http://yueweitang.org/blog/posts/advanced-theoretical-computer-science-i-lectures.html">高等理论计算机I</a><br/>...</li><li><a href="http://yueweitang.org/blog/posts/most-windows-game-are-np-complete.html">Windows游戏中的NP完全问题</a><br/>...</li><li><a href="http://yueweitang.org/blog/posts/minesweeper-is-np-complete.html">扫雷是NP完全问题</a><br/>...</li><li><a href="http://yueweitang.org/blog/posts/complexity-of-prime-sieve.html">素数筛法的复杂度</a><br/>...</li></ul></div>    <p></p>
    <hr noshade style="margin:0;height:1px" />
    <p>&copy; zhiqiang for <a href="http://yueweitang.org/blog">阅微堂</a>, 2008. | <a href="http://yueweitang.org/blog/posts/introduce-probabilistic-checkable-proof.html">&#38142;&#25509;</a> | <a href="http://yueweitang.org/blog/posts/introduce-probabilistic-checkable-proof.html#comments">6 &#26465;&#35780;&#35770;</a></p>]]></content:encoded>
			<wfw:commentRss>http://yueweitang.org/blog/posts/introduce-probabilistic-checkable-proof.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
