Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Kompleksisuus Yleistä.

Samankaltaiset esitykset


Esitys aiheesta: "Kompleksisuus Yleistä."— Esityksen transkriptio:

1 Kompleksisuus Yleistä

2 Kompleksisuus Algoritmien analyysissä tutkitaan algoritmien käyttämän (tietokone)ajoajan ja muistin määrän riippuvuutta syöttöaineiston koosta (N). Syöttöaineisto tarkoittaa esimerkiksi taulukon alkioiden joukkoa, kun tutkitaan taulukoita, ja Fibonacciluvun järjestysnumeroa Fibonaccilukujen laskennassa

3 Algoritmin kompleksisuus
Algoritmin suoritukseen vaadittavien resurssien määrän riippuvuus syötteen koosta huonoimmassa tapauksessa Vähennettäessä jonkin resurssin tarvetta saattaa jonkin toisen resurssin tarve kasvaa  sovelluskohtainen tasapaino

4 Aikakompleksisuus Ilmoitetaan syötteen koon n funktiona T(n)
Yksikkönä keskeisten alkeisoperaatioiden määrä Usein riittää pelkän lukumäärän suuruusluokan arviointi Asymptoottinen kompleksisuustarkastelu miten algoritmi käyttäytyy, kun syötteen koko n kasvaa

5 Asymptoottinen aikakompleksisuus
Tarkastellaan yleensä vain niitä lausekkeiden osia, jotka dominoivat lauseketta suurilla n:n arvoilla Usein annetaan kasvua kuvaava funktio tai ylärajafunktio kasvulle

6 T(n)=Θ(f(n)) tai T(n) ~ f(n)
Suuruusluokka Jos T(n) on suuruusluokkaa f(n), merkitään: T(n)=Θ(f(n)) tai T(n) ~ f(n)

7 Yläraja Jos T(n):n yläraja on f(n), merkitään: T(n) = O(f(n))

8 Kompleksisuuden kertaluokat
Kertoma: T(n) ~ n! Eksponentiaalinen: T(n) ~ cn Polynomiaalinen: T(n) ~ nc Lineaarinen: T(n) ~ n Logaritminen: T(n) ~ logcn Vakioaikainen: T(n) ~ 1

9 Kasvunopeuksia log n n n log n n2 2n n! 1 2 4 8 16 24 64 256 65536
384 4096 1.84E19 1.27E89 2048 1.15E77 ? 10 1024 10240 1.8E308

10

11

12

13

14

15

16 Kompleksisuus Laskusääntöjä

17 Perussäännöt Jos T1(N)=O(f(N)) ja T2N=O(g(N)), niin
T1(N) + T2(N) = max( O(f(N)), O(g(N))) T1(N) * T2(N) = O(f(N) * g(N)) Jos T(N) on asteen k polynomi, silloin T(N)=Θ(Nk) logkN = O(N) kaikilla k:n arvoilla

18 Yleisiä sääntöjä Silmukat: silmukan suoritusaika on enintään toistokertojen lukumäärä kerrottuna sen sisältämien lauseiden suoritusajalla Sisäkkäiset silmukat: silmukoitten sisällä olevan lauseen suoritusaika on lauseen suoritusaika kerrottuna silmukoitten toistokertojen tulolla

19 Yleisiä sääntöjä if-lause: suoritusaika on enintään ehdon suoritusajan ja enemmän aikaa vievän haaran suoritusaikojen summa Rekursio: todellinen suorituskertojen määrä selvitettävä jotenkin (palautuskaava) Algoritmi on logaritminen, jos sen koon pienentäminen murto-osaan vaatii vakioajan Algoritmi on lineaarinen, jos sen koon pienentäminen vakiomäärällä vaatii vakioajan


Lataa ppt "Kompleksisuus Yleistä."

Samankaltaiset esitykset


Iklan oleh Google