問題は、固定サイズのグループでゴルフ(または何でも)をプレイするためのスケジュールを見つけることです。 すべてのプレイヤーは一度に1つのグループにしかいないことを保証する必要があります。ここで は私のコードです: int: gr; % number of groups
int: sz; % size of groups
int: we; % number of weeks
MiniZinc制約ソルバを使用して非常に簡単にcardinality constraintsを表現することを可能にするビルトインsum()機能:カーディナリティー制約が、満たされ % This predicate is true, iff 2 of the array
% elements are true
predicate exactly_two_sum(array[int] of va
私はMinizincからちょうど始まりました。 は、私は、ほとんどの100 $で過ごす提供しています高々4 GROUPを購入したいと私はすべてのグループから 一つだけのアイテムを購入することができます: は、どのように私は次の制約を書くことができます。品質を最大化する。 int: items = 10;
set of int: GROUPS = 0..itms;
set of int: PRO
私はminizincでarroundを乱用しています。私はdznだけを使って解決する静的なmznファイルを作成したいと思います。質問をより良く理解するために 、ここではサンプルです: include "globals.mzn";
include "data.dzn";
int: time;
int: n;
int: l=n*n;
array[1..4,0..time,1..l] of v
これは私のモデルです...サイクリックテーブルのN = 16 POTITIONSで他の人を隣に置こうとしています。友人は興味を持っています。互いに隣り合っているものは、少なくとも1つの共通の関心事を持っていなければなりません。自分の興味の int :N;
set of int: FRIENDS = 1..N;
set of int: POSITIONS = 1..N;