CMPS 6610 Algorithms 1
CMPS 6610 – Fall 2018
Amortized Analysis
Carola Wenk
Slides by courtesy of Charles Leiserson with additions by Carola Wenk
Amortized Analysis Carola Wenk Slides by courtesy of Charles - - PowerPoint PPT Presentation
CMPS 6610 Fall 2018 Amortized Analysis Carola Wenk Slides by courtesy of Charles Leiserson with additions by Carola Wenk CMPS 6610 Algorithms 1 Dynamic tables Task: Store a dynamic set in a table/array. Elements can only be inserted, and
CMPS 6610 Algorithms 1
Slides by courtesy of Charles Leiserson with additions by Carola Wenk
CMPS 6610 Algorithms 2
CMPS 6610 Algorithms 3
1
CMPS 6610 Algorithms 4
1
CMPS 6610 Algorithms 5
1 2
CMPS 6610 Algorithms 6
1 2
CMPS 6610 Algorithms 7
2 1
CMPS 6610 Algorithms 8
2 1
CMPS 6610 Algorithms 9
4 3 2 1
CMPS 6610 Algorithms 10
4 3 2 1
CMPS 6610 Algorithms 11
4 3 2 1
CMPS 6610 Algorithms 12
4 3 2 1
CMPS 6610 Algorithms 13
6
5 4 3 2 1 7
CMPS 6610 Algorithms 14
CMPS 6610 Algorithms 15
CMPS 6610 Algorithms 16
CMPS 6610 Algorithms 17
CMPS 6610 Algorithms 18
CMPS 6610 Algorithms 19
) 1 log( 1
n j j n i i
CMPS 6610 Algorithms 20
CMPS 6610 Algorithms 21
CMPS 6610 Algorithms 22
CMPS 6610 Algorithms 23
n i i n i i
1 1
CMPS 6610 Algorithms 24
CMPS 6610 Algorithms 25
CMPS 6610 Algorithms 26
CMPS 6610 Algorithms 27
*Okay, so I lied. The first operation costs only $2, not $3.
CMPS 6610 Algorithms 28
CMPS 6610 Algorithms 29
CMPS 6610 Algorithms 30
n i i i i n i i
1 1 1
CMPS 6610 Algorithms 31
1 1 1 1
n n i i n i i i i n i i
CMPS 6610 Algorithms 32
n i i n n i i n i i i i n i i
1 1 1 1 1
CMPS 6610 Algorithms 35
CMPS 6610 Algorithms 36
CMPS 6610 Algorithms 37
CMPS 6610 Algorithms 38
CMPS 6610 Algorithms 39
CMPS 6610 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 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 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 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 Algorithms 44
CMPS 6610 Algorithms 45