我正在尝试使用 Java 中的 JaCoP 库进行优化,但我在翻译函数时遇到了一些麻烦。
我有一堆变量,比如:x1 到 xn,我有一个函数使用它们来输出最大似然估计器(尽管它可能只是使用这些参数的任何函数)。
我知道如何对变量设置约束,例如 x1+。+xn <C(常量)。我无法弄清楚的是如何获得最大化我上述函数的解决方案,例如将>x1 到 xn 其中 max(a_function(x1,..,xn))。
我现在不发布任何代码,因为我唯一能做的就是对我的初始变量设置简单的约束,如此处所述。当我对 JaCoP 越来越好时,我会更新这个问题。
如果有人能就如何设置这样的条件向我提供正确的方向,将不胜感激。
谢谢
[编辑]
好吧,我作弊了...由于我之前在我的 Java 项目中安装了 Rcaller,我将使用 R 来计算具有约束的最大似然模型。我被JaCop打败了。R使用起来更直观(从数学角度来看),并且由于Rcaller与Java"交谈"得很好,我对结果相当满意。
它隐藏得很好,但有一个包含成本函数的示例。
所以IIUIC你需要类似的东西
IntVar cost = new IntVar(store, "cost", 0, 1000);
net.setCostVariable(cost);
如果您没有成本变量,只需创建它并使用约束来确保cost == a_function(x1,..,xn)
。如果您想最大化,请翻转标志。