我如何定义" params"在GLPK for Java API中?

时间:2018-04-04 13:04:43

标签: java linear-programming glpk mathprog

我正在使用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提取问题的行和列。我得出结论,行是目标和约束,而列是var f的值,声明如下,并在一些约束和目标中使用:

var f{ROBOTS,SUBTASKS}, binary;  

我在文档中找不到从问题中提取这些参数的方法。此外,我不知道我的其他变量去了哪里,因为只有f出现在列中。但是由于程序能够解决实例化的问题并且与glpsol给出的解决方案具有相同的结果,我知道它拥有所有这些数据,我只是想知道它存储在哪里。

我正在阅读此处的文档:http://glpk-java.sourceforge.net/apidocs/org/gnu/glpk/GLPK.html

很抱歉缺少正确的术语。提前致谢。

1 个答案:

答案 0 :(得分:0)

  

var f {ROBOTS,SUBTASKS},二进制;

ROBOTS和SUBTASKS仅存在于GMPL语言模型中。 转换模型后,问题将存储为稀疏矩阵。您只有列号和行号用于寻址。