结果不一致的排查思路
1.看看是否问题约束有违背的。
2.是否有小数变量,也就是精度不够;
可以设置:m.Params.IntegralityFocus=1 #输出的解都是整数,不带小数。
3.检查是否gap设置问题,MIPGap默认是0.01%,不是0;
可以设置0:m.Params.MIPGap = 0 #设置相对误差,看看效果。
4.排除数值问题。
检查是否系数过大,或者过小,常见的是大M法中的大M不能设置过大,还有个别变量的上下界不宜为无穷大。
个人测试中发现4位数以下效果比较好。
5.模型求解比较慢,可以试试NoRelHeurTime参数(可以加速MIP求解),也就是调整启发式算法部分的调用部分,加快可行解搜索。