String matching is one of the oldest algorithmic techniques, yet still one of the most pervasive in computer science. The past 20 years have seen technological leaps in applications as diverse as information retrieval and compression. This copiously illustrated collection of puzzles and exercises in key areas of text algorithms and combinatorics on words offers graduate students and researchers a pleasant and direct way to learn and practice with advanced concepts. The problems are drawn from a large range of scientific publications, both classic and new. Building up from the basics, the book goes on to showcase problems in combinatorics on words (including Fibonacci or Thue-Morse words), pattern matching (including Knuth-Morris-Pratt and Boyer-Moore like algorithms), efficient text data structures (including suffix trees and suffix arrays), regularities in words (including periods and runs) and text compression (including Huffman, Lempel-Ziv and Burrows-Wheeler based methods).
The term “stringology” is a popular nickname for text algorithms, or algorithms on strings. This book deals with the most basic algorithms in the area. Most of them can be viewed as “algorithmic jewels” and deserve reader-friendly presentation. One of the main aims of the book is to present several of the most celebrated algorithms in a simple way by omitting obscuring details and separating algorithmic structure from combinatorial theoretical background. The book reflects the relationships between applications of text-algorithmic techniques and the classification of algorithms according to the measures of complexity considered. The text can be viewed as a parade of algorithms in which the main purpose is to discuss the foundations of the algorithms and their interconnections. One can partition the algorithmic problems discussed into practical and theoretical problems. Certainly, string matching and data compression are in the former class, while most problems related to symmetries and repetitions in texts are in the latter. However, all the problems are interesting from an algorithmic point of view and enable the reader to appreciate the importance of combinatorics on words as a tool in the design of efficient text algorithms.In most textbooks on algorithms and data structures, the presentation of efficient algorithms on words is quite short as compared to issues in graph theory, sorting, searching, and some other areas. At the same time, there are many presentations of interesting algorithms on words accessible only in journals and in a form directed mainly at specialists. This book fills the gap in the book literature on algorithms on words, and brings together the many results presently dispersed in the masses of journal articles. The presentation is reader-friendly; many examples and about two hundred figures illustrate nicely the behaviour of otherwise very complex algorithms.
This much-needed book on the design of algorithms and data structures for text processing emphasizes both theoretical foundations and practical applications. It is intended to serve both as a textbook for courses on algorithm design, especially those related to text processing, and as a reference for computer science professionals. The work takes a unique approach, one that goes more deeply into its topic than other more general books. It contains both classical algorithms and recent results of research on the subject. The book is the first text to contain a collection of a wide range of text algorithms, many of them quite new and appearing here for the first time. Other algorithms, while known by reputation, have never been published in the journal literature. Two such important algorithms are those of Karp, Miller and Rosenberg, and that of Weiner. Here they are presented together for the fist time. The core of the book is the material on suffix trees and subword graphs, applications of these data structures, new approaches to time-space optimal string-matching, and text compression. Also covered are basic parallel algorithms for text problems. Applications of all these algorithms are given for problems involving data retrieval systems, treatment of natural languages, investigation of genomes, data compression software, and text processing tools. From the theoretical point of view. the book is a goldmine of paradigms for the development of efficient algorithms, providing the necessary foundation to creating practical software dealing with sequences. A crucial point in the authors' approach is the development of a methodology for presenting text algorithms so they can be fully understood. Throughout, the book emphasizes the efficiency of algorithms, holding that the essence of their usefulness depends on it. This is especially important since the algorithms described here will find application in "Big Science" areas like molecular sequence analysis where the explosive growth of data has caused problems for the current generation of software. Finally, with its development of theoretical background, the book can be considered as a mathematical foundation for the analysis and production of text processing algorithms.
The matching problem is central to graph theory and the theory of algorithms. This book provides a comprehensive and straightforward introduction to the basic methods for designing efficient parallel algorithms for graph matching problems. Written for students at the beginning graduate level, the exposition is largely self-contained and example-driven; prerequisites have been kept to a minimum by including relevant background material. The book contains full details of several new techniques and will be of interest to researchers in computer science, operations research, discrete mathematics, and electrical engineering. The main theoretical tools are presented in three independent chapters, devoted to combinatorial tools, probabilistic tools, and algebraic tools. One of the goals of the book is to show how these three approaches can be combined to develop efficient parallel algorithms. The book represents a meeting point of interesting algorithmic techniques and opens up new algebraic and geometric areas.
The matching problem is central to graph theory and the theory of algorithms. This book provides a comprehensive and straightforward introduction to the basic methods for designing efficient parallel algorithms for graph matching problems. Written for students at the beginning graduate level, the exposition is largely self-contained and example-driven; prerequisites have been kept to a minimum by including relevant background material. The book contains full details of several new techniques and will be of interest to researchers in computer science, operations research, discrete mathematics, and electrical engineering. The main theoretical tools are presented in three independent chapters, devoted to combinatorial tools, probabilistic tools, and algebraic tools. One of the goals of the book is to show how these three approaches can be combined to develop efficient parallel algorithms. The book represents a meeting point of interesting algorithmic techniques and opens up new algebraic and geometric areas.
The term ?stringology? is a popular nickname for text algorithms, or algorithms on strings. This book deals with the most basic algorithms in the area. Most of them can be viewed as ?algorithmic jewels? and deserve reader-friendly presentation. One of the main aims of the book is to present several of the most celebrated algorithms in a simple way by omitting obscuring details and separating algorithmic structure from combinatorial theoretical background. The book reflects the relationships between applications of text-algorithmic techniques and the classification of algorithms according to the measures of complexity considered. The text can be viewed as a parade of algorithms in which the main purpose is to discuss the foundations of the algorithms and their interconnections. One can partition the algorithmic problems discussed into practical and theoretical problems. Certainly, string matching and data compression are in the former class, while most problems related to symmetries and repetitions in texts are in the latter. However, all the problems are interesting from an algorithmic point of view and enable the reader to appreciate the importance of combinatorics on words as a tool in the design of efficient text algorithms.In most textbooks on algorithms and data structures, the presentation of efficient algorithms on words is quite short as compared to issues in graph theory, sorting, searching, and some other areas. At the same time, there are many presentations of interesting algorithms on words accessible only in journals and in a form directed mainly at specialists. This book fills the gap in the book literature on algorithms on words, and brings together the many results presently dispersed in the masses of journal articles. The presentation is reader-friendly; many examples and about two hundred figures illustrate nicely the behaviour of otherwise very complex algorithms.
This much-needed book on the design of algorithms and data structures for text processing emphasizes both theoretical foundations and practical applications. It is intended to serve both as a textbook for courses on algorithm design, especially those related to text processing, and as a reference for computer science professionals. The work takes a unique approach, one that goes more deeply into its topic than other more general books. It contains both classical algorithms and recent results of research on the subject. The book is the first text to contain a collection of a wide range of text algorithms, many of them quite new and appearing here for the first time. Other algorithms, while known by reputation, have never been published in the journal literature. Two such important algorithms are those of Karp, Miller and Rosenberg, and that of Weiner. Here they are presented together for the fist time. The core of the book is the material on suffix trees and subword graphs, applications of these data structures, new approaches to time-space optimal string-matching, and text compression. Also covered are basic parallel algorithms for text problems. Applications of all these algorithms are given for problems involving data retrieval systems, treatment of natural languages, investigation of genomes, data compression software, and text processing tools. From the theoretical point of view. the book is a goldmine of paradigms for the development of efficient algorithms, providing the necessary foundation to creating practical software dealing with sequences. A crucial point in the authors' approach is the development of a methodology for presenting text algorithms so they can be fully understood. Throughout, the book emphasizes the efficiency of algorithms, holding that the essence of their usefulness depends on it. This is especially important since the algorithms described here will find application in "Big Science" areas like molecular sequence analysis where the explosive growth of data has caused problems for the current generation of software. Finally, with its development of theoretical background, the book can be considered as a mathematical foundation for the analysis and production of text processing algorithms.
This book constitutes the refereed proceedings of the 21st International Symposium on Mathematical Foundations of Computer Science, MFCS '96, held in Crakow, Poland in September 1996. The volume presents 35 revised full papers selected from a total of 95 submissions together with 8 invited papers and 2 abstracts of invited talks. The papers included cover issues from the whole area of theoretical computer science, with a certain emphasis on mathematical and logical foundations. The 10 invited presentations are of particular value.
A timely book on a topic that has witnessed a surge of interest over the last decade, owing in part to several novel applications, most notably in data compression and computational molecular biology. It describes methods employed in average case analysis of algorithms, combining both analytical and probabilistic tools in a single volume. * Tools are illustrated through problems on words with applications to molecular biology, data compression, security, and pattern matching. * Includes chapters on algorithms and data structures on words, probabilistic and analytical models, inclusion-exclusion principles, first and second moment methods, subadditive ergodic theorem and large deviations, elements of information theory, generating functions, complex asymptotic methods, Mellin transform and its applications, and analytic poissonization and depoissonization. * Written by an established researcher with a strong international reputation in the field.
Thank you for visiting our website. Would you like to provide feedback on how we could improve your experience?
This site does not use any third party cookies with one exception — it uses cookies from Google to deliver its services and to analyze traffic.Learn More.