10 -1
Chapter 10
Amortized Analysis
10 -2
 A sequence of operations: OP1, OP2, … OPm
OPi : several pops (from the stack) and
one push (into the stack)
ti : time spent by OPi
the average time per operation:
An example– push and pop



m
i
i
t
m 1
ave
1
t
10 -3
 Example: a sequence of push and pop
p: pop , u: push
i 1 2 3 4 5 6 7 8
OPi 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
10 -4
 Another example: a sequence of push
and 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 8
OPi 1u 1p 1u 1u 1u 1u 5p 1u
1u 1u
ti 1 2 1 1 1 1 6 1
10 -5
Amortized time and potential function
ai = ti +  
i i
 1
ai : amortized time of OPi
i : potential function of the stack after OPi
 
i i
 1: change of the potential
a t
i
i
m
i
i
m
i
i
m
i
  

     
1 1 1
1
( )
 
   

ti
i
m
m
1
0
 
If  
m  0  0, then ai
i
m


1
represents an upper
bound of ti
i
m


1
10 -6

 Suppose that before we execute Opi , there are k
elements in the stack and Opi consists of n pops and
1 push.
Amortized analysis of the
push-and-pop sequence
0
have
We
stack
the
in
elements
of
#
:
0 




m
i
2
)
1
(
)
1
(
1
Then,
1
1
1




















-k
k-n
n
t
a
n
k
n
t
k
i
i
i
i
i
i
i
10 -7

 By observation, at most m pops and m
pushes are executed in m operations. Thus,
2.
t
Then,
2
/
)
(
have
We
ave
1




m
i
i m
a
2.
tave 
10 -8
Skew heaps
1
50
13 20
10
16 25
5
12
30
19
40 14
1
50
13
20
10
16
25
5
12
30
19
40
14
Two skew heaps
Step 1: Merge the right paths.
5 right heavy nodes: yellow
 meld: merge + swapping
10 -9
1
5
13
20
10
16
25
50
12
30
19
40
14
Step 2: Swap the children along the right path.
No right heavy node
10 -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, h2): meld two skew heaps h1 and h2.
The first three operations can be implemented
by melding.
10 -11
Potential function of skew heaps
 wt(x): # of descendants of node x, including
x.
 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.
10 -12
light nodes  log2n
# heavy=k3 log2n
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 .
10 -13
Amortized time
heap: h1
# of nodes: n1
heap: h2
# of nodes: n2
# light  log2n1
# heavy = k1
# light  log2n2
# heavy = k2
10 -14
ai = ti + i  i-1
ti : time spent by OPi
ti  2+log2n1+k1+log2n2+k2
(“2” counts the roots of h1 and h2)
 2+2log2n+k1+k2
where n=n1+n2
i  i-1 = k3-(k1+k2)  log2nk1k2
ai = ti + i  i-1
2+2log2n+k1+k2+log2nk1k2
=2+3log2n
 ai = O(log2n)
10 -15
AVL-trees
height balance of node v:
hb(v)= (height of right subtree) – (height of left subtree)
 The hb(v) of every node never differ by more than 1.
M
I O
E K Q
N
G L
C J P R
B D F
-1
-1
-1
0
0
0 0 0
0
0
0
0
0
0
0
+1
Fig. An AVL-Tree with Height Balance Labeled
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 Q
N
G L
C J P R
B D F
-2
-2
-1
0 0
0
0
0
0
0
0
0
+1
A
0
-1
-1
-1
Critical
node
Critical
path
10 -17
Amortized analysis of AVL-trees
 Consider a sequence of m insertions on an
empty AVL-tree.
 T0: 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 (the total cost for
rebalancing)
X1= Li
i
m


1
, we want to find X1.
Val(T): # of unbalanced node in T
(height balance  0)
10 -18
Case 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 not
rebalance it.
10 -19
Case 2.1 single rotation
D
B
Li
E(n)
A(n)
C(n)
0
0
newly added
0
-1
E(n): height of tree E is n
10 -20
Case 2 : Rebalancing the tree
D
B F
E G
A C
D
B
F
E
G
A C
D
B
F
E G
A
C
left
rotation
right
rotation
10 -21
Case 2.1 single rotation
D
B
E(n)
A(n)
C(n)
0
-1
-1
0
 After a right rotation on the subtree rooted at
D:
Val(Ti)=Val(Ti-1)+(Li-2)
10 -22
Case 2.2 double rotation
F
B
E(n-1)
C(n-1)
0
-1
A(n)
G(n)
D
0
newly
added
10 -23
Case 2.2 double rotation
D
B
C(n-1)
0
1
A(n) G(n)
F
0
E(n-1)
Val(Ti)=Val(Ti-1)+(Li-2)
 After a left rotation on the subtree rooted at
B and a right rotation on the subtree rooted
at F:
10 -24
Case 3 : Height increase
Val(Ti)=Val(Ti-1)+Li
 Li is the height of the root.
Li
A(n) 0
0
newly
added
0
root -1
-1
-1
root
10 -25
Amortized analysis of X1
X2: # of absorptions in case 1
X3: # of single rotations in case 2
X4: # of double rotations in case 2
X5: # of height increases in case 3
Val(Tm) = Val(T0)+ Li
i
m


1
X22(X3+X4)
=0+X1X22(X3+X4)
Val(Tm)  0.618m (proved by Knuth)
 X1 = Val(Tm)+2(X2+X3+X4)X2
 0.618m+2m
= 2.618m
10 -26
A self-organizing sequential
search heuristics
 3 methods for enhancing the performance of
sequential search
(1)Transpose Heuristics:
Query Sequence
B 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
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 B
A A C D B
10 -28
(3)Count Heuristics: (decreasing order by the count)
Query Sequence
B B
D B D
A B D A
D D B A
D D B A
A D A B
C D A B C
A D A B C
10 -29
Analysis of the move-to-the-
front heuristics
 interword comparison: unsuccessful
comparison
 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
interword comparisons made for the subsequence
of S consisting of only P’s and Q’s.
(See the example on the next page.)
10 -30
e.g.
Query Sequence (A, B) comparison
C C
A A C
C C A
B B C A 
C C B A
A A C B 
# of comparisons made between A and B: 2
Pairwise independent
property in move-to-the-front
10 -31
Consider the subsequence consisting of A and B:
Query Sequence (A, B) comparison
A A
B B A 
A A B 
# of comparisons made between A and B: 2
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 then
add them up.
the total number of interword comparisons:
0+1+1+2+1+2 = 7
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 static
ordering
CM (S) 2CO(S)
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 A’s and b B’s, a  b.
The optimal static ordering: BA
InterO(S) = a
InterM(S)  2a
 InterM(S)  2InterO(S)
10 -35
 Consider any sequence consisting of more than two
items. Because of the pairwise independent property,
we have InterM(S)  2InterO(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)
 InterM(S) + IntraM(S)  2InterO(S) + IntraO(S)
 CM(S)  2CO(S)
Proof (cont.)
10 -36
The count heuristics
 The count heuristics has a similar result:
CC(S)  2CO(S), where CC(S) is the cost
of the count heuristics
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)
10 -38
the correct interword comparisons:
Query Sequence C A C B C A
Data Ordering C AC CA CBA CBA CAB
Number of Interword
Comparisons
0 1 1 2 0 2

6

Graph Algorithms Graph Algorithms Graph Algorithms

  • 1.
  • 2.
    10 -2  Asequence of operations: OP1, OP2, … OPm OPi : several pops (from the stack) and one push (into the stack) ti : time spent by OPi the average time per operation: An example– push and pop    m i i t m 1 ave 1 t
  • 3.
    10 -3  Example:a sequence of push and pop p: pop , u: push i 1 2 3 4 5 6 7 8 OPi 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
  • 4.
    10 -4  Anotherexample: a sequence of push and 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 8 OPi 1u 1p 1u 1u 1u 1u 5p 1u 1u 1u ti 1 2 1 1 1 1 6 1
  • 5.
    10 -5 Amortized timeand potential function ai = ti +   i i  1 ai : amortized time of OPi i : potential function of the stack after OPi   i i  1: change of the potential a t i i m i i m i i m i           1 1 1 1 ( )        ti i m m 1 0   If   m  0  0, then ai i m   1 represents an upper bound of ti i m   1
  • 6.
    10 -6   Supposethat before we execute Opi , there are k elements in the stack and Opi consists of n pops and 1 push. Amortized analysis of the push-and-pop sequence 0 have We stack the in elements of # : 0      m i 2 ) 1 ( ) 1 ( 1 Then, 1 1 1                     -k k-n n t a n k n t k i i i i i i i
  • 7.
    10 -7   Byobservation, at most m pops and m pushes are executed in m operations. Thus, 2. t Then, 2 / ) ( have We ave 1     m i i m a 2. tave 
  • 8.
    10 -8 Skew heaps 1 50 1320 10 16 25 5 12 30 19 40 14 1 50 13 20 10 16 25 5 12 30 19 40 14 Two skew heaps Step 1: Merge the right paths. 5 right heavy nodes: yellow  meld: merge + swapping
  • 9.
    10 -9 1 5 13 20 10 16 25 50 12 30 19 40 14 Step 2:Swap the children along the right path. No right heavy node
  • 10.
    10 -10 Amortized analysisof 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, h2): meld two skew heaps h1 and h2. The first three operations can be implemented by melding.
  • 11.
    10 -11 Potential functionof skew heaps  wt(x): # of descendants of node x, including x.  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.
  • 12.
    10 -12 light nodes log2n # heavy=k3 log2n 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 .
  • 13.
    10 -13 Amortized time heap:h1 # of nodes: n1 heap: h2 # of nodes: n2 # light  log2n1 # heavy = k1 # light  log2n2 # heavy = k2
  • 14.
    10 -14 ai =ti + i  i-1 ti : time spent by OPi ti  2+log2n1+k1+log2n2+k2 (“2” counts the roots of h1 and h2)  2+2log2n+k1+k2 where n=n1+n2 i  i-1 = k3-(k1+k2)  log2nk1k2 ai = ti + i  i-1 2+2log2n+k1+k2+log2nk1k2 =2+3log2n  ai = O(log2n)
  • 15.
    10 -15 AVL-trees height balanceof node v: hb(v)= (height of right subtree) – (height of left subtree)  The hb(v) of every node never differ by more than 1. M I O E K Q N G L C J P R B D F -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 +1 Fig. An AVL-Tree with Height Balance Labeled
  • 16.
    10 -16  Adda 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 Q N G L C J P R B D F -2 -2 -1 0 0 0 0 0 0 0 0 0 +1 A 0 -1 -1 -1 Critical node Critical path
  • 17.
    10 -17 Amortized analysisof AVL-trees  Consider a sequence of m insertions on an empty AVL-tree.  T0: 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 (the total cost for rebalancing) X1= Li i m   1 , we want to find X1. Val(T): # of unbalanced node in T (height balance  0)
  • 18.
    10 -18 Case 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 not rebalance it.
  • 19.
    10 -19 Case 2.1single rotation D B Li E(n) A(n) C(n) 0 0 newly added 0 -1 E(n): height of tree E is n
  • 20.
    10 -20 Case 2: Rebalancing the tree D B F E G A C D B F E G A C D B F E G A C left rotation right rotation
  • 21.
    10 -21 Case 2.1single rotation D B E(n) A(n) C(n) 0 -1 -1 0  After a right rotation on the subtree rooted at D: Val(Ti)=Val(Ti-1)+(Li-2)
  • 22.
    10 -22 Case 2.2double rotation F B E(n-1) C(n-1) 0 -1 A(n) G(n) D 0 newly added
  • 23.
    10 -23 Case 2.2double rotation D B C(n-1) 0 1 A(n) G(n) F 0 E(n-1) Val(Ti)=Val(Ti-1)+(Li-2)  After a left rotation on the subtree rooted at B and a right rotation on the subtree rooted at F:
  • 24.
    10 -24 Case 3: Height increase Val(Ti)=Val(Ti-1)+Li  Li is the height of the root. Li A(n) 0 0 newly added 0 root -1 -1 -1 root
  • 25.
    10 -25 Amortized analysisof X1 X2: # of absorptions in case 1 X3: # of single rotations in case 2 X4: # of double rotations in case 2 X5: # of height increases in case 3 Val(Tm) = Val(T0)+ Li i m   1 X22(X3+X4) =0+X1X22(X3+X4) Val(Tm)  0.618m (proved by Knuth)  X1 = Val(Tm)+2(X2+X3+X4)X2  0.618m+2m = 2.618m
  • 26.
    10 -26 A self-organizingsequential search heuristics  3 methods for enhancing the performance of sequential search (1)Transpose Heuristics: Query Sequence B 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
  • 27.
    10 -27 (2)Move-to-the-Front Heuristics: QuerySequence B B D D B A A D B D D A B D D A B C C D A B A A C D B
  • 28.
    10 -28 (3)Count Heuristics:(decreasing order by the count) Query Sequence B B D B D A B D A D D B A D D B A A D A B C D A B C A D A B C
  • 29.
    10 -29 Analysis ofthe move-to-the- front heuristics  interword comparison: unsuccessful comparison  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 interword comparisons made for the subsequence of S consisting of only P’s and Q’s. (See the example on the next page.)
  • 30.
    10 -30 e.g. Query Sequence(A, B) comparison C C A A C C C A B B C A  C C B A A A C B  # of comparisons made between A and B: 2 Pairwise independent property in move-to-the-front
  • 31.
    10 -31 Consider thesubsequence consisting of A and B: Query Sequence (A, B) comparison A A B B A  A A B  # of comparisons made between A and B: 2
  • 32.
    10 -32 Query SequenceC 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 then add them up. the total number of interword comparisons: 0+1+1+2+1+2 = 7
  • 33.
    10 -33 Theorem forthe move-to-the- front heuristics CM(S): # of comparisons of the move-to-the- front heuristics CO(S): # of comparisons of the optimal static ordering CM (S) 2CO(S)
  • 34.
    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 A’s and b B’s, a  b. The optimal static ordering: BA InterO(S) = a InterM(S)  2a  InterM(S)  2InterO(S)
  • 35.
    10 -35  Considerany sequence consisting of more than two items. Because of the pairwise independent property, we have InterM(S)  2InterO(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)  InterM(S) + IntraM(S)  2InterO(S) + IntraO(S)  CM(S)  2CO(S) Proof (cont.)
  • 36.
    10 -36 The countheuristics  The count heuristics has a similar result: CC(S)  2CO(S), where CC(S) is the cost of the count heuristics
  • 37.
    10 -37 The transpositionheuristics  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)
  • 38.
    10 -38 the correctinterword comparisons: Query Sequence C A C B C A Data Ordering C AC CA CBA CBA CAB Number of Interword Comparisons 0 1 1 2 0 2  6