Abstract
Double-Array Trie is presented as a data structure for Trie which has advantages both in the compactness and access speed. Thus Double Array Trie structure is broadly adopted by many string matching algorithms. However, the Double Array Trie construction process is faced with problems of huge temporary peak of memory consumption and low construction speed when applied to large scale sets of strings. It’s hard to meet the requirement of detecting high speed network flow in real time. This paper presents two optimization strategies in the Double Array Trie construction process to avoid the temporary peak of memory consumption and reduce the construction time. The first is to generate the Trie recursively. The second is to take different methods in finding current node’s base value process according to the number of child nodes. We applied the improved strategy to Aho-Corasick algorithm and tested with different large-scale sets of strings. From the results, it turned out that the space consumption and the construction time are both significantly improved on the premise of same search efficiency.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Aho, A., Corasick, M.: Efficient String Matching: An Aid to Bibliographic Search. Communications of the ACM 18(6), 333–340 (1975)
Boyer, R., Moore, J.: A fast string searching algorithm. Communications of the ACM 20(10), 761–772 (1977)
Morris, J.H., Knuth, D.E., Pratt, V.R.: Fast pattern matching in strings. SIAM J. Comput. 6(1), 322–350 (1977)
Tarjan, R.E., Yao, A.C.: Storing a Sparse Table. Communications of the ACM 22(11), 606–611 (1979)
Aho, A., Sethi, R., Ullman, J.: Compilers: Principles, Techniques, and Tools. Addison-Wesley (1985)
Aoe, J.: An Efficient Digital Search Algorithm by Using a Double-Array Structure. IEEE Transactions on Software Engineering 15(9), 1066–1077 (1989)
Aoe, J.: An Efficient Implementation of Static String Pattern Matching Machines. IEEE Transactions on Software Engineering 15(8), 1010–1016 (1989)
Aoe, J., Morimoto, K.: An Efficient Implementation of Trie Structures. Software-Practice and Experience 22(9), 695–721 (1992)
Aoe, J., Morimoto, K., Shishibori, M., Park, K.-H.: A trie compaction algorithm for a large set of keys. IEEE Transactions on Knowledge and Data Engineering 8(3), 476–491 (1996)
Morita, K., Tanaka, A., Fuketa, M., Aoe, J.: Implementation of Update Algorithms for a Double-Array Structure. In: 2001 IEEE International Conference on Systems, Man, and Cybernetics, pp. 494–499 (2001)
Navarro, G., Raffinot, M.: Flexible Pattern Matching in Strings: Practical on-line search algorithms for texts and biological sequences (2002)
Tuck, N., Sherwood, T., Calder, B., Varghese, G.: Deterministic Memory-Efficient String Matching Algorithms for Intrusion Detection. In: IEEE INFOCOM (2004)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Shuai, N., Yanbing, L., Xinbo, S. (2013). Speeding Up Double-Array Trie Construction for String Matching. In: Yuan, Y., Wu, X., Lu, Y. (eds) Trustworthy Computing and Services. ISCTCS 2012. Communications in Computer and Information Science, vol 320. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-35795-4_72
Download citation
DOI: https://doi.org/10.1007/978-3-642-35795-4_72
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-35794-7
Online ISBN: 978-3-642-35795-4
eBook Packages: Computer ScienceComputer Science (R0)