Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
INTRODUCTION TO RECURSIVEFORMULATIONS FOR ALGORITHM DESIGN: II
Partha P ChakrabartiIndian Institute of Technology Kharagpur
Overview Algorithms and Programs Pseudo-Code Algorithms + Data Structures = Programs Initial Solutions + Analysis + Solution
Refinement + Data Structures = Final Algorithm
Use of Recursive Definitions as Initial Solutions
Recurrence Equations for Proofs and Analysis
Solution Refinement through Recursion Transformation and Traversal
Data Structures for saving past computation for future use
Sample Problems:1. Finding the Largest2. Largest and Smallest3. Largest and Second Largest4. Fibonacci Numbers5. Searching for an element in an ordered
/ unordered List6. Sorting7. Pattern Matching 8. Permutations and Combinations9. Layout and Routing10. Shortest Paths
3rd Problem: Largest and Second LargestSequential Comparison
Largest and 2nd Largest: Recursive Formulation
Largest and Next: Tournament
Tournaments & Sorting
Final Algorithms & Data Structuring
Algorithms + Data Structures = Progams
Algorithm Design by Recursion Transformation1. Initial Solution
a. Recursive Definition – A set of Solutionsb. Inductive Proof of Correctnessc. Analysis Using Recurrence Relations
2. Exploration of Possibilitiesa. Decomposition or Unfolding of the Recursion Treeb. Examination of Structures formedc. Re-composition Properties
3. Choice of Solution & Complexity Analysisa. Balancing the Split, Choosing Pathsb. Identical Sub-problems
4. Data Structures & Complexity Analysisa. Remembering Past Computation for Futureb. Space Complexity
5. Final Algorithm & Complexity Analysisa. Traversal of the Recursion Treeb. Pruning
6. Implementationa. Available Memory, Time, Quality of Solution, etc
Algorithms and Programs Pseudo-Code Algorithms + Data Structures = Programs Initial Solutions + Analysis + Solution
Refinement + Data Structures = Final Algorithm
Use of Recursive Definitions as Initial Solutions
Recurrence Equations for Proofs and Analysis
Solution Refinement through Recursion Transformation and Traversal
Data Structures for saving past computation for future use
Overview of Algorithm Design 1. Initial Solution
a. Recursive Definition – A set of Solutionsb. Inductive Proof of Correctnessc. Analysis Using Recurrence Relations
2. Exploration of Possibilitiesa. Decomposition or Unfolding of the Recursion Treeb. Examination of Structures formedc. Re-composition Properties
3. Choice of Solution & Complexity Analysisa. Balancing the Split, Choosing Pathsb. Identical Sub-problems
4. Data Structures & Complexity Analysisa. Remembering Past Computation for Futureb. Space Complexity
5. Final Algorithm & Complexity Analysisa. Traversal of the Recursion Treeb. Pruning
6. Implementationa. Available Memory, Time, Quality of Solution, etc
1. Core Methodsa. Divide and Conquerb. Greedy Algorithmsc. Dynamic Programmingd. Branch-and-Bounde. Analysis using Recurrencesf. Advanced Data Structuring
2. Important Problems to be addresseda. Sorting and Searchingb. Strings and Patternsc. Trees and Graphsd. Combinatorial Optimization
3. Complexity & Advanced Topicsa. Time and Space Complexityb. Lower Boundsc. Polynomial Time, NP-Hardd. Parallelizability, Randomization
Thank you
Any Questions?