1

有没有一种可能的方法来调用 minizinc 中定义的约束模型,作为来自 C++ 程序的函数调用?我的环境是 VS 2017(如果重要的话)。

4

1 回答 1

3

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

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

请注意,即使您采用第二种方法,OR Tools、Chuffed 和 Oscar CBLS 等 FlatZinc 求解器也需要在系统路径上可用,才能在您的应用程序中使用。

于 2018-10-13T02:43:22.597 回答