## Are you sure?

This action might not be possible to undo. Are you sure you want to continue?

6.046J/18.401J/SMA5503

Lecture 14

Prof. Charles E. Leiserson

**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.

© 2001 by Charles E. Leiserson Introduction to Algorithms Day 24 L14.2

**Example of a dynamic table
**

1. INSERT 2. INSERT

1 overflow

© 2001 by Charles E. Leiserson

Introduction to Algorithms

Day 24

L14.3

**Example of a dynamic table
**

1. INSERT 2. INSERT

1 1 overflow

© 2001 by Charles E. Leiserson

Introduction to Algorithms

Day 24

L14.4

**Example of a dynamic table
**

1. INSERT 2. INSERT

1 1 2

© 2001 by Charles E. Leiserson

Introduction to Algorithms

Day 24

L14.5

**Example of a dynamic table
**

1. INSERT 2. INSERT 3. INSERT

1 1 2 2 overflow

© 2001 by Charles E. Leiserson

Introduction to Algorithms

Day 24

L14.6

**Example of a dynamic table
**

1. INSERT 2. INSERT 3. INSERT

1 2 overflow

© 2001 by Charles E. Leiserson

Introduction to Algorithms

Day 24

L14.7

**Example of a dynamic table
**

1. INSERT 2. INSERT 3. INSERT

1 2

© 2001 by Charles E. Leiserson

Introduction to Algorithms

Day 24

L14.8

**Example of a dynamic table
**

1. 2. 3. 4. INSERT INSERT INSERT INSERT

1 2 3 4

© 2001 by Charles E. Leiserson

Introduction to Algorithms

Day 24

L14.9

**Example of a dynamic table
**

1. 2. 3. 4. 5. INSERT INSERT INSERT INSERT INSERT

1 2 3 4 overflow

© 2001 by Charles E. Leiserson

Introduction to Algorithms

Day 24

L14.10

**Example of a dynamic table
**

1. 2. 3. 4. 5. INSERT INSERT INSERT INSERT INSERT

1 2 3 4 overflow

© 2001 by Charles E. Leiserson

Introduction to Algorithms

Day 24

L14.11

**Example of a dynamic table
**

1. 2. 3. 4. 5. INSERT INSERT INSERT INSERT INSERT

1 2 3 4

© 2001 by Charles E. Leiserson

Introduction to Algorithms

Day 24

L14.12

**Example of a dynamic table
**

1. 2. 3. 4. 5. 6. 7. INSERT INSERT INSERT INSERT INSERT INSERT INSERT

1 2 3 4 5 6 7

© 2001 by Charles E. Leiserson

Introduction to Algorithms

Day 24

L14.13

**Worst-case analysis
**

Consider a sequence of n insertions. The worst-case time to execute one insertion is Θ(n). Therefore, the worst-case time for n insertions is n · Θ(n) = Θ(n2). WRONG! In fact, the worst-case cost for n insertions is only Θ(n) ≪ Θ(n2). Let’s see why.

© 2001 by Charles E. Leiserson

Introduction to Algorithms

Day 24

L14.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 sizei ci 1 1 1 2 2 2 3 4 3 4 4 1 5 8 5 6 8 1 7 8 1 8 8 1 9 9 10 1

16 16

© 2001 by Charles E. Leiserson

Introduction to Algorithms

Day 24

L14.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 sizei ci 1 1 1 2 2 1 1 3 4 1 2 4 4 1 5 8 1 4 6 8 1 7 8 1 8 8 1 9 1 8 10 1

16 16

© 2001 by Charles E. Leiserson

Introduction to Algorithms

Day 24

L14.16

**Tighter analysis (continued)
**

Cost of n insertions = ∑ ci

i =1 n

≤n+

lg( n −1)

∑

2j

j =0

**≤ 3n = Θ( n ) . Thus, the average cost of each dynamic-table operation is Θ(n)/n = Θ(1).
**

© 2001 by Charles E. Leiserson Introduction to Algorithms Day 24 L14.17

Amortized analysis

An amortized analysis is any strategy for analyzing a sequence of operations to show that the average cost per operation is small, even though a single operation within the sequence might be expensive. Even though we’re taking averages, however, probability is not involved! • An amortized analysis guarantees the average performance of each operation in the worst case.

© 2001 by Charles E. Leiserson Introduction to Algorithms Day 24 L14.18

**Types of amortized analyses
**

Three common amortization arguments: • the aggregate method, • the accounting method, • the potential method. We’ve just seen an aggregate analysis. The aggregate method, though simple, lacks the precision of the other two methods. In particular, the accounting and potential methods allow a specific amortized cost to be allocated to each operation.

© 2001 by Charles E. Leiserson Introduction to Algorithms Day 24 L14.19

Accounting method

• Charge i th operation a fictitious amortized cost ĉi, where $1 pays for 1 unit of work (i.e., time). • This fee is consumed to perform the operation. • Any amount not immediately consumed is stored in the bank for use by subsequent operations. • The bank balance must not go negative! We must ensure that n n ˆ ∑ ci ≤ ∑ ci

for all n. • Thus, the total amortized costs provide an upper bound on the total true costs.

© 2001 by Charles E. Leiserson Introduction to Algorithms Day 24 L14.20

i =1

i =1

**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 $0 $0 $0 $0 $2 $2

© 2001 by Charles E. Leiserson

Introduction to Algorithms

Day 24

L14.21

**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 $0 $0 $0 $0 $0 $0 $0 $0

© 2001 by Charles E. Leiserson Introduction to Algorithms Day 24 L14.22

**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 $0 $0 $0 $0 $0 $0 $0 $0

© 2001 by Charles E. Leiserson Introduction to Algorithms Day 24 L14.23

**Accounting analysis (continued)
**

Key invariant: Bank balance never drops below 0. Thus, the sum of the amortized costs provides an upper bound on the sum of the true costs.

i sizei ci ĉi banki 1 1 1 1 2 2 2 2 3 4 3 3 2 4 4 1 3 4 5 8 5 3 2 6 8 1 3 4 7 8 1 3 6 8 8 1 3 8 9 9 3 2

Day 24

10 1 3 4

L14.24

16 16

2* 3

***Okay, so I lied. The first operation costs only $2, not $3.
**

© 2001 by Charles E. Leiserson Introduction to Algorithms

Potential method

IDEA: View the bank account as the potential energy (à la physics) of the dynamic set. Framework: • Start with an initial data structure D0. • Operation i transforms Di–1 to Di. • The cost of operation i is ci. • Define a potential function Φ : {Di} → R, such that Φ(D0 ) = 0 and Φ(Di ) ≥ 0 for all i. • The amortized cost ĉi with respect to Φ is defined to be ĉi = ci + Φ(Di) – Φ(Di–1).

© 2001 by Charles E. Leiserson Introduction to Algorithms Day 24 L14.25

Understanding potentials

ĉi = ci + Φ(Di) – Φ(Di–1)

potential difference ∆Φi

• If ∆Φi > 0, then ĉi > ci. Operation i stores work in the data structure for later use. • If ∆Φi < 0, then ĉi < ci. The data structure delivers up stored work to help pay for operation i.

© 2001 by Charles E. Leiserson Introduction to Algorithms Day 24 L14.26

**The amortized costs bound the true costs
**

The total amortized cost of n operations is ˆ ∑ ci = ∑ (ci + Φ( Di ) − Φ( Di−1 ))

i =1 i =1 n n

Summing both sides.

© 2001 by Charles E. Leiserson

Introduction to Algorithms

Day 24

L14.27

**The amortized costs bound the true costs
**

The total amortized cost of n operations is ˆ ∑ ci = ∑ (ci + Φ( Di ) − Φ( Di−1 ))

i =1 n n i =1 n i =1

= ∑ ci + Φ ( Dn ) − Φ ( D0 ) The series telescopes.

© 2001 by Charles E. Leiserson

Introduction to Algorithms

Day 24

L14.28

**The amortized costs bound the true costs
**

The total amortized cost of n operations is

ˆ ∑ ci = ∑ (ci + Φ( Di ) − Φ( Di−1 ))

i =1

n

n

= ∑ ci + Φ ( Dn ) − Φ ( D0 ) ≥ ∑ ci

i =1 i =1 n

i =1 n

since Φ(Dn) ≥ 0 and Φ(D0 ) = 0.

Day 24 L14.29

© 2001 by Charles E. Leiserson

Introduction to Algorithms

**Potential analysis of table doubling
**

Define the potential of the table after the ith insertion by Φ(Di) = 2i – 2lg i. (Assume that 2lg 0 = 0.) Note: • Φ(D0 ) = 0, • Φ(Di) ≥ 0 for all i. Example: •• •• •• •• •• •• Φ = 2·6 – 23 = 4 accounting method)

Day 24 L14.30

(

$0 $0 $0 $0 $2 $2 $0 $0 $0 $0 $2 $2

© 2001 by Charles E. Leiserson

Introduction to Algorithms

**Calculation of amortized costs
**

The amortized cost of the i th insertion is ĉi = ci + Φ(Di) – Φ(Di–1) = i + (2i – 2lg i) – (2(i –1) – 2lg (i–1)) if i – 1 is an exact power of 2, 1 + (2i – 2lg i) – (2(i –1) – 2lg (i–1)) otherwise.

© 2001 by Charles E. Leiserson

Introduction to Algorithms

Day 24

L14.31

Calculation (Case 1)

Case 1: i – 1 is an exact power of 2.

ĉi = i + (2i – 2lg i) – (2(i –1) – 2lg (i–1)) = i + 2 – (2lg i – 2lg (i–1)) = i + 2 – (2(i – 1) – (i – 1)) = i + 2 – 2i + 2 + i – 1 =3

© 2001 by Charles E. Leiserson

Introduction to Algorithms

Day 24

L14.32

Calculation (Case 2)

Case 2: i – 1 is not an exact power of 2.

ĉi = 1 + (2i – 2lg i) – (2(i –1) – 2lg (i–1)) = 1 + 2 – (2lg i – 2lg (i–1)) =3

**Therefore, n insertions cost Θ(n) in the worst case.
**

Exercise: Fix the bug in this analysis to show that the amortized cost of the first insertion is only 2.

© 2001 by Charles E. Leiserson Introduction to Algorithms Day 24 L14.33

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. • Different schemes may work for assigning amortized costs in the accounting method, or potentials in the potential method, sometimes yielding radically different bounds.

© 2001 by Charles E. Leiserson Introduction to Algorithms Day 24 L14.34

- Bro Reallyuploaded bynationalbrand
- grade 6 patterning test reviewuploaded byapi-248504182
- 1291_1_QPD Action Action ETE Dec 2011uploaded byAjay Kumar
- Socceruploaded bygfailen
- Enemigos aleatoriosuploaded byapi-3772607
- assAsuploaded byMukesh Bisht
- Football League Scheduling - Chilean Soccer League Schedulinguploaded byAman Singh
- SSUET Course Titleuploaded bymfmalik86
- Spring 2009 Midterm Opkst Mth601uploaded byKhurram Nadeem
- Berth Allocation in a Container Port Using a Continuous Location Space Approachuploaded byMadhuShakthi
- Mathsuploaded bychotakamal3625
- CSE106_projectListuploaded byShabab Shahriar Khan
- Nodal Loaduploaded byTalaz Baral
- ESI4312-Chapter0buploaded byZak McDougal
- Workshop Personalisation Slides Shortuploaded byAntonela Tommasel
- a3uploaded byMuhammad Bilal Junaid
- Bilgin's Blog _ Kalman Filter for Dummies_Beginuploaded byChristine Allen
- AGC4uploaded byFengxing Zhu
- Open Cv Introuploaded byAyush Tibrewala
- 202_2014_2_buploaded byFreePDFs
- 20-14 Iste Standards-cse PDFuploaded byDurga Prasad
- Kalman Filter for Dummiesuploaded byManuel Pineda Delgado
- National conference on Computing and Informatics 2015uploaded bygreataks
- 118001-3232 IJVIPNS-IJENSuploaded byHandra Akira Saito
- 3-optimizingsearchuploaded byKhánh Nguyễn
- scrn layuploaded byvishbendre1
- International Journal of Information Technology, Modeling and Computing (IJITMC)uploaded byAlejandro Carver
- Grid fortranuploaded byCarlos Gomez
- CS or CEuploaded byapi-3770072
- Interdisciplinary Process Driven Performative Morphologiesuploaded byAhmedYahiaEnab

- lecture11uploaded byvv
- TACTICAL COMMUNICATIONS PROTOCOL 2uploaded byvv
- DesignOfSWforEmbeddedSystemsuploaded byvv
- lecture13uploaded byvv
- lecture09uploaded byvv
- Planning Algorithmuploaded byvv
- lecture12uploaded byvv
- lecture15uploaded byvv
- lecture08uploaded byvv
- lecture06uploaded byvv
- lecture01uploaded byvv
- lecture04uploaded byvv
- Algorithmsuploaded byvv
- lecture03uploaded byvv
- lecture05uploaded byvv
- HSM Design principles v5 1uploaded byvv
- lecture07uploaded byvv
- lecture02uploaded byvv

Read Free for 30 Days

Cancel anytime.

Close Dialog## Are you sure?

This action might not be possible to undo. Are you sure you want to continue?

Loading