Вызов миницинка из программы cpp - PullRequest
0 голосов
/ 13 октября 2018

Есть ли возможный способ вызвать ограниченную модель, определенную в minizinc, как вызов функции из программы на C ++?Моя среда VS 2017 (если это имеет значение).

1 Ответ

0 голосов
/ 13 октября 2018

Существует два варианта использования MiniZinc из проекта C ++.Вероятно, самый простой способ - использовать fork и execv.Комбинируя эти две команды, вы можете просто запустить исполняемый файл minizinc с любыми флагами и файлами, которые вы считаете необходимыми. Однако для этого необходимо, чтобы пользователь установил и установил MiniZinc по системному пути ($PATH).

Второй способ - использовать libminizinc в качестве библиотеки C ++.Источник для компилятора / драйвера MiniZinc можно найти здесь: https://github.com/MiniZinc/libminizinc и может использоваться в качестве библиотеки.Однако текущая поддержка такого поведения очень ограничена.В течение нескольких месяцев команда MiniZinc намерена выпустить C API для libminizinc, что, вероятно, значительно упростит процесс.В то же время, если вы решите использовать этот подход, я бы посоветовал вам начать свой путь с файла main.cpp, так как это, вероятно, покажет вам, как использовать библиотеку.

Обратите внимание, что даже если вы беретеВторой подход: решатели FlatZinc, такие как OR Tools, Chuffed и Oscar CBLS, должны быть доступны по системному пути, чтобы быть доступными в вашем приложении.

...