1 / 21

Amortized Analysis

Amortized Analysis. The average cost of a sequence of n operations on a given Data Structure. Aggregate Analysis Accounting Method Potential Method. Amortized Analysis. Amortized analysis computes the average time required to perform a sequence of n operations on a data structure

Download Presentation

Amortized Analysis

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Amortized Analysis The average cost of a sequence of n operations on a given Data Structure. Aggregate Analysis Accounting Method Potential Method CS333 / Cutler Amortized Analysis

  2. Amortized Analysis • Amortizedanalysis computes the average time required to perform a sequence of n operations on a data structure • Often worst case analysis is not tight and the amortized cost of an operation is less that its worst case. CS333 / Cutler Amortized Analysis

  3. Applications of amortized analysis • Vectors/ tables • Disjoint sets • Priority queues • Heaps, Binomial heaps, Fibonacci heaps • Hashing CS333 / Cutler Amortized Analysis

  4. Difference between amortized and average cost • To do averages we need to use probability • For amortized analysis no such assumptions are needed • We compute the average cost per operation for any mix of n operations CS333 / Cutler Amortized Analysis

  5. Operations on Data Structures • A data structure has a set of operations associated with it. • Example: A stack with • push(), pop() and MultiPop(k). • Often some operations may be slow while others are fast. • push() and pop() are fast. • MultiPop(k) may be slow. • Sometimes the time of a single operation can vary CS333 / Cutler Amortized Analysis

  6. Methods • Aggregate analysis- the total amount of time needed for the n operations is computed and divided by n • Accounting - operations are assigned an amortized cost. Objects of the data structure are assigned a credit • Potential – The prepaid work (money in the “bank”) is represented as “potential” energy that can be released to pay for future operations CS333 / Cutler Amortized Analysis

  7. Aggregate analysis • n operations take T(n) time • Amortized cost of an operation is T(n)/n CS333 / Cutler Amortized Analysis

  8. Stack - aggregate analysis • A stack with operations • Push, Pop and Multipop. Multipop(S, k) while notempty(S) and k>0 do Pop(S); k:=k-1 endwhile CS333 / Cutler Amortized Analysis

  9. Stack - aggregate analysis • Push and Pop are O(1) (to move 1 data element) • Multipop is O(min(s, k)) where s is the size of the stack and k the number of elements to pop. • Assume a sequence of n Push, Pop and Multipop operations CS333 / Cutler Amortized Analysis

  10. Stack - aggregate analysis • Each object can be popped only once for each time it is pushed • So the total number of times Pop can be called ( directly or from Multipop) is bound by the number of Pushes <=n. CS333 / Cutler Amortized Analysis

  11. Stack - aggregate analysis • A sequence of nPush and Pop operations is therefore O(n) and the amortized cost of each is O(n)/n=O(1). All operations have same amortized cost. CS333 / Cutler Amortized Analysis

  12. Stack Example: Op/Moves <=2 Operation Stack Stack Start a push a a b b push b a a c c b b push c a a b pop c Multipop(3) a pop b a pop a 6 Operation: 6 Moves 4 Operation: 6 Moves CS333 / Cutler Amortized Analysis

  13. Accounting Method • Charge each operation an (invented) amortizedcost. • Often different from actual run time cost. Some operations may have an amortized cost larger than runtime, others may have less. • Unlike businesses we do not want to make a profit • We want to cover the actual cost • Amount charged but not used in performing an operation is stored with objects of the data structure CS333 / Cutler Amortized Analysis

  14. Accounting method • Later operations can use stored amount to pay for their actual cost • Credit balance must not go negative(always enough to pay for performance of future operations) CS333 / Cutler Amortized Analysis

  15. Stack - amortized analysis • We assign the amortized costs: $2 for Push $0 for both Pop and Multipop • For a sequence of nPush and Pop operations the total amortized cost is at most 2n or O(n) CS333 / Cutler Amortized Analysis

  16. Stack - amortized analysis • Each time we do a Push we pay $1 for the actual cost of the Push and the element has a credit of $1. • Each time an element is popped we take the $1 credit to pay for it • Thus the balance is always nonnegative CS333 / Cutler Amortized Analysis

  17. Increment (A) i = 0 while i < length[A] and A[i] = 1 A[i] = 0 i ++ if i < length[A] A[i] = 1 Initially the counter contains 0 Eventually it becomes 2k -1 Next it is reset to 0 k bit binary counter A k -1 1 0 CS333 / Cutler Amortized Analysis

  18. Aggregate analysis 3 bit counterk=3 • Bit 2 1 0 • D No. • 0 0 0 0 • 0 01 • 2 0 1 0 • 3 0 1 1 • 4 1 0 0 • 5 1 0 1 • 6 1 1 0 • 1 1 1 • Flips 2 4 8 • Count number of times a bit is flipped. • Let number increments n = 2k (if n < 2k analysis similar) • A[0] flipped n times • A[1] flipped n/21 times • … • A[k - 1] flipped n/2k-1 times CS333 / Cutler Amortized Analysis

  19. Accounting method • Charge amortized cost of $2 to set a bit to 1 • When a bit is set to 1, pay $1 for actual cost and store $1 with bit • Note: at all times a bit with value 1 has $1 • When a bit is reset to 0 use $1 to pay for actual cost • $2 per Increment operation CS333 / Cutler Amortized Analysis

  20. Accounting method • Let the value stored in the counter be: • After increment and a payment of $2 = $1 +$1: $1 $1 $0 $0 $1 $0 $0 $1 $1 $1 1 1 0 0 1 0 0 1 1 1 $1 $1 $0 $0 $1 $0 $1 $0 $0 $0 1 1 0 0 1 0 1 0 0 0 CS333 / Cutler Amortized Analysis

  21. Dynamic table (object table, hash table, vector, etc) • The table is dynamic • We can’t predict its maximum size • We would like to avoid allocating a lot of unused space (reasonable load balance) • May not be able to avoid table overflow. • Overflow should not cause run time failure CS333 / Cutler Amortized Analysis

More Related