GLPK/已知问题
外观
< GLPK
此页面列出了 GLPK 的已知问题。大多数问题与底层库有关,因此会影响 GLPSOL 用户和 API 程序员。尽管陈词滥调,但问题需要“变通方法”,而 bug 需要“修复”。如果您发现 bug,请将其报告给[bug-glpk]邮件列表。
当 MIP 问题实例的 LP 松弛没有有限的最大值并且整数可行域为空时,可能会出现此问题。在这种情况下,MIP 预处理器可能会陷入无限循环。此问题存在于 4.45 版本中,本质上是固有的。
一种解决方法是指定一些额外的边界,以便预处理器能够成功地检测到实例没有整数可行解。另一种方法是禁用 MIP 预处理器。此问题在 此帖 和 此帖 中进行了更详细的讨论。
从 4.47 版本开始,函数ios_relative_gap计算相对间隙如下
gap = |best_mip - best_bnd| / (|best_mip| + DBL_EPSILON)
这意味着当您的解改进时,间隙可能会增加!但是,它与 CPLEX 函数使用的公式相同CPXgetmiprelgap. 请参阅 此处,了解 2012 年中关于替代公式的讨论。
GLPSOL 选项 --tmlim nnn
将求解时间限制为nnn秒。但是,计时器并不总是在解的各个阶段都处于活动状态。请参阅 此处,了解 2012 年中关于该主题的讨论。
在 Linux 上,可以使用来自 GNU coreutils 的 timeout
实用程序来限制经过时间。在此示例中,如果 GLPSOL 调用仍在运行,它将在两小时后终止
timeout 2.0h glpsol --model problem.mod