快速用matlab求解线性规划
2017-09-29 09:33
267 查看
快速求解matlab线性规划问题
用matlab也有一年时间了,但是从来都懒得记怎么用,所以老师上个月讲的函数,这个月要用的时候一般都会在窗口自动先打出help 某函数,于是最近整理了一个可以快速看懂函数用法的文章,帮助和我一样懒惰的同学........eg: 某饭店24小时中需要服务员数量如下表,如果每个服务员连续工作8小时,试问在2点,6点,10点,14点,18点,22点开始上班的服务员为多少时,一天所需服务员人数最少???
时间 2-6 6-10 10-14 14-18 18-22 22-2
最少服务员 4 8 10 7 12 4
解:设在2点,6点,10点,14点,18点,22点开始上班的服务员分别为 x1,x2,x3,x4,x5,x6
Max x1+x2+x3+x4+x5+x6 (习惯用mathtype但复制不过来。。。。。。)
st x1+x6>=4
x1+x2>=8
x2+x3>=10
x3+x4>=7
x4+x5>=12
x5+x6>=4
编写M文件
c=[1 1 1 1 1 1];
>> A=[-1 0 0 0 0 -1;-1 -1 0 0 0 0;0 -1 -1 0 0 0;0 0 -1 -1 0 0;0 0 0 -1 -1 0 0 0 0 -1 -1 ];
>> b=[-4; -8; -10; -7; -12; -4];
>> vlb=[0;0;0;0;0;0];
>> vub=[];
>> Aeq=[];
>> beq=[];
>> [x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub);
求出结果为 fval=26 即总人数为26人
各个时段人数分别为
x =
2.7154
6.9396
3.0604
6.4597
5.5403
1.2846
由题意可知,人数不可能为小数,这是一个线性的整数规划问题,于是我们尝试用lindo软件
输入
Min x1+x2+x3+x4+x5+x6
st
x1+x6>=4
x1+x2>=8
x2+x3>=10
x3+x4>=7
x4+x5>=12
x5+x6>=4
end
gin 6
得到结果为
1) 26.00000
VARIABLE VALUE REDUCED COST
X1 0.000000 1.000000
X2 8.000000 1.000000
X3 2.000000 1.000000
X4 12.000000 1.000000
X5 0.000000 1.000000
X6 4.000000 1.000000
所以在2点,6点,10点,14点,18点,22点开始上班的服务员分别为
0 ,8 ,2,12, 0, 4 一共26人,将所得结果与matlab结果对比检验,总人数都为26人
相关文章推荐
- matlab 求解线性规划问题
- matlab求解非线性约束+线性规划+超定欠定普通方程组等优化问题
- 矩阵快速幂算法的原理与实践——“使用MATLAB求解大型斐波那契数"
- 运筹学——线性规划Matlab求解
- MATLAB求解线性规划(含整数规划和0-1规划)问题
- 自适应全变分图像去噪模型及其快速求解(Matlab CODE)
- matlab 求解线性规划
- matlab实现蒙特卡洛方法求解线性规划问题
- MATLAB求解线性规划(含整数规划和0-1规划)问题
- 线性规划问题的matlab求解
- MatLab建模学习笔记7——线性规划问题求解
- 组合数快速求解
- 随机梯度下降法求解SVM(附matlab代码)
- 快速求解组合数(筛法+快速幂)
- Emacs+Matlab快速配置
- 徐海蛟:MatLab一维数组求解局部极值
- KMP算法---快速求解next数组
- 使用 Matlab 的 bvp4c 求解边值问题
- MATLAB中带有符号变量的阶乘、累加函数的表达与求解
- matlab 0-1规划求解指派问题