29.07.2013 Views

Konkrete funktioner

Konkrete funktioner

Konkrete funktioner

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Anvendelse i datalogi<br />

I datalogi anvendes logaritmer, potens<strong>funktioner</strong>, eksponential<strong>funktioner</strong> og<br />

fakultet især til analyse af algoritmers ressourceforbrug som funktion af inputtets<br />

størrelse. Ressourcer kan være tid, plads i arbejdslageret, b˚andbredde<br />

p˚a nettet eller antallet af gange algoritmen bruger harddisken.<br />

Generelt betragtes kun voksende <strong>funktioner</strong> – programmer arbejder sjældent<br />

hurtigere jo mere input de f˚ar! Da inputtets størrelse m˚ales i antallet af<br />

tegn der skal bruges til at skrive inputtet ned, er et programs ressourceforbrug<br />

formelt en voksende funktion fra N til R + . Her gælder<br />

Enhver logaritme vokser langsommere end enhver potensfunktion<br />

som vokser langsommere end enhver eksponentialfunktion. Fakultet<br />

vokser hurtigere end alle de øvrige <strong>funktioner</strong>.<br />

Formelt gælder for ethvert positivt r ∈R + og ethvert reelt tal a>1:<br />

∃n0 ∈N.∀n ∈N.n>n0 =⇒ log a n ≤ n r<br />

∃n0 ∈N.∀n ∈N.n>n0 =⇒ n r ≤ a n<br />

(19)<br />

(20)<br />

∃n0 ∈N.∀n ∈N.n>n0 =⇒ a n ≤ n! . (21)<br />

Dvs. hvis blot inputstørrelsen n er stor nok, dvs. større end n0, s˚aerlogan mindre end nr . Tilsvarende er nr mindre end an som er mindre end n! for<br />

stort nok n.<br />

Bemærk at dette gælder uanset a og r. F.eks. er en algoritme, hvis<br />

udførelsestid er givet ved n10.000 hurtigere “p˚a distancen” end en tilsvarende<br />

algoritme, hvis udførelsestid er givet ved 1,0001n . Her skal inputstørrelsen n<br />

dog være ret stor for at den første er at foretrække frem for den sidste.<br />

Eksempel 2 Vi vil undersøge for hvor stort input en algoritme med udførelsestid<br />

n3 er hurtigere end en algoritme, hvis udførelsestid er 1,5n :<br />

n n31,5n n n3 1,5n 1 1 1,513 2.197 194,6<br />

2 8 2,314 2.744 291,9<br />

3 27 3,415 3.375 437,9<br />

4 64 5,116 4.096 656,8<br />

5 125 7,6 17 4.913 985,3<br />

6 216 11,4 18 5.832 1.477,9<br />

7 343 17,1 19 6.859 2.216,8<br />

8 512 25,6 20 8.000 3.325,3<br />

9 729 38,4 21 9.261 4.987,9<br />

10 1.000 57,7 22 10.648 7.481,8<br />

11 1.331 86,5 23 12.167 11.222,7<br />

12 1.728 129,7 24 13.824 16.384,1<br />

8

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!