11.5退化、循环和防止循环的方法1.5.1退化和退化引起的循环前面曾定义过退化问题(定义1.6)。对于退化问题,可能引起迭代循环现象,相应的迭代叫做退化迭代。下面用例子来说明退化引起的循环现象。例1.13求解下列线性规划问题0,,,105.05.15.0095.25.55.0..2495710max43211432143214321xxxxxxxxxxxxxtsxxxxz标准后用单纯形表法求解如下jc10-57-9-24000BCBxb1x2x3x4x5x6x7x0005x6x7x001(1/2)1/21-11/2-3/20-5/2-1/20910100010001001j010-57-9-2400010001x6x7x001100-11(4)11-52518-8-182-1-2010001-0-j005341-204-20002jc10-57-9-24000BCBxb1x2x3x4x5x6x7x10-5701x2x7x001100010(1/2)1/2-1/2-4-24-3/4-1/43/411/41/4-11/400100-j00029/2-98-27/4-53/40-9-5703x2x7x0012-11010100-8(2)0-3/21/2011/2-5/20001-0-j0-29001815-930最后两步迭代的单纯形表如下:jc10-57-9-24000BCBxb1x2x3x4x5x6x7x0-2405x4x7x001-41/218-3/202-1/20010100-9(1)0001-0-j022-93-21002400005x6x7x001(1/2)1/21-11/2-3/20-5/2-1/20910100010001001j010-57-9-240003发现第六次迭代的结果与初始的一致,循环发生了。从上例可看出,采用单纯形法求解退化问题可能发生循环现象,这会使得计算机死机。退化迭代有如下特点:1.退化迭代中基在不断变化,但基本可行解不变;2.退化迭代中目标函数值不变;3.退化迭代可能发生循环现象。那么退化问题是怎样发生的呢?1.5.2防止循环的方法退化现象很难避免,我们只有设法避免循环的发生。摄动法在编程方面存在困难,Bland法则可操作性强。对于例1.13,前五次换基都符合Bland法则,第六次换基时,仍采用最大检验数法则,取6x入基,这违反了Bland法则第一条。若根据Bland法则,从第六次换基开始的单纯形表如下:防止循环的方法1.摄动法在各约束条件右手边加上不同的微小摄动项,避免产生退化的顶点。2.Bland法则a.换入基变量时,取kx入基,其中min|0jkj;b.换出基变量时,若有多于一个的最小比值,则取下标最小者出基。4jc10-57-9-24000BCBxb1x2x3x4x5x6x7x0-2405x4x7x001-4(1/2)18-3/202-1/20010100-910001-01j022-93-210024001005x1x7x001010-4-33-2-1(1)82-2100-12-2001--1j00-271-440-200010-95x1x3x21101020300140-2100-50-2211j10-300-420-18-1用Bland法则能保证避免发生循环,上例只再进行一次迭代就求得了最优解TX0020101*最优目标函数值z*=1。这里我们不但避免了循环,求得了最优解,而且最优基本可行解是非退化的,尽管本问题是退化问题。习题1.6(2)p51用Bland法则求解。