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

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


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

最佳答案

线

 parm.setMeth(GLPKConstants.GLP_DUAL);


将选择对偶单纯形法。它本身并不能为您提供双重解决方案。 (确切地说:之后,您可以同时检索原始解和对偶解)。

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

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


记住线性编程


对偶单纯形法
LP问题的对偶
解决方案中的对偶


都是不同的东西。有关更多信息,请查阅有关线性编程的书(例如Vanderbei)。

10-04 11:43