Palautus 3

Mitä opin tällä viikolla?
- Useiden eri lähteiden asioiden soveltaminen algoritmin toteutukseen tuntui sekoittavan, ja pitäisi pysyä yhdessä yksinkertaisessa tavassa.
- Kekorakenteen kertailua juuri palautuspäivänä (en ehtinyt koodiksi konkretisoida)
- ArrayListin perustoteutus vaikutti simppeliltä.

Missä onnistuin, mitä sain aikaiseksi?
Miten ohjelma on edistynyt?
- Sain edistettyä ohjelmaa, haku toiminee periaatteessa, joskin pienellä aineistolla testattuna, osaa palauttaa kuljetun reitin yms. Testejä tehty lisää, heuristiikat rajapinnan taakse, omat perustietorakenteet aloitettu, ArrayList pidemmällä, Keko vasta luokkarungon tasolla ilman toiminnallisuutta. Päivitin määrittelydokumenttia hieman kertomaan toteuttavista algoritmeista hieman.

- Itse haun toteuttava Astar-haku on koodillisesti tosi rumaa, kun jouduin debuggaamaan sitä edestakaisin, enkä ehtinyt mitenkään järkevästi pilkkoa. Se tulee kuitenkin siistiytymään.

- Javadocia ja kommentointia olen yrittänyt edistää.. voi olla että jotain joistain keskeneräisimmistä asioista puuttuu kunnollinen kommentointi tosin.

- Ajallisesti jäin hieman jälkeen tavoittelemistani tuntimääristä, muttei radikaalisti.

Mikä jäi epäselväksi?
- Epäselvää on ehkä se, että millä tavalla saisin tuotettua laajempia hakukarttoja hakualgoritmin testaukseen. Esim. niitä paintilla piirrettyjä kuvia, taulukoksi konvertoituna. Se lienee paras keino tuottaa riittävän suuria hakualueita? En ole ehtinyt perehtyä ollenkaan millä välineillä tuo onnistuisi parhaiten. Saiskohan jotenkin näppärästi vaikka kartasta vielä värien/tummuuden perusteella luettua kustannuksiakin solmuille...

- Vastaavasti edelliseen liittyy, että saisiko kuvaan jotenkin helposti tulostettua värjättynä haun löytämän reitin kohtuuvaivalla?

- Epäselvää myös, että kuinka paljon lisää sisältöä ohjelmaan tarvitsisi. Ajatus siis on toteuttaa joitain muita heuristiikkoja, ja tehdä vertailua näistä. Nykyisillä pienillä testikartoilla suorituskykymittaus erotteluun ei tuottaisi vain tuloksiakaan vielä.

- Pystyyköhän Keon toteutuksessa käyttämään juuri toteuttua Arraylistia... alustavasti ajattelin tämän järkeväksi.

Mitä teen seuraavaksi?

jonkinlaisessa alustavassa prioriteettijärjestyksessä:
- ArrayListin ja Keon jatkamista, ja Astar käyttämään niitä kunhan tarvittava toiminnallisuus valmiina
- AStar-algoritmin hiomista ja siistimistä koodillisesti.
- Hakualueiden muodostaminen isommasta datasta, kuvasta tms.
- Ainakin toisen heuristiikan käyttöönotto Manhattanin lisäksi
- Suorituskykytestauksen suunnittelua ja rungon muodostamista.
- Yksinkertainen tekstikäli joka voisi tarjota eri karttavaihtoehtoja, valinnan heuristiikalle, ja tämän jälkeen suorittaa haun ja raportoida suorituskyvystä jotenkin.
- Lisättyä tuki eri solmujen liikkumiskustannuksille, tyyliin kertoimina 1-5, tämän ylittävät arvot läpikulkematonta seinää.