易错点

含参目标函数把最优顶点当固定

目标函数里带参数时,最大值、最小值落在哪个顶点是随参数变的;照着一张图断言「最小值在 AA、最大值在 BB」,等于把结论当条件用。

线性规划的标准动作是平移目标直线:把 z=ax+byz=ax+by 看成一族平行线,沿法向推过去,最后离开可行域的顶点给出最值。 这个动作有一个默认前提——那族线的斜率是已知的。目标函数一旦带参数,斜率就跟着参数变, 「最后离开的是哪个顶点」也跟着变。

于是就有了这个坑:画一张图,凭手感把最优顶点指出来,再据此列不等式。 图上画的只是参数取某一个值时的样子;换一个参数,最优顶点可能换人。

正确的判法:把顶点值当成参数的函数,先比大小

设可行域的顶点是 P1,…,PkP_1,\dots,P_k,目标值 fi=f(Pi)f_i=f(P_i) 都是参数的一次函数。那么

min⁡Df=min⁡ifi,max⁡Df=max⁡ifi,\min_D f=\min_i f_i,\qquad \max_D f=\max_i f_i,

这两个都是参数的分段线性函数,分段点就是两条直线 fi=fjf_i=f_j 的交点。 把 fif_i 两两作差、看差的符号在哪儿翻转,最优顶点在哪一段归谁就一清二楚了—— 这一步是可以算的,不需要看图。

算完再回头,你会发现自己得到的东西比”看图指定”多一块:不只知道这一段归谁,还知道分界在哪。

一个典型的翻车现场

可行域是 A(1,0)A(1,0)、B(2,1)B(2,1)、C(1,32)C\left(1,\frac{3}{2}\right) 围成的三角形,目标 f=ax+yf=ax+y, 要求 1≤f≤41\le f\le 4 在整块区域上恒成立。

有一份流传很广的解析这样开头:「由图分析可知,a≥0a\ge 0 且在 A(1,0)A(1,0) 点取得最小值,在 B(2,1)B(2,1) 取得最大值」, 接着只写两条不等式 a≥1a\ge1、2a+1≤42a+1\le4,得 a∈[1,32]a\in\left[1,\frac{3}{2}\right]。

答案是对的,这两句话却是没有根据的。 三个顶点上的目标值是

fA=a,fB=2a+1,fC=a+32,f_A=a,\qquad f_B=2a+1,\qquad f_C=a+\frac{3}{2},

两两作差:fB−fA=a+1f_B-f_A=a+1,fC−fA=32>0f_C-f_A=\frac{3}{2}>0,fB−fC=a−12f_B-f_C=a-\frac{1}{2}。于是

  • 最小值:a>−1a>-1 时在 AA,a<−1a<-1 时在 BB;
  • 最大值:a>12a>\frac{1}{2} 时在 BB,a<12a<\frac{1}{2} 时在 CC。

最大值点在 a=12a=\frac{1}{2} 处换人,而那份解析在还不知道 aa 的时候就把 BB 钉死了。 它蒙对,是因为最后解出的 [1,32]\left[1,\frac{3}{2}\right] 恰好整段落在 a>12a>\frac{1}{2} 里—— 这是事后才知道的事,不能拿来当事前的理由。

稳妥的写法

不想讨论就别讨论:把每个顶点都代进去,每个顶点给一条(组)不等式,最后取交集。 顶点个数一般只有三四个,多写两行换掉一整段讨论,考场上很划算; 而且这么写是充要的——线性函数在凸多边形上的值恰是顶点值的加权平均,顶点全落在 [m,M][m,M] 里,整块区域就都落在里面。

要讨论,就把讨论写完整:先比顶点值定出最优顶点随参数的分段,再在每一段里解不等式,最后并起来。 「由图分析可知」这五个字后面跟着的若是一个与参数有关的判断,那就是漏了一步。

学它之前先会

共 3 条前置、最深 3 层。

共 2 道题考到本条。