Download - Algo10.Amortized Analysis
-
8/3/2019 Algo10.Amortized Analysis
1/38
10 -1
Chapter 10Amortized Analysis
-
8/3/2019 Algo10.Amortized Analysis
2/38
10 -2
A sequence of operations: OP1, OP
2, OP
m
OPi
: several pops (from the stack) and
one push (into the stack)
ti: time spent by OP
i
the average time per operation:
An example push and pop
=
=m
i
it
m 1ave
1t
-
8/3/2019 Algo10.Amortized Analysis
3/38
10 -3
Example: a sequence of push and pop
p: pop , u: push
i 1 2 3 4 5 6 7 8OPi 1u 1u 2p 1u 1u 1u 2p 1p
1u 1u 1u
ti 1 1 3 1 1 1 3 2
tave
= (1+1+3+1+1+1+3+2)/8
= 13/8
= 1.625
-
8/3/2019 Algo10.Amortized Analysis
4/38
10 -4
Another example: a sequence of pushand pop
p: pop , u: push
tave
= (1+2+1+1+1+1+6+1)/8
= 14/8
= 1.75
i 1 2 3 4 5 6 7 8OPi 1u 1p 1u 1u 1u 1u 5p 1u
1u 1u
ti 1 2 1 1 1 1 6 1
-
8/3/2019 Algo10.Amortized Analysis
5/38
10 -5
Amortized time and potential functionai = ti +
i i
1
ai : amortized time of OP i
i : potential function of the stack after OP i
i i1: change of the potential
a tii
m
ii
m
ii
m
i= = =
=+1 1 1 1( )
=+ =
t ii
m
m1
0
If m 0 0, then a ii
m
=
1
represents an upper
bound of t ii
m
=
1
-
8/3/2019 Algo10.Amortized Analysis
6/38
10 -6
Suppose that before we execute Opi, there are k
elements in the stack and Opiconsists ofnpops and 1
push.
Amortized analysis of thepush-and-pop sequence
0haveWe
stacktheinelementsof#:
0
m
i
2
)1()1(
1Then,
1
1
1
=
+++=
+=
+=
+=
=
-kk-nn
ta
nk
nt
k
iiii
i
i
i
-
8/3/2019 Algo10.Amortized Analysis
7/3810 -7
By observation, at most m pops and mpushes are executed in moperations. Thus,
2.tThen,
2/)(haveWe
ave
1
==
m
i
ima
2.tave
-
8/3/2019 Algo10.Amortized Analysis
8/3810 -8
Skew heaps
Two skew heaps
Step 1: Merge the right paths.
5 right heavy nodes
meld: merge + swapping
-
8/3/2019 Algo10.Amortized Analysis
9/3810 -9
Step 2: Swap the children along the right path.
No right heavy node
-
8/3/2019 Algo10.Amortized Analysis
10/3810 -10
Amortized analysis of skew heaps
meld: merge + swapping
operations on a skew heap: find-min(h): find the min of a skew heap h. insert(x, h): insert x into a skew heap h. delete-min(h): delete the min from a skew heap h.
meld(h1, h
2): meld two skew heaps h
1and h
2.
The first three operations can be implementedby melding.
-
8/3/2019 Algo10.Amortized Analysis
11/3810 -11
Potential function of skew heaps
wt(x): # of descendants of node x, includingx.
heavy node x: wt(x) > wt(p(x))/2, where
p(x) is the parent node of x. light node : not a heavy node
potential function i: # of right heavy nodes
of the skew heap.
-
8/3/2019 Algo10.Amortized Analysis
12/3810 -12
light nodes log2n
# heavy=k3 log
2n
possible heavy nodes
# of nodes: n
Any path in an n-node tree contains at most
log2n light nodes.
The number of right heavy nodes attached to
the left path is at most log2n .
-
8/3/2019 Algo10.Amortized Analysis
13/38
10 -13
Amortized time
heap: h1
# of nodes: n1
heap: h2
# of nodes: n2
# light log2n1# heavy = k
1
# light log
2n
2
# heavy = k2
-
8/3/2019 Algo10.Amortized Analysis
14/38
10 -14
ai = ti + i i-1
ti : time spent by OPiti 2+log2n1+k1+log2n2+k2
(2 counts the roots of h1 and h2)
2+2log2
n+k1
+k2
where n=n1+n2
i i-1 = k3-(k1+k2) log2nk1k2ai = ti + i i-1
2+2log2n+k1+k2+log2nk1k2=2+3log2n
ai = O(log2n)
-
8/3/2019 Algo10.Amortized Analysis
15/38
10 -15
AVL-trees
M
I O
E K QN
G LC J P R
B D F
-1
-1
-1
0
0
0 0 0
0
0
0
0
00
0
+1
Fig. An AVL-Tree with Height Balance Labeled
height balance of node v:hb(v)=height of right subtree - height of left subtree
-
8/3/2019 Algo10.Amortized Analysis
16/38
10 -16
Add a new node A.
Before insertion, hb(B)=hb(C)=hb(E)=0
hb(I)
0 the first nonzero from leaves.
M
I O
E K QN
G LC J P R
B D F
-2
-2
-1
0 0
0
0
0
0
00
0
+1
A
0
-1
-1
-1
Critica l
node
Critica lpath
-
8/3/2019 Algo10.Amortized Analysis
17/38
10 -17
Amortized analysis of AVL-trees
Consider a sequence of m insertions on anempty AVL-tree. T
0: an empty AVL-tree.
Ti: the tree after the ith insertion.
Li: the length of the critical path involved in the ith
insertion.
X1: total # of balance factor changing from 0 to +1 or
-1 during these m insertions (rebalancing cost)
X1= Lii
m
=
1
, we want to find X1.
Val(T): # of unbalanced node in T
(height balance0)
-
8/3/2019 Algo10.Amortized Analysis
18/38
10 -18
Case 1Case 1 : Absorption
newly
added
Ti-1
Ti
1
0
0
0
0
-1
-1
-1
Li
Val(Ti
)=Val(Ti-1
)+(Li
1)
The tree height is not increased, we need notrebalance it.
-
8/3/2019 Algo10.Amortized Analysis
19/38
10 -19
Case 2.1Case 2.1 single rotation
-
8/3/2019 Algo10.Amortized Analysis
20/38
10 -20
Case 2Case 2 : Rebalancing the tree
-
8/3/2019 Algo10.Amortized Analysis
21/38
10 -21
Case 2.1Case 2.1 single rotation
After a right rotation on the subtree rooted atA:
Val(Ti)=Val(Ti-1)+(Li-2)
-
8/3/2019 Algo10.Amortized Analysis
22/38
10 -22
Case 2.2Case 2.2 double rotation
A
B
F(n-1)E(n-1)
0
-1
D(n)
G(n)
C0
newly
added
-
8/3/2019 Algo10.Amortized Analysis
23/38
-
8/3/2019 Algo10.Amortized Analysis
24/38
10 -24
Case 3Case 3 : Height increase
Val(Ti)=Val(T
i-1)+L
i
Liis the height of the root.
Li
C(n) 0
0
newly
added
0root
-1
-1
-1
root
-
8/3/2019 Algo10.Amortized Analysis
25/38
10 -25
Amortized analysis of X1
X2: # of absorptions in case 1X3: # of single rotations in case 2
X4: # of double rotations in case 2
X5: # of height increases in case 3
Val(Tm) = Val(T0)+ Lii
m
=
1
X22(X3+X4)
=0+X1X22(X3+X4)
Val(Tm) 0.618m (proved by Knuth) X1 = Val(Tm)+2(X2+X3+X4)X2
0.618m+2m
= 2.618m
A lf i i ti l
-
8/3/2019 Algo10.Amortized Analysis
26/38
10 -26
A self-organizing sequentialsearch heuristics
3 methods for enhancing the performance ofsequential search
(1) Transpose Heuristics:
Query SequenceB B
D D B
A D A B
D D A B
D D A B
C D A C B
A A D C B
-
8/3/2019 Algo10.Amortized Analysis
27/38
10 -27
(2) Move-to-the-Front Heuristics:Query Sequence
B B
D D B
A A D B
D D A B
D D A B
C C D A BA A C D B
-
8/3/2019 Algo10.Amortized Analysis
28/38
10 -28
(3)Count Heuristics: (decreasing order by the count)Query Sequence
B B
D B D
A B D AD D B A
D D B A
A D A B
C D A B C
A D A B C
-
8/3/2019 Algo10.Amortized Analysis
29/38
10 -29
Analysis of the move-to-the-front heuristics
interword comparison: unsuccessfulcomparison
intraword comparison: successful comparison
pairwise independent property: For any sequence S and all pairs P and Q, # of
interword comparisons of P and Q is exactly # of
comparisons made for the subsequence of Sconsisting of only Ps and Qs.
(See the example on the next page.)
-
8/3/2019 Algo10.Amortized Analysis
30/38
10 -30
e.g.
Query Sequence (A, B) comparison
C C
A A C
C C A
B B C A
C C B AA A C B
# of comparisons made between A and B: 2
Pairwise independentproperty in move-to-the-front
-
8/3/2019 Algo10.Amortized Analysis
31/38
10 -31
Consider the subsequence consisting of A and B:
Query Sequence (A, B) comparisonA A
B B A
A A B
# of comparisons made between A and B: 2
-
8/3/2019 Algo10.Amortized Analysis
32/38
10 -32
Query Sequence C A C B C A
(A, B) 0 1 1
(A, C) 0 1 1 0 1(B, C) 0 0 1 1
0 1 1 2 1 2
There are 3 distinct interword comparisons:
(A, B), (A, C) and (B, C)
We can consider them separately and thenadd them up.
the total number of interword comparisons:
0+1+1+2+1+2 = 7
-
8/3/2019 Algo10.Amortized Analysis
33/38
10 -33
Theorem for the move-to-the- front heuristics
CM(S): # of comparisons of the move-to-the-
front heuristics
CO(S): # of comparisons of the optimal staticordering
CM (S) 2CO(S)
-
8/3/2019 Algo10.Amortized Analysis
34/38
10 -34
Proof
Proof:
InterM(S): # of interword comparisons of the move to
the front heuristics
InterO
(S): # of interword comparisons of the optimal
static ordering
Let S consist of a As and b Bs, a < b.
The optimal static ordering: BA
InterO(S) = aInter
M(S) 2a
InterM(S) 2InterO(S)
-
8/3/2019 Algo10.Amortized Analysis
35/38
10 -35
Consider any sequence consisting of more than twoitems. Because of the pairwise independent property,we have Inter
M(S) 2Inter
O(S)
IntraM(S): # of intraword comparisons of the move-to-the-front heuristics
IntraO(S): # of intraword comparisons of the optimal
static ordering
IntraM(S) = IntraO(S) Inter
M(S) + Intra
M(S) 2Inter
O(S) + Intra
O(S)
CM(S) 2C
O(S)
Proof(cont.)
-
8/3/2019 Algo10.Amortized Analysis
36/38
10 -36
The count heuristics
The count heuristics has a similarresult:
CC(S) 2CO(S), where CC(S) is the costof the count heuristics
-
8/3/2019 Algo10.Amortized Analysis
37/38
10 -37
The transposition heuristics The transposition heuristics does not possess the
pairwise independent property. We can not have a similar upper bound for the cost of
the transposition heuristics.e.g.
Consider pairs of distinct items independently.Query Sequence C A C B C A
(A, B) 0 1 1
(A, C) 0 1 1 0 1
(B, C) 0 0 1 1
0 1 1 2 1 2
# of interword comparisons: 7 (not correct)
-
8/3/2019 Algo10.Amortized Analysis
38/38
the correct interword comparisons:Query Sequence C A C B C A
Data Ordering C AC CA CBA CBA CABNumber of Interword
Comparisons0 1 1 2 0 2
6