Chapter 17: Amortized Analysis I - PowerPoint PPT Presentation

About This Presentation
Title:

Chapter 17: Amortized Analysis I

Description:

Chapter 17: Amortized Analysis I About this lecture Given a data structure, amortized analysis studies in a sequence of operations, the average time to perform an ... – PowerPoint PPT presentation

Number of Views:314
Avg rating:3.0/5.0
Slides: 18
Provided by: sec206
Category:

less

Transcript and Presenter's Notes

Title: Chapter 17: Amortized Analysis I


1
Chapter 17 Amortized Analysis I
2
About this lecture
  • Given a data structure, amortized analysis
    studies in a sequence of operations, the average
    time to perform an operation
  • Introduce amortized cost of an operation
  • Three Methods for the Same Purpose
  • (1) Aggregate Method
  • (2) Accounting Method
  • (3) Potential Method

3
Super Stack
  • Your friend has created a super stack, which,
    apart from PUSH/POP, supports
  • SUPER-POP(k) pop top k items
  • Suppose SUPER-POP never pops more items than
    current stack size
  • The time for SUPER-POP is O(k)
  • The time for PUSH/POP is O(1)

4
Super Stack
  • Suppose we start with an empty stack, and we have
    performed n operations
  • But we dont know the order
  • Questions
  • Worst-case time of a SUPER-POP ?
  • Ans. O(n) time why?
  • Total time of n operations in worst case ?
  • Ans. O(n2) time correct, but not tight

5
Super Stack
  • Though we dont know the order of the operations,
    we still know that
  • There are at most n PUSH/POP
  • ? Time spent on PUSH/POP O(n)
  • items popped by all SUPER-POP cannot exceed
    total items ever pushed into stack
  • ? Time spent on SUPER-POP O(n)
  • So, total time of n operations O(n) !!!

6
Amortized Cost
  • So far, there are no assumptions on n and the
    order of operations. Thus, we have
  • For any n and any sequence of n operations,
  • worst-case total time O(n)
  • We can think of each operation performs in
    average O(n) / n O(1) time
  • ? We say amortized cost O(1) per operation
    (or, each runs in amortized O(1) time)

7
Amortized Cost
  • In general, we can say something like
  • OP1 runs in amortized O(x) time
  • OP2 runs in amortized O(y) time
  • OP3 runs in amortized O(z) time
  • Meaning
  • For any sequence of operations with OP1 n1,
    OP2 n2, OP3 n3,
  • worst-case total time O(n1x n2y n3z)

8
Binary Counter
  • Let us see another example of implementing a
    k-bit binary counter
  • At the beginning, count is 0, and the counter
    will be like (assume k5)

0 0 0 0 0
which is the binary representation of the count
9
Binary Counter
  • When the counter is incremented, the content will
    change
  • Example content of counter when
  • The cost of the increment is equal to the number
    of bits flipped

10
Binary Counter
Special case When all bits in the counter are
1, an increment resets all bits to 0
  • The cost of the corresponding increment is equal
    to k, the number of bits flipped

11
Binary Counter
  • Suppose we have performed n increments
  • Questions
  • Worst-case time of an increment ?
  • Ans. O(k) time
  • Total time of n operations in worst case ?
  • Ans. O(nk) time correct, but not tight

12
Binary Counter
Let us denote the bits in the counter by b0, b1,
b2, , bk-1, starting from the right
Observation bi is flipped only once in every
2i increments
Precisely, bi is flipped at xth increment ? x is
divisible by 2i
13
Amortized Cost
  • So, for n increments, the total cost is
  • Si0 to k ? n / 2i ?
  • ? Si0 to k ( n / 2i ) ? 2n
  • By dividing total cost with increments,
  • ? amortized cost of increment O(1)

14
Aggregate Method
  • The computation of amortized cost of an operation
    in super stack or binary counter follows similar
    steps
  • Find total cost (thus, an aggregation )
  • Divide total cost by operations
  • This method is called Aggregate Method

15
Remarks
  • In amortized analysis, the amortized cost to
    perform an operation is computed by the average
    over all performed operations
  • There is a different topic called average-case
    analysis, which studies average performance over
    all inputs
  • Both are useful, but they just study different
    things

16
Example Average-Case Analysis
  • Consider building a binary search tree for n
    numbers with random insertion order
  • Final height varies on insertion order
  • Suppose each of the n! possible insertion orders
    is equally likely to be chosen
  • Then, we may be able to compute the average
    height of the tree
  • average is over all insertion orders

17
Example Average-Case Analysis
  • In fact, we can show that
  • average height Q(log n)
  • and very likely, height Q(log n)
  • So, we can say
  • average search time Q(log n)
  • However, we cannot say
  • amortized search time Q(log n) why?
Write a Comment
User Comments (0)
About PowerShow.com