Команда вывода MiniZinc в Jupyter / Linux - PullRequest
0 голосов
/ 17 декабря 2018

Команда вывода в MiniZinc под Jupyter / Linux не выполняется.

При запуске:

    %%minizinc 
    var int: one_var;
    constraint one_var = 1;
    solve satisfy;
    output ["my var = \(2*one_var)\n"];

Я получаю

{'one_var': 1} это стандартный вывод переменных MiniZinc,

вместо

my var = 2

Спасибо, Ido

1 Ответ

0 голосов
/ 19 декабря 2018

На этот вопрос ответили в одном из MiniZinc GitHub репозиториев :

Hi Ido,

Боюсь, что это ожидаемое поведение.При использовании интерфейса IPython для MiniZinc переменные MiniZinc передаются непосредственно обратно в Python, а элемент вывода игнорируется.Это похоже на настройку режимов вывода для MiniZinc в командной строке.Вы можете использовать python для форматирования переменных любым удобным для вас способом.Если вы хотите выполнить математические преобразования переменных, вы даже можете добавить их в модель: var int: my_var = 2*one_var;

Одна вещь, которая может быть интересной, - это добавить функцию в пакет python для печати отформатированного оператора вывода.Обратите внимание, что это только добавит выходные данные на экран, и выходные данные оператора печати не смогут использоваться далее, кроме как в виде строки.

Не стесняйтесь открывать запрос функции для этой функции в соответствующем репозитории.: https://github.com/MiniZinc/iminizinc. Я закрою этот вопрос, поскольку он не имеет отношения к MiniZincIDE

...