CMPS 6610/4610 Algorithms 1
CMPS 6610/4610 – Fall 2016
Amortized Analysis
Carola Wenk
Slides courtesy of Charles Leiserson with changes by Carola Wenk
Amortized Analysis Carola Wenk Slides courtesy of Charles Leiserson - - PowerPoint PPT Presentation
CMPS 6610/4610 Fall 2016 Amortized Analysis Carola Wenk Slides courtesy of Charles Leiserson with changes by Carola Wenk CMPS 6610/4610 Algorithms 1 Dynamic tables Task: Store a dynamic set in a table/array. Elements can only be
CMPS 6610/4610 Algorithms 1
Slides courtesy of Charles Leiserson with changes by Carola Wenk
CMPS 6610/4610 Algorithms 2
CMPS 6610/4610 Algorithms 3
1
CMPS 6610/4610 Algorithms 4
1
CMPS 6610/4610 Algorithms 5
1 2
CMPS 6610/4610 Algorithms 6
1 2
CMPS 6610/4610 Algorithms 7
2 1
CMPS 6610/4610 Algorithms 8
2 1
CMPS 6610/4610 Algorithms 9
4 3 2 1
CMPS 6610/4610 Algorithms 10
4 3 2 1
CMPS 6610/4610 Algorithms 11
4 3 2 1
CMPS 6610/4610 Algorithms 12
4 3 2 1
CMPS 6610/4610 Algorithms 13
6
5 4 3 2 1 7
CMPS 6610/4610 Algorithms 14
CMPS 6610/4610 Algorithms 15
CMPS 6610/4610 Algorithms 16
CMPS 6610/4610 Algorithms 17
CMPS 6610/4610 Algorithms 18
CMPS 6610/4610 Algorithms 19
) 1 log( 1
n j j n i i
CMPS 6610/4610 Algorithms 20
CMPS 6610/4610 Algorithms 21
CMPS 6610/4610 Algorithms 22
CMPS 6610/4610 Algorithms 23
n i i n i i
1 1
CMPS 6610/4610 Algorithms 24
CMPS 6610/4610 Algorithms 25
CMPS 6610/4610 Algorithms 26
CMPS 6610/4610 Algorithms 27
*Okay, so I lied. The first operation costs only $2, not $3.
CMPS 6610/4610 Algorithms 28
CMPS 6610/4610 Algorithms 29
CMPS 6610/4610 Algorithms 30
n i i i i n i i
1 1 1
CMPS 6610/4610 Algorithms 31
1 1 1 1
n n i i n i i i i n i i
CMPS 6610/4610 Algorithms 32
n i i n n i i n i i i i n i i
1 1 1 1 1
CMPS 6610/4610 Algorithms 35
CMPS 6610/4610 Algorithms 36
CMPS 6610/4610 Algorithms 37
CMPS 6610/4610 Algorithms 38
CMPS 6610/4610 Algorithms 39
CMPS 6610/4610 Algorithms 40
0,0,…,0. The counter supports the following INCREMENT
i 0 while i<length(A) and A[i]=1 do A[i] 0 i++ if i<length(A) then A[i] 1
the amortized runtime of one INCREMENT operation?
CMPS 6610/4610 Algorithms 41
Initial counter 0 0 0 0 0 0 0 0 After 1 increment 0 0 0 0 0 0 0 1 After 2 increments 0 0 0 0 0 0 1 0 After 3 increments 0 0 0 0 0 0 1 1 After 4 increments 0 0 0 0 0 1 0 0 After 5 increments 0 0 0 0 0 1 0 1 After 6 increments 0 0 0 0 0 1 1 0 After 7 increments 0 0 0 0 0 1 1 1 After 8 increments 0 0 0 0 1 0 0 0 After 9 increments 0 0 0 0 1 0 0 1 Example for k=8 and n=9:
10 flip 01 flip
$1 $1 $1 $1 $2 $1 $1 $1 $1 $1 $1 $3 $1
CMPS 6610/4610 Algorithms 42
flipped back to 0
pay for this flip
its own cost, and each 10 flip is prepaid by the $1 credit on it.
CMPS 6610/4610 Algorithms 43
Initial counter 0 0 0 0 0 0 0 0 After 1 increment 0 0 0 0 0 0 0 1 After 2 increments 0 0 0 0 0 0 1 0 After 3 increments 0 0 0 0 0 0 1 1 After 4 increments 0 0 0 0 0 1 0 0 After 5 increments 0 0 0 0 0 1 0 1 After 6 increments 0 0 0 0 0 1 1 0 After 7 increments 0 0 0 0 0 1 1 1 After 8 increments 0 0 0 0 1 0 0 0 After 9 increments 0 0 0 0 1 0 0 1 Example for k=8 and n=9:
10 flip 01 flip
$1 $1 $1 $1 $2 $1 $1 $1 $1 $1 $1 $3 $1
10 flip 01 flip
$2 $2 $0 $2 $0 $2 $2 $2 $0 $2 $2 $0 $2
Actual cost Amortized cost
CMPS 6610/4610 Algorithms 44
CMPS 6610/4610 Algorithms 45