单纯形法例题
1、 例1、目标函数 maxz=2
+3
约束条件:
解:首先要将约束条件化为标准形:由此可以看出我们需要加上三个松弛变量,
.得到的标准形式为:
maxz=2 +3
+0
+0 +0
然后要将其初始的单纯形表画出来: 2 3 0 0 0
0 0 0 b 8 1 2 0 1 0 0 3 0 0 1 0 0 0 0 1 0 4 - 3 16 4 12 0 2 由初始单纯形表可以看出, 为换入变量,而
为换出变量;然后根据:
=
(也就是如果与主元素同行,则用现在的值除以主元素即可得到即将要填入的值,否则,就用现在的值减去与主元素构成矩形的边角上的值的乘积再除以主元素之后的值。例如:上面的第一行所对应的b值为8-(12*2)/4=2,故填入值应该为2。而
则是由我们根据非基变量的检验数的大小,挑选出最大的那个,作为换入变量,然后用b的值除以该换入变量所在的列的所有值,得到
列的值。 2 3 0 0 0 0 0 3 b 2 16 4 3 0 0 0 1 0 1 0 0 0 0 1 0 0 -1/2 0 1/4 -3/4 2 4 - 2 由于在检验数中仍然存在大于等于0的数,而且P1,P5的坐标中有正分量存在,所以需要继续进行迭代运算。通过观察可以看出主元素为1,换入变量为
,换出变量为
,故得到的单纯形表如下: 2 0 3 b 2 8 3 1 0 0 2 0 0 1 0 3 1 -4 0 -2 0 0 1 0 0 1/4 1/4 0 -1/2 0 - 4 12 0 由于检验数中存在正数,且P5和P3中有正分量存在,所以需要继续迭代(换入变量为 ,换出变量为
:得到单纯形表如下: b 2 3 0 0 0
2 0 3 4 4 2 1 0 0 0 0 1 0 0 -2 1/2 -3/2 1/4 1/2 -1/8 -1/8 0 1 0 0 0 此时可以发现检验数中没有大于0的数,表明已经得到了最优解,所以最优解是:
(4,2,0,0,4),故目标函数值z=2*4+2*3=14
2、 合理利用线材问题,现在要做100套钢架,每套用长为2.9m,2.1m,和1.5m的钢各一根,已知原料长7.4m,问应如何下料,使用的原材料最省;
解:首先我们必须要清楚该问题的需要设立的变量是什么。我们分析一下问题,做100套钢架,需要2.9m长的钢100根,2.1m的钢100根,1.5m的钢100根。而一份原料长度是7.4m,它的截取的方法有多少种,我们可以用表格列举出来: 下料根数 长度/m 截取方案 1 2.9 2.1 1.5 所用长度 剩余长度 1 3 7.4 0 2 1 2 7.1 0.3 3 2 1 7.3 0.1 4 1 3 6.6 0.8 5 2 2 7.2 0.2 求解的问题是关于如何去进行下料,使得原材料最省,也就是说如何搭配使用这些方案,使得剩余的总长度最少。由此,我们可以将目标函数和约束条件表述出来:
目标函数:minz=0.3
+0.1 +0.8
+0.2
约束条件
首先可以写出线性方程组的矩阵形式:
发现不存在单位矩阵,所以要采用人造基的方式,也就是要添加人工变量: ,那么线性方程组可以表示为:
,目标函数可以表示为:minz=
+0.3 +0.1
+0.8
+0.2
+M
转换为求目标最大化maxZ=
0.3
0.1 0.8
0.2
M
然后列出初始单纯形表:(注意,加入人工变量之后,它所对应的系数为-M,而非0) -M -M -M b 100 1 100 0 100 4M 换入变量为
,换出变量为 ,得到单纯形表为: 0 -0.3 -0.1 -0.8 -0.2 -M -M -M
0 -0.3 1 2 0 2 0 1 -0.1 0 1 3 -0.8 0 2 2 -0.2 1 0 0 -M -M -M 0 1 0 0 0 1 100 - 100/3
-0.3+3M -0.1+3M -0.8+4M -0.2+4M 0 0 0 -M -M 0 b 200/3 0 100 0 100/3 1 0 1 5/3 0 1/3 - -1 1 1 1 0 0 0 1 0 0 -2/3 2 2/3 --1/3 200/3 0 1/3 100/2 - 0 - -0.8 0 0.3+3M 0.1+5/3M 0.2+4/3M -4/3M 换入变量为
,换出变量为
,得到的单纯形表为:
-M -0.3 0 b 50/3 0 50 0 0 -0.3 -0.1 0 1 5/3 0 -0.8 -3/2 1/2 -0.2 -M -5/3 1 1 0 -M -M -1/3 10 0 - -100 -1/2 1/2 100/3 1 0 1/3 -1 2/3 0 0 0.15-3/2M 1/3 0 0 -0.65-0.1-0.1+5/3M 3/2M 5/3M 0 -4/3M 换入变量为 ,换出变量为
,得到的单纯形表为:
-0.1 -0.3 0 b 0 -0.3 0 1 0 0 -0.1 -0.8 -0.2 -M 1 0 0 0 3/5 0 -1/5 -M -3/10 1/2 1/10 -M -1/5 0 2/5 10 0 50 0 30 1 0 -9/10 -1 1/2 1 13/10 1 -0.74 0 -M+0.06 -M+0.12 -M-0.02 所以,最优解为:(30,50,10,0,0,0,0,0)。也就是说最优的下料方案为:按照第一个方案下料30根,第二种方案下料50根,按照第三种方案下料10根。即需要90根原材料可以制造出100套钢架。
3、 某昼夜服务的公交线路每天各时间区段内所需司机和乘务人员数如下表: 班次 1 2 3 4 5 6 时间 6:00-10:00 10:00-14:00 14:00-18:00 18:00-22:00 22:00-2:00 2:00-6:00 所需人数 60 70 60 50 20 30 设司机和乘务人员分别在各时间区段一开始时上班,并连续工作八个小时,问该公交线路至少配备多少名司机和乘务人员,列出这个问题的线性规划模型。
解:
目标函数:minz=
约束条件:
4、 利用单纯形算法求解线性规划问题
目标函数为:Max Z=4 +3
约束条件为:
解:首先将线性方程组化为标准形式:添加松弛变量: ,
,
,得到的方程式为:
目标函数:Max Z=4
+3
+0
+0
+0
约束条件为:
接着将初始单纯形表列出: 0 0 0 b 1600 2500 400 4 2 5 4 2 2.5 0 3 3 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 800 500 400
由上表可以看出, 为换入变量,而
为换出变量。然后根据变换公式可以得到变换之后的单纯形表如下: 0 0 4 b 800 500 400 0 0 1 0 0 3 4 2 3 1 0 0 0 0 0 1 0 0 0 -2 -5 1 -4 0 400 200 0
由上表可以看出,换入变量为
,换出变量为 ,单纯形表如下: 0 3 4 b 400 200 400 0 0 1 0 4 0 1 0 0 3 1 0 0 0 0 -4/5 2/5 0 -6/5 -2 1 2 0 0 200 - 400
由上表可以看出,换入变量为
,换出变量为
得到的单纯形表如下: 0 3 4 b 200 600 200 0 0 1 0 4 0 1 0 0 3 1/2 1 0 -3 0 -2/5 -2/5 2/5 -2/5 0 1 0 0 0 0
由于,检验数均为非负,所以得到了最优解,且最优解为(200,600,0,0,200);
故目标函数的最大值为: Z=2600