The.Algorithm.Design.Manual.Springer-Verlag.1998

The.Algorithm.Design.Manual.Springer-Verlag.1998 The.Algorithm.Design.Manual.Springer-Verlag.1998

18.04.2013 Views

Data Sources Next: Textbooks Up: Algorithmic Resources Previous: Algorithms in C++ Data Sources It is often important to have interesting data to feed your algorithms, to serve as test data to ensure correctness or to compare different algorithms for raw speed. Finding good test data can be surprisingly difficult. Here are some pointers: ● Combinatorica graphs - A modest collection of graphs is available from the Combinatorica ftp site. Particularly interesting are the 190 graphs of Graffiti [Faj87], a program that formulated conjectures in graph theory by studying the properties of these graphs. See Section for more information on Combinatorica. ● TSPLIB - This well-respected library of test instances for the traveling salesman problem is available from Netlib (see Section ) and by anonymous ftp from softlib.cs.rice.edu. TSPLIB instances are large, real-world graphs, derived from applications such as circuit boards and networks. ● Stanford GraphBase - Discussed in Section , this suite of programs by Knuth provides portable generators for a wide variety of graphs. These include graphs arising from distance matrices, arts, and literature, as well as graphs of more theoretical interest. ● DIMACS Challenge data - A series of DIMACS Challenge workshops have focused on evaluating algorithm implementations of graph, logic, and data structure problems. Instance generators for each problem have been developed, with the focus on constructing difficult or representative test data. The products of the DIMACS Challenges are available from http://dimacs.rutgers.edu/. ● Algorithm Repository - The Algorithm Repository WWW site, http://www.cs.sunysb.edu/ algorith (and enclosed CD-ROM) contain data sources for a few of the implementation challenge exercises. In particular, we provide an airline routes data set, and a collection of names labeled by ethnicity. Algorithms Mon Jun 2 23:33:50 EDT 1997 file:///E|/BOOK/BOOK5/NODE225.HTM [19/1/2003 1:32:29]

Textbooks Next: On-Line Resources Up: Algorithmic Resources Previous: Data Sources Textbooks There have emerged a number of excellent textbooks in the design and analysis of combinatorial algorithms. Below we point out several of our favorites. In this book, we have shied away from giving a detailed exposition or analysis of many algorithms, for our primary mission is to help the reader identify their problem and point them to solutions. The reader is encouraged to turn to these sources for more detail once they have found the name of what they are looking for. Only general algorithm books are discussed here. Books on specific subareas of algorithms are reviewed at the head of the relevant catalog chapter. ● Cormen, Leiserson, and Rivest [CLR90] - This is the one (other) book on algorithms you must own, with its comprehensive treatment of most of the problems we discuss here, including data structures, graph algorithms, and seminumerical algorithms. ● Baase [Baa88] - This book is more accessible than [CLR90] for those without a strong mathematical background. It covers standard sorting, string, and graph algorithms, NPcompleteness, and more exotically, an introduction to parallel algorithms. ● Manber [Man89] - Built around the unconventional notion that induction is the fundamental paradigm of algorithm design, this book is especially good at teaching techniques for designing algorithms and has an outstanding collection of problems. Highly recommended. ● van Leeuwen [vL90b] - Not a textbook, but a collection of in-depth surveys on the state of the art in algorithms and computational complexity. Although the emphasis is on theoretical results, this book is perhaps the best single reference to point you to what is known about any given problem. ● Syslo, Deo, and Kowalik [SDK83] - This book includes printed Pascal implementations of 28 algorithms for discrete optimization problems, including mathematical programming, network optimization, and traditional operations research problems such as knapsack and TSP. Each algorithm is described in the book, and experimental timings (on a 1980s vintage machine) are provided. These codes are now available by ftp, as discussed in Section . Despite its age, this remains a useful reference, particularly with the programs now available on-line. ● Moret and Shapiro [MS91] - This algorithms text distinguishes itself by including Pascal implementations of all algorithms and by its careful experimental comparisons of different algorithms for such problems as sorting and minimum spanning tree. It provides a useful model for how to properly do empirical algorithm analysis. These programs are available by ftp - see Section for details. file:///E|/BOOK/BOOK5/NODE226.HTM (1 of 2) [19/1/2003 1:32:30]

Textbooks<br />

Next: On-Line Resources Up: <strong>Algorithm</strong>ic Resources Previous: Data Sources<br />

Textbooks<br />

<strong>The</strong>re have emerged a number of excellent textbooks in the design and analysis of combinatorial<br />

algorithms. Below we point out several of our favorites. In this book, we have shied away from giving a<br />

detailed exposition or analysis of many algorithms, for our primary mission is to help the reader identify<br />

their problem and point them to solutions. <strong>The</strong> reader is encouraged to turn to these sources for more<br />

detail once they have found the name of what they are looking for.<br />

Only general algorithm books are discussed here. Books on specific subareas of algorithms are reviewed<br />

at the head of the relevant catalog chapter.<br />

● Cormen, Leiserson, and Rivest [CLR90] - This is the one (other) book on algorithms you must<br />

own, with its comprehensive treatment of most of the problems we discuss here, including data<br />

structures, graph algorithms, and seminumerical algorithms.<br />

● Baase [Baa88] - This book is more accessible than [CLR90] for those without a strong<br />

mathematical background. It covers standard sorting, string, and graph algorithms, NPcompleteness,<br />

and more exotically, an introduction to parallel algorithms.<br />

● Manber [Man89] - Built around the unconventional notion that induction is the fundamental<br />

paradigm of algorithm design, this book is especially good at teaching techniques for designing<br />

algorithms and has an outstanding collection of problems. Highly recommended.<br />

● van Leeuwen [vL90b] - Not a textbook, but a collection of in-depth surveys on the state of the art<br />

in algorithms and computational complexity. Although the emphasis is on theoretical results, this<br />

book is perhaps the best single reference to point you to what is known about any given problem.<br />

● Syslo, Deo, and Kowalik [SDK83] - This book includes printed Pascal implementations of 28<br />

algorithms for discrete optimization problems, including mathematical programming, network<br />

optimization, and traditional operations research problems such as knapsack and TSP. Each<br />

algorithm is described in the book, and experimental timings (on a 1980s vintage machine) are<br />

provided. <strong>The</strong>se codes are now available by ftp, as discussed in Section . Despite its age, this<br />

remains a useful reference, particularly with the programs now available on-line.<br />

● Moret and Shapiro [MS91] - This algorithms text distinguishes itself by including Pascal<br />

implementations of all algorithms and by its careful experimental comparisons of different<br />

algorithms for such problems as sorting and minimum spanning tree. It provides a useful model for<br />

how to properly do empirical algorithm analysis. <strong>The</strong>se programs are available by ftp - see Section<br />

for details.<br />

file:///E|/BOOK/BOOK5/NODE226.HTM (1 of 2) [19/1/2003 1:32:30]

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!