Aineopintojen harjoitustyö: Tietorakenteet ja algoritmit (periodi III) : Aiheita
Aiheen voi keksiä itse, tai valita alla olevasta listasta itselleen mielenkiintoinen aihe. Listalla olevat aiheet ovat vain ehdotuksia, niitä voi muokata ja kehittää - lopullinen aihe sovitaan yhdessä ohjaajan kanssa.
Verkot ja polunesintä
Miten löydetään tehokkaasti nopein/lyhyein reitti labyrintistä ulos. Labyrintti voi olla tehty esimerksi ascii-merkeistä tai piirretty kuva.
Miten löydetään tehokkaasti nopein/lyhyin reitti verkossa kahdeen pisteen välillä. Verkon pisteet voivat olla esimerkiksi katuosoitteita, joukkoliikenteen pysäkkejä tai koordinaatteja.
Rahtifirma NopsaToimitus haluaa saada paketit perille mahdollisimman nopeasti ja vähillä polttoainekustannuksilla. Suunnittele miten voidaan laskea reitti toimitusautolle, niin että kaikki paketit tulee toimitettua perille mahdollisimman lyhyellä ajomatkalla. Kussakin toimistuspaikassa käydään vain kerran.
Tiedon tiivistys
Tiedosto tulisi saada mahtumaan pienempään tilaan, miten tämä onnistuu? Toivottava lopullinen koko on 40-60% alkuperäisestä koosta. Tiedosto pitää myös pysytä avaamaan alkuperäiseen muotoon myöhemmin.
Tekoälyt
Shakki, go (laajennettu risti-nolla) ja ovat hauskoja ja haastavia pelejä. Niitä olisi kiva pelata tietokonetta vastaan, tehtävänäsi on kehittää valitsemallesi pelille tekoäly. Tekoälyn pitää pystyä pelamaan niin ihmistä kuin itseään vastaan.
Kehitä Muurahaisten taistoon tekoäly. Googlen AI Challenge 2011: http://aichallenge.org/problem_description.php
Kivi-sakset-paperi on kaikille tuttu peli. Onnistutko toteuttamaan tekoälyn, joka päihittää ohjaajan? Kun tekoälysi on hyvä voit jatkaa kehitystä ottamalla mukaan vielä kaksi vaihtoehtoa: Lisko ja Spock. http://upload.wikimedia.org/wikipedia/commons/a/ad/Pierre_ciseaux_feuille_l%C3%A9zard_spock_aligned.svg sekä http://www.youtube.com/watch?v=x5Q6-wMx-K8
Tietorakennevertailut
Tietorakenteita on monenlaisia, mikä olisi paras kuhunkin ongelmaan? Vertaile neljää eri tietorakennetta (esimerkiksi puita tai kekoja), joita ei ole käsitelty Tietorakenteet ja Algoritmit kurssilla. Tutki missä tilanteessa kukin on paras, eli missä tilanteessa käyttäisit kutakin rakennetta.
Muuta kivaa
Rahtifirma NopsaToimitus haluaa optimoida konttikuljetuksissa käytettävän tilan. Suunnittele miten voidaan täyttää yksi tai useampi kontti mahdollisimman tehokkaasti, jos tiedetään pakettien määrä ja koot. Ideaa voi hakea kuutiopalapelin ratkaisijasta.
Suunnittele säännöllisten lauseiden tulkki. Miksi? Loistava vastaus: http://blog.stevenlevithan.com/archives/10-reasons-to-learn-and-use-regular-expressions
Matriisien laskenta käsin on rankkaa puuhaa. Suunnittele matriisilaskin joka osaa perusoperaatioiden lisäksi lasken matriisin determinantin.