Как определить параметры в GLPK для Java API?

Я использовал glpsol с файлом .mod, содержащим как проблему, так и данные для нее.

Однако я хочу использовать его Java API для создания экземпляра проблемы в моем приложении без необходимости писать/читать файлы и запускать их с помощью glpsol.

В моей задаче у меня есть «наборы», которые приведены впоследствии в разделе данных, а также параметры в функции этих наборов, например:

set ROBOTS;
param L{ROBOTS}, integer;

И затем, в разделе данных:

data;
set ROBOTS   := ag1 ag2 ag3;   

Что я хочу знать, так это то, какой метод я могу использовать для добавления таких параметров к проблеме, а также как их получить.

Чтобы посмотреть, как эта проблема представлена, я попытался прочитать проблему и данные из файлов и извлечь строки и столбцы проблемы с помощью методов glp_get_row_name и glp_get_col_name. Я пришел к выводу, что строки — это цель и ограничения, а столбцы — это значения переменной f, которая объявлена ​​следующим образом и используется в некоторых ограничениях, а также в цели:

var f{ROBOTS,SUBTASKS}, binary;  

Я не смог найти в документации способ извлечения этих параметров из задачи. Кроме того, я понятия не имею, куда делись другие мои переменные, так как в столбцах появилось только f. Но поскольку программа смогла решить созданную проблему и дала тот же результат, что и решение, предоставленное glpsol, я знаю, что у нее есть все эти данные, я просто хочу знать, где она их хранит.

Я читал документацию отсюда: http://glpk-java.sourceforge.net/apidocs/org/gnu/glpk/GLPK.html

Извините за отсутствие правильной терминологии. Заранее спасибо.


person user2980149    schedule 04.04.2018    source источник
comment
Я не думаю, что в GLPK есть средства для этого. AMPL имеет довольно обширный API, который позволяет вам делать подобные вещи.   -  person Erwin Kalvelagen    schedule 04.04.2018


Ответы (1)


var f{РОБОТЫ,ПОДЗАДАЧИ}, двоичный;

РОБОТЫ и ПОДЗАДАЧИ существуют только в языковой модели GMPL. После перевода модели задача сохраняется в виде разреженной матрицы. У вас есть только номера столбцов и номера строк для адресации.

person Xypron    schedule 07.04.2018