26 lines
511 B
MiniZinc
26 lines
511 B
MiniZinc
include "globals.mzn";
|
|
|
|
1..infinity: weeks;
|
|
1..infinity: ngroups;
|
|
1..infinity: size;
|
|
|
|
enum golfers = anon_enum(ngroups * size);
|
|
|
|
set of int: groups = 1..g;
|
|
set of int: Rounds = 1..w;
|
|
array [rounds, groups] of var set of golfers: sched;
|
|
|
|
constraint forall (r in rounds, g in groups) (
|
|
card(sched[r, g]) = s
|
|
);
|
|
|
|
constraint forall(r in rounds) (
|
|
all_disjoint(g in groups)(sched[r, g])
|
|
);
|
|
|
|
constraint forall (a, b in golfers where a < b) (
|
|
sum (r in rounds, g in groups) (
|
|
{a, b} subset sched[r, g]
|
|
) <= 1
|
|
);
|