如何保存 opl.postProcess();输出到 Java 中的二维数组

How to save opl.postProcess(); output to an 2D array in Java

我正在使用 ILOG CPLEX Studio 的 CP Optimizer 来解决 运行 一个优化问题。具体来说,我正在 运行 使用 Eclipse IDE 在 Java 中编写 OPL 代码。我的代码正在运行,我得到了以下输出的实例:

其中 "Fitness" 是 objective 函数的值,接下来的 100 个数字是该问题的可行解。我想将红色框中的数字保存在二维整数数组(尺寸为 10 行 x 10 列)中,以用于使用本地搜索方法继续搜索。当我在我的 Java 代码中调用:opl.postProcess(); 时显示解决方案。这是我的代码的摘录:

            if (cp.solve()) {
            System.out.println("Fitness: " + opl.getCP().getObjValue());
            opl.postProcess();
            }

是否存在将信息保存在二维整数数组中的替代方法?

您可以查看示例 CPLEX_Studio1210\opl\examples\opl_interfaces\java\iterators\src\iterators,它向您展示了如何在 java 中恢复您在 OPL 中的值。

另一种方法是遍历文件并在后处理中使用 IloOplOutputFile,以便将数组保存在文本文件或 csv 文件中