欢迎来到线性规划 (Linear Programming) 的世界!
你有没有想过,工厂如何决定两种产品各生产多少才能获得最高利润?或者物流公司如何找到运输货物的最低成本方案?这正是线性规划 (Linear Programming, LP) 的核心所在!简单来说,这是一种当你面对有限资源时,如何做出最佳决策的数学方法。
在本章中,我们将学习如何将现实生活中的问题转化为数学方程,并透过绘图来求解。别担心,这听起来可能有点复杂,我们会一步一步来拆解!
1. 先修知识:开始前你需要知道的事
在我们深入研究之前,请确保你已经掌握了以下两个数学概念:
• 绘制直线: 你应该要懂得如何绘制类似 \( y = 3x + 2 \) 或 \( 2x + 5y = 20 \) 的直线。
• 不等式: 请记住 \( y \leqslant 5 \) 的意思是“\( y \) 小于或等于 5”。在图表上,这代表一个完整的区域,而不仅仅是一条线。
2. 建立线性规划模型
任何 LP 问题的第一步都是“建模”(Formulation)。这只是一个听起来很专业的术语,意思是将文字叙述转换为数学符号。每个模型都需要四个部分:
A. 决策变量 (Decision Variables)
这些变量代表你试图做出的决定。我们通常将它们称为 \( x \) 和 \( y \)。
例子:设 \( x \) 为标准蛋糕的数量,\( y \) 为豪华蛋糕的数量。
B. 目标函数 (Objective Function)
这就是你的目标。你想极大化 (Maximize) 利润还是极小化 (Minimize) 成本?这部分总是写成一个方程。
例子:若要极大化利润 \( P \),且每个标准蛋糕利润为 \$2,豪华蛋糕为 \$3:Maximize \( P = 2x + 3y \)。
C. 约束条件 (Constraints)
这些是你的“规则”或限制(例如你只有 10kg 的面粉)。这些条件必须以不等式 (\( \leqslant \) 或 \( \geqslant \)) 来表示。
例子:如果每个蛋糕需要 2 小时制作,而你只有 40 小时可用:\( 2x + 2y \leqslant 40 \)。
D. 非负约束 (Non-negativity Constraints)
在现实世界中,你不可能做出“负数”的蛋糕!因此,我们几乎总是会包含以下条件:
\( x \geqslant 0, y \geqslant 0 \)
快速回顾: 每个 LP 模型都需要变量 (\( x, y \))、目标 (极大化/极小化) 和规则 (不等式)。
3. 图解法 (The Graphical Method)
由于在 D1 单元中我们只处理两个变量 (\( x \) 和 \( y \)),我们可以透过绘图来解决这些问题。方法如下:
步骤 1:绘制约束直线
将每个不等式视为等号来绘制直线。
小贴士: 要绘制 \( 2x + 5y = 20 \),可以使用“截距法”(cover-up method):
1. 令 \( x = 0 \),则 \( 5y = 20 \),得出 \( y = 4 \)。标记点 (0, 4)。
2. 令 \( y = 0 \),则 \( 2x = 20 \),得出 \( x = 10 \)。标记点 (10, 0)。
3. 将两点连接起来!
步骤 2:找出可行区域 (Feasible Region, R)
可行区域是图表上满足所有约束条件的范围。
重要提示: 在 Edexcel D1 考试中,惯例通常是涂黑(或删除)你“不要”的区域。这样会让中间剩下的可行区域 (R) 保持干净清晰。请务必查看题目要求,确认哪一边才是需要标记的!
步骤 3:寻找最佳解
一旦你有了清晰的可行区域 \( R \),“最佳”答案(最优解)通常会出现在该区域的顶点 (vertices,即角点) 上。有两种方法可以找到它:
方法 1:顶点法 (Vertex Method)
1. 找出区域 \( R \) 的每一个角点坐标。
2. 将每个 \( (x, y) \) 坐标代入你的目标函数。
3. 产生最高值(若是 Max 问题)或最低值(若是 Min 问题)的点就是你的最佳解!
方法 2:目标线法 (Objective Line / Ruler Method)
1. 为你的目标选择一个随机的“目标值”,例如,如果目标是 \( P = 2x + 3y \),则绘制 \( 2x + 3y = 12 \) 这条直线。
2. 将你的直尺放在这条线上。
3. 保持相同的角度滑动直尺,穿过可行区域。
4. 对于极大化 (Maximization) 问题,直尺在离开可行区域前碰到的最后一个点就是最佳解。
5. 对于极小化 (Minimization) 问题,直尺碰到的第一个点就是最佳解。
你知道吗? “目标线法”通常比计算每一个角点更快,特别是当角点坐标是复杂的小数时!
重点总结: 最佳解总是在可行区域的边界上找到,通常就在某个角点上。
4. 处理整数解
有时候,算出的答案如 \( x = 4.2, y = 3.8 \) 并不符合现实。如果你在卖汽车,你不可能卖出 0.2 辆!在这种情况下,我们需要整数解。
要避免的常见错误: 不要直接将答案四舍五入到最接近的整数!最接近的整数点实际上可能在可行区域之外,或者可能不是真正的最大值。
正确做法:
1. 找出精确的最优解(即使它是小数)。
2. 查看该点附近,且位于可行区域之内的整数坐标点。
3. 将这些附近的整数点代入目标函数,看看哪一个最优。
成功清单
• 仔细阅读: 题目要求是极大化还是极小化?
• 精确绘图: 绘图时请使用削尖的铅笔和直尺。线条画歪一点点都可能导致找错角点!
• 清晰标示: 务必标示坐标轴、每一条直线以及可行区域 \( R \)。
• 检查阴影: 题目要求你涂黑可行区域还是不想要的区域?(在 D1 中,通常是涂黑不想要的区域)。
• 非负约束: 别忘了 \( x \geqslant 0 \) 和 \( y \geqslant 0 \)。它们是你的图表在 \( x \) 轴和 \( y \) 轴上的“墙壁”。
如果起初觉得有点困难,别担心。只要多加练习绘图,你很快就能成为寻找“最佳甜蜜点”的专家!