一、规划分类
1.线性规划:决策变量的线性表达式,能写成内积
2.非线性规划:高次,组合项x1*x2等
3.整数规划:变量取整(含线性整数规划和非线性整数规划,非线性整数规划采用蒙特卡洛模拟求解)
4.0~1规划:整数变量取值取为0和1
二、线性规划求解
1.符号代表
类似线性代数求法:化为Ax=b
全部化为求解min,求max添minus转化为min
约束全部是小于号,大于号要进行转化
不等式约束、等式约束、上下界约束
求解 min z=Cx
A表不等式约束变量前系数
b表示不等式常量
aeq表等式约束变量系数
beq表等式常量
2.函数
linprog(linear programing)
[x,fval]=linprog[ c , A , b , aeq , beq , lb , ub ,x0]
x0是初始值线性规划中一般不重要不予以赋值
不等式约束和等式约束不存在时仍要写出为" [ ] "
无上下限时设置 lb(i)=inf ,ub(i)=inf
注意:所有的条件都是带有等于号的,如果是单纯的大于小于号需要放松条件,例如x1>0可化为,x1>=0.000001.
三、整数规划
这里只讨论线性整数规划,顺便提一下,0-1规划是整数规划最为显著且使用广泛的一种整数规划
所使用函数:intlinprog
[x,fnval]=intlinprog[c,intcon,A,b,aeq,beq,lb,ub]
与线性规划区别在于“intcon”( int constrain ),是为了确定整数变量位置
例x1,x2 , x3 三个变量,x1和x3是整数,intcon为[1,3]
(注意,intlinprog不支持初始值设定的需求)
经典例题
(1)背包问题
变量为0-1时使用,比如货物1——10种,每个货物的运送与否,只有两种情况,无非是运(1),不运(0),本质是0-1规划问题。
(2)指派问题
双向选择,未知量数目多,但仍然是0-1整数规划
(3)切割问题
首先要给出较差的切割方法,再通过枚举法列出所有的可能优化方案再按照0-1规划求解。