Top Banner
CS333 / Cutler Amortized Analysis 1 Amortized Analysis The average cost of a sequence of n operations on a given Data Structure. Aggregate Analysis Accounting Method Potential Method
21

Amortized Analysis

Dec 30, 2015

Download

Documents

samson-lowery

Amortized Analysis. The average cost of a sequence of n operations on a given Data Structure. Aggregate Analysis Accounting Method Potential Method. Amortized Analysis. Amortized analysis computes the average time required to perform a sequence of n operations on a data structure - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Amortized Analysis

CS333 / Cutler Amortized Analysis

1

Amortized AnalysisThe average cost of a sequence of n operations on a given Data

Structure.

Aggregate Analysis

Accounting Method

Potential Method

Page 2: Amortized Analysis

CS333 / Cutler Amortized Analysis

2

Amortized Analysis

• Amortized analysis computes the average time required to perform a sequence of n operations on a data structure

• Often worst case analysis is not tight and the amortized cost of an operation is less that its worst case.

Page 3: Amortized Analysis

CS333 / Cutler Amortized Analysis

3

Applications of amortized analysis

• Vectors/ tables

• Disjoint sets

• Priority queues

• Heaps, Binomial heaps, Fibonacci heaps

• Hashing

Page 4: Amortized Analysis

CS333 / Cutler Amortized Analysis

4

Difference between amortized and average cost

• To do averages we need to use probability

• For amortized analysis no such assumptions are needed

• We compute the average cost per operation for any mix of n operations

Page 5: Amortized Analysis

CS333 / Cutler Amortized Analysis

5

Operations on Data Structures

• A data structure has a set of operations associated with it.

• Example: A stack with– push(), pop() and MultiPop(k).

• Often some operations may be slow while others are fast.

• push() and pop() are fast.• MultiPop(k) may be slow. • Sometimes the time of a single operation

can vary

Page 6: Amortized Analysis

CS333 / Cutler Amortized Analysis

6

Methods

• Aggregate analysis- the total amount of time needed for the n operations is computed and divided by n

• Accounting - operations are assigned an amortized cost. Objects of the data structure are assigned a credit

• Potential – The prepaid work (money in the “bank”) is represented as “potential” energy that can be released to pay for future operations

Page 7: Amortized Analysis

CS333 / Cutler Amortized Analysis

7

Aggregate analysis

• n operations take T(n) time

• Amortized cost of an operation is T(n)/n

Page 8: Amortized Analysis

CS333 / Cutler Amortized Analysis

8

Stack - aggregate analysis

• A stack with operations

• Push, Pop and Multipop.

Multipop(S, k)

while not empty(S) and k>0 do

Pop(S);

k:=k-1

end while

Page 9: Amortized Analysis

CS333 / Cutler Amortized Analysis

9

Stack - aggregate analysis

• Push and Pop are O(1) (to move 1 data element)

• Multipop is O(min(s, k)) where

s is the size of the stack and

k the number of elements to pop.

• Assume a sequence of n Push, Pop and Multipop operations

Page 10: Amortized Analysis

CS333 / Cutler Amortized Analysis

10

Stack - aggregate analysis

• Each object can be popped only once for each time it is pushed

• So the total number of times Pop can be called ( directly or from Multipop) is bound by the number of Pushes <=n.

Page 11: Amortized Analysis

CS333 / Cutler Amortized Analysis

11

Stack - aggregate analysis

• A sequence of n Push and Pop operations is therefore O(n) and the amortized cost of each is O(n)/n=O(1). All operations have same amortized cost.

Page 12: Amortized Analysis

CS333 / Cutler Amortized Analysis

12

Stack Example: Op/Moves <=2

Start

push a a

push b ab

push c abc

Multipop(3)ab

pop b a

pop a

Operation Stack

a

ab

abc

Stack

pop c

6 Operation: 6 Moves 4 Operation: 6 Moves

Page 13: Amortized Analysis

CS333 / Cutler Amortized Analysis

13

Accounting Method

• Charge each operation an (invented) amortized cost. – Often different from actual run time cost. Some

operations may have an amortized cost larger than runtime, others may have less.

– Unlike businesses we do not want to make a profit– We want to cover the actual cost

• Amount charged but not used in performing an operation is stored with objects of the data structure

Page 14: Amortized Analysis

CS333 / Cutler Amortized Analysis

14

Accounting method

• Later operations can use stored amount to pay for their actual cost

• Credit balance must not go negative (always enough to pay for performance of future operations)

Page 15: Amortized Analysis

CS333 / Cutler Amortized Analysis

15

Stack - amortized analysis

• We assign the amortized costs:

$2 for Push

$0 for both Pop and Multipop

• For a sequence of n Push and Pop operations the total amortized cost is at most 2n or O(n)

Page 16: Amortized Analysis

CS333 / Cutler Amortized Analysis

16

Stack - amortized analysis

• Each time we do a Push we pay $1 for the actual cost of the Push and the element has a credit of $1.

• Each time an element is popped we take the $1 credit to pay for it

• Thus the balance is always nonnegative

Page 17: Amortized Analysis

CS333 / Cutler Amortized Analysis

17

k bit binary counter

Increment (A) i = 0 while i < length[A] and

A[i] = 1 A[i] = 0 i ++ if i < length[A] A[i] = 1

• Initially the counter contains 0

• Eventually it becomes 2k -1

• Next it is reset to 0

1 0k -1

A

Page 18: Amortized Analysis

CS333 / Cutler Amortized Analysis

18

Aggregate analysis

• Count number of times a bit is flipped.

• Let number increments n = 2k (if n < 2k analysis similar)

• A[0] flipped n times• A[1] flipped n/21 times• …• A[k - 1] flipped n/2 k-1 times

Bit 2 1 0

D No.0 0 0 01 0 0 12 0 1 0 3 0 1 1

4 1 0 0 5 1 0 1 6 1 1 0 7 1 1 1Flips 2 4 8

3 bit counterk=3

nnn

ii

k

ii

22

1

2 0

1

0

Page 19: Amortized Analysis

CS333 / Cutler Amortized Analysis

19

Accounting method

• Charge amortized cost of $2 to set a bit to 1• When a bit is set to 1, pay $1 for actual cost

and store $1 with bit• Note: at all times a bit with value 1 has $1• When a bit is reset to 0 use $1 to pay for

actual cost• $2 per Increment operation

Page 20: Amortized Analysis

CS333 / Cutler Amortized Analysis

20

Accounting method

• Let the value stored in the counter be:

• After increment and a payment of

$2 = $1 +$1:

1 1 0 0 1 0 0 1 1 1 $1 $1 $0 $0 $1 $0 $0 $1 $1 $1

$1 $1 $0 $0 $1 $0 $1 $0 $0 $0 1 1 0 0 1 0 1 0 0 0

Page 21: Amortized Analysis

CS333 / Cutler Amortized Analysis

21

Dynamic table (object table, hash table, vector, etc)

• The table is dynamic

• We can’t predict its maximum size

• We would like to avoid allocating a lot of unused space (reasonable load balance)

• May not be able to avoid table overflow.

• Overflow should not cause run time failure