在Java中使用JaCop优化函数

时间:2013-10-15 19:50:14

标签: java optimization constraints rcaller jacop

我正在尝试使用Java中的JaCoP library进行优化,但我在翻译函数时遇到了一些麻烦。

我有一堆变量,比如:x1到xn,我有一个函数使用它们来输出最大似然估计(尽管它可能只是使用这些参数的任何函数)。

我知道如何设置变量的约束,例如x1 + .. + xn< C(常数)。我无法弄清楚的是如何获得最大化我上述功能的解决方案,如获取x1到xn其中max(a_function(x1,..,xn))。

我现在不发布任何代码,因为我能够做的唯一事情就是对我的初始变量设置简单约束,如here所述。随着JaCoP的发展,我会更新这个问题。

如果有人能给我一个关于如何设定这样一个条件的正确方向的推动,我们将不胜感激。

由于

[编辑]

好吧,我作弊了......因为我以前在我的Java项目中安装了Rcaller,所以我将使用R来计算带有约束的最大似然模型。我被JaCop击败了。 R使用起来更直观(从数学的角度来看),并且由于Rcaller与Java“很好地对话”,我对结果非常满意。

1 个答案:

答案 0 :(得分:1)

很好地隐藏了,但是有一个包含成本函数的example

所以IIUIC你需要像

这样的东西
IntVar cost = new IntVar(store, "cost", 0, 1000); 
net.setCostVariable(cost);

如果您没有成本变量,只需创建它并使用约束来确保cost == a_function(x1,..,xn)。如果您想要最大化,请翻转标志。