单词自动机与时间粒度:NCSSA的优化探索
1. NCSSA的等价性问题
在处理非确定性字符序列自动机(NCSSA)时,等价性问题是一个关键的研究点。对于两个给定的NCSSA A1和A2,判断它们是否识别不同的无限(最终周期性)单词w1和w2,可通过以下步骤实现:
1. 猜测一个位置1 ⩽ i ⩽ NA1NA2,其中NA1 = O(|A1| 2|A1|) ,NA2 = O(|A2| 2|A2|) 。此猜测过程可在非确定性多项式时间O(|A1| log |A1| + |A2| log |A2|) 内完成。
2. 检查w1(i) ≠ w2(i) 是否成立,这一步可在确定性多项式时间O(|A1|2 + |A2|2) 内完成,例如使用本节开头描述的GetSymbol过程。
通过上述论证可知,NCSSA的等价性问题属于co - NP类,但目前是否存在解决该问题的确定性多项式时间算法仍是一个开放问题。
2. NCSSA的优化问题
2.1 优化问题的定义
在NCSSA的应用中,有两个重要的优化问题:
- 复杂度优化问题 :尽可能降低给定NCSSA A的复杂度∥A∥。
- 状态优化问题 :最小化给定NCSSA A的状态数量。
虽然NCSSA的复杂度和状态数量相关(前者最多是后者的二次函数),但复杂度最优和状态最优的自动机可能有很大差异。例如,图2.8中的三个NCSSA A1、A2和A3识别相同的有限单词■■□■■□■■□,其中A1和A2是状态最优的(n(A1) = n(A2) = 4,而n(A3) = 6),A1和
超级会员免费看
订阅专栏 解锁全文
1378

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



