0% found this document useful (0 votes)
52 views

Design and Analysis of Algorithms. DAA: Proof by Induction Asymptotic Notation

This document outlines the key aspects of a course on the design and analysis of algorithms. It discusses the purpose of learning algorithms, which is to introduce rigorous methods for designing and analyzing algorithms. It provides an overview of topics that will be covered, including asymptotic analysis, proofs by induction, and computational complexity. It also lists the course requirements, textbook, instructor, and grading policy.

Uploaded by

Arslan Muhammad
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
52 views

Design and Analysis of Algorithms. DAA: Proof by Induction Asymptotic Notation

This document outlines the key aspects of a course on the design and analysis of algorithms. It discusses the purpose of learning algorithms, which is to introduce rigorous methods for designing and analyzing algorithms. It provides an overview of topics that will be covered, including asymptotic analysis, proofs by induction, and computational complexity. It also lists the course requirements, textbook, instructor, and grading policy.

Uploaded by

Arslan Muhammad
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

Design and Analysis of Algorithms.

DAA
SP09-A CR 03017272312 Introduction SP09-B CR 03336792345 Proof By Induction FA09-A CR 03457729022 Asymptotic notation

The Course
Purpose: a rigorous introduction to the design and analysis of algorithms
Not a lab or programming course Not a math course, either
(David Luebke) Edited By Usman Akram & Atif Saeed

Textbook: Introduction to Algorithms, Cormen, Leiserson, Rivest, Stein


The Big White Book Second edition: now Smaller Green Book An excellent reference you should own

The Course
Instructor: Muhammad Usman Akram
[email protected] Office: Graduate School Room-5 One hour right after each class
(David Luebke) Edited By Usman Akram & Atif Saeed

The Course
Grading policy:
Quizzes and Assignments: 25% Exam 1: 10% Exam 2: 15% Final: 50%

(David Luebke) Edited By Usman Akram & Atif Saeed

The Course
Prerequisites:
Data Structures Discrete Structures
(David Luebke) Edited By Usman Akram & Atif Saeed

The Course
Format
Two lectures/week Homework most weeks
(David Luebke) Edited By Usman Akram & Atif Saeed

Problem sets Maybe occasional programming assignments

Two Mnidterms + final exam

Review: Induction
Suppose
S(k) is true for fixed constant k
Often k = 0

S(n) S(n+1) for all n >= k


(David Luebke) Edited By Usman Akram & Atif Saeed

Then S(n) is true for all n >= k

Proof By Induction
Claim:S(n) is true for all n >= k Basis:
Show formula is true when n = k Assume formula is true for an arbitrary n
(David Luebke) Edited By Usman Akram & Atif Saeed

Inductive hypothesis:

Step:
Show that formula is then true for n+1

Induction Example: Gaussian Closed Form


Prove 1 + 2 + 3 + + n = n(n+1) / 2
Basis:
If n = 0, then 0 = 0(0+1) / 2

Inductive hypothesis:

Step (show true for n+1):


1 + 2 + + n + n+1 = (1 + 2 + + n) + (n+1) = n(n+1)/2 + n+1 = [n(n+1) + 2(n+1)]/2 = (n+1)(n+2)/2 = (n+1)(n+1 + 1) / 2

(David Luebke) Edited By Usman Akram & Atif Saeed

Assume 1 + 2 + 3 + + n = n(n+1) / 2

Induction Example: Geometric Closed Form


Prove a0 + a1 + + an = (an+1 - 1)/(a - 1) for all a 1
Basis: show that a0 = (a0+1 - 1)/(a - 1)
a0 = 1 = (a1 - 1)/(a - 1)

Inductive hypothesis:

Step (show true for n+1):


a0 + a1 + + an+1 = a0 + a1 + + an + an+1 = (an+1 - 1)/(a - 1) + an+1 = (an+1+1 - 1)/(a - 1)

(David Luebke) Edited By Usman Akram & Atif Saeed

Assume a0 + a1 + + an = (an+1 - 1)/(a - 1)

Induction
Weve been using weak induction Strong induction also holds
(David Luebke) Edited By Usman Akram & Atif Saeed

Basis: show S(0) Hypothesis: assume S(k) holds for arbitrary k <= n Step: Show S(n+1) follows

Another variation:
Basis: show S(0), S(1) Hypothesis: assume S(n) and S(n+1) are true Step: show S(n+2) follows

Asymptotic Performance
In this course, we care most about asymptotic performance
How does the algorithm behave as the problem size gets very large?
(David Luebke) Edited By Usman Akram & Atif Saeed

Running time Memory/storage requirements Bandwidth/power requirements/logic gates/etc.

Asymptotic Notation
By now you should have an intuitive feel for asymptotic (bigO) notation:
What does O(n) running time mean? O(n2)? O(n lg n)? How does asymptotic running time relate to asymptotic memory usage?

Our first task is to define this notation more formally and completely

(David Luebke) Edited By Usman Akram & Atif Saeed

Analysis of Algorithms
Analysis is performed with respect to a computational model We will usually use a generic uniprocessor random-access machine (RAM)
(David Luebke) Edited By Usman Akram & Atif Saeed

All memory equally expensive to access No concurrent operations All reasonable instructions take unit time
Except, of course, function calls

Constant word size


Unless we are explicitly manipulating bits

Input Size
Time and space complexity
This is generally a function of the input size
E.g., sorting, multiplication

How we characterize input size depends:


(David Luebke) Edited By Usman Akram & Atif Saeed

Sorting: number of input items Multiplication: total number of bits Graph algorithms: number of nodes & edges Etc

Running Time
Number of primitive steps that are executed
Except for time of executing a function call most statements roughly require the same amount of time
(David Luebke) Edited By Usman Akram & Atif Saeed

y=m*x+b c = 5 / 9 * (t - 32 ) z = f(x) + g(y)

We can be more exact if need be

Analysis
Worst case
Provides an upper bound on running time An absolute guarantee

Average case
Provides the expected running time Very useful, but treat with care: what is average?
Random (equally likely) inputs Real-life inputs
(David Luebke) Edited By Usman Akram & Atif Saeed

The End

(David Luebke) Edited By Usman Akram & Atif Saeed

You might also like