自动机执行信息率研究
1. 引言
在软件开发和理论研究中,程序的执行复杂度是一个重要的研究指标。从程序员的视角来看,当把程序视为白盒时,程序执行路径的复杂度是衡量程序语义复杂度的有效指标。这一指标在软件测试中十分有用,通过覆盖准则选择的测试用例集可以重新评估,以确定对程序语义的覆盖程度。
自动机作为现代程序的基础和通用模型,为其执行提供复杂度度量,有助于深入理解现实世界中的程序。理论上,程序的执行或运行是一系列指令的序列,可以看作一个“单词”。将自动机在所有可能输入单词上的接受运行收集起来,就形成了一个语言 (L)。那么,如何为这个语言 (L) 定义一个合适的复杂度度量呢?传统自动机理论从设备识别 (L) 中单词所需的计算资源(如时间、空间、存储等)来衡量语言复杂度,但这些度量与程序的语义复杂度并非直接相关。
香农提出的信息率概念,为语言复杂度的度量提供了新的视角。信息率渐近地衡量了无损编码语言 (L) 中长度为 (n) 的单词所需的比特率。本文将研究各类自动机的执行信息率,并探讨其可计算性。
1.1 自动机执行信息率的意义
自动机的执行信息率不仅是理论上的复杂度指标,在实际应用中也具有重要意义。当将 C 程序建模为自动机时,执行信息率可以帮助估计执行测试所需的测试用例数量,为软件测试提供了量化的依据。
1.2 研究目标
本文的主要目标是研究不同类型自动机的执行信息率,包括有限自动机(NFA)、双向 NFA(2NFA)、反转有界非确定性计数器机器(NCM)等,并探讨其可计算性。同时,通过对 C 程序的实验,验证估计程序执行信息率的可行性。
自动机执行信息率研究
超级会员免费看
订阅专栏 解锁全文
18

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



