加权自动机学习:从理论到实践
1. 加权自动机标准化
在处理加权自动机(WFA)的过程中,标准化是一个重要的步骤。标准化的目的是从一个表示有理函数 $f$ 的输入 WFA $A$ 计算出一个最小的 WFA $B$。
- 算法步骤 :
1. 第一阶段 :找到行向量 $(v_1, \ldots, v_m)$ 作为向量空间的基,该向量空间由 ${\alpha_{A}^{\top}A_w : w \in \Sigma^ }$ 生成,且对于任意 $j \in [1, m]$ 和 $a \in \Sigma$,$v_jA_a$ 都在 $(v_1, \ldots, v_m)$ 的张成空间内。具体构造时,从 $v_1 = \alpha_{A}^{\top}$ 开始,逐步扩充当前向量序列 $(v_1, \ldots, v_t)$。对于任意 $j \in [1, t]$ 和 $a \in \Sigma$,选择向量 $w$,若 $v_jA_a$ 与 $(v_1, \ldots, v_t)$ 线性相关,则 $w = 0$;否则,使 $(v_1, \ldots, v_t, w)$ 按分量顺序呈三角形式,并令 $v_{t + 1} = w$。同时,根据 $w$ 是否为 $0$ 计算 $v_jA_a$ 的分量。此阶段可定义一个与 $A$ 等价的 WFA $B’$,其状态数为 $\dim(\text{span}({\alpha_{A}^{\top}A_w : w \in \Sigma^ }))$。该阶段的时间复杂度为 $O(|\Sigma||Q_A|^3)$ 半环运算,因为每次迭代确定 $w$ 的复杂度为 $O(|\Sigma||Q_
超级会员免费看
订阅专栏 解锁全文
8

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



