skip to main content
Skip header Section
Combinatorics for computer scienceMay 2002
Publisher:
  • Dover Publications, Inc.
  • 31 E. Second St. Mineola, NY
  • United States
ISBN:978-0-486-42076-9
Published:01 May 2002
Pages:
479
Skip Bibliometrics Section
Bibliometrics
Skip Abstract Section
Abstract

While the mathematics of classical engineering and science is primarily "continuous," the mathematics of computer science is largely "discrete" or "combinatorial." This volume is a useful guide to combinatorial mathematics for computer scientists and applied mathematicians. Based on a beginning graduate-level course taught by the author, it covers the two major subdivisions of combinatorics---enumeration and graph theory---with emphasis on the conceptual needs of computer science. Each part is divided into a "basic concepts" chapter that emphasizes the intuitive ideas of the subject, followed by four "topics" chapters that explore these ideas in depth. Part I examines basic concepts of linear order: sorting, basic combinatorial lists, symmetry, and some classical combinatorics. Part II considers fundamental concepts of graphs, trees, and recursion: depth first search and planarity, depth first search and nonplanarity, triconnectivity, and matroids. Given the rapid and continued growth of computer science today, this accessible, well-written volume will be an invaluable practical resource for graduate students, advanced undergraduates, and professionals with an interest in algorithm design and other aspects of computer science and combinatorics.

Index Terms

  1. Combinatorics for computer science

      Recommendations

      Diane Mar Spresser

      This book, an unabridged paperback republication of the original edition published in 1985 by Computer Science Press, is organized into two parts, along the general lines of enumeration and graph theory. The two parts are independent, and can be read in either order. Each part consists of five chapters: a “basic concepts” chapter that introduces fundamentals and previews ideas to come, and four in-depth “topics” chapters. In “Part 1: Linear Order,” the first chapter begins with definitions and tools from elementary set theory, and progresses to a discussion of data structures intended to establish common ground for later work, an investigation of lexicographic order and its relation to backtracking and isomorph rejection, and an introduction to ordered partition trees as conceptual devices for studying lists of basic combinatorial objects. As the chapter concludes, the author brings these ideas together in the context of the n-queens problem. Chapters 2 through 4 are devoted to sorting, basic combinatorial lists, and symmetry (orbit enumeration and orderly algorithms), respectively. Chapter 5 surveys four topics in classic combinatorics, which may be read independently of each another: generating functions, inclusion-exclusion, Möbius inversion, and network flows. Chapter 6, the beginning of “Part 2: Graphs, Trees, and Recursion,” starts with definitions and initial algorithmic insights into trees, which are then developed more fully in connection with recursion. The chapter proceeds into important algorithmic concepts, depth first search in graphs, and orderly algorithms, followed by previews of ideas that will resurface later in conjunction with matroids (chapter 10) and the algorithmic aspects of embeddings of graphs (chapters 7 through 9). Chapters 7 through 10 focus on depth first search and planarity, depth first search and nonplanarity, triconnectivity, and matroids, respectively. With the exception of chapters 7 and 8, these chapters are independent of each another. Each part of the book concludes with a fairly extensive, useful list of references, including both general classics and more specialized literature related to the book’s topical content. A necessary liability (given that the book is a republication of a 1985 edition) is that all references are to publications dated 1983 or earlier. This well-written book was originally designed for a beginning-level graduate class in, as the author notes in the preface, a “seminar style,” so its organization into chapters with numerous short sections naturally supports many student trips to the front of the classroom. Chapter 9, for example, which is 21 pages long, is subdivided into 38 short sections. Although the author indicates that selections from the book have also been used as the basis for an upper-division undergraduate course, including larger classes of 40 to 50 students, this would not be my text of choice for such classes. The exercises in Part 1 are both more numerous and more varied in degree of challenge than those in Part 2. While chapters 6 and 10 each contain reasonable numbers of exercises (between 40 and 50 each), the remaining three chapters in Part 2 contain fewer than twenty exercises in total. The author’s approach to complexity of algorithms deserves mention. As Williamson notes in the preface, “The student is periodically encouraged to think about the complexity of various algorithms,” but he thinks “it is a mistake for the student at this level to be overly concerned with ´optimality´ of algorithms in terms of theoretical running time estimates.” His view of combinatorial mathematics (with which I agree) is that it “provides a powerful intuitive or ‘geometric’ framework for the discussion of algorithmic concepts,” and he therefore emphasizes the “systematic exploitation of this geometry of algorithms...over the complexity of algorithms... ” There is always the question of whether or not a book has the right topics and degree of coverage, relative to its goals and audience. The author states that the topics presented are those that, in his opinion and that of his students, “contain the most basic and useful ideas for the computer scientist and applied mathematician” (p. vii). There are a number of opportunities to disagree. Matroids, the topic of the book’s most extensive chapter, may be overdone, for example. Other topics, such as Euler and Hamiltonian paths and cycles and graph coloring, receive scant coverage. I found no explicit mention of either the traveling salesperson or four color problems, and neither is listed in the index. Having said that, it is worth noting that the book has a sufficiently loyal following to merit its republication, even 17 years after the original edition. Overall, this is an interesting work that deserves a place on the shelf of anyone with a serious interest in combinatorics. As a text, it is probably best suited to small classes of graduate or advanced undergraduate students, where its seminar-style approach can be fully utilized. Online Computing Reviews Service

      Access critical reviews of Computing literature here

      Become a reviewer for Computing Reviews.