521144A, Algoritmit ja Tietorakenteet, syksy 2013

Slides:



Advertisements
Samankaltaiset esitykset
MATHM Hypermediajärjestelmät EPiServer.NET-asiakasprojekteissa TTY Timo Lehtonen Jarno Peltoniemi
Advertisements

Nuorisotakuu 2013 Valtiosihteeri Pilvi Torsti Opetus- ja kulttuuriministeriö
Suunnitelma ohjelmiston testaukseen
Aikakauslehtien lukukerrat KMT Kuluttaja syksy 2012 kevät 2013.
Kiravo – kirjasto avoimena oppimisympäristönä Biblär – biblioteket som ett öppet lärcentra RSS -syötteet.
2.8.3 Abstraktit tietotyypit
Tavanomaisimpien tietorakenteiden ja algoritmien testauksesta
•Saadaan luotua ”lennosta” muuttujia  tiedon tallennuspaikkoja •Taulukko[indeksinumero] •Indeksinumero alkaa 0:sta •Esimerkissä on taulukon koko 4 •ja.
LÄMMÖNSIIRRON PERUSTEET Syksy 2013
ARJEN HISTORIA HI08.
Tietorakenteiden dokumentointi
S Laskennallinen tiede Tentit ja uusinta Arvostelu Kertausta tenttiin Palaute.
Luento 6-TJT-A26-Tietotyö ja sen välineet-SYKSY TJT-A26 Tietotyö ja sen välineet
Luento 6-TJT-A26-Tietotyö ja sen välineet-SYKSY TJT-A26 Tietotyö ja sen välineet
OLIO-OHJELMOINTI PERUSTEET PERUSTIETOTYYPIT
Tietorakenteet ja Algoritmit 3 op. Opintojakson tavoitteet Yleistavoitteena on, että opiskelija hallitsee yleisimpien tietorakenteiden toteuttamisen ja.
Poikkeustenkäsittely  Mitä poikkeustenkäsittely tarkoittaa?  Poikkeuksen käsitteleminen  Poikkeusluokkien hierarkia  Poikkeuksen heittäminen 1.
UMF I Luento 2. Aika Luennot, Klo 14–16 to 4.9 – ke 10.9 ke 24.9 – ke 1.10 ke – pe Demot, Klo 10–12/12–14/14–16 Pe 12.9, Ti 16.9, Pe 19.9.
UMF I Luento 1. Aika Luennot, Klo 14–16 to 4.9 – ke 10.9 ke 24.9 – ke 1.10 ke – pe Demot, Klo 10–12/12–14/14–16 Pe 12.9, Ti 16.9, Pe 19.9.
Sisäammunnan pisteytykset SJAL tuomarikoulutus 2013.
Analyysi Analyysi = kreik. irrottaa: hajottaa osiinsa, eritellä, jäsentää. voi käsitteellisesti tarkoittaa kahta erilaista asiaa: muotoanalyysi: miten.
Ohjelmien oikeaksitodistamisen historia Tuomo Malinen Tietojenkäsittelytieteen historia -seminaari
ETELÄ-KARJALAN SOSIAALI- JA TERVEYSPIIRI Tammi-helmikuun tulos 2013.
Aikakauslehtien lukukerrat KMT Kuluttaja syksy 2013 / kevät 2014.
Harvinaiset-seminaari Kohtaamisen tori Merja Monto Invalidiliiton Harvinaiset-yksikkö
KUSTANNUSTEHOKKAAN VESIENHOIDON TOIMENPIDEYHDISTELMÄN MUODOSTAMINEN
1. viikkokooste ja olio-ohjelmointi
SOSIAALITYÖN LUOKITUKSET KEHITTÄMISTYÖN KOHTEENA
ARVOPAPERISIJOITTAMINEN KAPPALE 7: AKTIIVINEN SIJOITUSSALKUN HALLINTA
Maassamuutto ikäryhmittäin 2013 (ei siirtolaisuutta mukana), aluejako ETELÄ-SAVON MAAKUNTALIITTO Lähde: Tilastokeskus Päivitetty: /
Tietorakenteiden harjoitustyö (2 ov) Ryhmä 5, kesä Pietu Pohjalainen.
PELIEN SUUNNITTELUA ALGORITMIT JA NIIDEN SUUNNITTELU Jussi RaskuSeinäjoen Kansalaisopisto Aki Sirviö2014.
Ympäristöaiheisten lehtijuttujen vertailua - Turun Sanomat tammikuussa 1955 ja 2005 Jussi Pukkila Tutkielmasuunnitelma.
Visual Basic -ohjelmointi
Visual Basic -ohjelmointi
Virtuaalinen analyysin peruskurssi
S ysteemianalyysin Laboratorio Teknillinen korkeakoulu Esitelmä 25 - Mark Mehtonen Optimointiopin seminaari - Syksy 2005 / 1 The Chain Rule for Influence.
Algoritmit ja koneoppiminen (ALKO)
1 Sensor Tasking and Control Jari Hassinen Riikka Asikainen
21. Rekursio.
Prioriteettijonot ja kekolajittelu (heapsort)
Kuplalajittelu (bubble sort)
Funktiot Funktio = mahdollisten syöte- ja tulostearvojen välinen suhde siten, että kuhunkin syötearvoon on liitetty tulostearvo –Funktion laskeminen =
Jakolajittelu (Radix sort) Vertailu tehdään avaimen osien perusteella Avaimia käsitellään R-kantaisina arvoina esim. postin lajittelukone prosessoi lähetykset.
Lajittelun sovelluksia Yksilöllisyyden testaaminen Kopioiden poistaminen Mediaani/n:ksi suurimman valinta frekvenssien laskenta/yleisin alkio, l.moodi.
Hajoita ja hallitse (divide and conquer) Pikalajittele n-alkioinen taulukko 1. Divide: Jaetaan taulukko kahdeksi alitaulukoksi tukialkion (pivot) x suhteen:
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.
Kompleksisuus Yleistä.
TEKNIIKAN JA TALOUDEN YLIOPISTO Symbian ohjelmointi Ti Symbian ohjelmointi 4. Periodi 2006 Juha Turunen
Ohjelmassa tänään Algoritminen ongelmanratkaisu Algoritmin määritelmä
2/2001 Tietojärjestelmät ja Systeemisuunnittelu Luennoitsija: Tapio Lammi
8. Rekursio.
Tieteellisen tekstin piirteitä
Klubin strategia työkalu KST
Tietotekniikkainsinööri 240 OP Suuntaavat opinnot III
Monimuuttinimuuttuja-analyyseista
Opinnäytetyön otsikko
1 ALUETUTKIMUKSEN TEKEMINEN
Har 312 Metodiseminaari, kevät 2002
Otsikon asettelu Alaotsikko.
do-while -toistolause
19. Tietovirrat.
K 4.3. Kandidaatin tutkielma ja tutkielmaopinnot (10 op)
Liiketoimintasuunnitelma: Kold Reso Kult Oy
8. Rekursio.
Toimintoanalyysin syventäminen – lyhyt kuvaus hankkeesta
LUKU 1 TIETOLIIKENNEJÄRJESTELMIEN ANALYYSI
1 KANSANTALOUSTIETEEN PERUSKÄSITTEET
Otsikkodian asettelu Alaotsikko.
Otsikkodian asettelu Alaotsikko.
Esityksen transkriptio:

521144A, Algoritmit ja Tietorakenteet, syksy 2013 Kertausluento 27.11.2013

Sisältö (1/2) 1. Johdanto 2. Algoritmien analyysi 1.1 Algoritmeista ja tietorakenteista 1.2 Johdanto algoritmien analyysiin 1.3 Funktioiden kasvusta 2. Algoritmien analyysi 2.1. Algoritmien oikeellisuus 2.2. Algoritmien suorituskyvyn analyysi 2.3. Iteratiivisten algoritmien analyysi 2.4. Rekursiivisten algoritmien analyysi 3. Lajittelualgoritmeista 3.1 Pikalajittelu (Quicksort) Luento: Prioriteettijonot 3.2 Kekolajittelu (Heapsort)

Sisältö (2/2) 4. Tietorakenteita 5. Verkkoalgoritmeja 4.1 Abstrakti määritelmä 4.2 Alkeistietorakenteet 4.3 Hashtaulukot 4.6Tietorakenteiden täydentäminen 5. Verkkoalgoritmeja 5.1 Leveyshaku 5.2 Syvyyshaku 5.3 Kruskalin algoritmi 5.4 Dijkstra algoritmi

MIKSI ALGORITMEJA ANALYSOIDAAN? Varmistamaan algoritmin oikea toiminta, ts. algoritmin päättyminen ja asianmukainen tulos Oikeellisuus Algoritmin suorituskyvyn tarkastelu suorituskyky tarkoittaa sen kuluttamien resurssien määrää ja algoritmin kuluttamaa aikaa suhteessa syötteeseen, jälkimmäinen aikakompleksisuus

II.1.1.2 Esimerkki: Taulukon arvojen minimi Syöte: Taulukko A[1,..,n], n >= 1 Tulostus: Pienin luvuista A[1], … , A[n] MINIMI(A) 1. i = 2 2. x = A[1] 3. while i <= n 4. if A[i] < x then 5. x = A[i] 6. i = i+1 7. return x i on konvergentti Silmukkainvariantti: Kun i=k, rivillä 3 muuttujan x arvo on pienin taulukon arvoista A[1], …, A[k-1] Ari Vesanen, Tietojenkäsitttelytieteiden laitos, Oulun yliopisto

1<𝑙𝑔𝑛<𝑛<𝑛𝑙𝑔𝑛< 𝑛 2 < 𝑛 3 < 𝑎 𝑛 , 𝑎>1 Funktioiden kasvu https://www.raippa.fi/AlgoritmitJaTietorakenteet/3.%20Luento#Funktioiden_kasvun_vertailua.Funktioiden_kasvun_vertailua http://en.wikipedia.org/wiki/Big_O_notation#Orders_of_common_functions Ongelman kompleksisuustyyppiä määriteltäessä voidaan käyttää esimerkiksi termejä "polynomisessa ajassa ratkeava" ja "eksponentiaalinen ongelma". Esim. Jos algoritmin kompleksisuusluokka on Θ(n^k) (tai O(n^k)) sitä sanotaan polynomiaikaiseksi Polynomiaikaisia algoritmeja pidetään laskennallisesti sovellettavina 1<𝑙𝑔𝑛<𝑛<𝑛𝑙𝑔𝑛< 𝑛 2 < 𝑛 3 < 𝑎 𝑛 , 𝑎>1 Polynomit kasvavat hitaammin kuin eksponentit, logaritmit kasvavat hitaammin kuin polynomit. Iteratiiviset algoritmit: Laske kokonaissuoritusaika kertomalla aika jokaisen operaation taajuudella, lopuksi summaa tulot Rekursiiviset algoritmit: Rekursiopuun avulla tarkastelu Induktiivinen päättely Rekursioyhtälön muodostaminen ja ”Master Theorem”

Lajittelualgoritmeja Lisäyslajittelu, Insertion sort, Ο(n²) http://en.wikipedia.org/wiki/Insertion_sort Lomituslajittelu, Merge sort, O(n log n) http://en.wikipedia.org/wiki/Merge_sort Pikalajittelu, Quicksort, O(n log n) http://en.wikipedia.org/wiki/Quicksort Kekolajittelu, Heapsort, O(n log n) http://en.wikipedia.org/wiki/Heapsort Vertailuun perustuva lajittelualgoritmi ei voi olla nopeampi kuin luokkaa O(n log n). On olemassa myös lineaariajassa toimivia lajittelualgoritmeja.

Tietorakenteet Tietorakenne on äärellinen dynaaminen joukko, joka toteuttaa rajapintanaan sarjan operaatioita joiden kautta algoritmi voi muokata joukkoa. Alkiot: avain, järjestysdata, satelliittidata Operaatiot: etsi, lisää, poista, minimi, maksimi, seuraaja, edeltäjä Pino (LIFO), jono (FIFO), linkitetty lista Hash-taulukko, binäärinen etsintäpuu Puna-mustat puut Tietorakenteen täydentäminen Järjestystunnuspuu, intervallipuut

Verkkoalgoritmit Rakenne ja esitystavat Leveyshaku Syvyyshaku Vieruslista, matriisiesitys Leveyshaku Syvyyshaku Kruskalin algoritmi (pienin virittävä puu) Dijkstran algoritmi (kevein polku lähtösolmusta s)

Laskuharjoitukset Viikot 45, 46, 49 Osallistumisesta 5p/kerta, yht. Max 15p TOL järjestää O-notaatio, algoritmien oikeellisuus ja aikakompleksisuus Master Theorem-soveltaminen, lajittelualgoritmit Verkkojen leveys- ja syvyyshakualgoritmit

Ohjelmointiharjoitukset Viikot 48, 50 Ohjelmointiharjoituksen työselostus on palautettava kurssisuoritusta varten Sisältää esitehtävän sekä labraharjoituksen 1. harj. palautuksen takaraja 8.12.2013 2. harj. palautuksen takaraja 3.1.2014 20p + 20p, yht. max 40 p https://noppa.oulu.fi/noppa/kurssi/521144a/python_archive Huomatkaa, että Noppa lisää etuliitteen koodinpätkiin, poistakaa se tallennusvaiheessa!

Harjoitustyö Työselostus ohjelmointikoodeineen palautettava viimeistään 17.1.2014 Opiskelijan tulee varata aika lopputyön arviointisessioon palautuksen jälkeen. Arviointi: max 30 p

Kurssin arvostelu Tavoite: Arvosanat opiskelijoille 31.1.2014 Laskarit, labraharkat, harj.työ Max: 15p+40p+30p=85p Läpipääsyyn vaaditaan 40p