加权自动机编辑距离的计算方法与应用
1. 字符串延迟的高效表示
字符串延迟可以通过后缀树进行紧凑且高效的表示。具体操作如下:
- 构建树 U:对树 T 进行深度优先搜索,树 U 代表 T 中所有路径的输入和输出标签。U 的大小与 T 呈线性关系。
- 构建后缀树 V:可以在与 U 的节点数乘以字母表大小成正比的时间内构建 U 的后缀树 V,时间复杂度为 O((|Σ| + |∆|) · (|Q| + |E|))。
- 表示字符串延迟:每个字符串延迟 x 是 U 所代表字符串的后缀,可由 V 的两个节点 n1 和 n2 以及从 n1 到 n2 的边的字符串标签中的位置来表示。
该算法在构建新转换时,计算 xa 或 a−1x(a 是输入或输出字母表中的符号)的操作可以在常数时间内完成。这使得构建每个新转换的操作能在常数时间内完成,包括比较新创建的状态 (q′, x′, ϵ) 与现有状态 (q, x, ϵ) 的成本。该算法的最坏情况空间和时间复杂度为 O((|Q| + |E|)(|Σ|d[T ] + |∆|d[T ])),不过这并非精确的复杂度评估。
此外,该算法不依赖于 S 的队列规则,T ′ 中离开状态 p′ = (q, x, y) 的转换仅取决于 p′,因此 T ′ 的转换可以按需自然计算。并且该算法在很大程度上独立于半环 K。
2. ϵ - 移除
同步算法的结果可能包含 ϵ - 转换(输入和输出均为空字符串的转换),即使输入中没有。可以使用通用的 ϵ - 移除算法从 T ′ 计算出一个等价的无 ϵ - 转换的加权转换器。
ϵ - 移除不会使输入和输出标签相互偏移,因此应用于 T ′ 的结
超级会员免费看
订阅专栏 解锁全文
21

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



