Kompleksisuus Yleistä.

Slides:



Advertisements
Samankaltaiset esitykset
Komponenttien rakenteellinen tärkeys
Advertisements

Polynomifunktiot MA 02 Läsnäolovelvollisuus Poissaolojen selvitys
@ Leena Lahtinen Helia Ohjelman perusrakenteet 1. PERÄKKÄISRAKENNE 2. VALINTARAKENNE 3. TOISTORAKENNE.
@ Leena Lahtinen Helia TIETO JA TIETOKONEOHJELMA  TIETOKONEOHJELMA KÄSITTELEE TIETOJA  TIETOJA VOIDAAN KÄSITELLÄ OHJELMASSA VAIN SALLITUILLA.
JavaScript (c) Irja & Reino Aarinen, 2007
SIJOITUSSTRATEGIAT Petteri Uronen Karlo Haapiainen Ville Jahn.
Ohjelman perusrakenteet
Synkroniset tilakoneet
1756 Rinnakkaisalgoritmien suunnittelu Rinnakkaisuuden hyödyntämisen perustekniikat J. Porras.
Tietorakenteet ja algoritmit
521144A, Algoritmit ja Tietorakenteet, syksy 2013
22. Taulukot.
Derivaatta MA 07 Derivaatta tarkoittaa geometrisesti käyrälle piirretyn tangentin kulmakerrointa.
Valitse seuraaviin vaihtoehtotehtäviin oikea vastaus…
2.2 Schäfer-Gordon malli Gordon (Journal of Political Economy 1954), Schäfer (1957), Scott (JPE 1955) Vaihtoehdot joita vertailemme: Biologinen optimimointi.
Taylor polynomi usean muuttujan funktiolle
Rajoitetut jonot 1. Alhaalta rajoitettu jono
Ehto- ja toistolauseet
TMA.003 / L3 ( )1 3. Funktioista 3.1. Kuvaus ja funktio Olkoon A ja B ei-tyhjiä joukkoja. Tulojoukon A  B = {(x,y) | x  A, y  B} osajoukko on.
RSA – Julkisen avaimen salakirjoitusmenetelmä Perusteet, algoritmit, hyökkäykset Matti K. Sinisalo, FL.
Kompleksisuuden kertaluokat
Ohjelmoinnin tekniikkaa Sisällys for -lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely.
Syksy 2001Johdatus bioinformatiikkaan / T. Pasanen 1 7. Monirinnastus Geeni perhe: ryhmä läheisiä toisilleen sukua olevia geenejä, jotka koodaavat samankaltaisia.
2. Vuokaaviot.
Pseudokoodi Tietokoneohjelmien perusidea:
Tiedonhakumenetelmät Helena Ahonen-Myka Kevät 2004, osa 9 Merkkijonohahmon etsintä selaamalla.
LINEAARINEN MUUTOS JA KULMAKERROIN
ict1td002 - Copyright Raine Kauppinen 1 Alkuarvot ja tyyppimuunnokset (1/5)  Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int.
Funktion ääriarvokohdat ja ääriarvot
1. Joukko-oppi Merkinnät
11. Javan toistorakenteet
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
3.2 Kompleksisuus Vain pieni osa kaikista tehtävistä on laskettavissa tai edes osittainkaan laskettavissa. Laskettavien osalta saattaa olla tarpeellista.
22. Taulukot.
PARAABELI (2. ASTEEN FUNKTION KUVAAJIA)
@ Leena Lahtinen Toistorakenne Ohjelmassa toistetaan tiettyjä toimenpiteitä monta kertaa peräkkäin Toisto noudattaa sille kuuluvia tarkkoja standardoituja.
1 Ohjelmointikielten varhaishistoria Esa-Matti Miettinen
S ysteemianalyysin Laboratorio Teknillinen korkeakoulu Esitelmä # - Esitelmöijän nimi Optimointiopin seminaari - Syksy 2009 Projektien suunnittelu ja skedulointi.
Todennäköisyyslaskentaa
Visual Basic -ohjelmointi
11. Relaatiotietokannan suunnittelualgoritmit ja lisäriippuvuudet Tällä kurssilla käsitellään kirjan luvusta 11 ainoastaan algoritmi 11.1 häviöttömän liitoksen.
Kontrollirakenteet laajemmin
S ysteemianalyysin Laboratorio Teknillinen korkeakoulu Esitelmä 2 - Jirka Poropudas Optimointiopin seminaari - Kevät 2005 / 1 Bayes-verkoista s
Visual Basic -ohjelmointi
Yleinen systeemiteoria General Systems Theory Johdatus tietojärjestelmätieteeseen KL2001 Teema numero 1.
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
5. Fourier’n sarjat T
Ohjelmointi 1. toinen luento1 Taulukot n Kiinteät taulukot: alkioiden määrä tiedetään Dim intCount(12) As Integer 0 indeksit saavat arvoja 0-12 (Option.
Johdatus ohjelmointiin – lohkokaaviot ja algoritmit
S ysteemianalyysin Laboratorio Teknillinen korkeakoulu Esitelmä # - Esitelmöijän nimi Optimointiopin seminaari - Syksy 2000 / 1 Potentiaalien kertaus ja.
Funktio ja funktion kuvaaja
Prioriteettijonot ja kekolajittelu (heapsort)
Kuplalajittelu (bubble sort)
Puun määritelmä Puu on yhden tai useamman kytketyn solmun muodostama hierarkinen joukko Lehtisolmuista juurisolmuun on yksikäsitteinen polku Käytetään.
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.
Ohjelmassa tänään Ohjelmointimallit Pseudokieli Modulaarisuus.
Hajakoodaus Talletetaan alkiot avain-indeksoituun taulukkoon Hajakoodausfunktio Menetelmä avain-indeksin laskemiseen avaimesta Törmäyksen selvitysstrategia.
Aiheet ● Ohjelmointikielten kääntäminen ● Kieliopin määrittely ● Kääntäjän toiminta.
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
Jatkeet TIES341 Funktio-ohjelmointi 2 Kevät 2006.
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
2. Lukujonot 2.1. Lukujonon käsite -äärellinen tai ääretön Luettelona:
16. Ohjelmoinnin tekniikkaa
KUINKA VALITSEN OBJEKTIN MUODON ?
Toispuoleinen raja-arvot
Kontrollirakenteet laajemmin
KYNNYSILMIÖ kulmamodulaatioilla
Ohjelman perusrakenteet
16. Ohjelmoinnin tekniikkaa
Esityksen transkriptio:

Kompleksisuus Yleistä

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

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

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

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

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)

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

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

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 1048576 1.8E308

Kompleksisuus Laskusääntöjä

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

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

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