We consider the problem of constructing a code capable of correcting a single long tandem duplication error of variable length. As the main contribution of this paper, we present a $q$-ary efficiently encodable code of length $n+1$ and redundancy $1$ that can correct a single duplication of length at least $K=4\cdot\lceil \log_q n\rceil +1$. The complexity of encoding is $O(\frac{n^2}{\log n})$ and the complexity of decoding is $O(n)$. We also present a $q$-ary non-efficient code of length $n+1$ correcting single long duplication of length at least $K = \lceil \log_q n\rceil +\phi(n)$, where $\phi(n)\rightarrow{\infty}$ as $n\rightarrow{\infty}$. This code has redundancy less than $1$ for sufficiently large $n$. Moreover, we show that in the class of codes correcting a single long duplication with redundancy $1$, the value $K$ in our constructions is order-optimal.
翻译:我们考虑构建能够纠正可变长度单次长串联重复错误的编码问题。作为本文的主要贡献,我们提出了一种长度为$n+1$、冗余度为1的$q$元高效可编码编码,能够纠正长度至少为$K=4\cdot\lceil \log_q n\rceil +1$的单次重复。编码复杂度为$O(\frac{n^2}{\log n})$,解码复杂度为$O(n)$。我们还提出了一种长度为$n+1$的$q$元非高效编码,能够纠正长度至少为$K = \lceil \log_q n\rceil +\phi(n)$的单次长重复,其中当$n\rightarrow{\infty}$时$\phi(n)\rightarrow{\infty}$。对于足够大的$n$,该编码的冗余度小于1。此外,我们证明在冗余度为1的纠正单次长重复编码类别中,我们构造中的$K$值在阶数上是最优的。