Efficient implementation of lazy suffix trees

We present an efficient implementation of a write-only top-down construction for suffix trees. Our implementation is based on a new, space-efficient representation of suffix trees which requires only 12 bytes per input character in the worst case, and 8:5 bytes per input character on average for a collection of files of different type. We show how to efficiently implement the lazy evaluation of suffix trees such that a subtree is evaluated not before it is traversed for the first time. Our experiments show that for the problem of searching many exact patterns in a fixed input string, the lazy top-down construction is often faster and more space efficient than other methods.

[1]  Jochen Comes,et al.  An Easy to Use Implementation of Linear Perturbations within CGAL , 1999, WAE.

[2]  Stuart E. Dreyfus,et al.  An Appraisal of Some Shortest-Path Algorithms , 1969, Oper. Res..

[3]  Sartaj Sahni,et al.  Data Structures, Algorithms, and Applications in C++ , 1997 .

[4]  Jose Luis Esteves dos Santos,et al.  A New Shortest Paths Ranking Algorithm , 1999 .

[5]  Raimund Seidel,et al.  The Nature and Meaning of Perturbations in Geometric Computing , 1994, STACS.

[6]  Douglas R. Shier,et al.  Iterative methods for determining the k shortest paths in a network , 1976, Networks.

[7]  Gregory Gutin,et al.  TSP heuristics with large domination number , 1998 .

[8]  Leonid Khachiyan,et al.  On the Complexity of Dualization of Monotone Disjunctive Normal Forms , 1996, J. Algorithms.

[9]  Edsger W. Dijkstra,et al.  A note on two problems in connexion with graphs , 1959, Numerische Mathematik.

[10]  W. T. Tutte On the Problem of Decomposing a Graph into n Connected Factors , 1961 .

[11]  Geert-Jan Giezeman,et al.  The CGAL Kernel: A Basis for Geometric Computation , 1996, WACG.

[12]  Lutz Kettner,et al.  Designing a data structure for polyhedral surfaces , 1998, SCG '98.

[13]  M. Garbelotto,et al.  A sequence database for the identification of ectomycorrhizal basidiomycetes by phylogenetic analysis , 1998 .

[14]  Craig A. Morgenstern Distributed coloration neighborhood search , 1993, Cliques, Coloring, and Satisfiability.

[15]  Stefan Schirra,et al.  Approximate decision algorithms for point set congruence , 1992, SCG '92.

[16]  Steven Skiena,et al.  Who is interested in algorithms and why?: lessons from the Stony Brook algorithms repository , 1999, SIGA.

[17]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

[18]  Eljas Soisalon-Soininen,et al.  Relaxed Balancing in Search Trees , 1997, Advances in Algorithms, Languages, and Complexity.

[19]  Andrew Rambaut,et al.  Seq-Gen: an application for the Monte Carlo simulation of DNA sequence evolution along phylogenetic trees , 1997, Comput. Appl. Biosci..

[20]  Daniele Frigioni,et al.  An Experimental Study of Dynamic Algorithms for Directed Graphs , 1998, ESA.

[21]  Gregory Gutin,et al.  Small diameter neighbourhood graphs for the traveling salesman problem: at most four moves from tour to tour , 1999, Comput. Oper. Res..

[22]  Kurt Mehlhorn,et al.  LEDA: a platform for combinatorial and geometric computing , 1997, CACM.

[23]  E. Martins An algorithm for ranking paths that may contain cycles , 1984 .

[24]  R. Nigel Horspool,et al.  Practical fast searching in strings , 1980, Softw. Pract. Exp..

[25]  Robert Sedgewick,et al.  Implementing Quicksort programs , 1978, CACM.

[26]  Alan Jay Smith,et al.  Measuring Cache and TLB Performance and Their Effect on Benchmark Runtimes , 1995, IEEE Trans. Computers.

[27]  P. Kollman,et al.  A Second Generation Force Field for the Simulation of Proteins, Nucleic Acids, and Organic Molecules , 1995 .

[28]  Thierry Lecroq,et al.  Experimental results on string matching algorithms , 1995, Softw. Pract. Exp..

[29]  Abraham P. Punnen,et al.  The travelling salesman problem: new solvable cases and linkages with the development of approximation algorithms , 1997 .

[30]  Robert E. Tarjan,et al.  A Note on Finding Minimum-Cost Edge-Disjoint Spanning Trees , 1985, Math. Oper. Res..

[31]  Satish Rao,et al.  Efficient access to optical bandwidth , 1995, FOCS 1995.

[32]  장훈,et al.  [서평]「Computer Organization and Design, The Hardware/Software Interface」 , 1997 .

[33]  Jano I. van Hemert,et al.  Graph Coloring with Adaptive Evolutionary Algorithms , 1998, J. Heuristics.

[34]  Klaus Jansen,et al.  Call scheduling in trees, rings and meshes , 1997, Proceedings of the Thirtieth Hawaii International Conference on System Sciences.

[35]  Udi Manber,et al.  Fast text searching: allowing errors , 1992, CACM.

[36]  R. Bayer,et al.  Organization and maintenance of large ordered indices , 1970, SIGFIDET '70.

[37]  David Eppstein,et al.  Finding the k Shortest Paths , 1999, SIAM J. Comput..

[38]  Colin McDiarmid,et al.  Average Case Analysis of Heap Building by Repeated Insertion , 1991, J. Algorithms.

[39]  Vijay Kumar,et al.  Improved algorithms and data structures for solving graph problems in external memory , 1996, Proceedings of SPDP '96: 8th IEEE Symposium on Parallel and Distributed Processing.

[40]  Zhi-Zhong Chen,et al.  The complexity of selecting maximal solutions , 1993, [1993] Proceedings of the Eigth Annual Structure in Complexity Theory Conference.

[41]  Peter van Emde Boas,et al.  Preserving Order in a Forest in Less Than Logarithmic Time and Linear Space , 1977, Inf. Process. Lett..

[42]  Andrés Marzal,et al.  A new algorithm for finding the N-best sentence hypotheses in continuous speed recognition , 1994 .

[43]  Daniel Brélaz,et al.  New methods to color the vertices of a graph , 1979, CACM.

[44]  Kurt Mehlhorn,et al.  On the performance of LEDA-SM , 1998 .

[45]  Martha Sideri,et al.  Generating all maximal models of a Boolean expression , 2000, Inf. Process. Lett..

[46]  Dan E. Willard New Trie Data Structures Which Support Very Fast Search Operations , 1984, J. Comput. Syst. Sci..

[47]  P. Erdos,et al.  On the evolution of random graphs , 1984 .

[48]  Jean Monné,et al.  A comparison of two exact algorithms for finding the n-best sentence hypotheses in continuous speech recognition , 1995, EUROSPEECH.

[49]  W. A. Beyer,et al.  Additive evolutionary trees. , 1977, Journal of theoretical biology.

[50]  S. Muthukrishnan,et al.  Overcoming the memory bottleneck in suffix tree construction , 1998, Proceedings 39th Annual Symposium on Foundations of Computer Science (Cat. No.98CB36280).

[51]  Mirjana Cangalovic,et al.  Exact colouring algorithm for weighted graphs applied to timetabling problems with lectures of different lengths , 1991 .

[52]  International Human Genome Sequencing Consortium Initial sequencing and analysis of the human genome , 2001, Nature.

[53]  Jyh-Jong Tsay,et al.  External-memory computational geometry , 1993, Proceedings of 1993 IEEE 34th Annual Foundations of Computer Science.

[54]  Michael L. Fredman,et al.  Surpassing the Information Theoretic Bound with Fusion Trees , 1993, J. Comput. Syst. Sci..

[55]  Stefan Schirra,et al.  Parameterized implementations of classical planar convex hull algorithms and extreme point compuations , 1998 .

[56]  Mauricio G. C. Resende,et al.  Designing and reporting on computational experiments with heuristic methods , 1995, J. Heuristics.

[57]  Juha Kärkkäinen Suffix Cactus: A Cross between Suffix Tree and Suffix Array , 1995, CPM.

[58]  Gonzalo Navarro,et al.  A Bit-Parallel Approach to Suffix Automata: Fast Extended String Matching , 1998, CPM.

[59]  Micha Sharir,et al.  Davenport-Schinzel sequences and their geometric applications , 1995, Handbook of Computational Geometry.

[60]  Leonidas J. Guibas,et al.  Computing a face in an arrangement of line segments , 1991, SODA '91.

[61]  Lauri Malmi,et al.  Group updates for relaxed height-balanced trees , 1999, PODS '99.

[62]  Richard E. Ladner,et al.  The influence of caches on the performance of heaps , 1996, JEAL.

[63]  Enrique Vidal,et al.  Efficient enumeration of sentence hypotheses in connected word recognition , 1993, EUROSPEECH.

[64]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[65]  Georg Gottlob,et al.  Identifying the Minimal Transversals of a Hypergraph and Related Problems , 1995, SIAM J. Comput..

[66]  Maz Spork,et al.  Design and Analysis of Cache-Conscious Programs , 1999 .

[67]  Bruce A. Reed,et al.  Building Heaps Fast , 1989, J. Algorithms.

[68]  Christopher C. Skiscim,et al.  Computing k-shortest path lengths in euclidean networks , 1987, Networks.

[69]  Konrad Hinsen The Molecular Modeling Toolkit: a case study of a large scientific application in Python , 1997 .

[70]  Richard Cole,et al.  Deterministic coin tossing and accelerating cascades: micro and macro techniques for designing parallel algorithms , 1986, STOC '86.

[71]  Ketan Mulmuley A Fast Planar Partition Algorithm, I , 1990, J. Symb. Comput..

[72]  Gerald Q. Maguire,et al.  IP-Based Protocols for Mobile Internetworking , 1991, SIGCOMM.

[73]  Raimund Seidel,et al.  Efficient Perturbations for Handling Geometric Degeneracies , 1997, Algorithmica.

[74]  Kurt Mehlhorn,et al.  The Implementation of Geometric Algorithms , 1994, IFIP Congress.

[75]  Stefan Kurtz,et al.  Reducing the space requirement of suffix trees , 1999, Softw. Pract. Exp..

[76]  Jean Vuillemin,et al.  A data structure for manipulating priority queues , 1978, CACM.

[77]  Keith A. Crandall,et al.  CRAYFISH MOLECULAR SYSTEMATICS: USING A COMBINATION OF PROCEDURES TO ESTIMATE PHYLOGENY , 1996 .

[78]  Bennett L. Fox,et al.  Data Structures and Computer Science Techniques in Operations Research , 1978, Oper. Res..

[79]  John E. Hopcroft,et al.  An n log n algorithm for minimizing states in a finite automaton , 1971 .

[80]  Tomasz Imielinski,et al.  Impact of mobility on distributed computations , 1993, OPSR.

[81]  Svante Carlsson,et al.  Small forwarding tables for fast routing lookups , 1997, SIGCOMM '97.

[82]  David B. Lomet,et al.  A simple bounded disorder file organization with good performance , 1988, TODS.

[83]  Klaus Hermann,et al.  Object-oriented sequence analysis: SCL - a C++ class library , 1996, Comput. Appl. Biosci..

[84]  Alfred V. Aho,et al.  Efficient string matching , 1975, Commun. ACM.

[85]  Eljas Soisalon-Soininen,et al.  Relaxed Balanced Red-Black Trees , 1997, CIAC.

[86]  Elias C. Stavropoulos,et al.  A New Algorithm for the Transversal Hypergraph , 1999 .

[87]  D. Werra,et al.  Some experiments with simulated annealing for coloring graphs , 1987 .

[88]  Jan Mycielski Sur le coloriage des graphs , 1955 .

[89]  Robert E. Tarjan,et al.  Design and Analysis of a Data Structure for Representing Sorted Lists , 1978, SIAM J. Comput..

[90]  Andrew V. Goldberg,et al.  Shortest paths algorithms: Theory and experimental evaluation , 1994, SODA '94.

[91]  Jesper Larsson Träff,et al.  A Meticulous Analysis of Mergesort Programs , 1997, CIAC.

[92]  N. Saitou,et al.  Relative Efficiencies of the Fitch-Margoliash, Maximum-Parsimony, Maximum-Likelihood, Minimum-Evolution, and Neighbor-joining Methods of Phylogenetic Tree Construction in Obtaining the Correct Tree , 1989 .

[93]  Livio Colussi,et al.  A Time and Space Efficient Data Structure for String Searching on Large Texts , 1996, Inf. Process. Lett..

[94]  Hans-Peter Lenhof,et al.  New contact measures for the protein docking problem , 1997, RECOMB '97.

[95]  Klaus Jansen,et al.  Scheduling of Virtual Connections in Fast Networks , 1996, Universität Trier, Mathematik/Informatik, Forschungsbericht.

[96]  Martin Farach-Colton,et al.  Optimal Suffix Tree Construction with Large Alphabets , 1997, FOCS.

[97]  Gary L. Miller,et al.  A Simple Randomized Parallel Algorithm for List-Ranking , 1990, Inf. Process. Lett..

[98]  Mikkel Thorup,et al.  On RAM priority queues , 1996, SODA '96.

[99]  Michael Ian Shamos,et al.  Computational geometry: an introduction , 1985 .

[100]  Richard Cole,et al.  Faster Optimal Parallel Prefix Sums and List Ranking , 2011, Inf. Comput..

[101]  Beate Commentz-Walter,et al.  A String Matching Algorithm Fast on the Average , 1979, ICALP.

[102]  Robert Giegerich,et al.  A Comparison of Imperative and Purely Functional Suffix Tree Constructions , 1995, Sci. Comput. Program..

[103]  Stéphane Pérennes,et al.  Efficient collective communication in optical networks , 1996, Theor. Comput. Sci..

[104]  Alok Aggarwal,et al.  Efficient routing and scheduling algorithms for optical networks , 1994, SODA '94.

[105]  Ricardo A. Baeza-Yates,et al.  Hierarchies of Indices for Text Searching , 1994, Inf. Syst..

[106]  Christopher J. Van Wyk,et al.  Static analysis yields efficient exact integer arithmetic for computational geometry , 1996, TOGS.

[107]  A. M. Andrew,et al.  Another Efficient Algorithm for Convex Hulls in Two Dimensions , 1979, Inf. Process. Lett..

[108]  Mukesh Singhal,et al.  Distributed dynamic channel allocation for mobile computing , 1995, PODC '95.

[109]  Gary L. Miller,et al.  The Complexity of Coloring Circular Arcs and Chords , 1980, SIAM J. Algebraic Discret. Methods.

[110]  E. Martins,et al.  A computational improvement for a shortest paths ranking algorithm , 1994 .

[111]  Lars Arge,et al.  Efficient External-Memory Data Structures and Applications , 1996, BRICS Dissertation Series.

[112]  Yuval Rabani,et al.  Improved bounds for all optical routing , 1995, SODA '95.

[113]  Baruch Awerbuch,et al.  Concurrent Online Tracking of Mobile Users , 1991, SIGCOMM.

[114]  Cecilia R. Aragon,et al.  Optimization by Simulated Annealing: An Experimental Evaluation; Part II, Graph Coloring and Number Partitioning , 1991, Oper. Res..

[115]  Peter Sanders,et al.  Fast priority queues for cached memory , 1999, JEAL.

[116]  Ronald L. Rivest,et al.  Introduction to Algorithms , 1990 .

[117]  Charles W. Krueger,et al.  Software reuse , 1992, CSUR.

[118]  Eugene W. Myers,et al.  Suffix arrays: a new method for on-line string searches , 1993, SODA '90.

[119]  Marek Kubale,et al.  A generalized implicit enumeration algorithm for graph coloring , 1985, CACM.

[120]  Sariel Har-Peled,et al.  Taking a walk in a planar arrangement , 1999, 40th Annual Symposium on Foundations of Computer Science (Cat. No.99CB37039).

[121]  Herbert Edelsbrunner,et al.  Algorithms in Combinatorial Geometry , 1987, EATCS Monographs in Theoretical Computer Science.

[122]  Wojciech Plandowski,et al.  Fast Practical Multi-Pattern Matching , 1999, Inf. Process. Lett..

[123]  Donald E. Knuth,et al.  The Art of Computer Programming, Volume I: Fundamental Algorithms, 2nd Edition , 1997 .

[124]  Bruce Randall Donald,et al.  The area bisectors of a polygon and force equilibria in programmable vector fields , 1997, SCG '97.

[125]  J. Huelsenbeck Performance of Phylogenetic Methods in Simulation , 1995 .

[126]  Monika Henzinger,et al.  Average-Case Analysis of Dynamic Graph Algorithms , 1995, SODA '95.

[127]  Joan Boyar,et al.  Amortization Results for Chromatic Search Trees, with an Application to Priority Queues , 1997, J. Comput. Syst. Sci..

[128]  David R. Clark,et al.  Efficient suffix trees on secondary storage , 1996, SODA '96.

[129]  Lars Arge External-Memory Algorithms with Applications in Geographic Information Systems , 1997 .

[130]  P. Buneman The Recovery of Trees from Measures of Dissimilarity , 1971 .

[131]  Kurt Mehlhorn,et al.  A new data structure for representing sorted lists , 1980, Acta Informatica.

[132]  A. Marzal,et al.  A N-best sentence hypotheses enumeration algorithm with duration constraints based on the two level algorithm , 1992, Proceedings., 11th IAPR International Conference on Pattern Recognition. Vol. III. Conference C: Image, Speech and Signal Analysis,.

[133]  Arndt von Haeseler,et al.  PERFORMANCE OF THE MAXIMUM LIKELIHOOD, NEIGHBOR JOINING, AND MAXIMUM PARSIMONY METHODS WHEN SEQUENCE SITES ARE NOT INDEPENDENT , 1995 .

[134]  Marco Cadoli,et al.  The Complexity of Model Checking for Circumscriptive Formulae , 1992, Inf. Process. Lett..

[135]  Arne Andersson,et al.  Efficient implementation of suffix trees , 1995, Softw. Pract. Exp..

[136]  Giuseppe Cattaneo,et al.  Experimental analysis of dynamic minimum spanning tree algorithms , 1997, SODA '97.

[137]  David Thomas,et al.  The Art in Computer Programming , 2001 .

[138]  Joaquim Gabarró,et al.  Concurrent rebalancing on HyperRed-Black trees , 1997, Proceedings 17th International Conference of the Chilean Computer Science Society.

[139]  Alon Itai,et al.  Symmetry breaking in distributive networks , 1981, 22nd Annual Symposium on Foundations of Computer Science (sfcs 1981).

[140]  Robert E. Kalaba,et al.  ON THE K-TH BEST POLICIES , 1960 .

[141]  Alan M. Frieze,et al.  Existence and construction of edge disjoint paths on expander graphs , 1992, STOC '92.

[142]  Kurt Mehlhorn,et al.  Faster algorithms for the shortest path problem , 1990, JACM.

[143]  Paolo Ferragina,et al.  On Constructing Suffix Arrays in External Memory , 1999, ESA.

[144]  David Eppstein,et al.  Separator based sparsification for dynamic planar graph algorithms , 1993, STOC '93.

[145]  Bell Telephone,et al.  Regular Expression Search Algorithm , 1968 .

[146]  David Eppstein,et al.  Sparsification—a technique for speeding up dynamic graph algorithms , 1997, JACM.

[147]  Ronald Fagin,et al.  Extendible hashing—a fast access method for dynamic files , 1979, ACM Trans. Database Syst..

[148]  Leonidas J. Guibas,et al.  Arrangements of Curves in the Plane - Topology, Combinatorics and Algorithms , 2018, Theor. Comput. Sci..

[149]  Jan van Leeuwen,et al.  Maintenance of Configurations in the Plane , 1981, J. Comput. Syst. Sci..

[150]  Maxime Crochemore,et al.  Factor Oracle: A New Structure for Pattern Matching , 1999, SOFSEM.

[151]  Fred Douglis,et al.  System issues in mobile computing , 1993 .

[152]  Klaus Jansen,et al.  Constrained Bipartite Edge Coloring with Applications to Wavelength Routing , 1997, ICALP.

[153]  Bruce L. Golden,et al.  Solvingk-shortest and constrained shortest path problems efficiently , 1989 .

[154]  Sabine Hanke,et al.  The Performance of Concurrent Red-Black Tree Algorithms , 1998, WAE.

[155]  Mihalis Yannakakis,et al.  On Generating All Maximal Independent Sets , 1988, Inf. Process. Lett..

[156]  Haim J. Wolfson,et al.  Model-Based Object Recognition by Geometric Hashing , 1990, ECCV.

[157]  H. V. Jagadish,et al.  Algorithms for Searching Massive Graphs , 1994, IEEE Trans. Knowl. Data Eng..

[158]  Kurt Mehlhorn,et al.  On degeneracy in geometric computations , 1994, SODA '94.

[159]  Ketan Mulmuley,et al.  Computational geometry : an introduction through randomized algorithms , 1993 .

[160]  Martha Sideri,et al.  The Inverse Satisfiability Problem , 1996, SIAM J. Comput..

[161]  David S. Johnson,et al.  The Complexity of Near-Optimal Graph Coloring , 1976, J. ACM.

[162]  K. Cullings,et al.  A 5.8S nuclear ribosomal RNA gene sequence database: applications to ecology and evolution , 1998, Molecular ecology.

[163]  K. Mehlhorn,et al.  The LEDA class real number , 1996 .

[164]  Edward F. Grove,et al.  External-memory graph algorithms , 1995, SODA '95.

[165]  Robert E. Tarjan,et al.  Planar point location using persistent search trees , 1986, CACM.

[166]  Paul G. Spirakis,et al.  Fundamental control algorithms in mobile networks , 1999, SPAA '99.

[167]  Alberto Apostolico,et al.  The Myriad Virtues of Subword Trees , 1985 .

[168]  Malcolm P. Atkinson,et al.  A Database Index to Large Biological Sequences , 2001, VLDB.

[169]  Thomas Lengauer,et al.  Combinatorial algorithms for integrated circuit layout , 1990, Applicable theory in computer science.

[170]  Peter Ransom,et al.  The Unexpected Hanging And Other Mathematical Diversions , 1992, The Mathematical Gazette.

[171]  Christos Kaklamanis,et al.  Efficient Wavelength Routing on Directed Fiber Trees , 1996, ESA.

[172]  Michael L. Fredman,et al.  On the efficiency of pairing heaps and related data structures , 1999, JACM.

[173]  Vladimir Gurvich,et al.  On Generating the Irredundant Conjunctive and Disjunctive Normal Forms of Monotone Boolean Functions , 1999, Discret. Appl. Math..

[174]  H. M. Martinez,et al.  An efficient method for finding repeats in molecular sequences , 1983, Nucleic Acids Res..

[175]  J. McCarthy Circumscription|a Form of Nonmonotonic Reasoning , 1979 .

[176]  C. A. R. Hoare,et al.  Algorithm 65: find , 1961, Commun. ACM.

[177]  D. Hillis Inferring complex phylogenies. , 1996, Nature.

[178]  Eli Upfal,et al.  Efficient routing in all-optical networks , 1994, STOC '94.

[179]  Shashi Shekhar,et al.  Path computation algorithms for advanced traveller information system (ATIS) , 1993, Proceedings of IEEE 9th International Conference on Data Engineering.

[180]  References , 1971 .

[181]  J. Felsenstein,et al.  A simulation comparison of phylogeny algorithms under equal and unequal evolutionary rates. , 1994, Molecular biology and evolution.

[182]  Thomas H. Cormen,et al.  ViC*: a compiler for virtual-memory C* , 1998, Proceedings Third International Workshop on High-Level Parallel Programming Models and Supportive Environments.

[183]  Rajesh K. Pankaj Architectures for linear lightwave networks , 1992 .

[184]  Chee-Keng Yap,et al.  A geometric consistency theorem for a symbolic perturbation scheme , 1988, SCG '88.

[185]  Edward M. McCreight,et al.  A Space-Economical Suffix Tree Construction Algorithm , 1976, JACM.

[186]  Lars Arge,et al.  The Buuer Tree: a New Technique for Optimal I/o-algorithms ? , 1995 .

[187]  Kurt Mehlhorn,et al.  Efficient exact geometric computation made easy , 1999, SCG '99.

[188]  Hector Garcia-Molina,et al.  How to assign votes in a distributed system , 1985, JACM.

[189]  Yuval Rabani,et al.  Path coloring on the mesh , 1996, Proceedings of 37th Conference on Foundations of Computer Science.

[190]  Gaston H. Gonnet,et al.  A new approach to text searching , 1989, SIGIR '89.

[191]  Takashi Sato,et al.  An efficient implementation of trie structures , 1992, Softw. Pract. Exp..

[192]  Henryk Krawczyk,et al.  An Approximation Algorithm for Diagnostic Test Scheduling in Multicomputer Systems , 1985, IEEE Transactions on Computers.

[193]  David P. Dailey Uniqueness of colorability and colorability of planar 4-regular graphs are NP-complete , 1980, Discret. Math..

[194]  N. Saitou,et al.  The neighbor-joining method: a new method for reconstructing phylogenetic trees. , 1987, Molecular biology and evolution.

[195]  O Gascuel,et al.  BIONJ: an improved version of the NJ algorithm based on a simple model of sequence data. , 1997, Molecular biology and evolution.

[196]  M. Nei,et al.  Relative efficiencies of the maximum parsimony and distance-matrix methods in obtaining the correct phylogenetic tree. , 1988, Molecular biology and evolution.

[197]  Donald E. Knuth,et al.  Fast Pattern Matching in Strings , 1977, SIAM J. Comput..

[198]  Gérard Le Lann,et al.  Distributed Systems - Towards a Formal Approach , 1977, IFIP Congress.

[199]  Jeffrey Scott Vitter External memory algorithms , 1998, PODS '98.

[200]  John F. Canny,et al.  A General Approach to Removing Degeneracies , 1995, SIAM J. Comput..

[201]  Christos H. Papadimitriou,et al.  NP-Completeness: A Retrospective , 1997, ICALP.

[202]  Shih-Miao Chin,et al.  Computing k-shortest path for nuclear spent fuel highway transportation , 1991 .

[203]  J. Huelsenbeck,et al.  SUCCESS OF PHYLOGENETIC METHODS IN THE FOUR-TAXON CASE , 1993 .

[204]  Tomasz Imielinski,et al.  Structuring distributed algorithms for mobile hosts , 1994, 14th International Conference on Distributed Computing Systems.

[205]  Charles Fleurent,et al.  Object-oriented implementation of heuristic search methods for Graph Coloring, Maximum Clique, and Satisfiability , 1993, Cliques, Coloring, and Satisfiability.

[206]  Pierre Alliez,et al.  Removing Degeneracies by Perturbing the Problem or Perturbing the World , 2000, CCCG.

[207]  Leonidas J. Guibas,et al.  A dichromatic framework for balanced trees , 1978, 19th Annual Symposium on Foundations of Computer Science (sfcs 1978).

[208]  Kevin Weiler,et al.  Edge-Based Data Structures for Solid Modeling in Curved-Surface Environments , 1985, IEEE Computer Graphics and Applications.

[209]  MyersGene A Four Russians algorithm for regular expression pattern matching , 1992 .

[210]  Robert E. Tarjan,et al.  Amortized efficiency of list update and paging rules , 1985, CACM.

[211]  Eljas Soisalon-Soininen,et al.  Concurrency Control in B-Trees with Batch Updates , 1996, IEEE Trans. Knowl. Data Eng..

[212]  E. Martins,et al.  An algorithm for the ranking of shortest paths , 1993 .

[213]  Gerth Stølting Brodal,et al.  Worst-Case Efficient External-Memory Priority Queues , 1998 .

[214]  Paul G. Spirakis,et al.  Implementation and Testing Eavesdropper Protocols Using the DSP Tool , 1998, Algorithm Engineering.

[215]  Greg N. Frederickson Ambivalent Data Structures for Dynamic 2-Edge-Connectivity and k Smallest Spanning Trees , 1997, SIAM J. Comput..

[216]  Richard M. Karp,et al.  A Patching Algorithm for the Nonsymmetric Traveling-Salesman Problem , 1979, SIAM J. Comput..

[217]  Abraham P. Punnen The traveling salesman problem: new polynomial approximation algorithms and domination analysis , 2001 .

[218]  Robert E. Tarjan,et al.  Self-Adjusting Heaps , 1986, SIAM J. Comput..

[219]  Lauri Malmi A New Method for Updating and Rebalancing Tree-Type Main Memory Dictionaries , 1996, Nord. J. Comput..

[220]  Dennis Shasha,et al.  The performance of current B-tree algorithms , 1993, TODS.

[221]  John Wilkes,et al.  An introduction to disk drive modeling , 1994, Computer.

[222]  Mariette Yvinec,et al.  Algorithmic geometry , 1998 .

[223]  B. Honig,et al.  A rapid finite difference algorithm, utilizing successive over‐relaxation to solve the Poisson–Boltzmann equation , 1991 .

[224]  Edward F. Grove,et al.  Simple randomized mergesort on parallel disks , 1996, SPAA '96.

[225]  Roberto Grossi,et al.  A fully-dynamic data structure for external substring search , 1995, STOC '95.

[226]  Seif Haridi,et al.  Distributed Algorithms , 1992, Lecture Notes in Computer Science.

[227]  Bart Selman,et al.  Model-Preference Default Theories , 1990, Artif. Intell..

[228]  Charles Fleurent,et al.  Genetic and hybrid algorithms for graph coloring , 1996, Ann. Oper. Res..

[229]  S. Srinivasa Rao,et al.  Space Efficient Suffix Trees , 1998, J. Algorithms.

[230]  Richard E. Ladner,et al.  The influence of caches on the performance of sorting , 1997, SODA '97.

[231]  Kai Shen,et al.  Adaptive Algorithms for Cache-Efficient Trie Search , 1998, ALENEX.

[232]  Stefan Nilsson,et al.  Implementing a Dynamic Compressed Trie , 1998, WAE.

[233]  Gregory Gutin,et al.  Exponential neighbourhood local search for the traveling salesman problem , 1999, Comput. Oper. Res..

[234]  Paul F. Dietz,et al.  Two algorithms for maintaining order in a list , 1987, STOC.

[235]  Mark H. Overmars,et al.  The Design of Dynamic Data Structures , 1987, Lecture Notes in Computer Science.

[236]  S. Jeffery Evolution of Protein Molecules , 1979 .

[237]  Charles U. Martel,et al.  Performance of Priority Queue Structures in a Virtual Memory Environment , 1991, Comput. J..

[238]  Andrew Chi-Chih Yao,et al.  The Complexity of Pattern Matching for a Random String , 1977, SIAM J. Comput..

[239]  Geert-Jan Giezeman,et al.  On the design of CGAL a computational geometry algorithms library , 2000, Softw. Pract. Exp..

[240]  Douglas R. Shier,et al.  On algorithms for finding the k shortest paths in a network , 1979, Networks.

[241]  Daniel H. Huson,et al.  Hybrid tree reconstruction methods , 1999, JEAL.

[242]  Kim S. Larsen Amortized constant relaxed rebalancing using standard rotations , 1997, Acta Informatica.

[243]  J. Stoye,et al.  REPuter: the manifold applications of repeat analysis on a genomic scale. , 2001, Nucleic acids research.

[244]  Jr. E. G. Coffman An Introduction to Combinatorial Models of Dynamic Storage Allocation , 1983 .

[245]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[246]  Ian H. Witten,et al.  Bonsai: A compact representation of trees , 1993, Softw. Pract. Exp..

[247]  Greg N. Frederickson,et al.  Data structures for on-line updating of minimum spanning trees , 1983, STOC.

[248]  J. Huelsenbeck,et al.  Application and accuracy of molecular phylogenies. , 1994, Science.

[249]  Michael A. Trick,et al.  A Column Generation Approach for Graph Coloring , 1996, INFORMS J. Comput..

[250]  David R. Musser,et al.  STL tutorial and reference guide - C++ programming with the standard template library , 1996, Addison-Wesley professional computing series.

[251]  Frank Thomson Leighton,et al.  A Graph Coloring Algorithm for Large Scheduling Problems. , 1979, Journal of research of the National Bureau of Standards.

[252]  Jukka Teuhola,et al.  Heaps and Heapsort on Secondary Storage , 1999, Theor. Comput. Sci..

[253]  Paul J. Heffernan,et al.  Generalized Approzimate Algorithms for Point Set Congruence , 1993, WADS.

[254]  Paul G. Spirakis,et al.  Implementation an Experimental Evaluation of Graph Connectivity Algorithms Using LEDA , 1999, Algorithm Engineering.

[255]  Edward C. Sewell,et al.  An improved algorithm for exact graph coloring , 1993, Cliques, Coloring, and Satisfiability.

[256]  Robert Giegerich,et al.  From Ukkonen to McCreight and Weiner: A Unifying View of Linear-Time Suffix Tree Construction , 1997, Algorithmica.

[257]  J. Edmonds Minimum partition of a matroid into independent subsets , 1965 .

[258]  Jacques Carlier,et al.  A new heuristic for the traveling Salesman problem , 1990 .

[259]  Dimitrios Gunopulos,et al.  Data mining, hypergraph transversals, and machine learning (extended abstract) , 1997, PODS.

[260]  N. C. MacDonald,et al.  Upper and Lower Bounds for Programmable Vector Fields with Applications to MEMS and Vibratory Plate Parts Feeders , 1996 .

[261]  Giuseppe Cattaneo,et al.  A Software Library of Dynamic Graph Algorithms , 1998 .

[262]  Paul G. Spirakis,et al.  Stochastic Graphs Have Short Memory: Fully Dynamic Connectivity in Poly-Log Expected Time , 1995, ICALP.

[263]  J. Sack,et al.  Early Experiences in Implementing the Buffer Tree , 1997, WAE.

[264]  James Kempf,et al.  UNIX For Nomads: Making UNIX Support Mobile Computing , 1993, Symposium on Mobile and Location-Independent Computing.

[265]  Sariel Har-Peled Constructing cuttings in theory and practice , 1998, SCG '98.

[266]  Udi Manber,et al.  GLIMPSE: A Tool to Search Through Entire File Systems , 1994, USENIX Winter.

[267]  Joan Boyar,et al.  Efficient Rebalancing of Chromatic Search Trees , 1992, J. Comput. Syst. Sci..

[268]  Carsten Lund,et al.  On the hardness of approximating minimization problems , 1994, JACM.

[269]  Baruch Awerbuch,et al.  Approximating the size of a dynamically growing asynchronous distributed network , 1987 .

[270]  Klaus H. Hinrichs,et al.  Efficient Bulk Operations on Dynamic R-Trees , 1999, Algorithmica.

[271]  David S. Johnson,et al.  Some Simplified NP-Complete Graph Problems , 1976, Theor. Comput. Sci..

[272]  Andrew U. Frank,et al.  Modelling a Hierarchy of Space Applied to Large Road Networks , 1994, IGIS.

[273]  Douglas W. Jones,et al.  An empirical comparison of priority-queue and event-set implementations , 1986, CACM.

[274]  Torben Hagerup,et al.  Sorting and Searching on the Word RAM , 1998, STACS.

[275]  Dan Gusfield,et al.  Algorithms on Strings, Trees, and Sequences - Computer Science and Computational Biology , 1997 .

[276]  Vijay Kumar,et al.  Improved access to optical bandwidth in trees , 1997, SODA '97.

[277]  L FredmanMichael,et al.  Fibonacci heaps and their uses in improved network optimization algorithms , 1987 .

[278]  Herbert Edelsbrunner,et al.  Simulation of simplicity: a technique to cope with degenerate cases in geometric algorithms , 1988, SCG '88.

[279]  Jeffrey Scott Vitter,et al.  Supporting I/O-efficient scientific computation in TPIE , 1995, Proceedings.Seventh IEEE Symposium on Parallel and Distributed Processing.

[280]  J. Felsenstein Phylogenies from molecular sequences: inference and reliability. , 1988, Annual review of genetics.

[281]  Zvi Galil,et al.  Fully dynamic algorithms for edge connectivity problems , 1991, STOC '91.

[282]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[283]  Dan Gusfield,et al.  Algorithms on Strings, Trees, and Sequences - Computer Science and Computational Biology , 1997 .

[284]  Peter Weiner,et al.  Linear Pattern Matching Algorithms , 1973, SWAT.

[285]  Calton Pu,et al.  Design and application of PDBlib, a C++ macromolecular class library , 1994, Comput. Appl. Biosci..

[286]  M. Donoghue,et al.  Analyzing large data sets: rbcL 500 revisited. , 1997, Systematic biology.

[287]  Paul F. Dietz Maintaining order in a linked list , 1982, STOC '82.

[288]  Darren Erik,et al.  Supporting I/O-Efficient Scientific Computation In TPIE* , 1995 .

[289]  Stefan Schirra,et al.  A Case Study on the Cost of Geometric Computing , 1999, ALENEX.

[290]  Paul G. Spirakis,et al.  Fundamental distributed protocols in mobile networks , 1999, PODC '99.

[291]  Shi-Jen Lin,et al.  A Pruning Procedure for Exact Graph Coloring , 1991, INFORMS J. Comput..

[292]  Valmir Carneiro Barbosa,et al.  An introduction to distributed algorithms , 1996 .

[293]  Russ Bubley,et al.  Randomized algorithms , 1995, CSUR.

[294]  Heikki Mannila,et al.  Design by Example: An Application of Armstrong Relations , 1986, J. Comput. Syst. Sci..

[295]  Sakti Pramanik,et al.  HiTi graph model of topographical road maps in navigation systems , 1996, Proceedings of the Twelfth International Conference on Data Engineering.