Как сохранить opl.postProcess (); вывод в 2D массив в Java - PullRequest
1 голос
/ 02 мая 2020

Я использую CP Optimizer из ILOG CPLEX Studio для запуска задачи оптимизации. В частности, я запускаю код OPL в Java, используя Eclipse IDE. Мой код работает, и я получаю, например, следующий вывод:

enter image description here

Где «Фитнес» - это значение целевой функции и Следующие 100 чисел являются возможным решением проблемы. Я хочу сохранить числа в красном поле в двумерном массиве целых чисел (размерностью 10 строк x 10 столбцов), который будет использоваться для продолжения поиска с помощью метода локального поиска. Решение отображается, когда я звоню: opl.postProcess(); в моем коде Java. Вот фрагмент моего кода:

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

Существует ли альтернатива для сохранения этой информации в двумерном массиве целых чисел?

1 Ответ

1 голос
/ 02 мая 2020

Вы можете взглянуть на пример CPLEX_Studio1210 \ opl \ examples \ opl_interfaces \ java \ iterators \ src \ iterators, который показывает, как вернуть обратно java значения, которые есть в OPL.

Другой способ - go через файл и использовать IloOplOutputFile в вашем postProcess, чтобы сохранить ваш массив в текстовом файле или CSV-файле

...