线性规划单纯形解法实验报告.docx
- 文档编号:12656521
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:44
- 大小:143.19KB
线性规划单纯形解法实验报告.docx
《线性规划单纯形解法实验报告.docx》由会员分享,可在线阅读,更多相关《线性规划单纯形解法实验报告.docx(44页珍藏版)》请在冰豆网上搜索。
线性规划单纯形解法实验报告
运筹学实验报告
题目:
线性规划单纯形解法
实验单纯形法求解线性规划
运行环境:
电脑型号方正操作系统WindowsXP32位处理器英特尔酷睿2双核内存4GB
Matlab7.1
一.实验目的:
进一步熟练掌握单纯形法求解线性规划。
二.实验内容:
单纯形法求解线性规划4个
三.实验原理:
线性规划单纯形法(线性规划解有四种情形,唯一最优解,无穷多个最解,无界解,无可行解)
两阶段法:
第一阶段是判断线性规划是否有可行解,如果没有可行解,当然就没有基本可行解,计算停止;如果有可行解,按第一阶段的方法可以求得一个初始的基本可行解,使运算进入第二阶段。
第二阶段是从这个初始的基本可行解开始,使用单纯形方法或者判定线性规划问题无届,或者求得一个最优解。
是否否否
否
是是
是
否
四.实验步骤
1要求上机实验前先编写出程序代码
2编辑录入程序
3调试程序并记录调试过程中出现的问题及修改程序的过程
4经反复调试后,运行程序并验证程序运行是否正确。
5记录运行时的输入和输出。
6.解决实际问题
五.例题
1.唯一最优解:
A=[1,0,0,1,2;0,1,0,4,0;0,0,1,0,0]
b=[8;16;12]
c=[0,0,0,2,3]
>>A=[1,0,0,1,2;0,1,0,4,0;0,0,1,0,0];
>>b=[8;16;12];
>>c=[0,0,0,2,3];
>>[x,minf,zuiyoubiao,flag]=linp(A,c,b)
list=
000-2-30000
1115200036
100121008
0104001016
0010000112
list=
000-2-30000
01140-10028
100121008
0104001016
0010000112
list=
000-2-30000
00100-1-1012
100121008
0104001016
0010000112
list=
000-2-30000
00000-1-1-10
100121008
0104001016
0010000112
已找到最优解!
最优可行解为:
x=
8
16
12
0
0
最优值为:
minf=
0
最优解对应的单纯形表为:
zuiyoubiao=
000-2-30
100128
0104016
0010012
flag=
1
x=
8
16
12
0
0
minf=
0
flag=
1
>>
2.无穷多最优解:
A=[1,0,0,1,2;0,1,0,4,0;0,0,1,0,0]
b=[8;16;12]
c=[0,0,0,2,4]
>>A=[1,0,0,1,2;0,1,0,4,0;0,0,1,0,0];
>>b=[8;16;12];
>>c=[0,0,0,2,4];
>>[x,minf,zuiyoubiao,flag]=linp(A,c,b)
list=
000-2-40000
1115200036
100121008
0104001016
0010000112
list=
000-2-40000
01140-10028
100121008
0104001016
0010000112
list=
000-2-40000
00100-1-1012
100121008
0104001016
0010000112
list=
000-2-40000
00000-1-1-10
100121008
0104001016
0010000112
已找到最优解!
最优可行解为:
x=
8
16
12
0
0
最优值为:
minf=
0
最优解对应的单纯形表为:
zuiyoubiao=
000-2-40
100128
0104016
0010012
flag=
1
x=
8
16
12
0
0
minf=
0
flag=
1
>>
3.无界解:
A=[1,0,-2,1;0,1,1,-1]
b=[4;2]
c=[0,0,1,1]
>>A=[1,0,-2,1;0,1,1,-1];
>>b=[4;2];
>>c=[0,0,1,1];
>>[x,minf,zuiyoubiao,flag]=linp(A,c,b)
list=
00-1-1000
11-10006
10-21104
011-1012
list=
00-1-1000
011-1-102
10-21104
011-1012
list=
00-1-1000
0000-1-10
10-21104
011-1012
已找到最优解!
最优可行解为:
x=
4
2
0
0
最优值为:
minf=
0
最优解对应的单纯形表为:
zuiyoubiao=
00-1-10
10-214
011-12
flag=
1
x=
4
2
0
0
minf=
0
flag=
1
>>
4.无可行解:
A=[1,0,1,-1,-1,0;0,1,-3,1,0,-1]
b=[0;3]
c=[-10000,-10000,1,1,0,0]
>>A=[1,0,1,-1,-1,0;0,1,-3,1,0,-1];
>>
>>b=[0;3];
>>c=[-10000,-10000,1,1,0,0];
>>[x,minf,zuiyoubiao,flag]=linp(A,c,b)
list=
Columns1through7
1000010000-1-1000
11-20-1-10
101-1-101
01-310-10
Columns8through9
00
03
00
13
list=
Columns1through7
010000-100019999100000-10000
01-310-1-1
101-1-101
01-310-10
Columns8through9
00
03
00
13
list=
Columns1through7
0019999-11000010000-10000
000000-1
101-1-101
01-310-10
Columns8through9
-10000-30000
-10
00
13
list2=
-1999900199982999910000-30000
101-1-100
310-2-3-13
有可行解,但是没有最优解可行解为:
x=
0
3
0
0
0
0
minf=
-Inf
zuiyoubiao=
[]
flag=
0
x=
0
3
0
0
0
0
minf=
-Inf
flag=
0
五.实例计算
某医院昼夜24小时各时段需要的护士数量如下:
2:
00~6:
0010人,6:
00~10:
0015人,10:
00~14:
0025人,
14:
00~18:
0020人,18:
00~22:
0018人,22:
00~2:
0012人。
护士分别于2:
00,6:
00,10:
00,14:
00,18:
0,22:
00分六批上班,并连续工作8小时。
试确定:
(1)该医院至少应设多少名护士,才能满足值班需要;
(2)若医院可聘任合同工护士,上班时间同正式工护士。
若正式工护士报酬为每小时10元,合同工护士报酬为每小时15元,问医院是否应聘任合同工护士及聘多少名?
解:
(1)
设2:
00~6:
00需要X1人,6:
00~10:
00X2人,10:
00~14:
00X3人,
14:
00~18:
00X4人,18:
00~22:
00X5人,22:
00~2:
00X6人。
列不等式为
MinZ=X1+X2+X3+X4+X5+X6
s.t.X1+X6≥10
X1+X2≥15
X2+X3≥25
X3+X4≥20
X4+X5≥18
X5+X6≥12
Xj≥0,j=1…6
引入非负的剩余变量Xj≥0,j=7…12将不等约束化为等式约束
MinZ=X1+X2+X3+X4+X5+X6
s.tX1+X6-X7=10
X1+X2-X8=15
X2+X3-X9=25
X3+X4-X10=20
X4+X5-X11=18
X5+X6-X12=12
Xj≥0,j=1…12
输入:
系数矩阵:
A=[100001-100000;
1100000-10000;
01100000-1000;
001100000-100;
0001100000-10;
00001100000-1]
右端向量:
b=[10;15;25;20;18;12]
约束条件系数:
c=[111111000000]
>>A=[100001-100000;1100000-10000;01100000-1000;001100000-100;0001100000-10;00001100000-1;]
b=[10;15;25;20;18;12]
c=[111111000000];
>>[x,minf,zuiyoubiao,flag]=linp(A,c,b)
list=
Columns1through14
-1-1-1-1-1-100000000
222222-1-1-1-1-1-100
100001-10000010
1100000-1000001
01100000-100000
001100000-10000
0001100000-1000
00001100000-100
Columns15through19
00000
0000100
000010
000015
100025
010020
001018
000112
list=
Columns1through14
0-1-1-1-10-10000010
0222201-1-1-1-1-1-20
100001-10000010
01000-11-10000-11
01100000-100000
001100000-10000
0001100000-1000
00001100000-100
Columns15through19
000010
000080
000010
00005
100025
010020
001018
000112
list=
Columns1through14
00-1-1-1-10-1000001
002222-11-1-1-1-10-2
100001-10000010
01000-11-10000-11
001001-11-10001-1
001100000-10000
0001100000-1000
00001100000-100
Columns15through19
000015
000070
000010
00005
100020
010020
001018
000112
list=
Columns1through14
000-1-10-10-100010
0002201-11-1-1-1-20
100001-10000010
01000-11-10000-11
001001-11-10001-1
00010-11-11-100-11
0001100000-1000
00001100000-100
Columns15through19
100035
-200030
000010
00005
100020
-11000
001018
000112
list=
Columns1through14
0000-1-10-10-10001
000022-11-11-1-10-2
100001-10000010
01000-11-10000-11
001001-11-10001-1
00010-11-11-100-11
000011-11-11-101-1
00001100000-100
Columns15through19
010035
0-20030
000010
00005
100020
-11000
1-11018
000112
list=
Columns1through14
0000000-10-10-101
000000-11-11-110-2
100001-10000010
01000-11-10000-11
001001-11-10001-1
00010-11-11-100-11
000000-11-11-111-1
00001100000-100
Columns15through19
010147
0-20-26
000010
00005
100020
-11000
1-11-16
000112
list=
Columns1through14
000000-10-10-1010
000000000000-1-1
100001-10000010
01000-100-11-1100
001001000-11-100
00010-10000-1100
000000-11-11-111-1
00001100000-100
Columns15through19
101053
-1-1-1-10
000010
1-11-111
01-1114
001-16
1-11-16
000112
已找到最优解!
最优可行解为:
x=
10
11
14
6
12
0
0
6
0
0
0
0
最优值为:
minf=
53
最优解对应的单纯形表为:
zuiyoubiao=
000000-10-10-1053
100001-10000010
01000-100-11-1111
001001000-11-114
00010-10000-116
000000-11-11-116
00001100000-112
flag=
1
x=
10
11
14
6
12
0
0
6
0
0
0
0
minf=
53
flag=
1
通过运算得知最少需要53人。
2:
00~6:
00需要10人,6:
00~10:
0011人,10:
00~14:
0014人,
14:
00~18:
006人,18:
00~22:
0012人,22:
00~2:
000人。
(2)
在
(1)的基础上设X1’X2’X3’X4’X5’X6’分别为2:
00~6:
00直至晚上22:
:
00开始上班的合同工护士,则有:
10×8=8015×8=120
MinZ=80×(X1+X2+X3+X4+X5+X6)120×(X1’+X2’+X3’+X4’+X5’+X6’)
s.t.X1+X6+X1’+X6’≥10
X1+X2+X1’+X2’≥15
X2+X3+X2’+X3’≥25
X3+X4+X3’+X4’≥20
X4+X5+X4’+X5’≥18
X5+X6+X5’+X6’≥12
Xj≥0,j=1…6,Xj’≥0,j=1…6
引入非负的剩余变量Xj≥0,j=7…12将不等约束化为等式约束
MinZ=80×(X1+X2+X3+X4+X5+X6)120×(X1’+X2’+X3’+X4’+X5’+X6’)
s.t.X1+X6+X1’+X6’-X7=10
X1+X2+X1’+X2’-X8=15
X2+X3+X2’+X3’-X9=25
X3+X4+X3’+X4’-X10=20
X4+X5+X4’+X5’-X11=18
X5+X6+X5’+X6’-X12=12
Xj≥0,j=1…12,Xj’≥0,j=1…6
输入系数矩阵A=[100001100001-100000;
1100001100000-10000;
01100001100000-1000;
001100001100000-100;
0001100001100000-10;
00001100001100000-1]
右端向量b=[10;15;25;20;18;12]
约束条件矩阵c=[808080808080120120120120120120000000]
>>A=[100001100001-100000;
1100001100000-10000;
01100001100000-1000;
001100001100000-100;
0001100001100000-10;
00001100001100000-1];
>>b=[10;15;25;20;18;12];
>>c=[808080808080120120120120120120000000];
>>[x,minf,zuiyoubiao,flag]=linp(A,c,b)
list=
Columns1through11
-80-80-80-80-80-80-120-120-120-120-120
22222222222
10000110000
11000011
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 线性规划 单纯 解法 实验 报告