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

16 lines
396 B
MiniZinc

predicate adaptive_uniform(array[int] of var int: x, float: init_rate) =
let {
var float: rate;
} in if status() = START then
rate = init_rate
elseif status() = UNSAT then
rate = min(last_val(rate) - 0.02, 0.6)
else
rate = max(last_val(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])
endif
);