This class implements the classic and most commonly encountered
cooling schedule for simulated annealing, the annealing schedule known
as exponential cooling (sometimes referred to as geometric cooling).
This class implements the Modified Lam annealing schedule, which dynamically
adjusts simulated annealing's temperature parameter up and down to either decrease
or increase the neighbor acceptance rate as necessary to attempt to match
a theoretically determined ideal.