Visibly Pushdown Automata:通用性与包含性的反链算法解析
1. 引言
在形式语言与自动机理论领域,可见下推自动机(Visibly Pushdown Automata,VPAs)是一种强大的工具,用于处理特定类型的语言。传统上,检查VPAs的通用性问题通常采用确定化、求补和检查空集的标准方法,但这种方法在某些情况下会导致指数级的时间复杂度。本文将介绍一种基于反链的优化算法,旨在避免这种指数级的膨胀,并提供高效的通用性和包含性检查方法。
2. 基础概念
- 无序树与树篱 :
- 无序树是一种树形结构,树篱则是无序树的集合,空树篱用 $\epsilon$ 表示,所有树篱的集合用 $H_{\Sigma}$ 表示。
- 对于树 $t$,以节点 $p$ 为根的子树记为 $t|_p$,其定义域是满足 $pp’ \in nodes(t)$ 的节点 $p’$ 的集合,且 $t|_p(p’) = t(pp’)$。
- 树的高度是其最长分支的长度(节点数)。
- 树的线性化 :树可以用平衡单词来描述,对应于树的深度优先遍历。对于每个 $a \in \Sigma$,$a$ 表示开放标签,$\overline{a}$ 表示关闭标签。树 $t \in T_{\Sigma}$ 的线性化 $[t]$ 定义为:$[t] = a [t|_1] \cdots [t|_n] \overline{a}$,其中 $a = t(\epsilon)$,根节点有 $n$ 个子节点。
超级会员免费看
订阅专栏 解锁全文

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



