Book description
All aspects pertaining to algorithm design and algorithm analysis have been discussed over the chapters in this book-- Design and Analysis of Algorithms.
Table of contents
- Cover
- Title page
- Brief Contents
- Contents
- Dedication
- Preface
-
Part 1. Algorithm Design
- Chapter 1. Introduction
-
Chapter 2. Problem Solving with a Computer
- 2.1 Introduction
-
2.2 Solving a Problem with a Computer
- 2.2.1 Statement of the problem or problem definition
- 2.2.2 Development of a model
- 2.2.3 Design of the algorithm
- 2.2.4 Checking the correctness of the algorithm
- 2.2.5 Implementation in some programming language
- 2.2.6 Analyze and study the complexity of the algorithm
- 2.2.7 Program testing—debugging and profiling
- 2.2.8 Documentation preparation
- 2.3 Some More Examples
- 2.4 Problem Solving in General
- Summary
- Key Terms
- Exercises
- Web Resources
- Chapter 3. Top-Down Design
- Chapter 4. Iterative Algorithm Design Issues
- Chapter 5. Computation Models and Design by Refinement
- Chapter 6. Proof Rules—Basics
- Chapter 7. Design by Proof Rules
- Chapter 8. Design using Recursion
- Chapter 9. Abstract Algorithms-1-Divide-and-Conquer
-
Chapter 10. Abstract Algorithms 2—Greedy Methods
- 10.1 Introduction
- 10.2 Example—Knapsack Problem
- 10.3 Job Sequencing with Deadlines
-
10.4 Example—Minimum Spanning Trees
- 10.4.1 Prim’s algorithm
- 10.4.2 Kruskal’s algorithm
- 10.4.3 1st Version—Kruskal.c
- 10.4.4 Union-find data-structure
- 10.4.5 Tree-based disjoint sets and the quick-union algorithm
- 10.4.6 Implementing quick-union with an array
- 10.4.7 Complexity analysis of quick-union
- 10.4.8 Using union-find in Kruskal algorithm
- 10.4.9 Matroids
- 10.4.10 Correctness of Kruskal’s algorithm
- 10.5 Example [Shortest Path]
- Summary
- Key Terms
- Exercises
- Web Resources
-
Chapter 11. Abstract Algorithms 3—Dynamic Programming
- 11.1 Introduction
- 11.2 Example—Multistage Graphs
- 11.3 Example—Traveling Salesman (TS)
- 11.4 Example—Matrix Multiplication
- 11.5 Example—Longest Common Sub-sequence (LCS)
- 11.6 Example—Optimal Polygon Triangulation
- 11.7 Single Source Shortest Paths
- 11.8 Maximum Flow Problems
- 11.9 Conclusion
- Summary
- Key Terms
- Exercises
- Web Resources
- Chapter 12. Abstract Algorithms 4—Backtracking
-
Chapter 13. Natural Algorithms—GA, SA, ANN, TS
- 13.1 Introduction
- 13.2 Evolutionary Algorithms and Evolutionary Computing
- 13.3 Genetic Algorithms
- 13.4 Simulated Annealing
-
13.5 Artificial Neural Networks (ANN)
- 13.5.1 Analogy to the brain
- 13.5.2 How they work?
- 13.5.3 Electronic implementation of artificial neurons
- 13.5.4 Artificial network operations
- 13.5.5 Training an artificial neural network
- 13.5.6 F eed-forward network
- 13.5.7 Hopfield feedback connected neural network
- 13.5.8 How neural networks differ from traditional computing and expert systems
- 13.5.9 Artificial neural network applications
- 13.6 Tabu Search
- Summary
- Key Terms
- Web Resources
-
Part 2. Algorithm Analysis
-
Chapter 14. Efficiency of Algorithms
- 14.1 Polynomial-Time and Non-Polynomial-Time Algorithms
- 14.2 Worst and Average Case Behaviour
- 14.3 Time Analysis of Algorithms
- 14.4 Efficiency of Recursion
-
14.5 Complexity
- 14.5.1 The notion of complexity
- 14.5.2 Profiling
- 14.5.3 Suppressing multiplicative constants
- 14.5.4 Counting dominant operations
- 14.5.5 Growth-Rate
- 14.5.6 Upper bounds
- 14.5.7 Asymptotic growth-rate
- 14.5.8 The ‘O’ notation
- 14.5.9 Discussion
- 14.5.10 Simplified definition of ‘O’
- 14.5.11 ‘O’ notation rules
- 14.5.12 Analyzing growth of exotic functions
- 14.5.13 Derivative rule
- 14.5.14 Order-of-magnitude comparisons
- 14.5.15 Doubling comparisons
- 14.5.16 Estimating complexity experimentally
- 14.5.17 Experimental comparison of sorting procedures
- Summary
- Key Terms
- Exercises
- Web Resources
- Chapter 15. Examples of Complexity Calculation
- Chapter 16. Time-Space Trade-Off
-
Chapter 17. Tractable and Non-Tractable Problems
- 17.1 Introduction
- 17.2 Upper and Lower Bounds
- 17.3 Efficiency and Tractability
- 17.4 NP-Completeness
- 17.5 Polynomial Time Reductions
- 17.6 Problem Classes P, NP, and Others
- 17.7 Bounded Halting is in NPC
- 17.8 Cook’s Theorem
- 17.9 Is P = NP?
- 17.10 Approximate Solutions to NPC Problems
- 17.11 Provably Intractable Problems
- 17.12 Even Harder Problems
- 17.13 Unreasonable Requirements of Memory
- 17.14 Complexity Classes and Intractability
- 17.15 Non-Computability and Undecidability
- 17.16 Algorithmic Program Verification
- 17.17 Partially and Highly Undecidable Problems
- 17.18 The Four Levels of Algorithmic Behaviour
- Summary
- Key Terms
- Web Resources
- Chapter 18. Some NP and NP-Complete Problems
- Chapter 19. Randomized and Approximate Algorithms
-
Chapter 20. Formal Specifications—1 Model Oriented
- 20.1 Formal Specifications
-
20.2 Introduction to VDM
- 20.2.1 The implicit specification of operations
- 20.2.2 Examples of implicit specifications
- 20.2.3 The logical condition
- 20.2.4 Reasoning with pre- and post-conditions
- 20.2.5 Introduction to VDM data types
- 20.2.6 The primitive types
- 20.2.7 The set type
- 20.2.8 Implicit definition of sets
- 20.2.9 Creating VDM state models
- 20.2.10 Composites
- 20.3 A Systematic Approach to the Construction of VDM Specifications
- 20.4 The Sequence and Map Types
- Summary
- Key Terms
- Exercises
- Web Resources
- Chapter 21. Formal Specifications—2 Algebraic
-
Chapter 14. Efficiency of Algorithms
-
Appendix A. Essential Mathematical Background
- A.1 What is Discrete Mathematics?
-
A.2 Formal Logic: A Language for Mathematics
- A.2.1 Assertions and propositions
- A.2.2 Logical connectives
- A.2.3 Tautologies, contradictions, and contingencies
- A.2.4 Proof techniques
- A.2.5 Predicates
- A.2.6 Quantifiers
- A.2.7 Free and bound variables
- A.2.8 Implications and equivalences
- A.2.9 Classification of assertions in predicate logic
- A.2.10 Inference rules in predicate logic
- A.3 Sets
- A.4 Asymptotic Notations
- A.5 Number Theory
- A.6 Formal Languages
- A.7 Proof by Induction
- A.8 Introduction to combinatorics
- A.9 Random Variables
- A.10 Relations
- A.11 Graph Theory
- Exercises
- Appendix B. Some Useful Mathematical Formulae
- Appendix C. Overview of Essential Data Structures
- Appendix D. Solutions of Recurrence Relations
-
Appendix E Additional Exercises with Solutions
-
E.1 Additional Exercises
- E.1.1 Chapter 4: Loop design issues
- E.1.2 Chapter 6: Proof rule basics
- E.1.3 Chapter 7: Design by proof rules
- E.1.4 Chapter 9: Divide and conquer
- E.1.5 Chapter 10: Greedy methods
- E.1.6 Chapter 11: Dynamic orogramming
- E.1.7 Chapter 14: Efficiency of algorithms
- E.1.8 Chapter 15: Complexity calculation
- E.1.9 Chapter 17: Tractable and non-tractable problems
- E.1.10 Chapter 18: Some NP and NPC problems
- E.1.11 Chapter 19: Approximate solutions
- E.1.12 Appendix D: Solutions of recurrence relations
-
E.2 Hints and Solutions
- E.2.1 Chapter 4: Loop design issues
- E.2.2 Chapter 6: Proof rules basic
- E.2.3 Chapter 7: Design by proof rules
- E.2.4 Chapter 9: Divide and conquer
- E.2.5 Chapter 10: Greedy algorithms
- E.2.6 Chapter 11: Dynamic programming
- E.2.7 Chapter 14: Efficiency of algorithms
- E.2.8 Chapter 15: Complexity calculations
- E.2.9 Chapter 17: Tractable and non-tractable problems
- E.2.10 Chapter 18: Some NP and NPC problems
- E.2.11 Chapter 19: Approximate solutions
- E.2.12 Appendix D: Solutions of recurrence relations
-
E.1 Additional Exercises
- Bibliography
- Notes
- Copyright
- Back Cover
Product information
- Title: Design and Analysis of Algorithms
- Author(s):
- Release date: September 2007
- Publisher(s): Pearson India
- ISBN: 9788177585957
You might also like
video
Analysis of Algorithms
12+ Hours of Video Instruction Analysis of Algorithms Video Lectures cover the essential information that every …
book
An Introduction to the Analysis of Algorithms, Second Edition
Despite growing interest, basic information on methods and models for mathematically analyzing algorithms has rarely been …
book
Design and Analysis of Algorithms, 2nd Edition by Pearson
This second edition of Design and Analysis of Algorithms continues to provide a comprehensive exposure to …
book
Introduction to Computational Thinking: Problem Solving, Algorithms, Data Structures, and More
Learn approaches of computational thinking and the art of designing algorithms. Most of the algorithms you …