Accounting analysis of dynamic tables

advertisement
Introduction to Algorithms
6.046J/18.401J
LECTURE 13
Amortized Analysis
• Dynamic tables
• Aggregate method
• Accounting method
• Potential method
Prof. Charles E. Leiserson
October 31, 2005
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
L13.1
How large should a hash
table be?
Goal: Make the table as small as possible, but
large enough so that it won’t overflow (or
otherwise become inefficient).
Problem: What if we don’t know the proper size
in advance?
Solution: Dynamic tables.
IDEA: Whenever the table overflows, “grow” it
by allocating (via malloc or new) a new, larger
table. Move all items from the old table into the
new one, and free the storage for the old table.
October 31, 2005
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
L13.2
Example of a dynamic table
1. INSERT
2. INSERT
October 31, 2005
1
overflow
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
L13.3
Example of a dynamic table
1. INSERT
2. INSERT
October 31, 2005
1
overflow
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
L13.4
Example of a dynamic table
1. INSERT
2. INSERT
October 31, 2005
1
2
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
L13.5
Example of a dynamic table
1. INSERT
2. INSERT
3. INSERT
October 31, 2005
1
2
overflow
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
L13.6
Example of a dynamic table
1. INSERT
2. INSERT
3. INSERT
October 31, 2005
1
2
overflow
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
L13.7
Example of a dynamic table
1. INSERT
2. INSERT
3. INSERT
October 31, 2005
1
2
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
L13.8
Example of a dynamic table
1.
2.
3.
4.
INSERT
INSERT
INSERT
INSERT
October 31, 2005
1
2
3
4
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
L13.9
Example of a dynamic table
1.
2.
3.
4.
5.
INSERT
INSERT
INSERT
INSERT
INSERT
October 31, 2005
1
2
3
4
overflow
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
L13.10
Example of a dynamic table
1.
2.
3.
4.
5.
INSERT
INSERT
INSERT
INSERT
INSERT
October 31, 2005
1
2
3
4
overflow
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
L13.11
Example of a dynamic table
1.
2.
3.
4.
5.
INSERT
INSERT
INSERT
INSERT
INSERT
October 31, 2005
1
2
3
4
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
L13.12
Example of a dynamic table
1.
2.
3.
4.
5.
6.
7.
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
October 31, 2005
1
2
3
4
5
6
7
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
L13.13
Worst-case analysis
Consider a sequence of n insertions. The
worst-case time to execute one insertion is
Q(n). Therefore, the worst-case time for n
insertions is n · Q(n) = Q(n2).
WRONG! In fact, the worst-case cost for
n insertions is only Q(n) ≪ Q(n2).
Let’s see why.
October 31, 2005
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
L13.14
Tighter analysis
Let ci = the cost of the i th insertion
i if i – 1 is an exact power of 2,
=
1 otherwise.
i
1
2
3
4
5
6
7
8
9
sizei
1
2
4
4
8
8
8
8
16 16
ci
1
2
3
1
5
1
1
1
9
October 31, 2005
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
10
1
L13.15
Tighter analysis
Let ci = the cost of the i th insertion
i if i – 1 is an exact power of 2,
=
1 otherwise.
i
1
2
3
4
5
6
7
8
9
sizei
1
2
4
4
8
8
8
8
16 16
1
1
1
1
2
1
1
4
1
1
1
1
8
ci
October 31, 2005
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
10
1
L13.16
Tighter analysis (continued)
n
Cost of n insertions   ci
i 1
n
lg( n 1) 

2j
j 0
 3n
 Q( n ) .
Thus, the average cost of each dynamic-table
operation is Q(n)/n = Q(1).
October 31, 2005
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
L13.17
Accounting analysis of
dynamic tables
Charge an amortized cost of ĉi = $3 for the i th
insertion.
• $1 pays for the immediate insertion.
• $2 is stored for later table doubling.
When the table doubles, $1 pays to move a
recent item, and $1 pays to move an old item.
Example:
$0 $0 $0 $0 $2 $2 $2 $2 overflow
October 31, 2005
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
L13.18
Accounting analysis of
dynamic tables
Charge an amortized cost of ĉi = $3 for the i th
insertion.
• $1 pays for the immediate insertion.
• $2 is stored for later table doubling.
When the table doubles, $1 pays to move a
recent item, and $1 pays to move an old item.
Example:
overflow
$0 $0 $0 $0 $0 $0 $0 $0
October 31, 2005
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
L13.19
Accounting analysis of
dynamic tables
Charge an amortized cost of ĉi = $3 for the i th
insertion.
• $1 pays for the immediate insertion.
• $2 is stored for later table doubling.
When the table doubles, $1 pays to move a
recent item, and $1 pays to move an old item.
Example:
$0 $0 $0 $0 $0 $0 $0 $0 $2 $2 $2
October 31, 2005
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
L13.20
Potential analysis of table
doubling
Define the potential of the table after the ith
insertion by F(Di) = 2i – 2lg i. (Assume that
2lg 0 = 0.)
Note:
• F(D0 ) = 0,
• F(Di)  0 for all i.
Example:
• • • • • •
F = 2·6 – 23 = 4
(
$0 $0 $0 $0 $2 $2
October 31, 2005
accounting method)
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
L13.21
Calculation of amortized costs
The amortized cost of the i th insertion is
ĉi = ci + F(Di) – F(Di–1)
October 31, 2005
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
L13.22
Calculation of amortized costs
The amortized cost of the i th insertion is
ĉi = ci + F(Di) – F(Di–1)
i if i – 1 is an exact power of 2,
1 otherwise;
=
+ (2i – 2lg i) – (2(i –1) – 2lg (i–1))
October 31, 2005
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
L13.23
Calculation of amortized costs
The amortized cost of the i th insertion is
ĉi = ci + F(Di) – F(Di–1)
i if i – 1 is an exact power of 2,
1 otherwise;
=
+ (2i – 2lg i) – (2(i –1) – 2lg (i–1))
i if i – 1 is an exact power of 2,
1 otherwise;
=
+ 2 – 2lg i + 2lg (i–1) .
October 31, 2005
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
L13.24
Calculation
Case 1: i – 1 is an exact power of 2.
ĉi = i + 2 – 2lg i + 2lg (i–1)
October 31, 2005
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
L13.25
Calculation
Case 1: i – 1 is an exact power of 2.
ĉi = i + 2 – 2lg i + 2lg (i–1)
= i + 2 – 2(i – 1) + (i – 1)
October 31, 2005
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
L13.26
Calculation
Case 1: i – 1 is an exact power of 2.
ĉi = i + 2 – 2lg i + 2lg (i–1)
= i + 2 – 2(i – 1) + (i – 1)
= i + 2 – 2i + 2 + i – 1
October 31, 2005
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
L13.27
Calculation
Case 1: i – 1 is an exact power of 2.
ĉi = i + 2 – 2lg i + 2lg (i–1)
= i + 2 – 2(i – 1) + (i – 1)
= i + 2 – 2i + 2 + i – 1
=3
October 31, 2005
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
L13.28
Calculation
Case 1: i – 1 is an exact power of 2.
ĉi = i + 2 – 2lg i + 2lg (i–1)
= i + 2 – 2(i – 1) + (i – 1)
= i + 2 – 2i + 2 + i – 1
=3
Case 2: i – 1 is not an exact power of 2.
ĉi = 1 + 2 – 2lg i + 2lg (i–1)
October 31, 2005
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
L13.29
Calculation
Case 1: i – 1 is an exact power of 2.
ĉi = i + 2 – 2lg i + 2lg (i–1)
= i + 2 – 2(i – 1) + (i – 1)
= i + 2 – 2i + 2 + i – 1
=3
Case 2: i – 1 is not an exact power of 2.
ĉi = 1 + 2 – 2lg i + 2lg (i–1)
=3
(since 2lg i = 2lg (i–1))
October 31, 2005
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
L13.30
Calculation
Case 1: i – 1 is an exact power of 2.
ĉi = i + 2 – 2lg i + 2lg (i–1)
= i + 2 – 2(i – 1) + (i – 1)
= i + 2 – 2i + 2 + i – 1
=3
Case 2: i – 1 is not an exact power of 2.
ĉi = 1 + 2 – 2lg i + 2lg (i–1)
=3
Therefore, n insertions cost Q(n) in the worst case.
October 31, 2005
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
L13.31
Calculation
Case 1: i – 1 is an exact power of 2.
ĉi = i + 2 – 2lg i + 2lg (i–1)
= i + 2 – 2(i – 1) + (i – 1)
= i + 2 – 2i + 2 + i – 1
=3
Case 2: i – 1 is not an exact power of 2.
ĉi = 1 + 2 – 2lg i + 2lg (i–1)
=3
Therefore, n insertions cost Q(n) in the worst case.
October 31, 2005
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
L13.32
Conclusions
• Amortized costs can provide a clean abstraction
of data-structure performance.
• Any of the analysis methods can be used when
an amortized analysis is called for, but each
method has some situations where it is arguably
the simplest or most precise.
• Different schemes may work for assigning
amortized costs in the accounting method, or
potentials in the potential method, sometimes
yielding radically different bounds.
October 31, 2005
Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson
L13.33
Related documents
Download