冷启动:先把三条不等式围出的那块地钉死,尤其是「它有没有边」
三条约束
x+y⩾2,2x−y⩽4,x−y⩾0
各自是一条直线的一侧。它们的公共部分长什么样,先算清楚再说。
一、它是有界的。 这一步最容易跳过,但它是后面两条路的地基:
- 由 x−y⩾0 得 y⩽x;由 2x−y⩽4 得 y⩾2x−4。两句合起来 2x−4⩽x,即
x⩽4.
- 由 x+y⩾2 与 y⩽x 得 2x⩾x+y⩾2,即
x⩾1.
- x 被夹在 [1,4] 里之后,y 也被夹住了:2−x⩽y⩽x。
所以这块地是有界的闭区域。为什么非验不可:「最值一定在顶点取到」这句话的前提正是有界;区域一旦有一头没拦住,目标函数可能往那头一路跑到 ±∞。(反过来也别过度解读——无界不等于没有最值,另一头照样可能被某个顶点卡死,那时最大值没有、最小值仍在。)
二、它的顶点只有三个。 三条边界两两联立:
| 联立哪两条 | 解 | 代第三条验 | 是顶点吗 |
|---|
| x+y=2 与 x−y=0 | (1,1) | 2⋅1−1=1⩽4 ✓ | 是 |
| x+y=2 与 2x−y=4 | (2,0) | 2−0=2⩾0 ✓ | 是 |
| x−y=0 与 2x−y=4 | (4,4) | 4+4=8⩾2 ✓ | 是 |
三个解全都过关——但这只是本题的运气。两条边界的交点落在第三条约束外面是常事,那种点不是顶点,必须当场扔掉。每算出一个交点就回代验一遍,别攒到最后。
于是可行域就是以 (1,1)、(2,0)、(4,4) 为顶点的那块三角区域。

解法一:把 z 读成截距,让一族平行线从下往上推
① 改写。 记 z=2x+3y,解出 y:
y=−32x+3z.
这是一族斜率固定为 −32 的平行线,纵截距是 3z。z 越小,截距越小,直线越靠下——于是「求 z 的最小值」变成了「这族线往下压,最后一次还碰得到可行域是在哪儿」。
② 先比一次斜率。 三条边界的斜率分别是
x+y=2: −1,2x−y=4: 2,x−y=0: 1.
目标线的 −32 与这三个数都不相等,所以等值线不与任何一条边平行,最优解落在某个顶点上、而且唯一。(若它恰好等于其中一个,最优解会是整条边,答案仍对,但「唯一」要收回。)
③ 往下推。 −32>−1,说明目标线比左下那条边 x+y=2 更平缓。把它从区域下方往上抬,第一个碰到的是区域最靠右下的那个角 (2,0)——过 (1,1) 的那条同斜率线截距更高(35 比 34 大),所以 (1,1) 不是最先碰到的。
④ 算。
zmin=2×2+3×0=4.
⑤ 顺手把最大值也拿走。 继续往上推,最后离开可行域的是 (4,4):
zmax=2×4+3×4=20.
答案 4。 这正是官方解析写的那句「直线 y=−32x+Z 过点 (2,0) 时,(2x+3y)min=4」。
这条路唯一的风险是方向搞反。 「截距小 ⇒ z 小」只在 y 的系数为正时成立;目标若是 2x−3y,z=2x−3y⇒y=32x−3z,z 越大截距越小,方向整个翻过来。动笔前把 z 解成截距看一眼符号,比凭印象记「往左下走变小」可靠得多。
解法二:三条边界两两联立,三个顶点各代一次
不想判断平移方向,就把顶点全算出来比大小——这条路只做算术。
① 凭什么只看顶点。 可行域是有界闭凸多边形,区域里任一点 P 都能写成三个顶点的凸组合:
P=λ1A+λ2B+λ3C,λi⩾0, λ1+λ2+λ3=1.
目标 z=2x+3y 是线性的,于是
z(P)=λ1z(A)+λ2z(B)+λ3z(C) ⩾ min{z(A),z(B),z(C)}⋅∑λi=min{z(A),z(B),z(C)}.
区域上的最小值就是三个顶点上那三个数里最小的那个——这是个恒等式级别的结论,不是经验。
② 顶点已在冷启动里算好:(1,1)、(2,0)、(4,4)。
③ 逐个代。
z(1,1)=2+3=5,z(2,0)=4+0=4,z(4,4)=8+12=20.
④ 比大小。 最小 4,最大 20。答案 4。
这条路的代价是「顶点一个都不能漏、区域外的交点一个都不能留」——所以 ① 里那张回代验证的表是必做功课,不是排版。顶点多的时候(五六条约束)它会比平移法慢,但它不依赖任何方向感,稳。
解法三:一张图都不画——把 2x+3y−4 配成三条约束的非负组合
前两条路都得先把区域画出来(或至少在脑子里摆出来)。这一条不用。
① 把三条约束统一成「某个式子 ⩾0」。
A=x+y−2⩾0,B=4−2x+y⩾0,C=x−y⩾0.
(第二条是把 2x−y⩽4 移项得来的。)
② 设待定系数,比系数。 猜最小值是 m,找非负数 a,b,c 使
2x+3y−m=aA+bB+cC
对所有 x,y 成立(是恒等式,不是在某点成立)。右边展开是
(a−2b+c)x+(a+b−c)y+(−2a+4b),
对应系数相等:
⎩⎨⎧a−2b+c=2,a+b−c=3,−2a+4b=−m.
③ 解。 前两式相加消去 c:2a−b=5,即 b=2a−5。代回第一式:a−2(2a−5)+c=2⇒c=3a−8。于是三个系数都被 a 一个字母管着,三条非负条件各给一个下限:
a⩾0,b=2a−5⩾0 ⇒ a⩾25,c=3a−8⩾0 ⇒ a⩾38,
三个里最紧的是 a⩾38。而第三式给 m=2a−4b=2a−4(2a−5)=20−6a,a 越大 m 越小,下界越松。所以取能取到的最小的 a:
a=38,b=31,c=0,m=20−6⋅38=4.
三个系数都 ⩾0 ✓。
④ 放缩。 代回去:
2x+3y−4=38⩾0(x+y−2)+31⩾0(4−2x+y) ⩾ 0,
即对可行域里每一个点都有 2x+3y⩾4。到这一步只证明了 4 是个下界。
⑤ 验等号够得着——这一步不能省。 等号要求系数为正的那两项同时为 0:
{x+y−2=04−2x+y=0⟹(x,y)=(2,0).
再验它满足第三条约束:C=2−0=2⩾0 ✓。所以 (2,0) 确实在可行域里,4 够得着。
下界 + 取到 = 最小值。答案 4。 只写到 ④ 就收笔,得到的是「2x+3y 不小于 4」,这句话对 3、对 0 也一样成立——没验等号的下界不是最小值。
⑥ 为什么 c 偏偏是 0。 这不是凑巧:在最优点 (2,0) 处,A 与 B 都恰好为 0(两条约束卡死),而 C=2>0(松着)。松着的那条若在组合里配了正系数,等号处就会多出一项 cC>0,4 就取不到了。所以「松的约束配 0、紧的约束配正数」是必然的——③ 里那个「a 越大 m 越小、但 c⩾0 拦着」的推导,走的正是这条必然性。
⑦ 它比画图多给了什么。 三个变量以上画不出可行域,这套配系数照跑;而且写出来的是一串恒等式加一次放缩,每一步都可复核——等于顺手给出了一份证明,而不只是一个答案。