数学规划中的变量(部分或全部)限制为整数时,称为整数规划。若在线性规划模型中,变量限制为整数,则称为整数线性规划。目前所流行的求解整数规划的方法,往往只适用于整数线性规划。目前还没有一种方法能有效求解一切整数规划。
整数规划最优解不能按照实数最优解简单取整而获得,因为有可能不满足约束条件。
整数规划的分类
分枝定界法求解整数规划问题
基本思想就是,先不考虑整数限制求出相应松弛问题的最优解,如果正好符合整数要求,则即为整数规划最优解;如果松弛问题都没有可行解的话,那么整数规划也没有可行解;如果松弛问题求出一个非整数,那我们就任选一个不满足整数条件的决策变量来构造新的约束条件添加到松弛问题中形成两个子问题,比如其中一个决策变量求出来是x1 = 4.3,那么我们向上取整和向下取整,即x1 >= 5,x1 <=4,形成两个子问题(第一个子问题是将x1 >= 5添加到约束条件中求解,第二个子问题是将x1 <= 4添加 到约束条件中求解)
注意!!!有多个决策变量的话,都要这么向上取整向下取整捣腾一遍,因为只用一个决策变量可能会捣腾出来一组符合整数要求的解,但不一定那个就是最优解,咱还得都试一下。
割平面法求解整数规划
割平面法的基本思想就是如果松弛问题有解但不符合整数条件,则对松弛问题增加割平面条件:即增加一个线性约束,将松弛问题的可行域割掉一块,使得非整数解恰好在割掉的一块中,但又没有割掉离得最近的整数解,得到子问题,重复上述过程直到得到最优解。(其实感觉跟分枝定界法是一个原理)