An edit refers to a single insertion, deletion, or substitution. This paper aims to construct binary codes that can correct two edits. To do this, a necessary and sufficient condition for a code to be two-edit correctable is provided, showing that a code is a two-edit correcting code if and only if it can correct two deletions, up to two substitutions, and one deletion and up to one substitution, separately. This criterion allows for the construction of two-edit correcting codes leveraging these three types of error correcting codes. In the field of constructing codes for correcting two deletions, we modify the construction presented by Guruswami and H{\aa}stad and give an alternative proof. Moreover, our two-deletion correcting codes can also correct up to two substitutions after making a slight modification. In the field of constructing codes for correcting one deletion and up to one substitution, we present a construction with $(4+o(1)) \log n$ redundant bits, which outperforms the best previously known results $(6+o(1)) \log n$. Leveraging these codes, we obtain a construction of two-edit correcting codes with $(6+o(1)) \log n$ redundant bits, which outperforms the best previously known results $(8+o(1)) \log n$. Moreover, we also consider the list-decoding problem under the two-edit channel and construct a two-edit list-decodable code with a list size of two employing $(4+o(1)) \log n$ redundant bits.
翻译:暂无翻译