Added abstract implementation of 'SimulatedAnnealing'.

Signed-off-by: Phillipp Ohl <phillippohl@gmail.com>