是否有针对Clojure的Simplex算法的线性编程库?

时间:2014-01-04 02:39:41

标签: algorithm clojure

斯蒂格勒饮食问题是线性规划问题。它需要一份食物及其营养价值清单,并为满足目标和限制的优化选择和数量进行求解。是否有线性编程的clojure库 - 单纯形算法,而levand / prolin除此之外还有吗?

2 个答案:

答案 0 :(得分:2)

实际上有一个clojure库:prolin使用Apache Commons Math提供的Simplex实现。它可能是线性编程中最惯用的api。 github中的当前版本使用org.apache.commons.math3 v3.2,但根据此JIRA entry,在v3.3中单纯形式实现得到了显着改进,因此可能值得升级(参见prolin issue #1 )。

Java Constraint Programming API(JSR 331)也引起了人们的兴趣。有a clojure project using that API。虽然它的名字暗示了约束编程(CP),this blog post talks about using it for accessing linear programming (LP) solvers,如GLPK,lp_solve,gurobi等。

答案 1 :(得分:1)

java JaCoP约束编程库实现了Simplex算法。对于Clojure,JaCoP上有CloCoP clojure包装器。

Clojure的core.logic还有constraint programming的选项。