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_adaptive.mzn

9 lines
412 B
MiniZinc

predicate adaptiveUniform(array[int] of var int: x, float: initialDestrRate) =
let { var float: rate; } in
if status() = START then rate = initialDestrRate
elseif status() = UNSAT then rate = min(lastval(rate)-0.02,0.6)
else rate = max(lastval(rate)+0.02,0.95)
endif /\
forall(i in index_set(x))
(if uniform(0.0,1.0) > rate then x[i] = sol(x[i]) else true endif);