The.Algorithm.Design.Manual.Springer-Verlag.1998
The.Algorithm.Design.Manual.Springer-Verlag.1998 The.Algorithm.Design.Manual.Springer-Verlag.1998
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]
- Page 621 and 622: Set Cover Figure: Hitting set is du
- Page 623 and 624: Set Packing Next: String Matching U
- Page 625 and 626: Set Packing Notes: An excellent exp
- Page 627 and 628: String Matching shouldn't try. Furt
- Page 629 and 630: String Matching and texts, I recomm
- Page 631 and 632: Approximate String Matching This sa
- Page 633 and 634: Approximate String Matching http://
- Page 635 and 636: Text Compression Next: Cryptography
- Page 637 and 638: Text Compression code string. ASCII
- Page 639 and 640: Cryptography Next: Finite State Mac
- Page 641 and 642: Cryptography ● How can I validate
- Page 643 and 644: Cryptography MD5 [Riv92] is the sec
- Page 645 and 646: Finite State Machine Minimization F
- Page 647 and 648: Finite State Machine Minimization S
- Page 649 and 650: Longest Common Substring than edit
- Page 651 and 652: Longest Common Substring include [A
- Page 653 and 654: Shortest Common Superstring Finding
- Page 655 and 656: Software systems Next: LEDA Up: Alg
- Page 657 and 658: LEDA Next: Netlib Up: Software syst
- Page 659 and 660: Netlib Algorithms Mon Jun 2 23:33:5
- Page 661 and 662: The Stanford GraphBase Next: Combin
- Page 663 and 664: Algorithm Animations with XTango Ne
- Page 665 and 666: Programs from Books Next: Discrete
- Page 667 and 668: Handbook of Data Structures and Alg
- Page 669 and 670: Algorithms from P to NP Next: Compu
- Page 671: Algorithms in C++ Next: Data Source
- Page 675 and 676: On-Line Resources Next: Literature
- Page 677 and 678: People Next: Software Up: On-Line R
- Page 679 and 680: Professional Consulting Services Ne
- Page 681 and 682: Index A Up: Index - All Index: A ab
- Page 683 and 684: Index A artists steal ASA ASCII asp
- Page 685 and 686: Index B binary representation - sub
- Page 687 and 688: Index C Up: Index - All Index: C C+
- Page 689 and 690: Index C clustering , , co-NP coding
- Page 691 and 692: Index C consulting services , conta
- Page 693 and 694: Index D Up: Index - All Index: D DA
- Page 695 and 696: Index D Dictionaries dictionaries -
- Page 697 and 698: Index D dynamic programming - appli
- Page 699 and 700: Index E empirical results - heurist
- Page 701 and 702: Index F Up: Index - All Index: F fa
- Page 703 and 704: Index F frequency domain friend-or-
- Page 705 and 706: Index G geometric shortest path , g
- Page 707 and 708: Index H Up: Index - All Index: H ha
- Page 709 and 710: Index H Algorithms Tue Jun 3 11:59:
- Page 711 and 712: Index I independent set - alternate
- Page 713 and 714: Index J Up: Index - All Index: J ji
- Page 715 and 716: Index K Algorithms Tue Jun 3 11:59:
- Page 717 and 718: Index L linear congruential generat
- Page 719 and 720: Index M Up: Index - All Index: M ma
- Page 721 and 722: Index M mindset minima minimax sear
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]