Text this: An exploration of simulated annealing and its implementations to solve NP-hard problems