<?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/%e6%a8%a1%e5%9e%8b/feed" rel="self" type="application/rss+xml" />
	<link>http://zhiqiang.org/blog</link>
	<description>zhiqiang&#039;s personal blog</description>
	<lastBuildDate>Tue, 22 Jun 2010 13:08:44 +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/computer-science/preliminary-computer-theory-algorithms-and-calculation-model.html</link>
		<comments>http://zhiqiang.org/blog/science/computer-science/preliminary-computer-theory-algorithms-and-calculation-model.html#comments</comments>
		<pubDate>Wed, 16 Aug 2006 01:27:26 +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/390.html</guid>
		<description><![CDATA[下面是wikipedia上算法的定义：
算法是指完成一个任务所需要的具体步骤和方法。也就是说给定初始状态或输入数据，经过计算机程序的有限次运算，能够得出所要求或期望的终止状态或输出数据。
算法常常含有重复的步骤和一些比较或逻辑判断。如果一个算法有缺陷，或不适合于某个问题，执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完...]]></description>
			<content:encoded><![CDATA[<p dir="ltr">下面是wikipedia上<a href="http://zh.wikipedia.org/wiki/算法" target="_blank">算法的定义</a>：</p>
<blockquote dir="ltr" style="margin-right: 0px"><p>算法是指完成一个任务所需要的具体步骤和方法。也就是说给定初始状态或输入数据，经过<font color="#ff0000">计算机程序</font>的有限次运算，能够得出所要求或期望的终止状态或输出数据。</p>
<p>算法常常含有重复的步骤和一些比较或逻辑判断。如果一个算法有缺陷，或不适合于某个问题，执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。</p></blockquote>
<p dir="ltr" align="left">一个简单而且耳熟能详的算法的例子是求最大公约数的<strong>辗转相除法</strong>：给出两个数，要求出他们俩的最大公约数。在小学的时候，我们就知道这样做就行了：将大数除以小数，用所得余数替换大数，继续用这两个数中大者除以小者，用所得余数替换较大者，继续下去，直到所得余数为0，此时除数即为所求的最大公约数。下面是一个实例：(15, 21) = (15, 6) = (3, 6) = (3, 0) = 3。又如，要判断某个数是否为质数，只需枚举所有比它小的数，检验是否其约数即可。</p>
<p dir="ltr" align="left">算法是理论计算机的灵魂。几乎所有问题都围绕它而来。为了讨论算法的性质，在理论计算机中，算法已不限于只是上面定义中的计算机程序。或者说，这里计算机的含义被大大扩广了。</p>
<p dir="ltr" align="left">我们平时所说和所使用的计算机，基于图灵提出的<strong>确定型图灵机</strong>模型。它是最好理解的：给出固定的程式，模型按照程式和输入完全<font color="#ff0000">确定性</font>地运行。</p>
<p dir="ltr" align="left">但为了理解算法和这种确定型图灵机的能力，人们又发展了许多其它各式各样的图灵机模型。其中最为有名的是<strong>非确定型图灵机</strong>。这种计算模型，它在进行计算的时候，会自动选择最优路径进行计算。通俗地说，它<font color="#ff0000">有预测能力</font>。比如说，为了说明某个数是合数，非确定型图灵机会猜测一个数，恰好是其因子，从而证明了它不是质数。</p>
<p dir="ltr" align="left">确定型和非确定型图灵机的计算性能所引起的<strong>P vs NP</strong>问题，一直是理论计算机科学的核心问题，这点下面专文论述。</p>
<p dir="ltr" align="left">另一个引起广泛关注的计算机模型是<strong>量子计算机模型</strong>。与上面的非确定型图灵机只存在于人们的想象中不同，量子计算机在物理上是可以实现的。关于量子计算理论，以后也有单独的介绍性文章。</p>
<p dir="ltr" align="left">虽然上面的各种计算模型的效率可能不同，比如非确定性图灵机判定一个数是合数便要快得多，但是它们的计算能力是完全一样的。也就是在某个计算模型上面运行的算法，可以被其余模型模拟实现。</p>
<p dir="ltr" align="left">这些计算模型的计算能力是一样的，那是不是世界上所有问题都有算法呢？看上去这似乎是一个哲学问题，但答案早就有了，有些问题是不可能能通过算法求解的，连下面这个看上去很简单的问题都不行：给出一些分数（指12/23，18/9这样的），问是否可以从中选出若干个分数数（可以重复选取），使得按一定顺序排起来，其分母连起来和分子连起来恰好一样？</p>
<div><h2>相关文章</h2><ul><li><a href="http://zhiqiang.org/blog/science/computer-science/3-color-a-simple-graph.html">一个简单图的三染色算法问题</a> <small>注: 这个问题来自China Theory Week 2008的Open Problems Session。 我们知道在数学里证明一个东西的存在性的时候，有时候只证明了“存在性”，而且在证明过程...</small></li><li><a href="http://zhiqiang.org/blog/science/computer-science/programs-depend-on-date-struct-not-algorithm.html">编程的核心是数据结构，而不是算法</a> <small>Rob Pike, 最伟大的 C 语言大师之一 , 在Notes on C Programming(英文原文)中从另一个稍微不同的角度表述了 Unix 的哲学:   你无法断定程序会在什么地方耗费运...</small></li><li><a href="http://zhiqiang.org/blog/memopad/itcs-2009-spring-curriculum-schedule-table.html">iTCS课程表</a> <small>最近有人问起iTCS（理论计算机研究中心的课程），下面即是（来源）： &nbsp;     时间  周一  周...</small></li><li><a href="http://zhiqiang.org/blog/science/computer-science/complexity-of-prime-sieve.html">素数筛法的复杂度</a> <small>Xie Xie给我看了一个链接性能调优--永远超乎想象，里面提到了素数筛法的复杂度，作者用实验发现此筛法是线形的。 所谓素数筛法就是那个求小于n的...</small></li><li><a href="http://zhiqiang.org/blog/science/computer-science/another-perfect-shuffle-algorithm.html">Perfect Shuffle的算法</a> <small>珍爱生命，远离政治。我们继续讨论算法。 2008/04/01补充：此算法有重大缺陷。详情请见留言部分。 一年前，我们讨论过一个算法问题，perfect shuffle，...</small></li><li><a href="http://zhiqiang.org/blog/science/computer-science/median-algorithm-of-ordered-matrix.html">有序矩阵的中位数算法</a> <small>给定$$n\times n$$的实数矩阵，每行和每列都是递增的，求这$$n^2$$个数的中位数。 使用类似Tarjan的线性中位数的方法，每次找每列中位数，然后找中位数...</small></li><li><a href="http://zhiqiang.org/blog/science/computer-science/download-encyclopedia-of-algorithm.html">算法百科全书 - Encyclopedia of Algorithms</a> <small>Xie Xie推荐了一本今年出版的一本新书，Encyclopedia of Algorithms，全书1200页，涵盖各类有名问题的算法，概率算法，近似算法，量子算法等。 翻了一下，...</small></li><li><a href="http://zhiqiang.org/blog/science/mathmatics-in-rubik-cube-and-algorithm.html">魔方里的数学</a> <small>今天香港中文大学的Prof. Cai给我们上graph algorithm。第一节课上教我们玩魔方，先给每人发了一个。我喜欢这样的教学...</small></li><li><a href="http://zhiqiang.org/blog/science/computer-science/inverse-square-root-algorithm-analysis.html">求平方根倒数的算法</a> <small>下面这个求$$1/\sqrt{x}$$的函数号称比直接调用sqrt库函数快4倍，来自游戏Quake III的源代码。     float InvSqrt (float x){
    float xhalf = 0.5f*x;
    int i = *(int*)&amp;x...</small></li><li><a href="http://zhiqiang.org/blog/science/computer-science/graph-isomorphism-is-polynomial.html">图同构问题属于P？</a> <small>更新：证明的关键一步发现错误，作者更新了论文，结论甚至论文标题都改了（废话），新版本On the graph isomorphism problem。  提交论文到arxiv不需要审阅...</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-algorithms-and-calculation-model.html">&#38142;&#25509;</a> | <a href="http://zhiqiang.org/blog/science/computer-science/preliminary-computer-theory-algorithms-and-calculation-model.html#comments">15 &#26465;&#35780;&#35770;</a></p>]]></content:encoded>
			<wfw:commentRss>http://zhiqiang.org/blog/science/computer-science/preliminary-computer-theory-algorithms-and-calculation-model.html/feed</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
	</channel>
</rss>
