13 lines
345 B
MiniZinc
13 lines
345 B
MiniZinc
predicate round_robin(array[int] of var bool: nbhs) =
|
|
let {
|
|
int: N = length(nbhs);
|
|
var -1..N-1: select; % Neighbourhood selection
|
|
} in if status()=START then
|
|
select = -1
|
|
else
|
|
select = (last_val(select) + 1) mod N
|
|
endif
|
|
/\ forall(i in 1..N) (
|
|
(select = i-1) -> nbhs[i] % <-- Post Neighbourhood@\Vlabel{line:6:roundrobin:post}@
|
|
);
|