Adding State and updating RNG with getRandomState
Adding Heuristic and Cost interfaces. Implementing Annealing and squared
Adding a main for testing