Algo10.Amortized Analysis

Embed Size (px)

Citation preview

  • 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