MILP加速运算技巧——模型预处理presolve【草稿】
2023-12-16 19:49:20
文章目录
预处理是许多MIP求解器在正是求解前会进行的一个步骤,能通过一些简单策略的较低开销,节省最终模型整体求解中不必要的计算,提高求解效率。
这些简单策略包括消除模型中冗余的约束、提升模型的紧凑性(tighten formulation)、缩减模型规模等。
用一个例子来说明,假设给定的问题包含以下约束:
显然,满足所有这些约束的唯一方法是x1 = 7,x2 = 3,x3 = 5。因此,将x1 、x2 、x3 替换为 7、3、5,将上述四个约束从模型中删除。
上面问题的presolve是所谓的LP-presolve,因为它不依赖于整数约束。 一个依赖整数约束的presolve例子如下。假设x1和x2是非负整数变量,并且有约束:2x1+ 2x2≤ 1。
不等式两边同时除以2,得到:x1+ x2≤ ?。
由于x1和x2具体整数约束,因此明显x1+x2≤0,又x1、x2具有非负性,则x1 = x2 = 0。因此,这两个变量用具体数值替代,这个约束从模型中删除。
需要注意,这两种presolve在性质上不同。第1种presolve没有减少relaxed-LP解的集合,更不会减少原MIP可行解的集合;第2种presolve减少了relaxed-LP解的集合,但没有减小原MIP可行解的集合。第2种presolve对于整数规划求解加速至关重要,是MIP presolve中大量采用的操作。
文章来源:https://blog.csdn.net/Linshaodan520/article/details/135036181
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!