我有一个线性问题,我希望在Java上使用GLPK获得最佳的双解决方案。我试过这个:
parm = new glp_smcp();
parm.setMeth(GLPKConstants.GLP_DUAL);
GLPK.glp_init_smcp(parm);
ret = GLPK.glp_simplex(lp, parm);
但似乎我总是有原始的解决方案。 有人可以帮帮我吗?
答案 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
请记住线性编程
都是不同的东西。有关更多信息,请参阅有关线性规划的书籍(例如Vanderbei)。