英文:
How to save opl.postProcess(); output to an 2D array in Java
问题
我正在使用ILOG CPLEX Studio中的CP Optimizer来运行一个优化问题。具体来说,我正在使用Eclipse IDE中的Java运行OPL代码。我的代码正在运行,并且我得到了以下输出:
其中“Fitness”是目标函数的值,接下来的100个数字是问题的一个可行解。我想将红色框中的数字保存在一个整数的2D数组中(尺寸为10行x10列),以便在使用局部搜索方法继续搜索时使用。当我在Java代码中调用opl.postProcess();
时,解决方案会被显示出来。以下是我代码的一部分:
if (cp.solve()) {
System.out.println("Fitness: " + opl.getCP().getObjValue());
opl.postProcess();
}
是否存在另一种方法将该信息保存在一个整数的2D数组中?
英文:
I'm using CP Optimizer from ILOG CPLEX Studio to run an optimization problem. Specifically, I'm running an OPL code in Java using Eclipse IDE. My code is working and I'm getting for an instance the following output:
Where "Fitness" is the value of the objective function and the next 100 numbers are a feasible solution for the problem. I want to save the numbers in the red box in a 2D array of integers (of dimension 10 rows x 10 columns) for being utilized for continuing the search with a local search method. The solution is displayed when I call: opl.postProcess();
in my Java code. Here is an extraction of my code:
if (cp.solve()) {
System.out.println("Fitness: " + opl.getCP().getObjValue());
opl.postProcess();
}
There exist an alternative for saving that information in a 2D array of integers?
答案1
得分: 1
你可以查看示例CPLEX_Studio1210\opl\examples\opl_interfaces\java\iterators\src\iterators,该示例展示了如何在Java中获取OPL中的值。
另一种方法是通过文件进行处理,并在你的postProcess中使用IloOplOutputFile,以便将数组保存在文本文件或CSV文件中。
英文:
You could have a look at the example CPLEX_Studio1210\opl\examples\opl_interfaces\java\iterators\src\iterators that shows you how to get back in java the values that you have in OPL.
Another way is to go through a file and use IloOplOutputFile in your postProcess in order ro save your array in a text file or csv file
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论