Download presentation
Presentation is loading. Please wait.
1
1 Amortized Analysis Consider an algorithm in which an operation is executed repeatedly with the property that its running time fluctuates throughout the execution of the algorithm. –For example, this operation takes a large amount of time occasionally and runs much faster most of the time, then this is an indication that Assuming that an exact bound is too hard, if not impossible to find, amortized analysis maybe the way to analyze the problem.
2
2 Amortized vs. Average Analysis In amortized analysis, the time taken by the operation throughout the execution of the algorithm is averaged. Amortized analysis guarantees the average cost of the operation, and thus the algorithm, in the worst case. This is to be contrasted with the average time analysis in which the average is taken over all instances of the same size.
3
3 Amortized Analysis Techniques Aggregrate Analysis – If one shows that for all n, a sequence of n operations takes T(n) time in the worst case, then the amortized cost per operation of the algorithm equals..................... Accounting Method Potential Method
4
4 Example 1 Consider a doubly linked list that initially consists of one node which contains the integer 0. We have as input an array A[1..n] of n positive integers that are to be processed as follows: –If the current integer x is odd, append x to the list. Otherwise, append x and then remove all odd elements before x in the list. 1. for j 1 to n 2. x A[j] 3. append x to the list 4. if x is even then 5. while pred(x) is odd 6. delete pred(x) 7. end while 8. end if 9. end for What is the time complexity of the algorithm without amortized analysis? What is the time complexity of the algorithm with amortized analysis?
5
5 Example 2 Suppose we want to allocate storage for an unknown number of elements x 1, x 2,... in a stream of input as follows: –Allocate an array A 0 of reasonable size, say m. –When this array becomes full, upon the arrival of the (m + 1)st element, a new array A 1 of size 2m is allocated and all the elements stored in A 0 are moved from A 0 to A 1. Next, the (m+1)st element is stored in A1[m+1]. –This process continues until all elements have been stored. What is the time complexity of the algorithm without amortized analysis? What is the time complexity of the algorithm with amortized analysis?
6
6 Input Size and Problem Instance When discussing a problem, as opposed to an algorithm, we usually talk of a problem instance. –A problem instance translates to input in the context of an algorithm that solves that problem. –For example, an array A of n integers is called an instance of the problem of sorting numbers. At the same time, in the context of discussing Algorithm insertionsort, we refer to this array as an input to the algorithm.
7
7 Input Size The input size, as a quantity, is not a precise measure of the input, and its interpretation is subject to the problem for which the algorithm is, or is to be, designed. –In sorting and searching problems, we use........................ –In graph algorithms, the input size usually refers to..... –In matrix operations, the input size is commonly taken to be the dimensions of the input matrices. These “heterogeneous” measures have brought about some inconsistencies when comparing the amount of time or space required by two algorithms. –For example, an algorithm for adding two n n matrices which performs n 2 additions sounds quadratic, while it is indeed linear in the input size.
8
8 Example
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.