单纯形法习题详解-单纯形法练习题
- 格式:doc
- 大小:798.00 KB
- 文档页数:15
两阶段单纯形法例题详解两阶段单纯形法是一种解决线性规划问题的有效方法。
这种方法分为两个阶段:第一阶段:使用单纯形法求解初始基可行解。
第二阶段:利用对偶价格和两阶段单纯形法的理论,通过迭代来获得最优解。
以下是一个两阶段单纯形法的例题详解:例题:假设我们有一个线性规划问题,形式如下:Maximize z = c1x1 + c2x2 + c3x3Subject to:Ax ≤bx1 + x2 + x3 ≤4x1, x2, x3 ≥0在这个问题中,我们有4个约束条件(A1, A2, A3, A4)和3个决策变量(x1, x2, x3)。
我们的目标是找到一组最优解,使得目标函数z最大化。
第一阶段:使用单纯形法求解初始基可行解。
1. 首先,我们找到一个初始基可行解。
在这个例子中,我们可以选择A1, A2, A3作为初始基。
对应的基变量为x1, x2, x3。
对应的对偶价格为pi1, pi2, pi3。
这些值可以通过解对应的对偶问题得到。
2. 根据基变量的值和对偶价格,我们可以计算出目标函数的值。
在这个例子中,目标函数的值为c1*x1 + c2*x2 + c3*x3。
3. 如果这个目标函数值不是最优的,我们需要进入第二阶段。
否则,我们可以直接输出这个基可行解作为最优解。
第二阶段:利用对偶价格和两阶段单纯形法的理论,通过迭代来获得最优解。
1. 在这个阶段,我们需要不断迭代,直到找到一个最优解或者确定不存在最优解为止。
每次迭代时,我们选择一个非基变量进入基变量,并重新计算目标函数的值。
在这个例子中,我们选择A4进入基变量。
对应的基变量为x1, x2, x4。
对应的对偶价格为pi1, pi2, pi4。
这些值可以通过解对应的对偶问题得到。
2. 根据基变量的值和对偶价格,我们可以计算出目标函数的值。
如果这个目标函数值比之前的最优解更好,那么我们更新最优解。
否则,我们继续迭代,直到找到一个最优解或者确定不存在最优解为止。
单纯形法(Simplex Method)是线性规划问题的一种求解方法。
下面我将以一个简单的线性规划问题为例,详细解释如何使用单纯形法求解。
例题:假设我们有一个简单的线性规划问题,目标是最小化目标函数 z = 3x + 2y,约束条件是 x + y <= 10, x >= 0, y >= 0。
首先,我们需要构建问题的数学模型。
数学模型可以表示为以下形式:z = 3x + 2yx + y <= 10x >= 0y >= 0然后,我们可以将这个线性规划问题表示为一个单纯形表。
单纯形表的形式如下:| c | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ||---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---||x | y | z | u | v | w | x1 | x2 | x3 | ... | xn | s.x | s.y | s.z | c.val | b.x | b.y | b.z | dual.val | dual.x1 | dual.x2 | ... | dual.xn ||在这个表中,c 是目标函数的系数,b 是约束条件的系数,s 是松弛变量的系数,dual 是对偶问题的系数,c.val 是当前解的目标函数值,b.x, b.y, b.z 是约束条件的边界值,s.x, s.y, s.z 是松弛变量的值。
现在,我们可以将例题中的数据填入单纯形表:c = [3, 2, 1]b = [1, 0, -10]s = [1, 1, 0]dual = []然后,我们可以开始迭代求解。
在每一次迭代中,我们首先找到进入变量和离开变量,然后更新单纯形表中的数据。
单纯形法原理及例题
单纯形法原理:
单纯形法是求解线性规划问题的一种数学方法,它是由美国数学家卢克·单纯形于1947年发明的。
用单纯形法求解线性规划的过程,往往利用线性规划的对偶形式,将原问题变换为无约束极大化问题,逐步把极大化问题转换为标准型问题,最后利用单纯形法的搜索方法求解满足所有约束条件的最优解。
例题:
问题:求解最小化目标函数z=2x1+x2的线性规划问题,约束条件如下:
x1+2x2≥3
3x1+x2≥6
x1,x2≥0
解:将上述线性规划问题转换为无约束极大化问题,可得:
极大化问题:
Max z=-2x1-x2
s.t. x1+2x2≤3
3x1+x2≤6
x1,x2≥0
将极大化问题转换为标准型问题,可得:
Max z=-2x1-x2
s.t. x1+2x2+s1=3
3x1+x2+s2=6
x1,x2,s1,s2≥0
运用单纯形法的搜索方法求解:
令x1=0,x2=0,则可得s1=3,s2=6,即(0,0,3,6)是单纯形的初始解;
令z=-2x1-x2=0,代入约束条件,可得x1=3,x2=3,则可得s1=0,s2=0,即(3,3,0,0)是新的单纯形解。
由于s1=s2=0,说明x1=3,x2=3是线性规划问题的最优解,且最小值为z=2*3+3=9。
单纯形法求解线性规划问题例题线性规划问题(LinearProgrammingProblem,LPP)是指由一系列约束条件和优化目标函数组成的数学最优化模型,它可以用于解决各种单位时间内最高效率的分配问题。
在求解LPP的过程中,单纯形法(Simplex Method)是最主要的优化算法之一。
单纯形法的原理是采用一组基本变量的拿破仑表示法,一步步构造出线性规划问题的最优解。
下面我们来看一个例子:有公司向农户出售两种农药,甲和乙,每瓶甲农药售价3元,每瓶乙农药售价2元,公司每天有200瓶甲农药和150瓶乙农药,问该公司售出多少瓶甲农药和乙农药,能每天获得最大收益?该问题可表示为下述线性规划模型:最大化 $3x_1+2x_2$约束条件:$x_1+x_2le 200$$2x_1+x_2le 150$$x_1,x_2ge 0$由上述模型可知,有两个未知量$x_1$和$x_2$,它们分别代表出售的甲农药和乙农药的瓶数。
单纯形法的基本思想是采用一组基本变量表示未知量,将未知量$x_1$和$x_2$表示为由两个基本变量$y_1$和$y_2$组成的拉格朗日变换系数矩阵形式,即:$x_1+x_2=y_1+y_2$$2x_1+x_2=m(y_1+y_2)$其中,m是一个系数,根据上面的约束条件,m取200/150=4/3,则:$x_1=y_1+frac{1}{3}y_2$$x_2=y_2-frac{1}{3}y_2$由此可以得到该问题的新的线性规划模型:最大化 $3y_1+2(frac{4}{3})y_2$约束条件:$y_1+y_2le 200$$y_2le 150$$y_1,y_2ge 0$可以看出,该问题所构建出来的新的线性规划模型比原来的模型更加容易求解。
我们将建立单纯形表,以便求出最优解。
首先列出单纯形表:$begin{array}{|c|c|c|c|c|c|c|}hline& y_1 & y_2 & S_1 & S_2 & f & b hline1 & 1 & 1 & 1 & 0 & 3 & 200 hline2 & 0 & 1 & 0 & 1 & 4/3 & 150 hlineend{array}$其中,$y_1$和$y_2$是基本变量,$S_1$和$S_2$是可行解系数,$f$是目标函数系数,$b$是右端项。
第二章单纯形法2.1 单纯形法原理(大M法)例3 min z=4x1+3x2+8x3x1+x3≥2x2+2x3≥5x j≥0(j=1,2,3)一、构造初始可行基(m×m单位阵)每个约束都有一个系数为+1的独有变量(基变量)1.引入附加变量,化为标准型(首先变为b≥0)x1+x3-x4=2x2+2x3-x5=5x j≥0(j=1,2,...,5)(x4、x5为附加变量)min z=4x1+3x2+8x3+0x4+0x5假设化为标准型后,仍无初始可行基2. 若约束中附加变量系数为-1或原约束为等式,必须引入人工变量x1+x3-x4+x6=2 ① (基变量为x6)x2+2x3-x5+x7=5 ② (基变量为x7)x j≥0(j=1,2,...,7)(x6、x7为人工变量)人工变量>0时,约束被篡改3. 目标函数中附加变量系数为0,而人工变量系数为Mmin z=4x1+3x2+8x3+0x4+0x5+M x6+M x7③M——罚因子(很大正数)大M法——罚函数法二、求出一个基本可行解1. 用非基变量表示基变量和目标函数由①:x6=2-x1-x3+x4④由②:x7=5-x2-2x3+x5⑤将④、⑤代入③:z=(4-M)x1+(3-M)x2+(8-3M)x3+M x4+M x5+7M ⑥检验数σj= ⑥式中各非基变量x j的系数,z=z0+∑σ∈Jj jj x(J为非基变量下标的集合)基变量的检验数=02、求出一个基本可行解及相应z值令各非基变量为0,x1=x2=x3=x4=x5=0由④、⑤、⑥得x6=2,x7=5,z=7M三、最优性检验(求min)1.最优性检验的依据——检验数σj2.最优解判别定理:若在极小化问题中,对于某个基本可行解,所有检验数σj≥0,且人工变量为0,则这个基本可行解是最优解。
例3中,σ1<0,σ2<0,σ3<0,需继续迭代3.无穷多组最优解判别定理:若在极小化问题中,对于某个基本可行解,所有检验数σj≥0,又有某个非基变量检验数为0,且人工变量为0,则线性规划问题有无穷多组最优解。
两阶段单纯形法引言在线性规划中,两阶段单纯形法是一种常用的求解方法。
它通过两个阶段的迭代,逐步优化目标函数值,从而找到最优解。
本文将详细介绍两阶段单纯形法的步骤和原理。
步骤两阶段单纯形法主要分为两个阶段:人工变量法和单纯形法。
人工变量法•将目标函数按照线性规划的标准形式化简。
•引入人工变量(artificial variables)来转换非标准化的约束条件为等式形式。
•新增的人工变量构成的目标函数为目标是最小化的。
•利用单纯形法求解这个新增的最小化目标函数,得到一个初始可行解。
•如果初始可行解的目标函数值为0,说明原问题有解;如果目标函数值不为0,则原问题无解。
单纯形法•判断初始基本可行解是否是最优解,如果不是,则进行下面的优化步骤。
•选择一个入基变量(entering variable),即将要进入基本解的变量。
•选择一个出基变量(leaving variable),即将要离开基本解的变量。
•使用基本变量和非基本变量之间的约束方程来计算新的基本解。
•迭代以上步骤,直到找到满足优化条件的最优解。
示例假设有一个线性规划问题如下:max Z = 5x1 + 3x2subject tox1 + 2x2 <= 62x1 + x2 >= 4x1, x2 >= 0首先,将目标函数和约束条件标准化,得到以下形式:max Z = 5x1 + 3x2subject to-x1 - 2x2 <= -62x1 + x2 >= 4x1, x2 >= 0然后,采用人工变量法引入人工变量(s1和s2),得到以下形式:max Z = 5x1 + 3x2subject to-x1 - 2x2 + s1 = -62x1 + x2 - s2 = 4x1, x2, s1, s2 >= 0接下来,我们利用单纯形法求解最小化目标函数s1 + s2的初始可行解。
根据单纯形表格的形式,我们可以得到初始表格如下:Cj | -1 | -1 | 0 | 0 |------- |----|----|----|----|Cb | 0 | 0 | 1 | 1 |------- |----|----|----|----|Var. |x1 |x2 |s1 |s2 |------- |----|----|----|----|-1 | -1 | -2 | 1 | 0 |------- |----|----|----|----|0 | 2 | 1 | 0 | -1 |按照单纯形法的步骤,我们选取入基变量s1和出基变量x2,进行迭代计算,得到新的表格:Cj | -1 | -4 | 1 | -3 |------- |----|----|----|----|Cb | 0 | 2 | -1 | 2 |------- |----|----|----|----|Var. |x1 |s2 |s1 |x2 |------- |----|----|----|----|-1 | -1 | 0 | 1 | 2 |------- |----|----|----|----|2 | 2 | 0 | 0 | -1 |继续迭代,直到得到满足优化条件的最优解。
《管理运筹学》第四版第5章单纯形法课后习题解析《管理运筹学》第四版课后习题解析第5章单纯形法1.解:表中a 、c 、e 、f 是可⾏解,f 是基本解,f 是基本可⾏解。
2.解:(1)该线性规划的标准型如下。
max 5x 1+9x 2+0s 1+0s 2+0s 3 s.t. 0.5x 1+x 2+s 1=8 x 1+x 2-s 2=100.25x 1+0.5x 2-s 3=6 x 1,x 2,s 1,s 2,s 3≥0(2)⾄少有两个变量的值取零,因为有三个基变量、两个⾮基变量,⾮基变量取零。
(3)(4,6,0,0,-2)T(4)(0,10,-2,0,-1)T(5)不是。
因为基本可⾏解要求基变量的值全部⾮负。
(6)略 3.解:令333x x x ''-'=,z f -=改为求f max ;将约束条件中的第⼀个⽅程左右两边同时乘以-1,并在第⼆和第三个⽅程中分别引⼊松弛变量5x 和剩余变量6x ,将原线性规划问题化为如下标准型:j x '、j x ''不可能在基变量中同时出现,因为单纯性表⾥⾯j x '、j x ''相应的列向量是相同的,只有符号想法⽽已,这时候选取基向量的时候,同时包含两列会使选取的基矩阵各列线性相关,不满⾜条件。
4.解:(1)表5-10,,,,,, 24423 1863 1334 7234max 654332163321543321433214321≥'''=-''+'--=++''+'-+-=+''+'---++-=x x x x x x x x x x x x x x x x x x x x x x x x x x x f 约束条件:(2)线性规划模型如下。
max 6x 1+30x 2+25x 3 s.t. 3x 1+x 2+s 1=40 2x 2+x 3+s 2=50 2x 1+x 2-x 3+s 3=20 x 1,x 2,x 3,s 1,s 2,s 3 ≥0(3)初始解的基为(s 1,s 2,s 3)T ,初始解为(0,0,0,40,50,20)T,对应的⽬标函数值为0。
线性规划单纯形法(例题)《吉林建筑工程学院城建学院人文素质课线性规划单纯形法例题》⎪⎩⎪⎨⎧≥=++=+++++=⎪⎩⎪⎨⎧≥≤+≤++=0,,,24261553).(002max ,,0,24261553).(2max 14.18432142132143214321212121x x x x x x x x x x t s x x x x z x x x x x x x x t s x x z 标准型得到该线性规划问题的,分别加入松驰变量在上述线性规划问题中法求解线性规划问题。
分别用图解法和单纯形)】(页【为初始基变量,选择43,x x)1000(00)0010(01)2050(12)6030(24321=⨯+⨯-==⨯+⨯-==⨯+⨯-==⨯+⨯-=σσσσ为出基变量。
为进基变量,所以选择41x x3/1)6/122/10(00)0210(03/1)3/1240(10)1200(24321-=⨯+-⨯-==⨯+⨯-==⨯+⨯-==⨯+⨯-=σσσσ为出基变量。
为进基变量,所以选择32x x24/724/528/11012/112/124/1100021110120124321-=⨯+-⨯-=-=-⨯+⨯-==⨯+⨯-==⨯+⨯-=)()()()(σσσσ4334341522max ,)43,415(),(2112=+⨯=+===x x z x x X TT 故有:所以,最优解为⎪⎪⎩⎪⎪⎨⎧≥=++=+=+++++=⎪⎪⎩⎪⎪⎨⎧≥≤+≤≤+=0,,,,18232424).(0002max ,,,0,182312212).(52max 24.185432152142315432154321212121x x x x x x x x x x x x t s x x x x x z x x x x x x x x x t s x x z 标准型得到该线性规划问题的,分别加入松驰变量在上述线性规划问题中法求解线性规划问题。
min单纯形法简单例题详解假设有一家工厂生产两种产品 A 和 B,目标是最大化利润。
已知每单位产品 A 的生产时间为 2 小时,产品 B 的生产时间为 3 小时。
每天工厂的总生产时间为 24 小时。
每单位产品 A的利润为 10 美元,产品 B 的利润为 8 美元。
现在要确定工厂每天应该生产多少单位的产品 A 和 B,以最大化总利润。
首先我们需要定义两个变量:x 和 y。
其中,x 表示每天生产的单位数目 A,y 表示每天生产的单位数目 B。
根据问题的要求,我们可以得到两个约束条件:1. 生产时间约束:2x + 3y <= 24(每天生产时间最大为 24 小时)2. 非负约束:x >= 0,y >= 0(生产单位数目不能为负)现在我们可以根据最大化利润的目标函数进行建模。
目标函数为:10x + 8y。
接下来,我们可以使用单纯形法来解决这个问题。
首先,我们将这个问题转化为标准形式。
通过引入两个松弛变量 s1 和 s2,我们可以将不等式约束转化为等式约束:2x + 3y + s1 = 24x + s2 = 0接下来,我们将目标函数进行转化。
由于目标是最大化,我们可以引入一个辅助变量 z,并将目标函数写为:z = -10x - 8y现在,我们可以构建一张初始单纯形表。
表格的第一行包含变量和约束条件的系数以及目标函数的系数。
第一列列出变量和约束条件的名字。
变量 |x |y |s1 |s2 |b |--------|----|----|----|----|----|z |-10 |-8 |0 |0 |0 |s1 |2 |3 |1 |0 |24 |s2 |1 |0 |0 |1 |0 |接下来,我们需要根据单纯形法的规则来迭代计算。
首先,选择一个入基变量和一个出基变量。
根据最大增益准则,我们找到目标函数中系数最小的变量,即 x。
然后,我们需要根据最小比率准则来选择出基变量。
计算每个约束条件右侧与对应入基变量系数的比率,并选择最小的非负比率对应的出基变量。
例1 用单纯形法解下列问题:解:将原问题化成标准形:x 4与添加的松弛变量x 5,x 6在约束方程组中其系数列正好构成一个3阶单位阵,它们可以作为初始基变量,初始基可行解为X =(0, 0, 0,10, 8, 4)T列出初始单纯形表,见表1。
22x 2的系数列的正分量对应去除常数列,最小比值所在行对应的基变量作为换出的基变量。
242)24,110(m in ===θ 因此确定2为主元素(表1中以防括号[]括起),意味着将以非基变量x 2去置换基变量x 6,采取的做法是对约束方程组的系数增广矩阵实施初等行变换,将x 2的系数列(1, -1, 2)T 变换成x 6的系数列(0, 0, 1)T ,变换之后重新计算检验数。
变换结果见表2。
1231234123123min 2..210,248,244,0,1,,4.j x x x s t x x x x x x x x x x x j -++-+=-+≤-+-≤≥=123123412351236max 2..210,248,244,0,1,,6.j x x x s t x x x x x x x x x x x x x j -+-+-+=-++=-+-+=≥=检验数σ3=3>0,当前基可行解仍然不是最优解。
继续“换基”,确定2为主元素,即以非基变量x 3置换基变量x 5。
变换结果见表3。
此时,3个非基变量的检验数都小于0,σ1= -9/4,σ5= -3/2,σ5= -7/4,表明已求得最优解:T)0,0,8,5,12,0(=*X 。
去除添加的松弛变量,原问题的最优解为:T )8,5,12,0(=*X ,最小值为-19例2 用大M 法求解下列问题:12312312313min 3..211,243,21,0,1,,3.j x x x s t x x x x x x x x x j +--+≤+-≥-=≥=解 引进松弛变量x 4、、剩余变量x 5和人工变量x 6、x 7,解下列问题:1234567123412356137min 300()..211243210,1,2,,7j x x x x x M x x s t x x x x x x x x x x x x x j +-++++-++=+--+=-+=≥=用单纯形法计算如下:由于σ1<σ2< 0,说明表中基可行解不是最优解,所以确定x 1为换入非基变量;以x 1的系数列的正分量对应去除常数列,最小比值所在行对应的基变量作为换出的基变量。
习题二2.1 分别用图解法和单纯形法求解下述LP 问题,并指出单纯形法迭代中每一基本可行解跟图解法可行域中哪一极点相互对应。
(1)max z=10x 1+5x 2s.t. 1212123495280,0x x x x x x +≤⎧⎪+≤⎨⎪≥≥⎩(2) max z=2x 1+x 2s.t. 2121212515622450,0x x x x x x x ≤⎧⎪+≤⎪⎨+≤⎪⎪≥≥⎩ 2.2 用单纯形法求解1.7题。
2.3 用单纯形法求解下述LP 问题:(1)max z= x 1+2x 2+3x 3+4x 4s.t. 123412341,,,0x x x x x x x x +++=⎧⎨≥⎩ (2)第一章例4(3)max z= x 1+x 2+x 3+x 4s.t. 12341234123462,,,0x x x x x x x x x x x x +++=⎧⎪-+-=⎨⎪≥⎩(4)min w= x 2-3x 3+2x 5+2x 6s.t. 23413523562412327438100,1,2,...,6j x x x x x x x x x x x j -++=⎧⎪++=⎪⎨-+++=⎪⎪≥=⎩2.4用单纯形法求解下述LP 问题:(1) max z=2x 1+2x 2s.t. 12121210.520,0x x x x x x -≥-⎧⎪-+≤⎨⎪≥≥⎩(2) max z=10x 1+5x 2s.t.121212120,0 x xx xx x-+≥⎧⎪-≥⎨⎪≥≥⎩(3) max z= 5x1+3x2+2x3+4x4s.t.1234123412345810 243210,,,0x x x xx x x xx x x x+++=⎧⎪+++=⎨⎪≥⎩(4) min w= 2x1+3x2+x3s.t.12312123428 326,,0x x xx xx x x++≥⎧⎪+≥⎨⎪≥⎩(5) min w=2 x1+x2-x3-x4s.t.123412341234123422 2367 ,,,0x x x xx x x xx x x xx x x x-+-=⎧⎪+-+=⎪⎨+++=⎪⎪≥⎩(6) max z=10 x1+15x2+12x3s.t.123123123123539 56151525,,0x x xx x xx x xx x x++≤⎧⎪-++≤⎪⎨++≥⎪⎪≥⎩(7) min z= 3x1-4x2+x3-2x4s.t.123434124123412322102105 52320,,0x x x xx xx x xx x x xx x x+++=⎧⎪+≤⎪⎪-+≥-⎨⎪≤+++≤⎪⎪≥⎩2.5 以2.1题之(1)为例,具体说明当目标函数中变量的系数怎样改变时,能够:(1)分别使每个极点成为最优点;(2)使该LP问题有多重最优解。
例1max z=2x1+3x2(标准形式即所有的变量均为负、所有约束条件为等式、所有的右端项系数非负)a=(2,3) b1=(80,160,120) A2=NULL b2=NULL A3=NULL b3=NULL n.iter=n+2*m maxi=TRUE ●simplex(a=a,A1=A1,b1=b1,maxi=TRUE): m1=3,m2=0,m3=0m=3,n=2 a.o=a=(2,3)if(maxi) a=-a(-2,-3) if(m2+m3==0) a=(-2,-3,0,0,0) b=(80,160,120) init=(0,0,0,80,160,120) basic=(3,4,5) eps=1e -10out1<-simplex1(a=a,A=A,b=b,init=init,basic=basic,eps=eps) ⏹ simplex1(a=a,A=A,b=b,init=init,basic=basic,eps=eps):N=5,M=3nonbasic=(1,2)if(stage==2) obfun=(-2,-3)it=1◆ while(!all(obfun > -eps) && (it <= n.iter))循环 pcol=3if(stage==2) neg=(1,3)x1+2x2<=804x1<=160 4x2<=120 x1,x2>=0A1= 1 2 4 0 0 4A= 1 2 1 0 0 4 0 0 1 0 0 4 0 0 1tableau= 80 -1 -2 160 -4 0 120 0 -4tableau= 80 -1 -2 160 -4 0120 0 -40 -2 -3转化为标准形式x1+2x2+x3=80 4x1+x4=160 4x2+x5=120x1,x2,x3,x4,x5>=0ratios=(40,30)prow=3pivot(tableau,prow ,pcol) 换基迭代 pv=tableau[3,3]=-4pcv=tableau[,3]=(-2,0,-4,-3)tableau[-3, ] = tableau[-3, ] - (tableau[-3, 3]/pv) %o% tableau[3,]tableau[3, ] = tableau[3, ]/(-pv)=(30,0,-1)tableau[3,3]=1/pv=-1/4tableau[-3, 3]=pcv[-3]/(-4)if(stage==1) else temp=basic[3]=5 basic[3]=nonbasic[2]=2 nonbasic[2]=5 obfun =tableau[4, -1L]=(-2,3/4) it=it+1=2至此进行了一次换基迭代(basic=(3,4,2) nonbasic=(1,5)) 再从while 循环头部开始,判断循环条件是否满足 pcol=2if(stage==2) neg=(1,2) ratios=(20,40)prow=1pivot(tableau,prow ,pcol) 换基迭代 pv=tableau[1,2]=-1pcv=tableau[,2]=(-1,-4,0,-2)tableau[-1, ] = tableau[-1, ] - (tableau[-1, 2]/pv) %o% tableau[1,]tableau[1, ] = tableau[1, ]/(-pv)=(20,-1,0)tableau= 20 -1 0 160 -4 0 120 0 -4 -90 -2 0tableau= 20 -1 0160 -4 030 0 -1/4-90 -2 0tableau= 20 -1 0 160 -4 0 30 0 -1 -90 -2 0tableau= 20 -1 1/2 160 -4 030 0 -1/4-90 -2 3/4tableau= 20 -1 1/2 80 0 -2 30 0 -1/4 -130 0 -1/4tableau= 20 -1 1/2 80 0 -2 30 0 -1/4 -130 0 -1/4tableau[1,2]=1/pv=-1/1tableau[-1,2]=pcv[-1]/(-1)if(stage==1) else temp=basic[1]=3 basic[1]=nonbasic[1]=1 nonbasic[21=3 obfun =tableau[4, -1L]=(2,-1/4) it=it+1=3至此进行了两次换基迭代(basic=(1,4,2) nonbasic=(3,5)) 再从while 循环头部开始,判断循环条件是否满足 pcol=3if(stage==2) neg=(2,3) ratios=(40,120) prow=2pivot(tableau,prow ,pcol) 换基迭代pv=tableau[2,3]=-2pcv=tableau[,3]=(1/2,-2,-1/4,-1/4)tableau[-2, ] = tableau[-2, ] - (tableau[-2, 3]/pv) %o% tableau[2,]tableau[2, ] = tableau[2, ]/(-pv)=(40,2,-1)tableau[2,3]=1/pv=-1/2tableau[-2,3]=pcv[-2]/(-2)if(stage==1) else temp=basic[2]=4 basic[2]=nonbasic[2]=5 nonbasic[21=4tableau= 20 -1 1/2 80 0 -2 30 0 -1/4 -130 0 -1/4 tableau=20 -1 1/2 80 4 -2 30 0 -1/4 -130 2 -1/4tableau= 40 0 080 4 -220 -1/2 0-140 3/2 0 tableau=40 0 040 2 -120 -1/2 0-140 3/2 0tableau=40 0 0 40 2 -1/2 20 -1/2 0 -140 3/2 0 tableau= 40 0 -1/4 40 2 -1/2 20 -1/2 1/8-140 3/2 1/8obfun =tableau[4, -1L]=(3/2,1/8)it=it+1=4至此进行了三次换基迭代(basic=(1,5,2) nonbasic=(3,4))再从while 循环头部开始,判断循环条件是否满足,发现!all(obfun > -eps)为false ,则跳出循环,循环结束。
单纯形法应用实例
某工厂生产I,II两种商品,已知生产单位商品所需要的设备台时,A、B两种原材料的消耗、设备使用台时限额以及原材料的限额如下表所示。
该工厂生产一件商品I可获利3元,每生产一件商品II可获利4元。
写出使该工厂所获利润最大的线性规划模型,并用单纯型法求解。
用单纯形法求解该线性规划问题
122121212
max 25156224..5,0z x x x x x s t x x x x =+≤⎧⎪+≤⎪⎨
+≤⎪⎪≥⎩
首先列出表格,先确定正检验数最大值所在列为主列,然后用b除以主列上对应的同行数字。
除出来所得值最小的那一行为主行,根据主行和主列可以确定主元(交点)。
接着把主元化为1并把X4换成X1.
这时进行初等行列变换,把主列换单位向量,主元为1。
也就是X5所在行减去X1所在行。
并且重新计算检验数。
再次确定主元。
为4/6。
然后把X5换成X2。
并且把主元化成1。
并且重新计算检验数。
最后得到的表格中检验数这一行无正数则所得解为最优解。
本题最优解为X=(7/2,3/2,15/2,0,0)
目标函数值Z=8.5
如有侵权请联系告知删除,感谢你们的配合!。