对偶单纯形法:保持对偶可行的换基过程
Views: --
原始单纯形法始终保持 ,逐步修复检验数;对偶单纯形法反过来,始终保持检验数满足最优性符号,逐步修复负的基本变量。
什么时候用
对最小化问题,若某张表满足
但右端有负数,即
当前解原不可行、对偶可行,正适合对偶单纯形法。
最典型场景是:已经求出一个 LP 的最优表,现在只改变右端 。检验数完全不变,原最优基可能只因右端变负而失去可行性,从旧表继续做对偶单纯形远比重算快。
换基逻辑
设最负的右端位于第 行,选该基本变量出基。为了把右端修成非负,需要从该行中选一个允许的非基变量进基。
在课程使用的 约定下,只考虑 的列,并比较
在这些候选列中取最小的非负比值。若改用约化成本
同一个规则就是
为什么取最小值?主元变换相当于先让出基行对应的对偶变量变化;某个非基变量的约化成本最先降到零时,它正好可以进基。若越过这个最小比值,至少一个 会变负,也就是 变正,对偶可行性被破坏。
不同教材的表头与检验数定义可能让比值写成 。不要硬套外观,推导原则只有一个:换基后既要改善负右端,又不能破坏对偶可行性。
为什么会终止
每次换基保持对偶可行。若最终全部右端非负,则原、对偶同时可行,强对偶意味着当前表最优。若选定出基行中没有任何合适的负系数列,则无法恢复原可行性,原问题不可行。
小例子思路
假设一张最优表改变右端后出现
第一行基本变量为负,先让它出基。由字典式可直接看出:增大 会让 更小,增大 才会通过 抬高它。因此候选进基变量是 。
若把字典统一写成 ,第一行的 系数对应 ,与前面的候选列规则一致。最后还要用 与其他候选列比较,确认换基后全部检验数仍不大于零。
与灵敏度分析的连接
- 只改 :检验数不变,若新 有负分量,用对偶单纯形。
- 只改非基变量的 :右端不变,若检验数破坏,用原始单纯形。
- 新增约束:把新约束代入现有基变量后追加一行,常导致一个负右端,也常用对偶单纯形。
考试要点
- 先写“当前表对偶可行但原不可行”,说明为什么选该算法。
- 出基行由负右端决定;不是按原始单纯形的检验数选。
- 没有允许进基列时结论是原问题不可行。
- 完成后同时检查右端非负和检验数符号,二者缺一不可。