【发布时间】:2013-06-01 18:06:34
【问题描述】:
我正在尝试使用 Apache Commons 提供的 java 优化库来解决一个受约束的非线性 267 维优化问题。
经过3天的破译,这就是我所拥有的:
public class optimize2 {
public static void main(String []args){
double[] point = {1.,2.};
double[] cost = {3., 2.};
MultivariateFunction function = new MultivariateFunction() {
public double value(double[] point) {
double x = point[0];
double y = point[1];
return x * y;
}
};
MultivariateOptimizer optimize = new BOBYQAOptimizer(5);
optimize.optimize(
new MaxEval(200),
GoalType.MAXIMIZE,
new InitialGuess(point),
new ObjectiveFunction(function),
new LinearConstraint(cost, Relationship.EQ, 30));
}
}
无论出于何种原因,optimize.optimize() 都会引发空指针错误。也许我只是愚蠢,但我不知道如何让它发挥作用。
这是错误:
线程“main”中的异常 java.lang.NullPointerException 在 org.apache.commons.math3.optim.nonlinear.scalar.noderiv.BOBYQAOptimizer.setup(BOBYQAOptimizer.java:2401) 在 org.apache.commons.math3.optim.nonlinear.scalar.noderiv.BOBYQAOptimizer.doOptimize(BOBYQAOptimizer.java:236) 在 org.apache.commons.math3.optim.nonlinear.scalar.noderiv.BOBYQAOptimizer.doOptimize(BOBYQAOptimizer.java:49) 在 org.apache.commons.math3.optim.BaseOptimizer.optimize(BaseOptimizer.java:143) 在 org.apache.commons.math3.optim.BaseMultivariateOptimizer.optimize(BaseMultivariateOptimizer.java:66) 在 org.apache.commons.math3.optim.nonlinear.scalar.MultivariateOptimizer.optimize(MultivariateOptimizer.java:64) 在 Test.Code.optimize2.main(optimize2.java:39)
【问题讨论】:
-
发布完整的错误消息,包括堆栈跟踪。
标签: java optimization multidimensional-array nonlinear-optimization