Approximate String Matching for Self-Indexes


Self-index is a compressed data structure that stores index of T (of length n) very efficiently and allows exact string matching (to locate all occurrences of P of length m) in m steps. Moreover it allows to obtain any substring of T so it may replace the original text. The approximate string matching task is to locate all substrings w of T that are withing a given edit distance k (e.g., Levenshtein or Hamming d.) from P.The used filtering algorithm splits P into subpatterns which are searched by selfindex. Their occurrences are seeds of potential approximate occurrences and they are verified by algorithm based on dynamic programming. The filters are divided [1] into 3 categories: (A) Partitioning into Exact Search divides P into so many substrings so that at least one must occur exactly. Each perspective occurrence has to be verified. (B) Neighborhood Generation generates the set (called neighborhood) of all strings within a given edit distance. Each string is then searched exactly without verification. (C) Intermediate Partitioning is combination of A and B.

DOI: 10.1109/DCC.2016.25

Cite this paper

@article{Hrbek2016ApproximateSM, title={Approximate String Matching for Self-Indexes}, author={Lukas Hrbek and Jan Holub}, journal={2016 Data Compression Conference (DCC)}, year={2016}, pages={604-604} }