前言
在前文运筹学基础(一)求解线性规划的单纯形法详解
中,我们直观的理解了单纯形法其实是在可行域的顶点上搜索的过程。(这篇文章没有通过列单纯形表来讲述,而是选择了一种更符合直觉的方式,我觉得这对于初学者而言是更好理解的。单纯形表感觉还是有点绕…)
提到单纯形法,就不得不提一下检验数了,前文一带而过了,这篇文章单独拎出来聊一下。因为未来的学习中,很多更高阶的内容还会涉及到检验数的概念。
检验数理解
直观理解
检验数的直观理解就是,减少或增大某个变量的值,会给目标函数值带来多大的影响。
在 m i n i m i z e minimize minimize问题中,如果存在检验数为负的非基变量,则说明仍然存在变量可以进一步增大,从而使得目标函数值减小。
同理,在 m a x i m i z e maximize maximize问题中,如果存在检验数为正的非基变量,则说明仍然存在变量可以进一步增大,从而使得目标函数值增大。
数学证明
为什么上述理解是对的?我们通过简单的数学推导来证明一下。其实挺简单的,请耐心的看完。
假设我们的问题是一个 m i n i m i z e minimize minimize问题:
m i n c T x s . t . A x = b x ≥ 0 min\quad c^Tx\\ s.t.\quad Ax=b\\ x \geq0 mincTxs.t.Ax=bx≥0
我们将 x x x表示为基变量(一个基本解的组成部分)和非基变量(不是基本解的组成部分,可以自由改变的):
x = [ x B , x N ] x = [x_B, x_N] x=[xB,xN]
其中 x B x_B xB表示基变量, x N x_N xN表示非基变量。
类似的,我们将成本系数表示为:
c T = [ c B T ,