解读taocp中对算法的形式化定义[水上原创]

来源:互联网 发布:澳门风云知乎 编辑:程序博客网 时间:2024/04/29 18:00
    在整理完MIX部分的内容,有了大概能看懂MIX程序的基础之后,开始看第一章前边和第二章的内容,这两天翻来翻去的看,的确让人头大,于是又在google上搜索,看看有没有前人学习的痕迹做参考,倒是找到了几页还算有用的内容。
    但是绝大多数人来说,计算机科学与技术所涉及的数学理论的确是让人头疼的问题,我也一样。因为本科时没有这么有觉悟的去学习数学知识,在浏览taocp的数学准备部分,真的是极浅层次的过了一下,大概知道有哪些内容,但这些内容在说什么,有点不知所云。并且还是有目的不明确的顾虑,这些纯粹的数学基础如果没有应用起来,恐怕达不到提高能力的效果,也不会留下什么多少印象。
    可是我们必须要往前走,即使伤痕累累。也有提到一本具体数学的书的,于是下载下来,翻了翻,但有点不愿意先看完具体数学再看taocp,我倒是希望作为一个参考。思路倒是有,就是直接从第二章开始先硬着头皮看下去,遇到数学问题不懂得再从taocp的数学准备和具体数学部分找。顺便提下,第一章的后几节也是很有思想的内容,但我想回头再看,这些内容隐约都是对了解操作系统原理和编译原理是有重要价值和启发意义的。
   于是在这里我将试着这样做整理,即对于一个算法专题,我在看书时觉得和数学基础相关的内容,就把它整理出来,放在这里。所以都是摸索着学习taocp,其实也确实不知道该这么看taocp。而且这里的整理也只能是逐步完善的。自我鼓励下,希望能坚持下去,看taocp时,感觉taocp的确写的已经足够好了,把很多东西写得很透彻。
   
--------------------------------------------------------------------------------
    在第一章的第7页,taocp给算法下了一个形式化定义,我按自己的理解来解读一下。
    其实taocp就是想用数学方式来描述一下算法的本质。算法可以用一个四元组表示,(Q,I,Ω,f)。
    首先算法是有一个过程的,在这个过程里有很多个步骤,在每一个步骤之后都呈现出或不同或相同的过程状态,而Q则就是指所有这些可能呈现的状态的集合,I则表示输入步骤可能呈现出的状态集合,Ω则表示输出步骤可能呈现出的状态集合。所以Q包含I和Ω。这个过程的所有步骤是要按照规则一步一步来执行的,这个规则抽象为f来表示。
    那么现在我们来理解一下taocp的话:“f is a function from Q into itself, Furthermore,f should leave Ω pointwize fixed; that is f(q) should equal q for all elements q of Ω. Each input x in the set I defines a computational sequence, X0, X1, X2, ..., as follows: X0 = x  and  Xk+1 =  f(Xk) for k >=0.  The computational sequence is said to terminate in k steps ,if k is the smallest integer for which Xk is in Ω, and in this case, it is said to produce the output Xk from x. (Note that if Xk is in Ω, so is Xk+1,because Xk+1=Xk in such a case)”。[注意k+1,k都是下标]
    上面这段话我也不知如何翻译,只能按自己的理解解释。就是说,f的定义域和值域都是Q。但对于Ω来说,f规则应该能做到,对任何Ω元素来说,在过程进行到该元素表示的状态时(某个输出状态),这个过程的状态应该不再发生变化了,在这个意义上可以说,“f使Ω逐步确定”,“f(q)必须等于q”。
    因为f规则必然是按步骤执行的过程,所以对于每一步骤进行前的状态Xk和每一步骤进行后的状态Xk+1,都是Q集合中的某个元素。但如果x是I中的元素,那么其实确定了一个由X0到Xn的一个的状态序列。其中X0=x 属于I,Xn按迭代公式得到并且属于Ω。那么下面的taocp中讲的,假设这个过程执行了k步终止,则从0到k共k+1个过程状态,状态Xk属于Ω,而且继续的步骤比如第k+1次使用f规则,过程状态不改变还是Xk,那么显然k是产生状态Xk的最小整数。这时,我们就说这个过程由x得到输出Xk。
--------------------------------------------------------------------------------
继续整理中,欢迎交流!