在输出敏感空间中构造反词典
数据结构与算法
2019-02-14 v1
摘要
若单词 x 不出现于单词 y 中,且它的所有真因子均出现于 y 中,则称 x 为极小的。给定字母表 Σ 上 k 个单词 y1,y2,…,yk,要求计算单词 y=y1#y2#…#yk(其中 #∈/Σ)的长度不超过 ℓ 的极小缺席词集合 My1#…#ykℓ。在数据压缩中,这对应于计算 k 个文档的反词典。在生物信息学中,它对应于计算具有 k 条染色体的基因组所缺席的单词。利用现有大量 O(n) 时间算法,该计算通常需要 Ω(n) 空间(n=∣y∣)。这是因为要在 y 上构建大小为 Ω(n) 的文本索引,对于较大的 n 可能不切实际。我们使用输出敏感空间增量式地完成相同的计算。当对所有 N∈[1,k] 均有 ∣∣My1#…#yNℓ∣∣=o(n) 时,该目标是合理的。例如,在人类基因组中,n≈3×109 但 ∣∣My1#…#yk12∣∣≈106。为表述结果我们考虑常数大小字母表。我们证明,所有 My1ℓ,…,My1#…#ykℓ 可在 O(kn+∑N=1k∣∣My1#…#yNℓ∣∣) 总时间内使用 O(MaxIn+MaxOut) 空间计算完成,其中 MaxIn 为 {y1,…,yk} 中最长单词的长度,MaxOut=max{∣∣My1#…#yNℓ∣∣:N∈[1,k]}。我们还提供了概念验证实验结果,证实了我们的理论发现并印证了我们的贡献。
引用
@article{arxiv.1902.04785,
title = {Constructing Antidictionaries in Output-Sensitive Space},
author = {Lorraine A. K. Ayad and Golnaz Badkobeh and Gabriele Fici and Alice Héliou and Solon P. Pissis},
journal= {arXiv preprint arXiv:1902.04785},
year = {2019}
}
备注
Version accepted to DCC 2019