数学建模笔记—— 整数规划和0-1规划
整数规划和0-1规划
1. 模型原理
1.1 基本概念
在规划问题中,有些最优解可能是分数或小数,但对于某些具体问题,常要求某些变量(全部或部分)的解必须是整数。例如,当变量代表的是机器的台数,工作的人数或装货的车数等。为了满足整数的要求,初看起来似乎只要把已得的非整数解舍入化整就可以了。实际上化整后的数不见得是可行解和最优解,所以应该有特殊的方法来求解整数规划。在整数规划中,如果所有变量都限制为整数,则称为纯整数规划;如果仅一部分变量限制为整数,则称为混合整数规划。整数规划的一种特殊情形是0-1规划,它的变数仅限于0或1。
整数规划:
-
线性整数规划
matlab可进行求解,在线性规划的基础上,加入决策变量取整数的条件
-
非线性整数规划
无特定算法,只能用近似算法,如蒙特卡罗模拟,智能算法
-
0-1规划
特殊的整数规划,matlab中也只能求解线性0-1规划,对于非线性0-1规划也只能求近似解
1.2 线性整数规划求解
[ x , f v a l ] = i n t l i n p r o g ( f , i n t c o n , A , b , A e q , b e q , l b , u b , x 0 ) [x,fval]=intlinprog(f,intcon,A,b,Aeq,beq,lb,ub,x0) [x,fval]=intlinprog(f,intcon,A,b,Aeq,beq,lb,ub,x0)
其中:
- f f f——目标函数的系数变量(必须是求最小值形式下的)
- i n t c o n intcon intcon—— i n t c o n intcon intcon中的值指示决策变量x中应取整数值的分量
- A , b A,b A,b——不等式约束条件的变量系数矩阵和常数项矩阵(必须是 ≤ \le ≤形式)
- A e q , b e q Aeq,beq Aeq,beq——等式约束条件的变量系数矩阵和常数项矩阵
- l b , u b lb,ub lb,ub——决策变量的最小取值和最大取值
i n t c o n intcon intcon的用法:决策变量如果有三个: x 1 , x 2 , x 3 x_1,x_2,x_3 x1,x2,x3;若 x 1 x_1 x1和 x 2 x_2 x2是整数,则 i n t c o n = [ 1 , 3 ] intcon=[1,3] intcon=[1,3]
1.3 线性0-1规划的求解
仍然使用 i n t l i n p r o g intlinprog intlinprog函数求解,只需要限定 l b lb lb和 u b ub ub即可
例如:三个决策变量: x 1 , x 2 , x 3 x_1,x_2,x_3 x1,x2,x3,