1. 课程导入与线性规划全景
工厂接到订单后要决定每种产品各生产多少,物流公司要在有限车辆和时限内安排配送,农场要在有限的土地、水和肥料下选择种植结构——这些问题的共同点是:资源有限,而目标明确。线性规划(Linear Programming,简称 LP)正是处理这类"在约束下追求最优"问题的经典数学工具。本课程将带你从零开始,学会把一个现实决策问题翻译成线性规划模型,并掌握求解与结果解读的完整流程。
线性规划的三个核心构件
任何一个线性规划模型都由三部分组成,缺一不可:
- 决策变量:你真正要决定的量,通常记为 x₁, x₂, …, xₙ。例如"产品 A 的产量""从仓库 i 运往门店 j 的货物量"。决策变量必须可量化、可控制,且取值通常非负。
- 目标函数:你希望最大化或最小化的指标,如利润最大、成本最小、时间最短。它必须是决策变量的线性组合,形如 z = c₁x₁ + c₂x₂ + … + cₙxₙ。
- 约束条件:现实世界施加的限制,如原料总量、设备工时、预算上限、需求下限。每条约束同样是决策变量的线性等式或不等式。
所谓"线性",指目标函数和所有约束中,每个决策变量都只以一次方出现,且变量之间不做乘法、不取绝对值、不出现分段。这一限制看似苛刻,却换来了极强的可解性——成千上万个变量的模型也能在秒级求得全局最优解。
一个贯穿全课的教学示例
为便于后续章节逐步展开,这里先给出一个简单但完整的例子(数据为教学假设)。某小型家具作坊生产书桌和椅子,每张书桌耗木材 4 单位、工时 2 小时,利润 50 元;每把椅子耗木材 3 单位、工时 1 小时,利润 30 元。本周可用木材 120 单位、工时 50 小时。问如何安排产量使利润最大?
设书桌产量为 x₁,椅子产量为 x₂,则模型为:
max z = 50x₁ + 30x₂
s.t. 4x₁ + 3x₂ ≤ 120 (木材约束)
2x₁ + x₂ ≤ 50 (工时约束)
x₁ ≥ 0, x₂ ≥ 0 (非负约束)
这个模型只有两个变量,可以在平面上画出可行域并用等利润线平移求解,最优解出现在约束边界的交点上。它的价值不在于答案本身,而在于展示了"现实描述 → 变量定义 → 线性表达式 → 标准模型"的完整翻译过程。后续章节将把这一过程推广到多变量、多约束的规模,并引入单纯形法、对偶理论、灵敏度分析等工具。
线性规划的典型应用版图
线性规划的应用几乎覆盖所有需要"配置稀缺资源"的领域,下图展示了四类最常见场景及其模型要素的对应关系:
可以看到,场景虽异,建模骨架完全一致:先锁定"要决定的量",再写出"追求什么",最后把"不能突破的边界"逐条列成线性不等式。掌握这套翻译方法,比记住某个具体模型更重要。
本课程的学习路径
课程按"建模—求解—分析—应用"四层递进组织。第一阶段建立几何直觉与标准形规范,理解可行域、顶点与最优解的关系;第二阶段系统学习单纯形法与大 M 法,能手工完成小规模模型的迭代;第三阶段进入对偶理论与灵敏度分析,回答"资源涨价多少会改变方案""约束放松一单位值多少钱"这类管理问题;第四阶段通过运输、指派、整数规划入门等专题,把方法落到真实业务。每章都会配可复现的示例数据与判断依据,帮助你在动笔建模时知道每一步为什么这样做。
接下来,我们将从线性规划的几何直观入手,看看约束如何在平面上"切"出一块可行区域,以及最优解为什么总藏在区域的顶点上。