Simulated annealing is guaranteed to find a global optimal solution, a result in [AKvL97]. Unfortunately, to get that guarantee requires an exponentially long cooling schedule, and is therefore impractical. We'd settle for a local minimum, where no better moves exist in the neighborhood, but reasonable length annealing schedules do not even promise that! So in the DAO, we follow our five schemes with a deterministic hillclimber that guarantees a local minimum at some additional expense.
This iterated next-descent hillclimbing algorithm [Ack87b]
considers the students one-by-one, either in arbitrary order from a
random start (mr) or in seniority order (m), depending on the
configuration, and tries placing each student in every other available
bed looking for lower scores. Any bed switch that improves the overall
grade is accepted, and the student index is saved. From there we
continue until we reach the last student and last bed choice. If we
had any improvements, we start over until we have looped to the
student index last changed. We end up with the best grade such that
there is no better state one move away -- a local minimum. The
landscape of the results of a complete DAO run (page
) shows no single move improves the overall
grade.
This minimization step can be configured to take place once on the best solution ever seen, or after each round. The ramifications are discussed in Section 4.3.7.