MiniZinc: статистика не выводится - PullRequest
1 голос
/ 24 мая 2019

Документация Minizinc гласит, что диагностическая статистика может быть распечатана в выходной поток путем добавления специальных строк в виде

%%%mzn-stat: <name>=<value>

, где <value> можетбыть одним из ряда диагностики.Однако добавление строки

%%%mzn-stat: n_failures=failures

не меняет вывод.При использовании флага -s выводится некоторая, но не вся, доступная статистика, но только с gecode - Chuffed вместо этого выводится список чисел, которые, как я могу предположить, соответствуют этим переменным.

Как я могу лучше контролировать вывод статистики при выполнении проблем?Они очень зависят от выбора решателя?

1 Ответ

3 голосов
/ 25 мая 2019

Являются ли они [статистика] очень зависит от выбора решателя?

Я думаю, это очевидное ожидание.

Я не уверен, но я думаю, что вы неправильно поняли документацию. Код:

%%%mzn-stat: <name>=<value>

должен быть напечатан решателем FlatZinc как выходной, а не отображаться во входной модели FlatZinc (где он, очевидно, будет игнорироваться, поскольку начинается с префикса комментария %).


Документация гласит:

Решатели FlatZinc могут выводить статистику в стандартном формате, чтобы она могут быть прочитаны с помощью сценариев, например, для проведения экспериментов и автоматически агрегировать результаты.

Обратите внимание на использование слова can вместо must .

Как лучше контролировать вывод статистики во время работы проблемы?

  1. Обратитесь к документации каждого инструмента, если таковой имеется, в противном случае попробуйте поиграть с инструментом или свяжитесь с авторами.

  2. Возможно, свяжитесь с авторами и предложите принять тот или иной формат, если вы заметите, что большинство остальных инструментов действительно придерживаются его. Если многие запросы такого типа начнут стоять в очереди, рано или поздно это будет иметь значение.

...