This repository has been archived on 2025-03-06. You can view files and clone it, but cannot push or open issues or pull requests.
dekker-phd-thesis/assets/mzn/6_simulated_annealing.mzn

8 lines
282 B
MiniZinc

predicate simulated_annealing(float: initTemp, float: coolingRate) =
let { var float: temp; } in
if status()=START then temp = initTemp
else
temp = lastval(temp)*(1-coolingRate) /\ % cool down
_objective < sol(_objective) - ceil(log(uniform(0.0,1.0)) * temp)
endif;