状态验证与UIO序列搜索算法解析
1. 引言
在自动机理论和系统测试领域,确定Mealy机的某个状态是否存在唯一输入输出(UIO)序列是一个重要问题。该问题通常是PSPACE完全的,意味着在一般情况下难以高效解决。不过,在实际应用中,针对许多机器,这个问题是可解的,并且UIO序列在许多一致性测试算法中发挥着关键作用。本文将深入探讨相关概念和算法,包括确定性有限自动机、收敛和推理图,以及几种寻找UIO序列的算法。
2. 确定性有限自动机与最短接受字符串
考虑n个基于字母表{0}的确定性有限自动机A1, …, An,其中Ai的转移形成长度为pi的循环,pi是第i个质数。Ai的唯一接受状态是初始状态的前一个状态。因此,Ai接受0k当且仅当pi | (k + 1)。这意味着所有自动机都接受的最短字符串长度为m = ∏i=1n pi - 1。
假设存在长度m′ < m的字符串被所有自动机接受,那么对于所有i ∈ {1, …, n},都有pi | (m′ + 1)。根据唯一质因数分解定理,m′ + 1 = ∏i=1n pi,这产生了矛盾。
需要注意的是,∏i=1n pi - 1 ≥ 2n在自动机的总表示大小上是指数级的,而自动机的总表示大小根据高斯质数定理在n上是多项式级的。
3. 收敛和推理图
3.1 收敛的定义
设Mealy机M有状态t1, t2, …, tk,它们都有标记为a/b的边指向状态s。则:
- 状态t1, …, tk是收敛状态。
- 状态s是收敛状态。
- 标记为a/b的边(t1, s), …, (tk, s)是收敛边。
超级会员免费看
订阅专栏 解锁全文
60

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



