1、 本次课内容 z 复习单纯形算法 z 方法的形式化表示 z 退化现象与多重最优解 z 单纯形算法是否是有限步算法?(是的,但是我们要仔细) 15.053 2002 年 2 月 21 日 z 单纯形法(续) 分发:讲稿 注意:本课程以幻灯片演示讲解 线性规划的规范化形式: 线性规划的标准型+ 约旦规范化形式 基变量是 x3,x4,非基变量是 x1,x2。基本可行解 x1=0,x2=0,x3=6,x4=2。 基变量 非基变量 Z 不是决策变量。m 个约束 ,n个变量基本可行解 z 目前所有变量值都非负。 这符合规范形式的要求 。 z 每个约束条件对应一个基变量。 本例中,约束 i 对应的基变量为
2、xiz 有 n-m 个非基变量。 本例中,非基变量为 xm+1,xn z 基本可行解如下: mmbxbx = ,.,11。 其他变量值为。 符号 z n 变量个数 z m 约束条件个数 z s 入基变量下标 z r 主元行的下标 -注意:第 r 行基变量出基. z 初始数据ijijbac , i,z 旋转消元后的系数表示为iijijbac , ,旋转消元与最小比例原则 min( 6/3,2/2)=min(ssabab )。含有要被替换基变量的约束是约束r ,因为r=argmin(最优性条件(最大化问题) 这个基本可行解就是最优解。最优性条件是什么,如何用 c表示? sc0, 故变量 xs入基。
3、 当=6/3 时,x3=0。当=2/2 时,x4=0。2211/,/ssabab2211/,/ )=2。最小比例原则 用系数表示最小比例原则 多重最优解(最大化问题) 该基本可行解是最优解,还有没有其它最优解? 若 x1入基,哪个变量将离基? 若所有检验数满足:0ic ,但非基变量 j 的检验数0=jc ,则存在多个最优 解。 旋转得到一个更优解 sc0,变量 xs入基,根据最小比例原则确定离基变量所在的约束条件 r。 多重最优解(最大化问题) 令 x1入基,令约束 l 中的基变量离基。 注意:最优解变了,但是目标函数值不变。 无界解 变量 x1入基,令 x1=, x4=0。 若入基变量列的系
4、数均非正,则该问题的解无界。 用代数符号 表示无界解 单纯形法(最大化问题) step 0. 问题已经规范化且 0b 。 Step 1. 若 0c 则结束,当前解为最优解。否则,存在某些 0jc,则继续。 Step 2. 选择任意检验数 0sc的非基变量入基,例如 0|max =jjs ccc。若对于所有 i,有 0isa , 则结束,该问题无界。否则,存在某些 0isa ,则继续 。Step 3. 第 r 行对应的基变量出基, r 由最小比例原则确定, r = argmini 0:/ isisiaab Step 4. 用 xs代替第 r 行的基变量重新确立规划的规范形式(即基于isa 的 旋
5、转)。Step 5. 返回 Step 1。 符号表示回顾: 若所有检验数满足: 0ic,则该基本可行解是最优解。 假定 xs入基(即 0sc) 第 r 行的基变量出基,其中 r = argmini 0:/ isisiaab , 因此 0:/min/ =isisirsraabab 。 若对于所有 i,有 0isa ,那么该问题的最优解无界。 退化问题 当出现某些 0=jb, 则对应的基本可行解为退化解,否则为非退化基本可行解。 假定 x2入基,退化就意味着解不变,z值不变。 下面的内容 z 退化问题和解的改进 z 非退化情形最优性和有限性的证明 z 处理退化问题 z 确定一个初始规范形式 非退化
6、问题的每次计算都能改善解 若基本可行解非退化,则入基变量必定可以增加,使目标函数得到改善。 退化问题的旋转消元 变量 x2入基,约束中的基变量离基。 这样,解的构成形式发生了变化,而解并没有变化。 处理退化问题 z 以正确的方式轻微扰动右端项 没有退化基 扰动后问题的每个基本可行解仍然是原问题的基本可行解。 扰动后问题的最优解仍然是原问题的最优解。 定理:若所有基可行解均非退化,则单纯形法经有限步计算即可达到最优。 1. 基可行解数目:最多为 n!/(n-m)!m!,这是从 n 个变量中选择 m 个基本变量组合方式的数量。 2. 每个基本可行解都是不同的。 z 假定解非退化,则得到的每个基可行
7、解比上一个都更优。 因此,单纯形法是有限步算法。 多重最优解与退化问题评述 z 似乎退化问题是比较少见的。毕竟,谁会期望某些变量的右端项是 0呢? z 事实上,退化问题是很常见的。 z 除非迭代时细心,单纯形法并不必然是有限步算法。事实上,几乎没有人特别细心,而单纯形法不但是有限步算法,而且非常有效。 z 多重最优解问题常常出现,在实际问题中有很重要的意义。 例子:扰动初始基本可行解 在原可行解里,x3=6,x4=2. 若扰动足够小,那么扰动后问题的每个基本可行解与原问题基本可行解相同。 若谨慎选择扰动,单纯形法非退化,算法是有限步算法。 回到前面已经解决的问题 寻找一个可行解 如何获得一个初
8、始基可行解 提示:在理论上获得一个基可行解与获得最优解同样困难。 思路:使用单纯形法算法获得一个初始基可行解。 Maria 问题的表格形式 该问题没有化为规范化形式,但是很接近。我们需要做些什么转换呢? Juan 和 Maria 的问题是否等价? z 若 Juan 问题有一个可行解,则该解同样可以解决 Maria 的问题。例如:( 1 3 0 0)是 Juan 问题的可行解,( 1 3 0 0 0 0)使 Maria 问题最优。z 若 Maria 问题的最优值是 0,则最优解同样解决了 Juan 的问题。 z 对于最大化问题, Maria 问题变为:Maximize w = -x5 - x6M
9、aria 问题的最优基 最后,通过去掉 x5和 x6,可以获得原问题的基本可行解。 Maria 问题的规范化形式 之后对 Maria 问题运行单纯形法算法。若Juan 问题有可行解,则本问题可以找到一个可行解,且最终以一个基本可行解结束。 获得原问题的基本可行解 最后,去掉人工变量 x5和 x6,重新采用原目标函数,然后确立规范化形式。 获得原问题的基本可行解 最后,去掉人工变量 x5和 x6,重新采用原目标函数。 建立第一阶段问题 现在去掉目标函数, 加入人工变量, 求人工变量的和最小, 建立规范化形式。 小结 z Maria 的问题称为第一阶段,增加的变量称为人工变量。 z 可以不用解释,
10、直接建立第一阶段问题。 z 解决第一阶段问题可以: 1. 确定原问题无可行解或者 2. 得到原问题的一个基本可行解 由第一阶段问题的解获得原问题的一个基本可行解 最后,若 w0,则标志着没有可行解。若 w=0,去掉人工变量(或者保持原有列,但禁止人工变量换入),回到原目标函数,建立规范化形式。 建立第一阶段问题 现在去掉目标函数, 加入人工变量, 求人工变量的和最小, 建立规范化形式。 小结 z 复习了单纯形算法 z 退化与多重最优解 z 单纯形法是否是有限步算法?(答案:是的,但是要细心) z 如何得到一个初始基可行解? 第一阶段法 潜在困难 z 若原问题出现退化,则可能是由于人工变量出现在第一阶段问题的最终基里面。 解决办法:换人工变量出基 z 若原问题有一个多余的约束,则人工变量有可能出现在第一阶段问题的最优基里面,而不会被换出。 解决办法:去掉(或者忽略)多余的约束。