欢迎来到线性规划 (Linear Programming)!
你好!欢迎来到决策数学 (Decision Mathematics) 中最实用的章节之一。线性规划 (Linear Programming, LP) 的核心就是在有限的资源下,做出最理想的决策。无论是工厂想极大化利润,还是医院想极小化开支,线性规划都是他们的必备工具。别担心起初会看到很多代数运算,我们会将其拆解成简单、合乎逻辑的步骤!
1. 构建问题 (Formulating a Problem)
在解决问题之前,我们需要将文字描述转化为数学“代码”。这个过程称为构建 (Formulation)。
A. 决策变量 (Decision Variables)
这些是你能够控制的数量,我们通常以 \(x\) 和 \(y\) 表示。
例子:设 \(x\) 为生产标准自行车的数量,\(y\) 为生产赛车自行车的数量。
B. 目标函数 (Objective Function)
这是你的目标。你是想赚取最多的金钱(极大化 Maximize),还是想花费最少的时间(极小化 Minimize)?
它通常长这样:极大化 \(P = 10x + 15y\)(这里 \(P\) 代表利润)。
C. 约束条件 (Constraints)
这些是你必须遵守的规则或限制,例如预算、空间或原材料的上限。
关键术语:非负约束 (Non-negativity constraints)。 在现实世界中,你不能生产负数量的自行车!因此,我们几乎总会加上 \(x \geq 0\) 和 \(y \geq 0\)。
步骤指南:如何构建问题
1. 定义变量: 清晰列出 \(x\) 和 \(y\) 代表什么。
2. 写下目标: 决定是要极大化还是极小化,并写出方程式。
3. 列出约束: 将每一个限制转化为不等式(例如 \(2x + 3y \leq 60\))。
4. 加入非负约束: 别忘了 \(x, y \geq 0\)!
小复习: 把变量当作你的“选择”,目标当作你的“目标”,约束条件则当作你的“边界”。
2. 图解法 (Graphical Solutions)
由于我们只处理两个变量(\(x\) 和 \(y\)),我们可以透过绘图来找出答案。
A. 绘制可行区域 (Feasible Region)
可行区域 (R) 是图表上同时满足所有约束条件的区域。
常见错误: 当画出如 \(2x + 5y \leq 10\) 的不等式时,请先画出直线 \(2x + 5y = 10\)。若要找出它与轴的交点,可令 \(x = 0\) 找出 \(y\)-截距,再令 \(y = 0\) 找出 \(x\)-截距。
你知道吗? 我们通常会涂掉不需要的区域。这样一来,剩下的可行区域便会保持干净,让人一目了然!
B. 寻找最优点 (Optimal Point)
一旦你标出了区域 \(R\),“最优”点通常会落在区域的顶点 (vertices)(即角落)。寻找最优点有两种方法:
方法一:目标函数线法 (Objective Line Method / Sliding Ruler)
这通常是最快的方法!
1. 为你的目标函数设定一个“目标”数值(例如,若目标是 \(P = 2x + 3y\),试着画出 \(2x + 3y = 6\) 这条线)。
2. 将尺放在这条线上。
3. 平移你的尺,使其保持与该直线平行,并横跨整个可行区域。
4. 尺在离开区域前接触到的最后一点就是极大值;最先接触到的点就是极小值。
方法二:顶点法 (Vertex Method)
如果觉得平移法很难掌握,也可以使用顶点法:
1. 找出可行区域每一个顶点的坐标。
2. 如果两条直线相交,你可能需要用联立方程式 (simultaneous equations) 来求出精确坐标。
3. 将每个坐标代入你的目标函数中。
4. 得到最大数值的坐标就是你的最优解!
关键提示: “最优”解几乎总是在两个或多个约束条件相交的顶点处。
3. 整数解 (Integer Solutions)
在许多现实问题中,答案不能是“一半”。你不能雇佣 4.7 个员工或购买 2.3 辆巴士,这些情况需要整数解。
如果你的最优点是像 \((5.2, 7.8)\) 这样,你不能简单地进行“四舍五入”,因为该点可能在可行区域之外!
技巧: 测试最优点附近且位于可行区域内的整数点。
例子:对于 \((5.2, 7.8)\),你可能需要测试 \((5, 7)\)、\((5, 8)\) 或 \((6, 7)\),看看哪个点符合条件且能给出最佳结果。
常见陷阱总结
1. 混淆符号: 仔细阅读!“至少”(At least) 代表 \(\geq\),“不超过”(No more than) 代表 \(\leq\)。
2. 涂错区域: 始终在不等式中代入一个点(如 \((0,0)\))来测试是否正确。如果 \(0 + 0 \leq 10\) 成立,那么包含 \((0,0)\) 的那一侧就是“需要的”区域。
3. 精确度: 请使用削尖的铅笔和尺。绘图上的小误差可能导致选错顶点!
记忆辅助: 若要记住目标函数线的平移法,把它想象成是一支探照灯,正在扫描区域以寻找最佳位置!
最终检查清单
- 我是否清楚定义了变量?
- 我是否包含了 \(x, y \geq 0\)?
- 我的可行区域是否清晰标记了 'R'?
- 如果题目要求整数,我有没有检查过附近的整数点?
你一定做得到的!线性规划只是一个逻辑拼图。多练习绘图,剩下的自然会融会贯通。