0

我将 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

抱歉没有正确的术语。提前致谢。

4

1 回答 1

0

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

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

于 2018-04-07T08:32:27.320 回答