如何纠正 Knapsack 编译错误 MiniZinc?

How to correct Knapsack compiling error MiniZinc?

如何修改以下程序中的错误

item= record( int: id,  profit, weight);

set of item: All_Items ;

int :Max_Capacity;

var set of item: Selected_Items;

我在MiniZinc中有如下解决背包问题的代码,但是有很多错误。

constraint sum([holds(X in Selected_Items)*X.weight | X in All_Items])=< Max_Capacity;

constraint Selected_Items >= All_Items;

maximize
sum([holds(S in Selected_Items)*S.profit |S in All_Items]);

错误列表

Compiling knapsack1.mzn
C:/Program Files/MiniZinc IDE (bundled)/examples/knapsack1.mzn:3.7-12:
item= record( int: id,  profit, weight);

      ^^^^^^
Error: syntax error, unexpected record
C:/Program Files/MiniZinc IDE (bundled)/examples/knapsack1.mzn:11.45:
constraint sum([holds(X in Selected_Items)*X.weight | X in All_Items])=< Max_Capacity;

                                            ^
Error: syntax error, unexpected $undefined, expecting ]
C:/Program Files/MiniZinc IDE (bundled)/examples/knapsack1.mzn:15.1-8:
maximize

^^^^^^^^
Error: syntax error, unexpected maximize, expecting end of file

Process finished with non-zero exit code 1
Finished in 89msec

尽管 MiniZinc 目前不包含任何记录类型(读取类似结构的类型),但它们在未来是可能的。为了防止将来破坏模型,单词 record 因此已经是保留关键字,不能用作模型中的标识符。将名称从 record 更改为其他名称将解决您的问题。