著者
M. Al-Suwaiyel, E. Horowitz
タイトル
Algorithm for Trie Compaction
ページ
243-263
日時
June 1984
コメント
トライのノードをビット列(e.g. 00011000)と思って、それを いかに最適に重ねあわせるかという話をしている。他の方式 の可能性については議論していない。Greedyに順番に入れ ていくと最適にならない場合があるから最適のものをみつ けるには時間がかかる。(当然)
感想
Algorithms for trie compaction. \\ ACM Trans. Database Syst. 9, 2 (June 1984), 243 263. \\ The trie is a data structure which permits very rapid access to records by key. Each successive digit of the key is used to access a node of a tree in order to obtain a pointer to a subtree containing all keys with the same prefix (up to the current symbol) as the desired key. The disadvantage of a trie is the large amount of space required for nondense key sets. One method of reducing space requirements, investigated by Comer in a number of papers (the most recent of which is [1]) involves reordering the sequence in which the digits of the key are used for searching. This method is only useful for static tries. \\ The current paper presents another method for constructing static tries to preserve space by overlaying nodes of a trie so that empty pointers in one node occupy the same location as full pointers in another. The authors present an algorithm for achieving maximum compaction by this technique, first suggested by Knuth [2]. However, this algorithm is exponential and the authors proceed to present three algorithms for near-optimal compaction which are more efficient. These algorithms require O(mn2), O (mn log n), and O (mn) time, where n is the number of keys and m is the number of digits. \\ It should be noted that an earlier paper by Tarjan and Yao [3], which is inexplicably missing from the current paper's references, presents a method for compacting a trie which is essentially an extension of one of the near-optimal methods presented here. The method is attributed to Aho and Ullman [4] and to an unpublished manuscript by Ziegler [5]. Also, the issue of whether minimal tree compaction is NP-complete, which is left as an open question in this paper, is claimed to have been answered affirmatively in an unpublished paper by Even, Lichtenstein, and Shiloach [6], according to the paper by Tarjan and Yao. \\ A. M. Tenenbaum, Brooklyn, NY \\ REFERENCES 1] COMER, D. Analysis of a heuristic for full trie minimization, ACM Trans. Database Syst. 6, 3 (Sept. 1981), 513 537. See CR 22, 11 (Nov. 1981), Rev. 38,688. 2] KNUTH, D. E. The art of computer programming. Vol. 3, Addison-Wesley Publ. Co., Reading, MA, 1975. 3] TARJAN, R. E.; AND YAO, A. C. Storing a sparse table, Commun. ACM 22, 11 (Nov. 1979), 606 611. 4] AHO, A. V.; AND ULLMAN, J. D. Principles of compiler design, Addison-Wesley Publ. Co., Reading, MA, 1977. See CR 19, 6 (June 1978), Rev. 33, 085. 5] ZIEGLER, S. F. Smaller faster table driven parser, Unpublished manuscript, Academic Computing Center, Univ. of Wisconsin, Madison, 1977. 6] EVEN, S.; LICHTENSTEIN, D. I.; AND SHILOACH, Y. Remarks on Ziegler's method for matrix compression, Unpublished manuscript, 1977.
カテゴリ
Trie
Category: Trie
Journal: ACM Transactions on Database Systems
Comment: トライのノードをビット列(e.g. 00011000)と思って、それを
        いかに最適に重ねあわせるかという話をしている。他の方式
        の可能性については議論していない。Greedyに順番に入れ
        ていくと最適にならない場合があるから最適のものをみつ
        けるには時間がかかる。(当然)
Number: 2
Bibtype: Article
Author: M. Al-Suwaiyel
        E. Horowitz
Pages: 243-263
Month: jun
Review: Algorithms for trie compaction.
        \\
        ACM Trans. Database Syst. 9, 2 (June 1984), 243 263.
        \\
        The trie is a data structure which permits very rapid
        access to records by key. Each successive digit of the
        key is used to access a node of a tree in order to
        obtain a pointer to a subtree containing all keys with
        the same prefix (up to the current symbol) as the
        desired key. The disadvantage of a trie is the large
        amount of space required for nondense key sets. One
        method of reducing space requirements, investigated by
        Comer in a number of papers (the most recent of which
        is [1]) involves reordering the sequence in which the
        digits of the key are used for searching. This method
        is only useful for static tries.
        \\
        The current paper presents another method for
        constructing static tries to preserve space by
        overlaying nodes of a trie so that empty pointers in
        one node occupy the same location as full pointers in
        another. The authors present an algorithm for
        achieving maximum compaction by this technique, first
        suggested by Knuth [2]. However, this algorithm is
        exponential and the authors proceed to present three
        algorithms for near-optimal compaction which are more
        efficient. These algorithms require O(mn2), O (mn
        log n), and O (mn) time, where n is the number of keys
        and m is the number of digits.
        \\
        It should be noted that an earlier paper by Tarjan and
        Yao [3], which is inexplicably missing from the
        current paper's references, presents a method for
        compacting a trie which is essentially an extension of
        one of the near-optimal methods presented here. The
        method is attributed to Aho and Ullman [4] and to an
        unpublished manuscript by Ziegler [5]. Also, the issue
        of whether minimal tree compaction is NP-complete,
        which is left as an open question in this paper, is
        claimed to have been answered affirmatively in an
        unpublished paper by Even, Lichtenstein, and Shiloach
        [6], according to the paper by Tarjan and Yao.
        \\
        A. M. Tenenbaum, Brooklyn, NY
        \\
        REFERENCES
        1] COMER, D. Analysis of a heuristic for full trie
        minimization, ACM Trans. Database Syst. 6, 3 (Sept. 
        1981), 513 537. See CR 22, 11 (Nov. 1981), Rev. 
        38,688.
        2] KNUTH, D. E. The art of computer programming. Vol. 
        3, Addison-Wesley Publ. Co., Reading, MA, 1975.
        3] TARJAN, R. E.; AND YAO, A. C. Storing a sparse
        table, Commun. ACM 22, 11 (Nov. 1979), 606 611.
        4] AHO, A. V.; AND ULLMAN, J. D. Principles of
        compiler design, Addison-Wesley Publ. Co., Reading,
        MA, 1977. See CR 19, 6 (June 1978), Rev. 33, 085.
        5] ZIEGLER, S. F. Smaller faster table driven parser,
        Unpublished manuscript, Academic Computing Center,
        Univ. of Wisconsin, Madison, 1977.
        6] EVEN, S.; LICHTENSTEIN, D. I.; AND SHILOACH, Y. 
        Remarks on Ziegler's method for matrix compression,
        Unpublished manuscript, 1977.
Title: Algorithm for Trie Compaction
Year: 1984
Volume: 9