如何在 JOptimizer 中表示等式约束?

How to represent equality constraint in JOptimizer?

//Objective function
    double[] c = new double[] { -1., -1. };

    //Inequalities constraints
    double[][] G = new double[][] {{4./3., -1}, {-1./2., 1.}, {-2., -1.}, {1./3., 1.}};
    double[] h = new double[] {2., 1./2., 2., 1./2.};

    //Bounds on variables
    double[] lb = new double[] {0 , 0};
    double[] ub = new double[] {10, 10};

    //optimization problem
    LPOptimizationRequest or = new LPOptimizationRequest();
    or.setC(c);
    or.setG(G);
    or.setH(h);
    or.setLb(lb);
    or.setUb(ub);
    or.setDumpProblem(true); 

    //optimization
    LPPrimalDualMethod opt = new LPPrimalDualMethod();

    opt.setLPOptimizationRequest(or);
    opt.optimize();

这些代码复制自JOptimizer官方文档。然而,它只展示了如何在 JOptimizer 的线性规划中使用不等式约束。我想知道如何在 JOptimizer 中表示等式约束?我知道我可以通过定义多个不等式约束来实现这个目标,比如 Ax < b 和 -Ax < -b 与 Ax=b 相同。但是我有什么直接的方法可以做到这一点吗?

好的,我找到了答案。这很容易。我们只需要用 setA 和 setB 替换 setG 和 setH。