[Java] [Glpk]解决双重解决方案

时间:2018-02-06 21:43:32

标签: java linear-programming glpk

我有一个线性问题,我希望在Java上使用GLPK获得最佳的双解决方案。我试过这个:

parm = new glp_smcp();
parm.setMeth(GLPKConstants.GLP_DUAL);
GLPK.glp_init_smcp(parm);
ret = GLPK.glp_simplex(lp, parm);

但似乎我总是有原始的解决方案。 有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:1)

该行

 parm.setMeth(GLPKConstants.GLP_DUAL);

将选择双单纯形法。它本身并没有给你双重解决方案。 (确切地说:之后您可以检索原始和双重解决方案)。

解决后检索解决方案的方法是:

GLPK.glp_get_col_prim(lp,j)   // retrieve primal solution
GLPK.glp_get_row_dual(lp,i)   // retrieve duals 

请记住线性编程

  • Dual Simplex Method
  • LP问题的双重性
  • 解决方案中的Duals

都是不同的东西。有关更多信息,请参阅有关线性规划的书籍(例如Vanderbei)。