中文

在输出敏感空间中构造反词典

数据结构与算法 2019-02-14 v1

摘要

若单词 xx 不出现于单词 yy 中,且它的所有真因子均出现于 yy 中,则称 xx 为极小的。给定字母表 Σ\Sigmakk 个单词 y1,y2,,yky_1,y_2,\ldots,y_k,要求计算单词 y=y1#y2##yky=y_1\#y_2\#\ldots\#y_k(其中 #Σ\#\notin\Sigma)的长度不超过 \ell 的极小缺席词集合 My1##yk\mathrm{M}^{\ell}_{y_{1}\#\ldots\#y_{k}}。在数据压缩中,这对应于计算 kk 个文档的反词典。在生物信息学中,它对应于计算具有 kk 条染色体的基因组所缺席的单词。利用现有大量 O(n)\mathcal{O}(n) 时间算法,该计算通常需要 Ω(n)\Omega(n) 空间(n=yn=|y|)。这是因为要在 yy 上构建大小为 Ω(n)\Omega(n) 的文本索引,对于较大的 nn 可能不切实际。我们使用输出敏感空间增量式地完成相同的计算。当对所有 N[1,k]N\in[1,k] 均有 My1##yN=o(n)||\mathrm{M}^{\ell}_{y_{1}\#\ldots\#y_{N}}||=o(n) 时,该目标是合理的。例如,在人类基因组中,n3×109n \approx 3\times 10^9My1##yk12106||\mathrm{M}^{12}_{y_{1}\#\ldots\#y_{k}}|| \approx 10^6。为表述结果我们考虑常数大小字母表。我们证明,所有 My1,,My1##yk\mathrm{M}^{\ell}_{y_{1}},\ldots,\mathrm{M}^{\ell}_{y_{1}\#\ldots\#y_{k}} 可在 O(kn+N=1kMy1##yN)\mathcal{O}(kn+\sum^{k}_{N=1}||\mathrm{M}^{\ell}_{y_{1}\#\ldots\#y_{N}}||) 总时间内使用 O(MaxIn+MaxOut)\mathcal{O}(\mathrm{MaxIn}+\mathrm{MaxOut}) 空间计算完成,其中 MaxIn\mathrm{MaxIn}{y1,,yk}\{y_1,\ldots,y_{k}\} 中最长单词的长度,MaxOut=max{My1##yN:N[1,k]}\mathrm{MaxOut}=\max\{||\mathrm{M}^{\ell}_{y_{1}\#\ldots\#y_{N}}||:N\in[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