1
私はminizincでarroundを混乱させています。条件付き出力を達成しようとしています。配列要素の値が 'true'の場合、プログラムはこれらの要素の配列インデックスに関する情報を出力します。これは私が持っているものです。条件付き出力minizinc
include "globals.mzn";
int: time=5;
int: n=3;
int: l=n*n;
array[1..4,0..time,1..l] of var bool: X;
constraint X[1,5,7]=true;
constraint X[2,5,3]=true;
constraint X[3,5,9]=true;
constraint X[4,5,7]=true;
solve satisfy;
私のようなので、連結を使用してこの問題を解決しようと試み:
output ["X_"++concat(["\(r)_\(t)_\(pos)"
| pos in 1..l, r in 1..4, t in 0..time, where X[r,t,pos]==true])++"\n"];
を私は、 「MiniZinc許可されていないのですが:型エラー:なし機能や述語付きこの署名が見つかりました: `CONCAT(VARオプト文字列の配列[INT])」」
私がしたいことは、
for pos in 1..l, r in 1..4, t in 0..time
if X[r,t,pos]==true
output ["X_\(r)_\(pos)_\(t)"]
012のようなものです
どうすれば実現できますか?