中文

更快的确定性模子集和问题算法

数据结构与算法 2021-09-21 v2

摘要

我们考虑模子集和(Modular Subset Sum)问题:给定一个来自 Zm\mathbb{Z}_m 的整数多重集 XX 和一个目标整数 tt,判定是否存在 XX 的一个子集,其和等于 t(modm)t \pmod{m}。Cardinal 与 Iacono (SOSA'21) 以及 Axiotis 等人 (SOSA'21) 近期各自独立的工作为该问题提供了简单且近线性的算法。Cardinal 与 Iacono 给出了一个运行时间为 O(mlogm)O(m \log m) 的随机化算法,而 Axiotis 等人给出了一个运行时间为 O(m polylog m)O(m \text{ polylog } m) 的确定性算法。两项结果均通过归约到一个文本问题来求解,并使用动态字符串数据结构解决该文本问题。在本工作中,我们开发了一个简单的数据结构,专门用于处理模子集和算法中出现的文本问题。我们称之为移位树(shift-tree)的数据结构,是线段树的一个简单变体。我们提供了基于哈希的以及确定性的两种移位树变体。随后我们将该数据结构应用于模子集和问题,得到两种算法。第一种算法是 Monte-Carlo 随机化的,与 Cardinal 和 Iacono 的 Las-Vegas 算法的 O(mlogm)O(m \log m) 运行时间相匹配。第二种算法是完全确定性的,运行时间为 O(mlogmα(m))O(m \log m \cdot \alpha(m)),其中 α\alpha 为反阿克曼函数(inverse Ackermann function)。

关键词

引用

@article{arxiv.2012.06062,
  title  = {Faster Deterministic Modular Subset Sum},
  author = {Krzysztof Potępa},
  journal= {arXiv preprint arXiv:2012.06062},
  year   = {2021}
}

备注

16 pages, accepted at ESA 2021