流式模型中识别良好括号表达式的算法
数据结构与算法
2009-11-18 v1 计算复杂性
摘要
受一个具体问题的启发,并为了理解流式算法的复杂度与形式语言复杂度之间的关系,我们研究了 Dyck(s) 问题,即检查具有 s 种不同类型括号的匹配括号。我们提出了一种用于 Dyck(2) 的单遍随机流式算法,其空间复杂度为 Order(sqrt(n) log n),每字符时间复杂度为 polylog (n),且具有单侧错误。我们证明,即使允许双侧错误,该单遍算法在 polylog n 因子内也是最优的。对于下界,我们遵循“信息成本”方法,但进行了一些调整,从而在困难实例上证明了一个直接和结果。实际上,我们在公共硬币和私有硬币之间进行了一个微妙的博弈。这种公共和私有硬币的混合是直接和结果与基本情况组合下界之间平衡的结果。令人惊讶的是,如果我们能够反向访问输入流,空间需求会急剧减少。我们提出了一种用于 Dyck(2) 的双遍随机流式算法,其空间复杂度为 Order((log n)^2),时间复杂度为 polylog (n),且具有单侧错误,其中第二遍是反向进行的。这两种算法都可以扩展到 Dyck(s),因为该问题在流式模型中可通过适当的归约概念归约到 Dyck(2)。
引用
@article{arxiv.0911.3291,
title = {Recognizing well-parenthesized expressions in the streaming model},
author = {F. Magniez and C. Mathieu and A. Nayak},
journal= {arXiv preprint arXiv:0911.3291},
year = {2009}
}
备注
20 pages, 5 figures