Как читать из файла .dzn без имен переменных в Minizinc - PullRequest
0 голосов
/ 14 июля 2020

Я новичок в Minizin c и столкнулся с проблемой. У меня есть файл .dzn, содержащий это

10 7
4
3 2
3 5
4 3
5 5

Я wi sh, чтобы прочитать это в моем файле с первой строкой 10 7, сохраненной как h=10 и w=7, следующей строкой 4 сохраняется как n=4, а последние строки как массив dims=[[3,2],[3,5],[4,3],[5,5]]. Однако я не узнал, как это сделать, поскольку в учебных курсах, которые я читал, переменные в файлах .dzn уже названы и, таким образом, могут быть легко вызваны в файле .mzn, т.е. с помощью команды int: w;. Можно ли как-нибудь назвать целые числа в файле MiniZin c, не изменяя файл .dzn?

Большое спасибо

1 Ответ

5 голосов
/ 15 июля 2020

Файл dzn - это не файл, содержащий данные для модели MiniZin c. Эти файлы соответствуют строгому формату, в котором все данные представлены в виде

<ident> = <expression>;

. Поэтому ваш файл не является файлом dzn. В настоящее время MiniZin c поддерживает только прямые данные в формате dzn или json. Другие форматы не могут быть прочитаны компилятором. Язык MiniZin c в настоящее время не может создавать синтаксический анализатор для пользовательских файлов данных.

Если ваши данные представлены только в этом формате, есть два варианта их использования с MiniZin c :

  1. Вы можете написать небольшой скрипт, который преобразует описанный формат в json или dzn. Это можно сделать на любом языке программирования.
  2. Вы можете использовать интерфейс сценариев MiniZin c Python: используя Python, вы можете анализировать данные, а модуль MiniZin c позволит вам для прямого присвоения данных экземпляру.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...