我有一个线性问题,我想在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)。