##本文参考司守奎著《数学建模算法与程序》第二章内容##学习笔记
1.概论
整数规划
规划中的变量(部分或者全部)限制为整数时,称为整数规划
(2)分类
一般不加特殊说明时,指整数线性规划
纯(完全)整数规划 | 变量全限制为整数 |
混合整数规划 | 变量部分限制为整数的 |
(3)特点
一
原线性规划有最优解,当自变量限制为整数后,其整数规划解出现下述情况:
①原线性规划最优解全是整数,则整数规划最优解与线性规划最优解一致。
②整数规划无可行解。
③有可行解(当然就存在最优解),但最优解值变差。
二
整数规划最优解不能按照实数最优解简单取整而获得。
(4)求解方法分类
(i)分枝定界法—可求纯或混合整数线性规划。
(ii)割平面法—可求纯或混合整数线性规划。
(iii)隐枚举法—求解“0-1”整数规划: ①过滤隐枚举法; ②分枝隐枚举法。
(iv)匈牙利法—解决指派问题(“0-1”规划特殊情形)。
(v)蒙特卡洛法—求解各种类型规划。
2.方法介绍
1.分支界定法
主要内容与思路
对有约束条件的最优化问题(其可行解为有限数)的所有可行解空间恰当地进行系统搜索,这就是分枝与定界内容。
通常,把全部可行解空间反复地分割为越来越小的子 集,称为分枝;并且对每个子集内的解集计算一个目标下界(对于最小值问题),这称 为定界。在每次分枝后,凡是界限超出已知可行解集目标值的那些子集不再进一步分枝,这样,许多子集可不予考虑,这称剪枝。这就是分枝定界法的主要思路。
求解生产进度问题、旅行推销员问题、工厂 选址问题、背包问题及分配问题等
接下来试用该方法解决如下问题
%(i)代码
f=[-40;-90];
A=[9,7;7,20];
b=[56;70];
[x,fval]=linprog(f,A,b)
%(ii)代码
f=[-40;-90];
A=[9,7;7,20];
b=[56;70];
Aeq=[];
beq=[];
lb=[0;0]
ub=[4;inf];
[x,fval]=linprog(f,A,b,Aeq,beq,lb,ub)
f=[-40;-90];
A=[9,7;7,20];
b=[56;70];
Aeq=[];
beq=[];
lb=[5;0]
ub=[inf;inf];
[x,fval]=linprog(f,A,b,Aeq,beq,lb,ub)
从以上解题过程可得用分枝定界法求解整数规划(最大化)问题的步骤为:
开始,将要求解的整数规划问题称为问题A ,将与它相应的线性规划问题称为问题B
2. 0 −1型整数规划
变量x取值为0或1,称为0-1变量或二进制变量
实际问题
关于0-1型整数规划问题问题将在第二部分给出