java - SimplexSolver 的 Hello World 示例

标签 java math optimization apache-commons simplex

我正在尝试使用 Apache Commons 解决优化问题。我找到了一个“Hello World”示例 here对于 Commons Math 2。但是,我想使用 Commons Math 3.2,但我找不到任何关于如何使用这部分代码的示例:

PointValuePair solution = null;
SimplexSolver solver = new SimplexSolver();
solution = solver.optimize(optData);

具体来说,我不知道什么是 optData 以及我将约束放在哪里。如果有人指出一个如何使用 org.apache.commons.math3.optim 库的“Hello World”示例,我将不胜感激。

最佳答案

这对我有用:

http://mail-archives.apache.org/mod_mbox/commons-user/201307.mbox/%3CCAJSjvws+9uC=jMP_A_Mbc4szbJL2VXAwp=Q2A+zZ=51mLeRw6g@mail.gmail.com%3E

我的 max cx 版本:Ax <= b, x >= 0。也许不是“hello world”,但我希望它有所帮助:

        LinearObjectiveFunction f = new LinearObjectiveFunction(c, 0);
        Collection<LinearConstraint> constraints = new
                ArrayList<LinearConstraint>();
        for(int i=0; i<A.length; i++) {
            double[] Av = new double[A[i].length];
            for(int j=0; j<A[i].length; j++) {
                Av[j] = A[i][j];
            }
            constraints.add(new LinearConstraint(Av, Relationship.LEQ, b[i]));
        }

        SimplexSolver solver = new SimplexSolver();
        PointValuePair optSolution = solver.optimize(new MaxIter(100), f, new
                LinearConstraintSet(constraints),
                GoalType.MAXIMIZE, new
                NonNegativeConstraint(true));


        double[] solution;
        solution = optSolution.getPoint();

关于java - SimplexSolver 的 Hello World 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17954235/

相关文章:

java - 如何在设定的时间运行方法?

java - 在 Screen libgdx 中添加分数

python - 平滑分类输出

python - 执行双重求和的最佳方法

Django Rest Framework,数据库查询优化

c - 优化 C 循环以获得数组的对角线

c - 在 C 中使用限制关键字的规则?

java - JTable 行过滤基于两个不同列的值

java - 使用 java 检测远程位置新创建的文件

python - 定点运算