Analysis of Algorithms CS 477/677

Slides:



Advertisements
Similar presentations
Analysis of Algorithms CS 477/677 Instructor: Monica Nicolescu Lecture 6.
Advertisements

A simple example finding the maximum of a set S of n numbers.
Analysis of Algorithms
Comp 122, Spring 2004 Divide and Conquer (Merge Sort)
11 Computer Algorithms Lecture 6 Recurrence Ch. 4 (till Master Theorem) Some of these slides are courtesy of D. Plaisted et al, UNC and M. Nicolescu, UNR.
Algorithms Recurrences. Definition – a recurrence is an equation or inequality that describes a function in terms of its value on smaller inputs Example.
Divide-and-Conquer1 7 2  9 4   2  2 79  4   72  29  94  4.
Divide-and-Conquer1 7 2  9 4   2  2 79  4   72  29  94  4.
Analysis of Algorithms CS 477/677 Instructor: Monica Nicolescu.
CS 253: Algorithms Chapter 4 Divide-and-Conquer Recurrences Master Theorem Credit: Dr. George Bebis.
Analysis of Algorithms CS 477/677
Recurrences Part 3. Recursive Algorithms Recurrences are useful for analyzing recursive algorithms Recurrence – an equation or inequality that describes.
Recurrences The expression: is a recurrence. –Recurrence: an equation that describes a function in terms of its value on smaller functions Analysis of.
Analysis of Algorithms CS 477/677 Recurrences Instructor: George Bebis (Appendix A, Chapter 4)
Algorithm Design and Analysis (ADA)
Analysis of Algorithms CS 477/677 Instructor: Monica Nicolescu Lecture 15.
Analysis of Algorithms
Discrete Maths Objective to introduce mathematical induction through examples , Semester 2, Mathematical Induction 1.
Analysis of Algorithms CS 477/677
Analyzing Recursive Algorithms A recursive algorithm can often be described by a recurrence equation that describes the overall runtime on a problem of.
MCA 202: Discrete Mathematics Instructor Neelima Gupta
Chapter 7 Recursion 1CSCI 3333 Data Structures. 2 Recurrent Sequence A recursively defined sequence – First, certain initial values are specified  c.f.,
10/13/20151 CS 3343: Analysis of Algorithms Lecture 9: Review for midterm 1 Analysis of quick sort.
Project 2 due … Project 2 due … Project 2 Project 2.
Proofs, Recursion and Analysis of Algorithms Mathematical Structures for Computer Science Chapter 2 Copyright © 2006 W.H. Freeman & Co.MSCS SlidesProofs,
CSC 413/513: Intro to Algorithms Merge Sort Solving Recurrences.
DR. NAVEED AHMAD DEPARTMENT OF COMPUTER SCIENCE UNIVERSITY OF PESHAWAR LECTURE-5 Advance Algorithm Analysis.
Tonga Institute of Higher Education Design and Analysis of Algorithms IT 254 Lecture 2: Mathematical Foundations.
Discrete Maths: Induction/1 1 Discrete Maths Objective – –to introduce mathematical induction through examples , Semester
CSC310 © Tom Briggs Shippensburg University Fundamentals of the Analysis of Algorithm Efficiency Chapter 2.
Analysis of Algorithms CS 477/677 Instructor: Monica Nicolescu Lecture 3.
Introduction to Algorithms Chapter 4: Recurrences.
Recurrences David Kauchak cs161 Summer Administrative Algorithms graded on efficiency! Be specific about the run times (e.g. log bases) Reminder:
1Computer Sciences. 2 GROWTH OF FUNCTIONS 3.2 STANDARD NOTATIONS AND COMMON FUNCTIONS.
COSC 3101A - Design and Analysis of Algorithms 3 Recurrences Master’s Method Heapsort and Priority Queue Many of the slides are taken from Monica Nicolescu’s.
Recurrences (in color) It continues…. Recurrences When an algorithm calls itself recursively, its running time is described by a recurrence. When an algorithm.
Analysis of Algorithms CS 477/677 Instructor: Monica Nicolescu Lecture 2.
Recurrences It continues… Jeff Chastine. Recurrences When an algorithm calls itself recursively, its running time is described by a recurrence. A recurrence.
Analysis of Algorithms CS 477/677 Instructor: Monica Nicolescu Lecture 4.
Analysis of Algorithms CS 477/677
Recursion Ali.
Design and Analysis of Algorithms
Design and Analysis of Algorithms
Introduction to Algorithms: Recurrences
CS 3343: Analysis of Algorithms
Proofs, Recursion and Analysis of Algorithms
Divide-and-Conquer 6/30/2018 9:16 AM
Unit 1. Sorting and Divide and Conquer
CS 3343: Analysis of Algorithms
Lecture Outline for Recurrences
CS 3343: Analysis of Algorithms
CS 3343: Analysis of Algorithms
CS 3343: Analysis of Algorithms
CS 3343: Analysis of Algorithms
Advance Analysis of Lecture No 9 Institute of Southern Punjab Multan
Introduction to Algorithms 6.046J
CS 3343: Analysis of Algorithms
Divide-and-Conquer 7 2  9 4   2   4   7
CSE 373 Data Structures and Algorithms
Recurrences (Method 4) Alexandra Stefan.
Introduction to Algorithms
Divide and Conquer (Merge Sort)
Divide-and-Conquer 7 2  9 4   2   4   7
Ack: Several slides from Prof. Jim Anderson’s COMP 202 notes.
Analysis of Algorithms
Algorithms Recurrences.
Big O notation f = O(g(n)) c g(n)
Quicksort Quick sort Correctness of partition - loop invariant
Analysis of Algorithms CS 477/677
Presentation transcript:

Analysis of Algorithms CS 477/677 Instructor: Monica Nicolescu Lecture 3

Mathematical Induction Used to prove a sequence of statements (S(1), S(2), … S(n)) indexed by positive integers Proof: Basis step: prove that the statement is true for n = 1 Inductive step: assume that S(n) is true and prove that S(n+1) is true for all n ≥ 1 Find case n “within” case n+1 CS 477/677 - Lecture 3

More Examples CS 477/677 - Lecture 3

Recurrent Algorithms BINARY – SEARCH for an ordered array A, finds if x is in the array A[lo…hi] Alg.: BINARY-SEARCH (A, lo, hi, x) if (lo > hi) return FALSE mid ← ⎣(lo+hi)/2⎦ if x = A[mid] return TRUE if ( x < A[mid] ) BINARY-SEARCH (A, lo, mid-1, x) if ( x > A[mid] ) BINARY-SEARCH (A, mid+1, hi, x) 12 11 10 9 7 5 3 2 1 4 6 8 mid lo hi CS 477/677 - Lecture 3

Example A[8] = {1, 2, 3, 4, 5, 7, 9, 11} lo = 1 hi = 8 x = 7 11 9 7 5 6 8 mid = 4, lo = 5, hi = 8 11 9 7 5 4 3 2 1 mid = 6, A[mid] = x Found! CS 477/677 - Lecture 3

Example A[8] = {1, 2, 3, 4, 5, 7, 9, 11} lo = 1 hi = 8 x = 6 11 9 7 5 mid = 4, lo = 5, hi = 8 11 9 7 5 4 3 2 1 mid = 6, A[6] = 7, lo = 5, hi = 5 11 9 7 5 4 3 2 1 mid = 5, A[5] = 5, lo = 6, hi = 5 NOT FOUND! CS 477/677 - Lecture 3

Analysis of BINARY-SEARCH Alg.: BINARY-SEARCH (A, lo, hi, x) if (lo > hi) return FALSE mid ← ⎣lo+hi)/2⎦ if x = A[mid] return TRUE if ( x < A[mid] ) BINARY-SEARCH (A, lo, mid-1, x) if ( x > A[mid] ) BINARY-SEARCH (A, mid+1, hi, x) T(n) = c + T(n) – running time for an array of size n constant time: c1 constant time: c2 constant time: c3 same problem of size n/2 same problem of size n/2 T(n/2) CS 477/677 - Lecture 3

Recurrences and Running Time Recurrences arise when an algorithm contains recursive calls to itself What is the actual running time of the algorithm? Need to solve the recurrence Find an explicit formula of the expression (the generic term of the sequence) CS 477/677 - Lecture 3

Example Recurrences T(n) = T(n-1) + n Θ(n2) T(n) = T(n/2) + c Θ(lgn) Recursive algorithm that loops through the input to eliminate one item T(n) = T(n/2) + c Θ(lgn) Recursive algorithm that halves the input in one step T(n) = T(n/2) + n Θ(n) Recursive algorithm that halves the input but must examine every item in the input T(n) = 2T(n/2) + 1 Θ(n) Recursive algorithm that splits the input into 2 halves and does a constant amount of other work CS 477/677 - Lecture 3

Methods for Solving Recurrences Iteration method Substitution method Recursion tree method Master method CS 477/677 - Lecture 3

The Iteration Method T(n) = c + T(n/2) = c + c + T(n/4) = c + c + c + T(n/8) Assume n = 2k T(n) = c + c + … + c + T(1) = clgn + T(1) = Θ(lgn) T(n/2) = c + T(n/4) T(n/4) = c + T(n/8) k times CS 477/677 - Lecture 3

Iteration Method – Example T(n) = n + 2T(n/2) = n + 2(n/2 + 2T(n/4)) = n + n + 4T(n/4) = n + n + 4(n/4 + 2T(n/8)) = n + n + n + 8T(n/8) … = in + 2iT(n/2i) = kn + 2kT(1) = nlgn + nT(1) = Θ(nlgn) Assume: n = 2k T(n/2) = n/2 + 2T(n/4) CS 477/677 - Lecture 3

Iteration Method – Example T(n) = n + T(n-1) = n + (n-1) + T(n-2) = n + (n-1) + (n-2) + T(n-3) … = n + (n-1) + (n-2) + … + 2 + T(1) = n(n+1)/2 - 1 + T(1) = n2+ T(1) = Θ(n2) CS 477/677 - Lecture 3

The substitution method Guess a solution Use induction to prove that the solution works CS 477/677 - Lecture 3

Substitution method Guess a solution Prove the induction goal T(n) = O(g(n)) Induction goal: apply the definition of the asymptotic notation T(n) ≤ d g(n), for some d > 0 and n ≥ n0 Induction hypothesis: T(k) ≤ d g(k) for all k < n Prove the induction goal Use the induction hypothesis to find some values of the constants d and n0 for which the induction goal holds CS 477/677 - Lecture 3

Example: Binary Search T(n) = c + T(n/2) Guess: T(n) = O(lgn) Induction goal: T(n) ≤ d lgn, for some d and n ≥ n0 Induction hypothesis: T(n/2) ≤ d lg(n/2) Proof of induction goal: T(n) = T(n/2) + c ≤ d lg(n/2) + c = d lgn – d + c ≤ d lgn if: – d + c ≤ 0, d ≥ c CS 477/677 - Lecture 3

Example 2 T(n) = T(n-1) + n Guess: T(n) = O(n2) Induction goal: T(n) ≤ c n2, for some c and n ≥ n0 Induction hypothesis: T(n-1) ≤ c(n-1)2 Proof of induction goal: T(n) = T(n-1) + n ≤ c (n-1)2 + n = cn2 – (2cn – c - n) ≤ cn2 if: 2cn – c – n ≥ 0 ⇒ c ≥ n/(2n-1) ⇒ c ≥ 1/(2 – 1/n) For n ≥ 1 ⇒ 2 – 1/n ≥ 1 ⇒ any c ≥ 1 will work CS 477/677 - Lecture 3

Readings Chapter 4 CS 477/677 - Lecture 3