將 MiniZinc 程式放到 Java 裡執行

之前提及過 MiniZinc 這種約束式語言,它是一種建模語言,好讓大家將問題輸入,再找出最佳解。

Capture-minizinc

這個 MiniZinc IDE Bundle 除了提供 IDE 之外,也提供了不同的求解器,以應付不同種類的約束問題或線性問題。

而 MiniZinc 語言很易就能編譯成 FlatZinc 語言,而很多程式也能提供解析 FlatZinc 語言再求解的功能(連結)。這樣,我便能用 MiniZinc 語言建構好需要求解的問題,再轉換成 FlatZinc,交給一些另一些求解器求解,這樣一來可以選用一些在某些領域出色的求解器,以提升效能,二來可以跟一些程式語言整合起來,方便再處理。

我試用 JaCoP - Java Constraint Programming solver 的 FlatZinc 求解器,在 Java 的環境下解析 FlatZinc 語言,在我這簡單的問題上同樣能夠得出同一解。

Capture-minizinc2

本文連結