TY - JOUR
T1 - Efficient Computation of Substring Equivalence Classes with Suffix Arrays
AU - Narisawa, Kazuyuki
AU - Hiratsuka, Hideharu
AU - Inenaga, Shunsuke
AU - Bannai, Hideo
AU - Takeda, Masayuki
N1 - Funding Information:
This work was partially supported by KAKENHI Grant Number 25240003.
Publisher Copyright:
© 2016, Springer Science+Business Media New York.
PY - 2017/10/1
Y1 - 2017/10/1
N2 - This paper considers enumeration of substring equivalence classes introduced by Blumer et al. (J ACM 34(3):578–595, 1987). These equivalence classes were originally proposed to define a text indexing structure called compact directed acyclic word graphs (CDAWGs). These equivalence classes are also useful for text analysis, since they group together redundant substrings with essentially identical occurrences. In this paper, we present how to enumerate these equivalence classes using only suffix arrays and two auxiliary arrays (rank arrays and lcp arrays), in O(n) time for a given string of length n over the integer alphabet. The proposed method overcomes all the existing algorithms which require O(nlog σ) time, where σ is the alphabet size. Our experimental results show that the proposed method is also practically faster and more memory efficient than the existing ones. Furthermore, we propose an O(n)-time algorithm which constructs the CDAWG of an input string over the integer alphabet. This algorithm is based on the above-mentioned algorithm to enumerate equivalence classes. Our experiments show that the proposed method runs faster than the existing algorithm on large alphabets.
AB - This paper considers enumeration of substring equivalence classes introduced by Blumer et al. (J ACM 34(3):578–595, 1987). These equivalence classes were originally proposed to define a text indexing structure called compact directed acyclic word graphs (CDAWGs). These equivalence classes are also useful for text analysis, since they group together redundant substrings with essentially identical occurrences. In this paper, we present how to enumerate these equivalence classes using only suffix arrays and two auxiliary arrays (rank arrays and lcp arrays), in O(n) time for a given string of length n over the integer alphabet. The proposed method overcomes all the existing algorithms which require O(nlog σ) time, where σ is the alphabet size. Our experimental results show that the proposed method is also practically faster and more memory efficient than the existing ones. Furthermore, we propose an O(n)-time algorithm which constructs the CDAWG of an input string over the integer alphabet. This algorithm is based on the above-mentioned algorithm to enumerate equivalence classes. Our experiments show that the proposed method runs faster than the existing algorithm on large alphabets.
UR - http://www.scopus.com/inward/record.url?scp=84982285459&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84982285459&partnerID=8YFLogxK
U2 - 10.1007/s00453-016-0178-z
DO - 10.1007/s00453-016-0178-z
M3 - Article
AN - SCOPUS:84982285459
SN - 0178-4617
VL - 79
SP - 291
EP - 318
JO - Algorithmica
JF - Algorithmica
IS - 2
ER -