我正在尝试使用 JaCoP library在 Java 中进行优化,但我在翻译我的函数时遇到了一些问题。
我有一堆变量,比如:x1 到 xn,我有一个函数使用它们来输出最大似然估计量(尽管它可以是使用这些参数的任何函数)。
我知道如何对变量设置约束,例如 x1+..+xn < C(常量)。我想不通的是如何获得最大化上述函数的解决方案,如 get x1 to xn where max(a_function(x1,..,xn)).
我现在不发布任何代码,因为我唯一能做的就是按照 here 所述对我的初始变量设置简单的约束。 .随着我对 JaCoP 的了解越来越好,我会更新这个问题。
如果有人能就如何设置这样的条件向我提出正确的建议,我们将不胜感激。
谢谢
[编辑]
好吧,我作弊了...因为我之前在我的 Java 项目中安装了 Rcaller,所以我将使用 R 来计算我的带约束的最大似然模型。我被 JaCop 打败了。 R 使用起来更直观(从数学的角度来看),而且由于 Rcaller 与 Java 的“对话”非常好,我对结果相当满意。
最佳答案
它隐藏得很好,但是有一个 example包含成本函数。
所以 IIUIC 你需要类似的东西
IntVar cost = new IntVar(store, "cost", 0, 1000);
net.setCostVariable(cost);
如果您没有成本变量,只需创建它并使用约束来确保 cost == a_function(x1,..,xn)
。如果您想最大化,请翻转标志。
关于java - 在 Java 中使用 JaCop 优化函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19389806/