Upload
patrick-robinson
View
217
Download
0
Embed Size (px)
DESCRIPTION
Intro - 3 CMS-DAA Primary Focus Develop thinking ability. Problem solving skills. (algorithm design and application) Formal thinking. (proof techniques & analysis)
Citation preview
Design and Analysis of Algorithms
Introduction
Instructors: 1. B V Kiran Mayee, 2. A MadhaviE-mail : 1. [email protected],
Intro - 2 CMS-DAA
Course OverviewIntroduction to algorithm design, analysis, and
applications Algorithm Analysis
Asymptotic Notation, Recurrence Relations, Probability. Data Structures
Lists, Heaps, Graphs, Trees, Balanced Trees, Hash Tables. Sorting & Searching
Mergesort, Quicksort, BFS, DFS Algorithmic Design Techniques
Divide and Conquer, Dynamic Programming, Greedy Algorithms, Graph Algorithms, Backtracking, Branch & Bound
Intro - 3 CMS-DAA
Primary FocusDevelop thinking ability.
Problem solving skills. (algorithm design and application) Formal thinking. (proof techniques & analysis)
Intro - 4 CMS-DAA
What Will We Do? Examine interesting problems. Devise algorithms to solve them. Prove these algorithms correct. Analyze their resource usage (time, memory).
Understand data structures & core algorithms. Learn problem-solving techniques. See applications in real-world situations.
Intro - 5 CMS-DAA
Goals Be very familiar with a collection of core algorithms. Be fluent in algorithm design techniques: divide & conquer,
greedy algorithms, dynamic programming, backtracking and branch & bound methods.
Be able to analyze the correctness and runtime performance of a given algorithm.
Be familiar with the inherent complexity (lower bounds & intractability) of some problems.
Be intimately familiar with basic data structures. Be able to apply techniques in practical problems.
Intro - 6 CMS-DAA
Textbook & References Introduction to Algorithms, 2nd Ed. by Cormen, Leiserson, Rivest, & Stein
(CLRS), McGraw Hill, 2002. Fundamentals Computer Algorithms, 2nd Ed. By Ellis Horowitz, Satraj Sahani,
Sanguthever Rajasekaran, Unversity Press.
OTHER REFERENCES: Algorithmics: The Spirit of Computing, Harel How to Solve It, Polya. The Design and Analysis of Computer Algorithms,
Aho, Hopcroft and Ullman. Algorithms, Sedgewick. Algorithmics: Theory & Practice, Brassard & Bratley. Writing Efficient Programs & Programming Pearls, Bentley. The Science of Programming, by Gries. The Craft of Programming, by Reynolds.
Intro - 7 CMS-DAA
Prerequisites
Data Structures Discrete Mathematics Elementary Probability
Intro - 8 CMS-DAA
Course Roadmap Algorithms Basics Divide and Conquer Greedy Algorithms Dynamic Programming Backtracking Branch & Bound NP Hard & NP Complete Problems.
Intro - 9 CMS-DAA
Algorithms Basics Introduction to algorithms, complexity, and proof of
correctness. Asymptotic Notation. Goals
Know how to write formal problem specifications. Know about computational models. Know how to measure the efficiency of an algorithm. Know the difference between upper and lower bounds and
what they convey. Be able to prove algorithms correct and establish
computational complexity.
Intro - 10 CMS-DAA
Divide-and-Conquer Designing Algorithms. Recurrences Relations. Binary Search, Quicksort, Mergesort. Goals
Know when the divide-and-conquer paradigm is an appropriate one.
Know the general structure of such algorithms. Express their complexity using recurrence relations. Determine the complexity using techniques for solving
recurrences. Memorize the common-case solutions for recurrence
relations.
Intro - 11 CMS-DAA
Greedy Algorithms Greedy Algorithms Minimum Cost Spanning Trees Shortest Paths Goals
Know when to apply greedy algorithms and their characteristics.
Be able to prove the correctness of a greedy algorithm in solving an optimization problem.
Understand where minimum spanning trees and shortest path computations arise in practice.
Intro - 12 CMS-DAA
Dynamic Programming
Dynamic Programming Optimal Binary Search Trees Travelling Sales Person Problem Matrix Chain Multiplication Goals
Know when to apply dynamic programming and how it differs from divide and conquer.
Be able to systematically move from one to the other.
Intro - 13 CMS-DAA
Backtracking
General Method N-Queens Problem Sum Of Subsets Problem Graph Coloring & Hamiltonian Cycles Goals
Know when to apply backtracking method and its characteristics.
Be able to generate State Space Tree for a given problem.
Intro - 14 CMS-DAA
Branch & Bound
General Method TSP Using LCBB 0/1 Knapsack Problem using LCBB & FIFOBB Goals
Know when to apply branch&bound method and how it differs from backtracking method.
Intro - 15 CMS-DAA
How to Succeed in this Course Start early on all assignments. DON'T
procrastinate. Complete all reading before class. Participate in class. Think in class. Review after each class. Be formal and precise on all problem sets and
in-class exams.