第5章 单纯形法.ppt_第1页
第5章 单纯形法.ppt_第2页
第5章 单纯形法.ppt_第3页
第5章 单纯形法.ppt_第4页
第5章 单纯形法.ppt_第5页
免费预览已结束,剩余61页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 第五章单纯形法 1单纯形法的基本思路和原理 2单纯形法的表格形式 3求目标函数值最小的线性规划的问题的单纯形表解法 4几种特殊情况 2 1单纯形法的基本思路和原理 基础知识准备1 单纯形法的基本思路 从可行域中某一个顶点开始 判断此顶点是否是最优解 如不是 则再找另一个使得其目标函数值更优的顶点 称之为迭代 再判断此点是否是最优解 直到找到一个顶点为其最优解 就是使得其目标函数值最优的解 或者能判断出线性规划问题无最优解为止 通过第二章例1的求解来介绍单纯形法 在加上松弛变量之后我们可得到标准型如下 目标函数 maxz 50 x1 100 x2约束条件 x1 x2 s1 3002x1 x2 s2 400 x2 s3 250 xj 0 j 1 2 sj 0 j 1 2 3 1单纯形法的基本思路和原理 3 它的系数矩阵 其中pj为系数矩阵A第j列的向量 A的秩为3 A的秩m小于此方程组的变量的个数n 为了找到一个初始基本可行解 先介绍以下几个线性规划的基本概念 2 熟悉下列一些解的概念可行解 可行域最优解 最优值基 基向量 非基向量基变量 非基变量基本解 基本可行解 4 标准形式Maxz CX 1 4 s t AX b 1 5 X 0 1 6 可行解 满足上述约束条件 1 5 和 1 6 的解 最优解 满足 1 4 式的可行解 最优值 满足 1 4 式的z值 基设A为m n的矩阵 n m 秩为m 若B是A中m m的一个非奇异子矩阵 0 则称B为线性规划的一个基 5 B是由A中m个线性无关列向量pj构成的矩阵 a11 a12 a1mB p1 p2 pm am1 am2 amm基向量pj组成B的向量 共m个 非基向量A中除B之外的向量 共n m个 基变量与基向量pj对应的变量 共m个 非基变量与非基向量对应的变量 共n m个 6 A的秩为m n m 有无穷多解 移项 7 令所有非基变量xm 1 xm 2 xn 0可以得到m个关于基变量x1 x2 xm的线性方程 用高斯消去法解这个线性方程组 可求出基变量的值 并得到一个x的解 x x1 x2 xm 0 0 T称这个解x为一个基 本 解 基 本 解非零分量的个数不大于m基本解依靠上述算法就可求得基本解的总数 C基 本 可行解各分量满足非负条件的基本解 8 可行解基本可行解基本解可行基对应于基本可行解的基退化的基本解非零分量的个数小于m 9 在此例中我们不妨找到了为A的一个基 令这个基的非基变量x s2为零 这时约束方程就变为基变量的约束方程 x2 s1 300 x2 400 x2 s3 250 求解得到此线性规划的一个基本解 x1 0 x2 400 s1 100 s2 0 s3 150由于在这个基本解中s1 100 s3 150 不满足该线性规划s1 0 s3 0的约束条件 显然不是此线性规划的可行解 一个基本解可以是可行解 也可以是非可行解 它们之间的主要区别在于其所有变量的解是否满足非负的条件 我们把满足非负条件的一个基本解叫做基本可行解 并把这样的基叫做可行基 10 3 LP的几何意义凸集设k是n维欧氏空间的一个点集 若任意两点x 1 k x 2 k的连线上的一切点 x 1 1 x 2 k 0 1 则称k为凸集 例如一段直线 凸多边形 实心球体等 但是 环形 有孔的实体 有凹的实体都不是凸集 定理1若LP存在可行域 则其可行域D X pjxj b x 0 是凸集 11 求解线性规划 寻找最优解 最优解在顶点中寻找 顶点 基本可行解要得到一个基本可行解 解的分量为正 找一组m个线性无关列向量pj 可行基 通过不断变换可行基 换基 可以得到不同的基本可行解 有限个 通过比较后 可在其中寻找最优解 LP的求解过程 其实质就是合理的换基 要求新顶点的目标函数值不比原顶点的目标函数值差 从而有可能进一步获得最优顶点 12 4 单纯形法示例例2Maxz 2x1 3x2x1 2x2 x3 84x1 x4 164x2 x5 12x1 x2 x3 x4 x5 0 13 系数矩阵A p1 p2 p3 p4 p5 选p3 p4 p5为基向量B p3 p4 p5 14 x3 8 x1 2x2x4 16 4x1x5 12 4x2代入后 得z 0 2x1 3x2令x1 x2 0得z 0利润为0X 0 0 0 8 16 12 T 15 从非基变量中选x2 基变量 称x2为换入变量 入基变量 在保证x3 x4 x5 0 从中选出一个换出变量 出基变量 在x1 0时 有x3 8 2x2 0 x2 4x4 16 0 x5 12 4x2 0 x2 3 16 x2 3时x3 2x4 16 0 x5 0若x2 4x3 0 x4 16x5 4 0选x2 Min 4 3 3与3对应的基变量是x5 选x5出基变量 17 x3 2x2 8 x1x4 16 4x14x2 12 x5变形 得x3 2 x1 1 2x5x4 16 4x1x2 3 1 4x5 18 z 9 2x1 3 4x5令x1 x5 0得z 9X 1 0 3 2 16 0 Tx1入基变量 x3出基变量z 13 2x3 1 4x5令x3 x5 0得z 13X 2 2 3 0 8 0 T 19 x5入基变量 x4出基变量z 14 1 5x3 0 125x4令x3 x4 0得z 14X 3 4 2 0 0 4 TX 0 0 0 8 16 12 T 0 0 原点X 1 0 3 2 16 0 T 0 3 Q4X 2 2 3 0 8 0 T 2 3 Q3X 3 4 2 0 0 4 T 4 2 Q2 20 MaxZ 2x1 3x2x1 2x2 84x1 164x2 12x1 x2 0 Q2点 4 2 最优z 14 21 小结 1 寻找单位矩阵 初始可行基 得初始基本可行解 2 判断基本可行解是否为最优 3 是最优解 已得到结果 停止计算 若不是最优解 通过基变换使基本可行解 最优解 22 一般来说判断一个基是否是可行基 只有在求出其基本解以后 当其基本解所有变量的解都是大于等于零 才能断定这个解是基本可行解 这个基是可行基 那么我们能否在求解之前 就找到一个可行基呢 也就是说我们找到的一个基能保证在求解之后得到的解一定是基本可行解呢 由于在线性规划的标准型中要求bj都大于等于零 如果我们能找到一个基是单位矩阵 或者说一个基是由单位矩阵的各列向量所组成 至于各列向量的前后顺序是无关紧要的事 例如 那么显然所求得的基本解一定是基本可行解 这个单位矩阵或由单位矩阵各列向量组成的基一定是可行基 实际上这个基本可行解中的各个变量或等于某个bj或等于零 一 找到一个初始基本可行解 23 在本例题中我们就找到了一个基是单位矩阵 在第一次找可行基时 所找到的基或为单位矩阵或为由单位矩阵的各列向量所组成 称之为初始可行基 其相应的基本可行解叫初始基本可行解 如果找不到单位矩阵或由单位矩阵的各列向量组成的基作为初始可行基 我们将构造初始可行基 具体做法在以后详细讲述 24 所谓最优性检验就是判断已求得的基本可行解是否是最优解 1 最优性检验的依据 检验数 j一般来说目标函数中既包括基变量 又包括非基变量 现在我们要求只用非基变量来表示目标函数 这只要在约束等式中通过移项等处理就可以用非基变量来表示基变量 然后用非基变量的表示式代替目标函数中基变量 这样目标函数中只含有非基变量了 或者说目标函数中基变量的系数都为零了 此时目标函数中所有变量的系数即为各变量的检验数 把变量xi的检验数记为 i 显然所有基变量的检验数必为零 在本例题中目标函数为50 x1 100 x2 由于初始可行解中x1 x2为非基变量 所以此目标函数已经用非基变量表示了 不需要再代换出基变量了 这样我们可知 1 50 2 100 3 0 4 0 5 0 二 最优性检验 25 3 3最优性检验与解的判断迭代后 i 1 2 m 代入目标函数z0常数 zj 26 得令 j 检验数 27 1 最优解判别定理若X 0 b1 b2 bm 0 0 T为对应基B的一个最优基本可行解 且对一切j m 1 n 有 j 0 则X 0 为最优解 2 无穷多最优解判别定理若X 0 b1 b2 bm 0 0 T为一基本可行解 且对于一切j m 1 n 有 j 0 又存在某个非基变量的检验数 m k 0 则LP有无穷多最优解 28 3 无界解判别定理若X 0 b1 b2 bm 0 0 T为一基本可行解 且对于一切j m 1 n 有 m k 0 并且对i 1 2 m 有ai m k 0 则LP具有无界解 若以Min为标准型1 2中 j 0 改为 j 03中 m k 0 改为 m k 0 29 30 2 最优解判别定理对于求最大目标函数的问题中 对于某个基本可行解 如果所有检验数 0 则这个基本可行解是最优解 下面我们用通俗的说法来解释最优解判别定理 设用非基变量表示的目标函数为如下形式由于所有的xj的取值范围为大于等于零 当所有的都小于等于零时 可知是一个小于等于零的数 要使z的值最大 显然只有为零 我们把这些xj取为非基变量 即令这些xj的值为零 所求得的基本可行解就使目标函数值最大为z0 对于求目标函数最小值的情况 只需把 0改为 0 31 三 基变换 通过检验 我们知道这个初始基本可行解不是最优解 下面介绍如何进行基变换找到一个新的可行基 具体的做法是从可行基中换一个列向量 得到一个新的可行基 使得求解得到的新的基本可行解 其目标函数值更优 为了换基就要确定换入变量与换出变量 从原可行基中换一个列向量 保证线性独立 得到一个新的可行基 换基的核心是 先确定入基变量 再确定出基变量 对它们相应的系数列向量进行变换 32 1 入基变量的确定从最优解判别定理知道 当某个 j 0时 非基变量xj变为基变量不取零值可以使目标函数值增大 故我们要选基检验数大于0的非基变量换到基变量中去 称之为入基变量 若有两个以上的 j 0 则为了使目标函数增加得更大些 一般选其中的 j最大者的非基变量为入基变量 在本例题中 2 100是检验数中最大的正数 故选x2为入基变量 当存在 j 0时 xj 目标函数Z 将非基变量xj换成基变量 若有两个以上的 j 0 选xk为入基变量 33 2 出基变量的确定原则 保持解的可行性 即要使原基本可行解的某个正分量xj 变为0时 其余分量均保持非负 用 最小比值规则 规则 min bi aik aik 0 bL aLk在迭代过程中 min b i a ik a ik 0 b L a Lk选基变量xL为出基变量 34 我们把确定出基变量的方法概括如下 把已确定的入基变量在各约束方程中的正的系数除以其所在约束方程中的常数项的值 把其中最小比值所在的约束方程中的原基变量确定为出基变量 这样在下一步迭代的矩阵变换中可以确保新得到的bj值都大于等于零 在本例题中约束方程为在第二步中已经知道x2为入基变量 我们把各约束方程中x2的为正的系数除对应的常量 得 35 其中的值最小 所以可以知道在原基变量中系数向量为的基变量s3为出基变量 这样可知x2 s1 s2为基变量 x1 s3为非基变量 令非基变量为零 得x2 s1 300 x2 s2 400 x2 250 求解得到新的基本可行解x1 0 x2 250 s1 50 s2 150 这时目标函数值为50 x1 100 x2 50 0 100 250 25000 显然比初始基本可行解x1 0 x2 0 s1 300 s3 250时的目标函数值为0要好得多 下面我们再进行检验其最优性 如果不是最优解还要继续进行基变换 直至找到最优解 或者能够判断出线性规划无最优解为止 36 2单纯形法的表格形式 上面假设x1 x2 xm是基变量 即第i行约束方程的基变量正好是xi 而经过迭代后 基将发生变化 计算zj的式子也会发生变化 如果迭代后的第i行约束方程中的基变量为xBi 与xBi相应的目标函数系数为cBi 系数列向量为则其中 cB 是由第1列第m行各约束方程中的基变量相应的目标函数依次组成的有序行向量 单纯形法的表格形式是把用单纯形法求出基本可行解 检验其最优性 迭代某步骤都用表格的方式来计算求出 其表格的形式有些像增广矩阵 而其计算的方法也大体上使用矩阵的行的初等变换 以下用单纯形表格来求解第二章的例1 max50 x1 100 x2 0 s1 0 s2 0 s3 x1 x2 s1 300 2x1 x2 s2 400 x2 s3 250 x1 x2 s1 s2 s3 0 把上面的数据填入如下的单纯形表格 37 2单纯形法的表格形式 按照线性规划模型在表中填入相对应的值 如上表所示 在上表中有一个m m的单位矩阵 对应的基变量为s1 s2 s3 在zj行中填入第j列与cB列中对应的元素相乘相加所得的值 如z2 0 1 0 1 0 1 0 所在zi行中的第2位数填入0 在行中填入cj zj所得的值 如 z表示把初始基本可行解代入目标函数求得的目标函数值 即b列 cB列 初始基本可行解为s1 300 s2 400 s3 250 x1 0 x2 0 由于 因此确定x2为入基变量 由于250 1最小 因此确定s3为出基变量 出基变量所在行 入基变量所在列的交汇处为主元 这里是a32 1 在表中画圈以示区别 选最小值所在的行 选正数且最大值所在的列 基变量的系数cB对应乘以b 求和为z 38 2单纯形法的表格形式 以下进行第一次迭代 其变量为x2 s1 s2 通过矩阵行的初等变换 求出一个新的基本可行解 具体的做法用行的初等变换使得x2的系数向量p2变换成单位向量 由于主元在p2的第3分量上 所以这个单位向量是也就是主元素变成1 这样我们又得到的第1次迭代的单纯表如下所示 在上表中第3个基变量s1已被x2代替 故基变量列中的第3个基变量应变为x2 由于第0次迭代表中的主元a32已经为1 因此第3行不变 为了使第1行的a12为0 只需把第3行 1 加到第1行即可 同样可以求得第2行 求得第1次迭代的基本可行解为s1 50 s2 150 x2 250 x1 0 s3 0 z 25000 39 2单纯形法的表格形式 从上表可以看出 第一次迭代的 因此不是最优解 设x1为入基变量 从此值可知b1 a11 50为最小正数 因此 s1为出基变量 a11为主元 继续迭代如下表所示 从上表中可知第二次迭代得到的基本可行解为x1 50 x2 250 s1 0 s2 50 s3 0 这时z 27500 由于检验数都 0 因此所求得的基本可行解为最优解 z 27500为最优目标函数值 实际上 我们可以连续地使用一个单纯形表 不必一次迭代重画一个表头 40 3求目标函数值最小的线性规划的问题的单纯形表解法 一 大M法以第二章的例2来讲解如何用单纯形表的方法求解目标函数值最小的线性规划问题 目标函数 约束条件 加入松弛变量和剩余变量变为标准型 得到新的约束条件如下 41 3求目标函数值最小的线性规划的问题的单纯形表解法 为了使单纯形表解法有一个统一的解法 我们把所有求目标函数最小值的问题化成求目标函数最大值的问题 具体做法只要把目标函数乘以 1 要注意到人工变量是与松弛 剩余变量不同的 松弛变量 剩余变量它们可以取零值 也可以取正值 而人工变量只能取零值 一旦人工变量取正值 那么有人工变量的约束方程和原始的约束方程就不等价了 这样所求得的解就不是原线性规划的解了 为了竭尽全力地要求人工变量为零 我们规定人工变量在目标函数中的系数为 M 这里M为任意大的数 这样只要人工变量M 0 所求的目标函数最大值就是一个任意小的数 这样为了使目标函数实现最大就必须把人工变量从基变量中换出 如果一直到最后 人工变量仍不能从基变量中换出 也就是说人工变量仍不为零 则该问题无可行解 42 3求目标函数值最小的线性规划的问题的单纯形表解法 此例的数学模型如下所示 目标函数 maxz 2x1 3x2 Ma1 Ma2约束条件 x1 x2 s1 a1 350 x1 s2 a2 125 2x1 x2 s3 600 x1 x2 s1 s2 s3 a1 a2 0 像这样 为了构造初始可行基得到初始可行解 把人工变量 强行 地加到原来的约束方程中去 又为了尽力地把人工变量从基变量中替换出来就令人工变量在求最大值的目标函数里的系数为 M 这个方法叫做大M法 M叫做罚因子 43 3求目标函数值最小的线性规划的问题的单纯形表解法 下面我们就用大M法来求解此题 44 3求目标函数值最小的线性规划的问题的单纯形表解法 从上表中可知检验数都小于零 已求得最优解为 x1 250 x2 100 s1 0 s2 125 s3 0 a1 0 a2 0 其最优值为f z 800 800 45 3求目标函数值最小的线性规划的问题的单纯形表解法 二 两阶段法两阶段法是处理人工变量的另一种方法 这种方法是将加入人工变量后的线性规划划分两阶段求解 仍以上面的例题为例 阐述两阶段法的求解过程 第一阶段 要判断原线性规划是否有基可行解 方法是先求解下列线性规划问题 目标函数 约束条件 46 3求目标函数值最小的线性规划的问题的单纯形表解法 注意 此线性规划的约束条件与原线性规划一样 而目标函数是求人工变量的相反数之和的最大值 如果此值大于零 则不存在使所有人工变量都为零的可行解 停止计算 如果此值为零 即说明存在一个可行解 使得所有的人工变量都为零 第二阶段 将第一阶段的最终单纯形表中的人工变量取消 将目标函数换成原问题的目标函数 把此可行解作为初始可行解进行计算 47 3求目标函数值最小的线性规划的问题的单纯形表解法 48 3求目标函数值最小的线性规划的问题的单纯形表解法 从表中可知其基本可行解x1 250 x2 100 s1 0 s2 125 s3 0是本例的最优解 其最优值为z 800 800 49 4几种特殊情况 一 无可行解例1 用单纯形表求解下列线性规划问题 解 在上述问题的约束条件中加入松驰变量 剩余变量 人工变量得到 填入单纯形表计算得 50 4几种特殊情况 51 4几种特殊情况 从第二次迭代的检验数都小于零来看 可知第2次迭代所得的基本可行解已经是最优解了 其最大的目标函数值为780 4M 我们把最优解x1 30 x2 6 s1 0 s2 0 s3 0 a1 4 代入第三个约束方程得x1 x2 0 4 40 即有 x1 x2 36 40 并不满足原来的约束条件3 可知原线性规划问题无可行解 或者说其可行解域为空集 当然更不可能有最优解了 像这样只要求线性规划的最优解里有人工变量大于零 则此线性规划无可行解 二 无界解在求目标函数最大值的问题中 所谓无界解是指在约束条件下目标函数值可以取任意的大 下面我们用单纯形表来求第二章中的例子 例2 用单纯形表求解下面线性规划问题 52 4几种特殊情况 填入单纯形表计算得 解 在上述问题的约束条件中加入松驰变量 得标准型如下 53 4几种特殊情况 从单纯形表中 从第一次迭代的检验数等于2 可知所得的基本可行解x1 1 x2 0 s1 0 s2 9不是最优解 同时我们也知道如果进行第2次迭代 那么就选x2为入基变量 但是在选择出基变量时遇到了问题 1 1 找不到大于零的来确定出基变量 事实上如果我们碰到这种情况就可以断定这个线性规划问题是无界的 也就是说在此线性规划的约束条件下 此目标函数值可以取得无限大 从1次迭代的单纯形表中 得到约束方程 移项可得 54 4几种特殊情况 由于M可以是任意大的正数 可知此目标函数值无界 上述的例子告诉了我们在单纯形表中识别线性规划问题是无界的方法 在某次迭代的单纯形表中 如果存在着一个大于零的检验数 并且该列的系数向量的每个元素aij i 1 2 m 都小于或等于零 则此线性规划问题是无界的 一般地说此类问题的出现是由于建模的错误所引起的 三 无穷多最优解例3 用单纯形法表求解下面的线性规划问题 55 4几种特殊情况 解 此题我们用图解法已求了解 现在用单纯形表来求解 填入单纯形表计算得 56 4几种特殊情况 57 4几种特殊情况 这样我们求得了最优解为x1 50 x2 250 s1 0 s2 50 s3 0 此线性规划的最优值为15000 这个最优解是否是惟一的呢 由于在第2次迭代的检验数中除了基变量的检验数等于零外 非基变量s3的检验数也等于零 这样我们可以断定此线性规划问题有无穷多最优解 不妨我们把检验数也为零的非基变量选为入基变量进行第3次迭代 可求得另一个基本可行解 如下表所示 58 4几种特殊情况 从检验数可知此基本可行解x1 100 x2 200 s1 0 s2 0 s3 50 也是最优解 从图解法可知连接这两点的线段上的任一点都是此线性规划的最优解 不妨用向量Z1 Z2表示上述两个最优解即Z1 50 250 0 50 0 Z2 100 200 0 0 50 则此线段上的任一点 即可表示为 Z1 1 Z2 其中0 1 如图5 1所示 100 200 300 100 200 300 250 Z1 Z2 图5 1 59 4几种特殊情况 在一个已得到最优解的单纯形表中 如果存在一个非基变量的检验数为零 为什么我们把这个非基变量xs作为入基变量进行迭代时 得到的最优解仍为最优解呢 不妨设出基变量为xk 则原最优单纯形表可表示如下 60 4几种特殊情况 通过迭代 我们得到了新的单纯形表 其中xs为基变量了 而xk为非基变量了 我们可得到下表 61 4几种特殊情况 又显然在新的单纯形表中 基变量的检验数为零 用同样的方法可证明其他的非基变量的检验数不

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论