将 MiniZinc 连接到其他语言

Interface MiniZinc to other languages

我想解决一个在 Prolog 中实现了评分函数的问题。如果优化函数是用另一种语言定义的,是否可以从 MiniZinc 脚本调用 Prolog(或另一种语言)?

例如,可以通过包 MiniZinc Python 从 python 轻松调用 MiniZinc。是否存在执行相反操作的接口(从 MiniZinc 调用 Python)?

MiniZinc目前没有对外函数接口。因此,目前无法在 MiniZinc 中使用其他语言(如 Prolog)的功能。

与将 MiniZinc 暴露给编程语言不同,将其他语言集成到 MiniZinc 中可能并不那么容易。问题是 MiniZinc 实例的所有部分都需要由编译器解析或转换为求解器级构造。这意味着用另一种语言计算参数值可能相对容易:MiniZinc 可以调用计算的编译版本。另一方面,变量的转换需要严格的 MiniZinc API 来执行。您可以将这样的接口与如何在 C 中使用 CPython 进行比较:它更像是用另一种语言编写 MiniZinc 模块。