从cpp程序调用minizinc

时间:2018-10-13 00:37:35

标签: minizinc

作为从C ++程序进行的函数调用,有没有办法调用minizinc中定义的约束模型?我的环境是VS 2017(如果重要)。

1 个答案:

答案 0 :(得分:2)

从C ++项目中使用MiniZinc有两种选择。可能最简单的方法是使用forkexecv。使用这两个命令的组合,您可以只运行minizinc可执行文件以及您认为必要的任何标志和文件。但这确实需要用户安装MiniZinc并在系统路径($PATH上可用)

第二种方法是将 libminizinc 用作C ++库。可在以下位置找到MiniZinc编译器/驱动程序的源代码:https://github.com/MiniZinc/libminizinc并可用作库。但是,目前对于这种行为的支持非常有限。在几个月内,MiniZinc团队打算发布libminizinc的C API,这可能会使该过程更加容易。同时,如果您选择使用这种方法,建议您从main.cpp文件开始您的旅程,因为这很可能会向您展示如何使用该库。

请注意,即使您采用第二种方法,也必须在系统路径上使用FlatZinc求解器(例如OR Tools,Chuffed和Oscar CBLS)才能在您的应用程序中使用。