计算基础分析与图灵机启发的计算机科学成果
1. 计算的基础分析
在算法实现中,节点可能用整数表示,但算法通常不应检查节点的奇偶性或比较节点大小,因为这些是与图算法无关的实现细节。若算法利用节点的整数表示,其词汇表应反映相关的算术部分。
根据柯尔莫哥洛夫对顺序算法的非正式定义,任何一步的工作量是有界的。但如何衡量步骤复杂度或一步的工作量呢?抽象状态约束能提供帮助。
顺序时间约束表明,算法 A 的下一个状态 τA(X) 仅取决于当前状态 X。执行者无需记住任何历史,所有信息都反映在状态中。若执行者是人类并在草稿纸上记录,那么这张纸应是计算状态的一部分。
为了将给定状态 X 转变为 τA(X),算法 A 会探索 X 的一部分,然后对 X 的谓词和操作的值进行必要更改。根据柯尔莫哥洛夫的定义,探索部分(“活动区域”)是有界的,从 X 到 τA(X) 的变化(记为 ΔA(X))仅取决于探索结果。形式上,ΔA(X) 可定义为方程 F(¯a) = b 的集合,其中 b 是词汇函数 F 在点 ¯a 的新值。
算法如何知道探索什么和更改什么呢?这些信息通常由程序提供,且应适用于所有状态。根据抽象状态约束,应使用算法 A 的词汇表以符号形式给出。
有界探索:存在算法 A 词汇表中的有限项集 T,使得当 A 的状态 X 和 Y 在 T 上一致时,ΔA(X) = ΔA(Y)。
下面是相关概念的关系图:
graph LR
A[顺序算法] --> B[顺序时间约束]
A --> C[抽象状态约束]
A --&g
超级会员免费看
订阅专栏 解锁全文
344

被折叠的 条评论
为什么被折叠?



