15
Design and Analysis of Algorithms Introduction Instructors: 1. B V Kiran Mayee, 2. A Madhavi E-mail : 1. [email protected] , 2. [email protected]

Design and Analysis of Algorithms Introduction Instructors:1. B V Kiran Mayee, 2. A Madhavi 1. 2

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

Page 1: Design and Analysis of Algorithms Introduction Instructors:1. B V Kiran Mayee, 2. A Madhavi  1. 2

Design and Analysis of Algorithms

Introduction

Instructors: 1. B V Kiran Mayee, 2. A MadhaviE-mail : 1. [email protected],

2. [email protected]

Page 2: Design and Analysis of Algorithms Introduction Instructors:1. B V Kiran Mayee, 2. A Madhavi  1. 2

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

Page 3: Design and Analysis of Algorithms Introduction Instructors:1. B V Kiran Mayee, 2. A Madhavi  1. 2

Intro - 3 CMS-DAA

Primary FocusDevelop thinking ability.

Problem solving skills. (algorithm design and application) Formal thinking. (proof techniques & analysis)

Page 4: Design and Analysis of Algorithms Introduction Instructors:1. B V Kiran Mayee, 2. A Madhavi  1. 2

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.

Page 5: Design and Analysis of Algorithms Introduction Instructors:1. B V Kiran Mayee, 2. A Madhavi  1. 2

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.

Page 6: Design and Analysis of Algorithms Introduction Instructors:1. B V Kiran Mayee, 2. A Madhavi  1. 2

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.

Page 7: Design and Analysis of Algorithms Introduction Instructors:1. B V Kiran Mayee, 2. A Madhavi  1. 2

Intro - 7 CMS-DAA

Prerequisites

Data Structures Discrete Mathematics Elementary Probability

Page 8: Design and Analysis of Algorithms Introduction Instructors:1. B V Kiran Mayee, 2. A Madhavi  1. 2

Intro - 8 CMS-DAA

Course Roadmap Algorithms Basics Divide and Conquer Greedy Algorithms Dynamic Programming Backtracking Branch & Bound NP Hard & NP Complete Problems.

Page 9: Design and Analysis of Algorithms Introduction Instructors:1. B V Kiran Mayee, 2. A Madhavi  1. 2

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.

Page 10: Design and Analysis of Algorithms Introduction Instructors:1. B V Kiran Mayee, 2. A Madhavi  1. 2

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.

Page 11: Design and Analysis of Algorithms Introduction Instructors:1. B V Kiran Mayee, 2. A Madhavi  1. 2

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.

Page 12: Design and Analysis of Algorithms Introduction Instructors:1. B V Kiran Mayee, 2. A Madhavi  1. 2

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.

Page 13: Design and Analysis of Algorithms Introduction Instructors:1. B V Kiran Mayee, 2. A Madhavi  1. 2

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.

Page 14: Design and Analysis of Algorithms Introduction Instructors:1. B V Kiran Mayee, 2. A Madhavi  1. 2

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.

Page 15: Design and Analysis of Algorithms Introduction Instructors:1. B V Kiran Mayee, 2. A Madhavi  1. 2

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.