clojure2minizinc - MiniZinc 的 Clojure 接口库


GPL
跨平台

软件简介

clojure2minizinc 是一个通过 MiniZinc 解决约束满足问题的 Clojure 库。

clojure2minizinc 提供一个 state-of-the-art constraint
solvers
(via
MiniZinc)
和高级编程语言 Clojure 之间的接口。

代码示例:

(ns clojure2minizinc.examples
  (:require [clojure2minizinc.core :as mz]))

(mz/minizinc 
 (mz/clj2mnz
  (let [a (mz/variable (mz/-- -1 1)) 
        b (mz/variable (mz/-- -1 1))]
    (mz/constraint (mz/!= a b))
    (mz/solve :satisfy)
    (mz/output-map {:a a :b b}))) :num-solutions 3)