Daa
-
Upload
prabhat-agrawal -
Category
Technology
-
view
447 -
download
3
Transcript of Daa
![Page 1: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/1.jpg)
Algorithm Correctness & Analysis
![Page 2: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/2.jpg)
SummaryConfidence in algorithms from
testing and correctness proofCorrectness of recursive algorithms
proved directly by inductionExamples: Fibonacci numbers,
maximum, multiplication
![Page 3: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/3.jpg)
CorrectnessHow do we know that an algorithm works?Logical method for checking correctness
TestingCorrectness proof
Testing vs. Correctness ProofsTesting: try the algorithm on sample inputsCorrectness Proof: Prove mathematically;
testing may not found obscure bugsUsing testing alone can be dangerous
![Page 4: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/4.jpg)
Correctness of Recursive algorithmsTo prove correctness of recursive algorithm:
Prove it by induction on the size of the problem being solved
Base of recursion is base of inductionNeed to prove the recursive calls are given
sub-problems, i.e., no infinite recursionInductive step: assume that recursive calls
work correctly, and use this assumption to prove that the current call works correctly
![Page 5: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/5.jpg)
Recursive Fibonacci NumbersFibonacci numbers: F0 = 0, F1 =1, and for all n ≥ 2,
Fn = Fn-2 + Fn-1
function fib(n) Comment return Fn
1. If n ≤ 1 then return (n)2. else return (fib(n-1) + fib (n-2))
![Page 6: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/6.jpg)
Recursive Fibonacci NumbersClaim: For all n ≥ 0, fib(n) return Fn
Base: For n =0, fib(n ) returns 0 as claimed. For n = 1, fib(n) returns 1 as claimed.Induction: Suppose that n ≥ 2 and for all 0 ≤ m < n, fib (m) returns Fm .
Required to prove fib(n) returns Fn
What does fib(n) returns?
fib(n-1) + fib(n-2) = Fn-1 + Fn-2 (by Ind. Hyp.)
= Fn
![Page 7: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/7.jpg)
Recursive Maximum
![Page 8: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/8.jpg)
Recursive maximum
![Page 9: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/9.jpg)
Recursive Multiplication
![Page 10: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/10.jpg)
Recursive Multiplication
![Page 11: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/11.jpg)
Recursive Multiplication
![Page 12: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/12.jpg)
Analysis
![Page 13: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/13.jpg)
Summary
![Page 14: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/14.jpg)
Constant Multiples
Analyze the resource usage of an algorithm to within a constant multiple.
Why? Because other constant multiples creep in when translating
from an algorithm to executable code: Programmer abilityProgrammer effectivenessCompilerComputer hardwareRecall: Measure resource usage as a function of input size
![Page 15: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/15.jpg)
Big oh
![Page 16: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/16.jpg)
Example
Most big-Os can be proved by induction.
First Example: log n = O(n).
Claim : For all n >1, log n <n . The proof is by induction on n.
The claim is trivially for n=1,since 0<1. Now suppose n > 1 and
log n < n. Then,
log (n+1)
< log 2n
= log n+1
< n+1 (by ind. hyp.)
![Page 17: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/17.jpg)
Second example
Note that we need
![Page 18: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/18.jpg)
Big Omega
![Page 19: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/19.jpg)
Big Theta
![Page 20: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/20.jpg)
True or false
![Page 21: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/21.jpg)
Adding Big Ohs
![Page 22: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/22.jpg)
Continue…
![Page 23: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/23.jpg)
Multiplying Big Ohs
![Page 24: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/24.jpg)
Types of Analysis
![Page 25: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/25.jpg)
Example…
![Page 26: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/26.jpg)
Time Complexity
![Page 27: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/27.jpg)
Multiplication
![Page 28: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/28.jpg)
Bubble sort
![Page 29: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/29.jpg)
Analysis Trick
![Page 30: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/30.jpg)
Example
![Page 31: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/31.jpg)
Lies, Damn Lies, and Big-Os
![Page 32: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/32.jpg)
Algorithms and Problems
![Page 33: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/33.jpg)
Algorithms Analysis 2
![Page 34: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/34.jpg)
The Heap
![Page 35: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/35.jpg)
Contd…
![Page 36: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/36.jpg)
To Delete the Minimum
But we have lost the tree structure
![Page 37: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/37.jpg)
Contd…
But we have violated the structure condition
![Page 38: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/38.jpg)
Contd…
![Page 39: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/39.jpg)
Contd…
![Page 40: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/40.jpg)
What Does it work?
![Page 41: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/41.jpg)
Contd…
![Page 42: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/42.jpg)
Contd…
![Page 43: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/43.jpg)
To Insert a New Element
![Page 44: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/44.jpg)
Contd…
![Page 45: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/45.jpg)
Contd…
![Page 46: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/46.jpg)
Contd…
![Page 47: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/47.jpg)
Why Does it Work
![Page 48: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/48.jpg)
Contd…
![Page 49: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/49.jpg)
Implementing a Heap
![Page 50: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/50.jpg)
Analysis of Priority Queue Operation
![Page 51: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/51.jpg)
Analysis of l(n)
![Page 52: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/52.jpg)
Contd…
![Page 53: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/53.jpg)
Example
![Page 54: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/54.jpg)
Heapsort
![Page 55: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/55.jpg)
Building a Heap Top Down
![Page 56: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/56.jpg)
Contd…
![Page 57: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/57.jpg)
Contd…
![Page 58: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/58.jpg)
Building a Heap Bottom Up
![Page 59: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/59.jpg)
Continue…
![Page 60: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/60.jpg)
Continue…
![Page 61: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/61.jpg)
Algorithms Course Notes Algorithm Analysis 3
summaryAnalysis of recursive algorithms:Recurrence relationsHow to derive themHow to solve them
![Page 62: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/62.jpg)
Deriving Recurrence Relations
![Page 63: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/63.jpg)
Continue…
![Page 64: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/64.jpg)
Example
![Page 65: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/65.jpg)
Continue…
![Page 66: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/66.jpg)
Analysis of Multiplication
![Page 67: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/67.jpg)
Solving Recurrence Relations
![Page 68: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/68.jpg)
The Multiplication Example
![Page 69: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/69.jpg)
Repeated Substitution
![Page 70: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/70.jpg)
Warning
![Page 71: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/71.jpg)
Reality Check
![Page 72: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/72.jpg)
Merge Sorting
![Page 73: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/73.jpg)
Continue…
![Page 74: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/74.jpg)
A General Theorem
![Page 75: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/75.jpg)
Proof Sketch
![Page 76: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/76.jpg)
Continue…
![Page 77: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/77.jpg)
Geometric Progressions
![Page 78: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/78.jpg)
Back to the Proof
![Page 79: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/79.jpg)
Continue…
![Page 80: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/80.jpg)
Messy Details
![Page 81: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/81.jpg)
Continue…
![Page 82: Daa](https://reader038.fdocuments.net/reader038/viewer/2022110308/558128d2d8b42a68488b472f/html5/thumbnails/82.jpg)
Example