Viikko raportti nro 5

Tällä viikolla sain korjattua tolkuttoman hitaan AI:n. Itse AI-algoritmia en juurikaan muuttanut muuten kuin, että turhia permutaatioita ei käydä läpi, jos permutaatiosta käydään läpi vain tietty alkuosa. Suurin syypää hitauteen oli BigIntegerien käyttö. En muistanut, että Javassa on long-primitiivi, joten korvasin funktion BigIntegerit longeilla nyt. Otin kokeiltavaksi myös muita hajautusalgoritmeja; FNV-1a, MurmurHash3 ja djb2 ja tein niille performanssi- sekä yhteentörmäystestejä. Eroja ei hirveästi ollut, djb2 kuitenkin vaikutti pärjäävän parhaiten testeissä. Eniten yhteentörmäysten määrään kuitenkin tuntuu vaikuttavan hajautustaulukon koko (eli m-arvo). Lisäsin myös JavaDocia hajautusfunktioihin ja AIControlleriin sekä testejä AiControllerille.