我们求解线性规划问题时会发现这样一个规律:最优解总能够在可行域的顶点中找到。例如下面这个线性规划问题
用作图法进行求解:
其中黄色实现围住的是可行域,蓝色虚线是目标函数的等值线,其箭头方向是目标函数的梯度方向。最后得到最优解(红点):,恰好是一个顶点。
我们先给出肯定的回答:最优解肯定能够在可行域的顶点中找到,也就是说,只要你把可行域的所有顶点找出来,然后比较它们的函数值,最大的那个解就一定是最优解。其实,几乎所有讲解线性规划的书籍都会证明这个结论,但其证明过程较为复杂。因此,为了便于理解,我尽量以通俗易懂的方式向大家证明这个结论。
首先需要理解一下顶点的概念。如果图形中某一点不在任何其它不同的两点间的线段上,则称该点为图形的顶点。如下图所示,对于紫色点,都可以找到图形中另外不同的两点,使得紫色点恰好在那两点间的线段上。
用数学语言来定义就是:是图形
的顶点当且仅当不存在实数
和
,满足
且
。
(注:两点间线段上任意一点可以用
来表示。)
这个定义非常重要,在后面的证明中将反复利用。
我们先从直观上来看这个规律。如下图所示,只要最优解不是顶点,就可沿目标函数等值线移动直至达到某个约束方程的边界,如果此时仍然不是顶点,那么继续沿着等值线方向移动达到另一个约束方程的边界,如此继续一定找到最优顶点。