cs 473lecture x1 cs473-algorithms i lecture x ackermann’s function and its inverse

21
CS 473 Lecture X 1 CS473-Algorithms I Lecture X Ackermann’s Function and Its Inverse

Upload: curtis-simmons

Post on 25-Dec-2015

217 views

Category:

Documents


0 download

TRANSCRIPT

CS 473 Lecture X 1

CS473-Algorithms I

Lecture X

Ackermann’s Function and Its Inverse

CS 473 Lecture X 2

Repeated Exponentiation Function g(i)

12

12

02

)()1(

2

1

iif

iif

iif

igig

That is 2

222)(

ig i

The parameter i gives the height of the stack of 2’s that make up the exponent

22222)4( g 4 6553622 2221642

Repeated Logarithm Function lg(i)n

)nlg(lg

n

nlg )1i()i(

undefined

if i = 0

if i > 0 and lg(i-1)n > 0

if i > 0 and 0n or lg(i-1)n is undefined

The logarithm fn applied i time in succession starting with arg. n

CS 473 Lecture X 3

Iterated Logarithm Function lg(*)n

lg* n = min { i 0 : lg(i)n 1 }

lg* 2 = 1lg* 4 = lg*(22) = 2

lg* 16 = lg*(24) = 3

lg* 65536 = lg*(216) = 4

lg* (265536) = 5

Since the number of atoms in the observable universe 1080 << 265536

We rarely encounter a value of n such that lg*n > 5

CS 473 Lecture X 4

Computation of lg* 65536

465536lg )( Therefore

Iterated Logarithm Function

116)2lg(65536lg 16)1(

142lg16lg)65536lg(lg65536lg 4)2(

122lg4lg)65536lg(lg65536lg 2)2()3(

112lg)65536lg(lg65536lg )3()4(

CS 473 Lecture X 5

The lg*n fn is essentially the inverse of repeated exponentiation

1)1n(g2)2lg())n(g(lg22

22)1( n n-1n

)2n(g2)2lg())1n(glg()))n(glg(lg())n(g(lg22

22)2( n-1 n-2

n-2

)3n(g2)2lg())2n(glg()))n(g(lg(lg))n(g(lg22

22)2()3( n-3

?))n(g(lg* where

2

222)n(g

n

Iterated Logarithm Function

CS 473 Lecture X 6

.

.

.

2

2)i( 2))n(g(lg

n-i

.

.

.

122))n(g(lg2

2)n( n-n=0

112lg))n(g(lg )1n(

Therefore 1n)2(lg*))n(g(lg*2

2 n

Iterated Logarithm Function

CS 473 Lecture X 7

Ackermann’s Function• Defined for integers i, j > 1 by

A(1, j) = 2j for j 1A(i, 1) = A(i – 1, 2) for i 2A(i, j) = A(i – 1, A(i, j - 1)) for i, j 2

j = 1 j = 4j = 3j = 2

i = 3

i = 2

i = 1 21 22 2423

CS 473 Lecture X 8

Ackermann’s Function• Defined for integers i, j > 1 by

A(1, j) = 2j for j 1A(i, 1) = A(i – 1, 2) for i 2A(i, j) = A(i – 1, A(i, j - 1)) for i, j 2

j = 1 j = 4j = 3j = 2

i = 3

i = 2

i = 1 21 22 2423

22

CS 473 Lecture X 9

Ackermann’s Function• Defined for integers i, j > 1 by

A(1, j) = 2j for j 1A(i, 1) = A(i – 1, 2) for i 2A(i, j) = A(i – 1, A(i, j - 1)) for i, j 2

j = 1 j = 4j = 3j = 2

i = 3

i = 2

i = 1 21 22 2423

22 222

CS 473 Lecture X 10

Ackermann’s Function• Defined for integers i, j > 1 by

A(1, j) = 2j for j 1A(i, 1) = A(i – 1, 2) for i 2A(i, j) = A(i – 1, A(i, j - 1)) for i, j 2

j = 1 j = 4j = 3j = 2

i = 3

i = 2

i = 1 21 22 2423

22 222

222

CS 473 Lecture X 11

Ackermann’s Function• Defined for integers i, j > 1 by

A(1, j) = 2j for j 1A(i, 1) = A(i – 1, 2) for i 2A(i, j) = A(i – 1, A(i, j - 1)) for i, j 2

j = 1 j = 4j = 3j = 2

i = 3

i = 2

i = 1 21 22 2423

22 222

222

2

22 16

22223

2

222224

CS 473 Lecture X 12

Ackermann’s FunctionSecond Row

22222

222

2

22

22

22

2

2)2,1())3,2(,1()4,2(

2)2,1())2,3(,1()3,2(

2)2,1())1,2(,1()2,2(

2)2,1()1,2(

AAAA

AAAA

AAAA

AA

..

.2

22),2(

jA

2

3

4

j

1

CS 473 Lecture X 13

Ackermann’s FunctionThird Row

22

22

222

22

22

222

22

2)2,2())3,3(,2()4,3(

2)2,2())2,3(,2()3,3(

22)2,2())1,3(,2()2,3(

2)2,2()1,3(

AAAA

AAAA

AAAA

AA222 16

16

2

22 16

2

22 16 2

22

2

22 16

∙∙∙∙

CS 473 Lecture X 14

Ackermann’s FunctionThird Row

∙∙∙∙

2

22),3(

jA

2

22

2

22

2

22 16

j-1 of thesefor j 2

• The first row, exponential in the column number j, is already rapidly growing• The second row, consists of the widely spaced subset of columns of the first row• The third row consists of even more widely spaced subset of columns

, …, of the second row which is even sparser subset of columns of the first row

,....,2,2,2222 222

222 222 2,2,2,2

2

22

1616

CS 473 Lecture X 15

Explosive Growth of Ackermann’s Function

1

2

3

4

5

Row

ColumnS1 S2 S3 S4

Spacings

S1 S2

CS 473 Lecture X 16

• The first row, exponential in the column number j, is already rapidly growing

• The second row, consists of the widely spaced subset of

columns of the first row

• The third row consists of even more widely spaced subset of columns

, …, of the second row which is even sparser subset of columns of the first row

,....,2,2,2222 222

222 222 2,2,2,2

2

22

16

16

Explosive Growth of Ackermann’s Function

CS 473 Lecture X 17

Inverse of Ackermann’s Functionα(m, n) = min{ i 1 : A( i, ) > lg n } nm /

– Proceed in the -th column of the matrix

starting from the first row – Until you encounter a value > lg n

– Return the row index of that value

nm /

IN GENERALThe spacing between successive columns of row i-1 appearing in row i increases dramatically

with both the column number and the row number i

Explosive Growth of Ackermann’s Function

CS 473 Lecture X 18

Inverse of Ackermann’s Function• This fn is not the inverse of Ackermann’s fn in true math sense• It captures the spirit of the inverse in its growth• The mysterious lg n threshold appears in order to be able to

prove the O(m α(m,n)) bound on the running time

Claim : for all practical purposes

– since

– Ackermann’s fn A(i, j) is strictly increasing with each argument

– for all since

4),( nma

1/ nm nm

)1,()/,( iAnmiA 1i 1/ nm

CS 473 Lecture X 19

In particular,

But we also have A(4,1) = A(3,2) =

Hence, A(4,1) >> 1080 = Estimated no. of atoms in the universe

Thus, for all practical purposes

)1,4()/,4( AnmA 2

22 16

4),( nm

Inverse of Ackermann’s Function

O(mlg*n) bound is only slightly weaker than O(m α(m,n)) bound

52)2(lg*

4)2(lg*2lg*)K64(lg*222

22

2K64

216

,

so 5nlg* for all practical purposes

CS 473 Lecture X 20

An Important Property of Inverse Ackermann’s Function

For a fixed value of n, as m increasesthe function α(m,n) is monotonically decreasing

Proof : is monotonically increasing as m increasesThus, since n and hence lg n is fixed, the smallest row index i needed to bring above lg n is monotonically decreasing

n/m

)( n,m,iA

A(i1,c1) = First value in col. c1 > lg n

1 2 ….. n/mc 11 n/mc 22

i1

i2

12345...

1

2

1

2

m

m

c

c1

A(i,c2) > A(i,c1) for all i

12 ii where

A(i2,c2) = First value in col. c2 > lg n

CS 473 Lecture X 21

An Important Property of Inverse Ackermann’s Function

• This property corresponds to our intuition aboutdisjoint set forests with path compression

• We would expect the average FIND-PATH length to decreasedue to path compression

• If we perform m operations in time O(m α(m,n)) then, the average time per operation is O(α(m,n))

which is monotonically decreasing as m increases