【问题标题】:Get LP from a .mod file, solve it with GLPK and get the output in a usable form从 .mod 文件中获取 LP,用 GLPK 解决它并以可用的形式获得输出
【发布时间】:2018-11-25 21:53:58
【问题描述】:

我有一个 .mod 文件,想用 GLPK 解决其中的 LP。

我知道有一种方法是使用带有glpsol -m name.mod 的 cmd (Windows),但是我将不得不解析我想要避免的输出结果。

有没有一种方法通过使用 glpk 库 for Java 来获取 .mod 文件解决它,然后在没有解析和 cmd 部分的情况下获取输出?

【问题讨论】:

  • 所以我找到了一个例子:mplsamp2。问题是,尽管我在 Java ret = glp_mpl_read_model(tran, "sudoku.mod", 0); 中测试了完全相同的示例,但给出了 1,这让我认为,这些库没有正确安装。我还在另一台机器上测试了相同的代码,虽然“mip”示例运行正常,但当我从“mplsamp2”复制粘贴代码时,库甚至没有被识别。
  • 我的错。我发现了我的错误。在文件名下,我还必须写下文件所在的目录。
  • 我正在控制台中打印输出。我仍然不知道如何在不手动解析的情况下从目标函数和变量中获取值。有什么想法吗?

标签: java linear-programming glpk


【解决方案1】:

因此,有可能无需手动解析即可获得 glpk 的输出。 以下代码来自此链接中的答案:Input/output in GLPK for Java

static void writeMipSolution(glp_prob lp) {

 String name = GLPK.glp_get_obj_name(lp);
 double val = GLPK.glp_mip_obj_val(lp);

 System.out.println(name + " = " + val);

 int n = GLPK.glp_get_num_cols(lp);

 for (int i = 1; i <= n; i++) {
     name = GLPK.glp_get_col_name(lp, i);
     val = GLPK.glp_mip_col_val(lp, i);
     System.out.println(name + " = " + val);
 }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-25
    • 2020-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多