计算性与复杂性:从基础模型到函数代数的探索
1. 函数与计算的基础概念
函数是赋予计算意义的基本且强大的方式,它能概括程序的行为。每个程序都可被解释为一个函数,该函数将程序从环境中获取的任何可能输入值映射到其产生的特定输出值(若有输出)。当程序在某些输入下不终止时,对应的函数为部分函数。若函数 (f) 是程序 (P) 的解释,则称 (f) 是由 (P) 计算的函数,即可计算函数。可计算函数的概念可以通过多种方式形式化。
计算可计算函数的过程需是有效的,即能转化为算法,但算法所需资源量并无保证。有些算法效率极低,所需资源可能源于设计不佳,也可能是函数本身特性所致。计算复杂性领域旨在根据函数计算所需资源量对其进行分类。
2. 计数器机器
计数器机器是一种简单的计算模型,由有限个计数器组成,每个计数器可存储一个自然数。计数器可通过增加其存储的自然数或测试其内容来操作。计数器机器由计数器程序进行编程,计数器程序是有限的指令序列。
计数器程序的语言 (C) 定义如下:
P ::= I | I,P
I ::= inc(N) | jmpz(N,N)
其中 (N) 为自然数,如 12、0、67123 等。例如,计数器程序 jmpz(0,4),inc(1),jmpz(2,1) 可将寄存器 (R_0) 的内容复制到 (R_1)(前提是 (n > 1) 时 (R_n) 的初始内容为 0)。具体执行过程如下表所示,当 (R_0) 初始值为 4 时:
| 当前指令 | (R_0) | (R_1
超级会员免费看
订阅专栏 解锁全文
2579

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



