Время отображения отличается от фактического времени решения, используемого в модели Minizinc.
Я написал большую модель minizinc, включающую переменные var с оператором int_search для правильного упорядочения. Он содержит оператор вывода, в котором я использую операторы fix(var variable) для вывода значений переменных, и содержит некоторые функции, которые используют встроенные функции sum, bool2int и т. Д. Теперь, когда я запускаю модель, она отображается на экране после очень долгое время (скажем, 5-6 минут), но время выполнения / время решения (по умолчанию информация о печати решателя) показывает только 20 секунд. Почему происходит эта странная вещь? Это потому, что оператор вывода также потребляет время? Но переменные были зафиксированы в то время, тогда почему так?
1 ответ
Дополнительное время, вероятно, связано с первым этапом процесса: преобразование файла MiniZinc (.mzn) в FlatZinc (.fzn); это "шаг выравнивания". Время, которое показывает решатель, начинается с момента чтения файла FlatZinc.
Большие модели могут потребовать значительного времени для выравнивания, как вы видели здесь.