0

我编写了一个大型 minizinc 模型,其中包括带有 int_search 语句的 var 变量,以便正确排序。它包含输出语句,我在其中使用 fix(var variables) 语句输出变量值,它包含一些使用内置函数 sum、bool2int 等的函数。现在,当我运行模型时,它会在屏幕上显示一个非常很长时间(比如 5-6 分钟),但运行时间/求解时间(默认情况下求解器的打印信息)仅显示 20 秒。为什么会发生这种奇怪的事情?是不是因为输出语句也很耗时?但是变量在那个时候已经固定了,那为什么会这样呢?

4

1 回答 1

2

额外的时间可能是由于过程中的第一步:即将MiniZinc(.mzn)文件转换为FlatZinc(.fzn);这是“扁平化步骤”。求解器显示的时间是从它开始读取 FlatZinc 文件开始。

正如您在此处所看到的,大型模型可能需要相当长的时间才能展平。

于 2018-02-21T20:30:41.890 回答