我尝试使用GLPK for Java(http://glpk-java.sourceforge.net/)解决基于二进制变量的线性规划问题,但计算结果给出了变量的小数结果。
我省略了大部分代码,但重要的部分如下,我将变量定义为二进制
= '[{"vendor":"3", "status":"paid"}]';
数据是一个包含系数的表。
如果我尝试使用预变器解决问题
SELECT * FROM
结果是错误
WHERE
如果我使用simplex添加预处理(如文档所示)
LIKE '[{"vendor":"3"%';
结果是小数
GLPK.glp_add_cols(lp, data.size());
for (int i = 0; i < data.size(); i++) {
GLPK.glp_set_col_name(lp, i + 1, "x" + (i + 1));
GLPK.glp_set_col_kind(lp, i + 1, GLPKConstants.GLP_BV);
}
我如何获得二元解决方案?
答案 0 :(得分:1)
GLPK为不同类型的求解器(MIP,内点,单纯形)保持单独的结果,因此要获得特定求解器的结果,必须使用相应的函数。
glp_get
函数。glp_ipt
函数。glp_mip
函数。该函数名称的其余部分有点不一致。