下面是我的模型:
constraint forall(d in Day, s in Student)
(
let {
%groups in day
array[int] of var opt Group: gid = [g | g in assignment[s] where group_day[g] == d];
%groups starts in day
array[int] of var opt Time: gsid = [group_start[g] | g in gid];
%groups ends in day
array[int] of var opt Time: geid = [group_end[g] | g in gid];
%groups durations in day
array[int] of var opt Time: gdid = [group_duration[g] | g in gid];
var opt Time: min_start = min(gsid);
var opt Time: max_end = max(geid);
var opt Time: sum_dur = sum(gdid);
var opt int: time = ((max_end - min_start) - sum_dur);
} in
wasted_time_units[d,s] = deopt(time)
);我一直试图通过从模型中删除opt数据类型,通过取消整个gid来使其正常工作,但这导致了model inconsistency detected错误。修复和取消gid数组是有效的,但是assignment是一个变量,因此产生无效的输出。最后,我到达了上面显示的模型,它通过了类型检查,但是现在我得到了一个神秘的错误:
Error: Unknown character in line no. 1914
Error: Unknown character in line no. 1914
Error: Unknown character in line no. 1914
Error: syntax error, unexpected '(', expecting FZ_ID in line no. 1914下面我附加了FlatZinc输出(行号放在方括号中):
[1913] constraint int_lin_eq([1,1,1,-1],[X_INTRODUCED_894_,X_INTRODUCED_908_,X_INTRODUCED_922_,X_INTRODUCED_955_],0):: defines_var(X_INTRODUCED_955_);
[1914] constraint '-'(X_INTRODUCED_954_,X_INTRODUCED_952_,X_INTRODUCED_956_):: defines_var(X_INTRODUCED_956_);
[1915] constraint '-'(X_INTRODUCED_956_,X_INTRODUCED_955_,X_INTRODUCED_957_):: defines_var(X_INTRODUCED_957_);
[1916] constraint int_ne_reif(X_INTRODUCED_963_,0,X_INTRODUCED_962_):: defines_var(X_INTRODUCED_962_);这个错误意味着什么,我如何避免它?看起来minizinc正在生成无效的FZ代码。
发布于 2022-05-27 08:15:39
https://stackoverflow.com/questions/72353135
复制相似问题