工业工程考研专业课|运筹学完全攻略
引言:为什么运筹学是 IE 考研的「分水岭」
翻开任意一所院校的工业工程考研招生目录,专业课一栏出现频率最高的就是运筹学。清华、天大、上交、西交、华科、浙大、东南、重大、北航……绝大多数院校的学硕专业课都包含运筹学,部分院校的专硕也考。
原因很简单:运筹学是工业工程学科的方法论根基。你在本科阶段学的生产计划与控制、设施规划、质量管理、物流系统,底层逻辑全部来自运筹学。导师招研究生,最看重的也正是这个能力。
运筹学这门课的特点非常鲜明:
| 特点 | 具体表现 | 应对策略 |
|---|---|---|
| 套路性强 | 题型固定,解题步骤标准化 | 背模板 + 大量练手 |
| 计算量大 | 单纯形表迭代、动态规划递推、网络计划时差计算 | 限时训练,提高准确率 |
| 概念抽象 | 对偶理论、影子价格、灵敏度分析 | 结合经济含义理解 |
| 易失分 | 一步算错,整题崩盘 | 建立检查清单,每步验算 |
好消息是:运筹学是可以通过「正确的方法 + 足够的练习」稳定拿到高分的。它不靠天赋,靠的是熟练度。本文的目标就是帮你把这套熟练度建立起来。
一、先搞清楚:你考的是哪种运筹学
这是最重要也最容易被忽略的一步。不同院校的运筹学考试范围差异极大,用错教材、复习错范围,会浪费大量时间。
1.1 三类常见的考试范围
| 类型 | 覆盖内容 | 代表院校风格 | 难度 |
|---|---|---|---|
| A 类:基础运筹 | 线性规划、单纯形法、对偶、运输问题、整数规划、网络计划 | 多数院校 | 中 |
| B 类:标准运筹 | A 类 + 动态规划、图论、排队论、存储论、决策分析 | 主流 985/211 | 中高 |
| C 类:运筹+其他 | 运筹学 + 管理学/经济学/统计学/系统工程 合卷 | 部分院校 | 高(面广) |
1.2 真题是最重要的指南针
第一步:搞到目标院校近 10-15 年真题。 这是所有工作中优先级最高的。
拿到真题后,做三件事:
- 统计题型分布:把每道题归到具体章节,统计各章节的分值占比
- 识别固定题型:很多院校有「每年必考」的题型,例如某校年年考一道运输问题的表上作业法,某校年年考一道网络计划的时间参数计算
- 判断难度层次:是考基础计算,还是考建模能力,还是考证明推导
举例说明如何分析真题:
假设你统计某校近 10 年真题,得到如下分布:
线性规划建模 + 单纯形法 25 分/年(10 年 10 考)
对偶理论 + 灵敏度分析 20 分/年(10 年 9 考)
运输问题 18 分/年(10 年 8 考)
整数规划(分支定界/割平面) 15 分/年(10 年 6 考)
网络计划(关键路径/时差) 15 分/年(10 年 7 考)
动态规划 12 分/年(10 年 5 考)
排队论 10 分/年(10 年 4 考)
其他(存储论/决策/图论) 剩余
看到这张表,复习策略就非常清楚了:线性规划、对偶、运输问题三块占 63 分,必须做到「闭着眼都能做对」;网络计划和整数规划是第二梯队;动态规划、排队论保证基础题不丢分即可。
1.3 教材选择的建议
市面上主流的运筹学教材各有侧重:
| 教材 | 特点 | 适用 |
|---|---|---|
| 清华大学《运筹学》编写组(俗称「清华版」) | 内容全面、体系严谨、例题经典 | 多数院校指定,首选 |
| 运筹学(哈姆迪·塔哈) | 讲解透彻、案例丰富 | 辅助理解,尤其对偶和灵敏度 |
| 运筹学(Hillier & Lieberman) | 国际视野、软件结合 | 想深入理解或读博 |
| 目标院校本科讲义/课件 | 最贴近出题风格 | 如果能搞到,优先级最高 |
强烈建议:搞到目标院校本科生用的讲义或课件。考研专业课由该校老师命题,命题风格往往延续本科教学风格。很多院校的考研真题甚至直接改编自本科期末试题。
二、线性规划:整个运筹学的地基
线性规划(Linear Programming, LP)是所有后续内容的起点,也是每年必考的重头戏。
2.1 建模:从文字题到数学模型
这是最容易失分的环节,因为建模错了,后面算得再对也白搭。
标准建模五步法:
第一步:确定决策变量
问自己:这道题要决定什么?
写法:设 x₁ = 产品 A 的产量,x₂ = 产品 B 的产量
注意:变量要写清楚单位(吨/件/小时)
第二步:写出目标函数
问自己:要最大化还是最小化?最大化什么/最小化什么?
写法:max Z = 5x₁ + 8x₂
注意:系数是单位贡献(利润/成本),与目标单位一致
第三步:列出约束条件
资源类:消耗量 ≤ 可用量
需求类:产量 ≥ 最低要求 / ≤ 最大市场
配比类:A 成分占比 ≥ 某比例(需交叉相乘化为线性)
平衡类:流入 = 流出
第四步:非负约束
x₁, x₂ ≥ 0(除非题目明确允许负值)
第五步:检查维度一致性
每一行的量纲是否一致?(吨对吨、小时对小时)
经典建模陷阱:
| 陷阱 | 错误做法 | 正确做法 |
|---|---|---|
| 配比约束 | 写成 x₁/(x₁+x₂) ≥ 0.3 | 化为 0.7x₁ - 0.3x₂ ≥ 0 |
| 绝对值 | 直接写 |x| | 引入 x = x⁺ - x⁻,x⁺, x⁻ ≥ 0 |
| 「至少」「至多」混淆 | 把 ≥ 写成 ≤ | 逐字读题,「不少于」= ≥ |
| 固定成本 | 直接加常数到目标函数 | 需引入 0-1 变量 |
| 多目标 | 直接相加 | 需确定权重或用目标规划 |
2.2 单纯形法:必须练到「肌肉记忆」
单纯形法是线性规划的核心算法,几乎每年必考一道完整的迭代计算题。
标准解题步骤(以最大化标准型为例):
步骤 1:标准化
- 目标函数转为 max
- 约束不等式通过加松弛变量(≤)或减剩余变量(≥)化为等式
- 保证右端常数项 b ≥ 0
- 若约束是 ≥ 或 =,需要构造人工变量(大 M 法或两阶段法)
步骤 2:建立初始单纯形表
列:cⱼ | x₁ x₂ ... xₙ | 松弛变量 | 人工变量 | b
行:c_B | 基变量列 | 系数矩阵 | 右端项
底行:检验数 σⱼ = cⱼ - c_B · Pⱼ
步骤 3:最优性检验
最大化问题:所有 σⱼ ≤ 0 → 已达最优
若存在 σⱼ > 0 → 未达最优,继续迭代
步骤 4:确定换入变量(进基)
选 σⱼ 最大者对应的 xⱼ 进基
步骤 5:确定换出变量(出基)
最小比值原则:θ = min{bᵢ/aᵢⱼ | aᵢⱼ > 0}
比值最小的行对应的基变量出基
若所有 aᵢⱼ ≤ 0 → 问题无界(无有限最优解)
步骤 6:旋转运算(枢轴变换)
主元 aᵣₖ(第 r 行第 k 列)
第 r 行除以 aᵣₖ,使主元变为 1
其他行减去适当倍数,使第 k 列其余元素变为 0
步骤 7:返回步骤 3,直至最优
考场提速技巧:
- 熟练掌握「行变换」的机械操作。这是一项纯技能,练 50 道以上就能形成肌肉记忆。
- 每迭代一次,立即验算。检查方法:把当前基可行解代入原约束,看是否满足;计算目标函数值,看是否单调改善。
- 注意退化情况。当最小比值出现平局时,可能出现退化循环。考试中若遇到,按「下标最小的变量出基」规则处理即可。
- 大 M 法的 M 要写清楚。M 是一个足够大的正数,在检验数行中,含 M 的项要单独标注。
2.3 单纯形法的四种结局
考试常考「判断解的类型」,必须能准确识别:
| 结局 | 判定条件 | 图形含义 |
|---|---|---|
| 唯一最优解 | 所有非基变量检验数 σⱼ < 0 | 最优解在某一顶点 |
| 无穷多最优解 | 所有 σⱼ ≤ 0,且存在某个非基变量 σⱼ = 0 | 最优解在一条棱上 |
| 无界解 | 存在 σⱼ > 0,且该列所有 aᵢⱼ ≤ 0 | 可行域无界且目标可无限改善 |
| 无可行解 | 大 M 法/两阶段法结束时,人工变量仍在基中且 > 0 | 约束矛盾,可行域为空 |
三、对偶理论:理解经济含义才能拿满分
对偶理论是运筹学中最抽象、也最能拉开差距的板块。它不只是计算,更要求你理解「影子价格」的经济含义。
3.1 对偶问题的构造规则
掌握「对称形式」和「非对称形式」的对应表,这是基本功:
| 原问题(max) | 对偶问题(min) |
|---|---|
| 第 i 个约束为 ≤ | 第 i 个对偶变量 yᵢ ≥ 0 |
| 第 i 个约束为 = | 第 i 个对偶变量 yᵢ 无约束 |
| 第 i 个约束为 ≥ | 第 i 个对偶变量 yᵢ ≤ 0 |
| 第 j 个变量 xⱼ ≥ 0 | 第 j 个对偶约束为 ≥ |
| 第 j 个变量 xⱼ 无约束 | 第 j 个对偶约束为 = |
| 第 j 个变量 xⱼ ≤ 0 | 第 j 个对偶约束为 ≤ |
记忆口诀:「约束对变量,正常对正常,反常对反常」。
具体说:最大化问题中,「≤」约束是「正常」的,对应对偶变量「≥0」也是「正常」的;「≥」约束是「反常」的,对应对偶变量「≤0」也是「反常」的。正常的对正常的,反常的对反常的。
3.2 对偶理论的核心定理
必须熟记的三个定理:
弱对偶性:原问题(max)的任意可行解的目标值 ≤ 对偶问题(min)的任意可行解目标值。
强对偶性:若原问题有最优解,则对偶问题也有最优解,且两者最优值相等。
互补松弛性:
- 若原问题第 i 个约束在最优解处为严格不等式(有剩余资源),则对偶变量 yᵢ* = 0
- 若对偶变量 yᵢ* > 0,则原问题第 i 个约束在最优解处取等号(资源用尽)
- 若原变量 xⱼ* > 0,则对偶问题第 j 个约束取等号
- 若对偶问题第 j 个约束为严格不等式,则 xⱼ* = 0
互补松弛性是考试高频考点,常用来:
- 已知原问题最优解,求对偶问题最优解
- 验证某个解是否最优
- 简化对偶问题的求解
3.3 影子价格:对偶变量的经济含义
这是理解对偶理论的关键。
设原问题是「在资源约束下最大化利润」,那么对偶变量 yᵢ* 的含义是:
在最优解附近,第 i 种资源增加 1 个单位,目标函数(总利润)的增加量。
这也叫资源的影子价格(Shadow Price)或边际价值。
影子价格的三个实用结论:
影子价格 > 0 → 该资源是稀缺的(约束是紧的) 此时资源已全部用完,增加这种资源能提升总利润。
影子价格 = 0 → 该资源是过剩的(约束是松的) 此时资源有剩余,再增加不会带来任何收益。
影子价格反映了资源的最优配置信号 若某资源的影子价格高于其市场价格,应当购买更多该资源;反之则不应购买。
典型的考试问法:
「该资源的影子价格是多少?是否值得以 XX 元的价格购买更多该资源?」 答:比较影子价格与购买价格。影子价格 > 购买价格 → 值得购买。
「若资源 b₁ 从 100 增加到 120,最优目标值变为多少?」 答:先用灵敏度分析确定该变化是否在允许范围内;若在范围内,新目标值 = 原目标值 + Δb₁ × y₁*。
3.4 灵敏度分析:必考计算题
灵敏度分析研究的是:当模型参数(cⱼ、bᵢ、aᵢⱼ)变化时,最优解和最优值如何变化。
三类灵敏度分析的标准做法:
(1)价值系数 cⱼ 的变化
若 xⱼ 是非基变量:只需检查该变量的检验数 σⱼ 是否仍 ≤ 0(max 问题)。 计算新的 σⱼ′,若 σⱼ′ ≤ 0,最优解不变;否则需继续迭代。
若 xⱼ 是基变量:需重新计算所有非基变量的检验数。 方法:用变化后的 c_B 重新计算 σⱼ = cⱼ - c_B·Pⱼ,全部 ≤ 0 则最优解不变。
(2)右端常数 bᵢ 的变化
关键判据:基不变的条件是 B⁻¹b′ ≥ 0(即新的基变量取值仍非负)。
计算步骤:
1. 计算 B⁻¹(从最优单纯形表中读取,即初始单位矩阵对应的列)
2. 计算新的基变量值 X_B′ = B⁻¹b′
3. 若所有 X_B′ ≥ 0,则最优基不变,新解为 X_B′
新目标值 Z′ = c_B·B⁻¹b′ = Y*·b′
4. 若有分量 < 0,则基改变,需用对偶单纯形法继续求解
(3)技术系数 aᵢⱼ 的变化
- 若 aᵢⱼ 对应非基列:重新计算该列 Pⱼ′ = B⁻¹Pⱼ,再算检验数 σⱼ′
- 若 aᵢⱼ 对应基列:情况复杂,通常需要重新求解
新增变量或新增约束的处理:
| 情形 | 处理方法 |
|---|---|
| 新增一个变量 | 计算其检验数 σ_{n+1},若 σ ≤ 0 则最优解不变;否则以该变量进基继续迭代 |
| 新增一个约束 | 检查原最优解是否满足新约束。满足 → 最优解不变;不满足 → 加入新约束,用对偶单纯形法求解 |
对偶单纯形法要点:保持「检验数行满足最优性(对偶可行)」,通过迭代消除「基变量为负(原问题不可行)」。它的最小比值原则与原始单纯形法不同:
出基:选 bᵢ 最小(最负)的行
进基:在出基行中,对 aᵣⱼ < 0 的列,选 |σⱼ/aᵣⱼ| 最小者
四、运输问题:表上作业法的完整套路
运输问题是线性规划的特殊形式,因其结构特殊,有专门的高效解法。
4.1 产销平衡的标准运输问题
模型形式:
min Z = ΣΣ cᵢⱼ xᵢⱼ
s.t. Σⱼ xᵢⱼ = aᵢ (i = 1,...,m) 产地 i 的产量约束
Σᵢ xᵢⱼ = bⱼ (j = 1,...,n) 销地 j 的销量约束
xᵢⱼ ≥ 0
关键性质:若所有 aᵢ 和 bⱼ 都是整数,则必存在整数最优解。这使得运输问题不需要用整数规划方法。
另一个关键性质:约束系数矩阵秩为 m+n-1,因此基可行解中基变量的个数为 m+n-1 个。
4.2 表上作业法三步走
第一步:确定初始基可行解
三种常用方法:
| 方法 | 思路 | 优点 | 缺点 |
|---|---|---|---|
| 西北角法 | 从表格左上角开始,优先分配 | 最简单 | 初始解质量差,迭代次数多 |
| 最小元素法 | 优先分配给运价最小的格子 | 初始解较好 | 需比较运价 |
| 伏格尔法(VAM) | 按「次小运价-最小运价」的罚数最大者优先 | 初始解最接近最优 | 计算稍复杂 |
考试建议:掌握最小元素法(够用且快),理解伏格尔法的原理(可能考概念题)。
注意:用最小元素法或伏格尔法时,每次填完一个数,要同时划去一行或一列。当行和列同时满足时,只能划去一个,另一个需补 0(这是补「退化」的处理,必须记住,否则基变量个数会不够)。
第二步:求检验数(最优性检验)
两种方法:
- 闭回路法:对每个空格,找一条由水平/垂直线段组成的闭合回路,计算交替加减的运价代数和。
- 位势法(对偶变量法):更高效。设 uᵢ(行位势)和 vⱼ(列位势),对基变量有 uᵢ + vⱼ = cᵢⱼ。令 u₁ = 0,解出所有位势,再对非基变量算 σᵢⱼ = cᵢⱼ - (uᵢ + vⱼ)。
考试建议:必须用位势法,闭回路法在格子多时极易出错且耗时。
位势法步骤:
1. 令 u₁ = 0
2. 对所有基变量格子,列方程 uᵢ + vⱼ = cᵢⱼ,逐个解出所有 uᵢ 和 vⱼ
3. 对所有空格,计算 σᵢⱼ = cᵢⱼ - uᵢ - vⱼ
4. 若所有 σᵢⱼ ≥ 0(min 问题),已达最优
5. 否则,选 σᵢⱼ 最小(最负)的空格进基
第三步:调整(闭回路调整法)
1. 以进基空格为起点,画闭回路(其余顶点必须是基变量格子)
2. 从进基格开始,交替标记 +、-、+、-
3. 在所有标记「-」的格子中,找运量最小者 θ
4. 奇数顶点(+)加 θ,偶数顶点(-)减 θ
5. 值为 0 的格子中只保留一个作为基变量(其余视为空格,值为 0)
6. 返回第二步
关键提醒:闭回路必须唯一存在。对于标准运输表(m 行 n 列),任意空格加进去,一定存在唯一的闭回路。画不出来说明你的基变量个数不对(可能是退化处理出了问题)。
4.3 产销不平衡的处理
| 情形 | 处理方法 |
|---|---|
| 产 > 销(Σaᵢ > Σbⱼ) | 增加一个虚拟销地,销量 = Σaᵢ - Σbⱼ,运价 = 0 |
| 销 > 产(Σbⱼ > Σaᵢ) | 增加一个虚拟产地,产量 = Σbⱼ - Σaᵢ,运价 = 0 |
| 某产地必须全部运出 | 该产地的虚拟销地运价设为 M(大正数) |
| 某销地必须满足 | 该销地的虚拟产地运价设为 M(大正数) |
4.4 转运问题
转运问题允许货物经过中间节点中转。处理方法是转化为标准运输问题:
1. 把每个产地和销地都看作既是产地又是销地
2. 设定一个「缓冲量」T(通常取总产量 Σaᵢ)
3. 每个点的「产量」= 原产量 + T,「销量」= 原销量 + T
4. 自己到自己的运价 = 0
5. 按标准运输问题求解
五、整数规划:分支定界与割平面
当决策变量必须取整数时(如设备台数、人员数量、项目选择),就需要整数规划。
5.1 三种整数规划类型
| 类型 | 定义 | 典型场景 |
|---|---|---|
| 纯整数规划 | 所有变量必须为整数 | 设备采购数量 |
| 混合整数规划 | 部分变量为整数 | 产量连续 + 设备台数整数 |
| 0-1 规划 | 变量只能取 0 或 1 | 项目选择、选址决策 |
5.2 分支定界法(Branch and Bound)
核心思想:先求解线性松弛问题(忽略整数约束),若得到的解不是整数,则通过不断「分支」(加约束)和「定界」(剪枝)来搜索整数最优解。
标准步骤:
步骤 1:求解松弛问题(LP Relaxation)
若松弛问题无解 → 整数规划也无解
若松弛问题最优解满足整数要求 → 即为最优解,停止
否则,设松弛问题最优值为上界(max 问题),进入步骤 2
步骤 2:分支
选一个非整数值的变量 xⱼ = bⱼ(bⱼ 不是整数)
生成两个子问题:
子问题 A:原问题 + 约束 xⱼ ≤ ⌊bⱼ⌋
子问题 B:原问题 + 约束 xⱼ ≥ ⌈bⱼ⌉
(⌊⌋ 为下取整,⌈⌉ 为上取整)
步骤 3:定界
对每个子问题求解,更新上界和下界
下界:已找到的最好整数可行解的目标值
上界:所有未处理子问题中最大的松弛问题目标值
步骤 4:剪枝
出现以下情况之一,该分支可以剪掉:
(a) 子问题无可行解
(b) 子问题的最优解满足整数要求(记录为候选最优解)
(c) 子问题的松弛最优值 ≤ 当前下界(不可能产生更好的整数解)
步骤 5:重复步骤 2-4,直到所有分支处理完毕
最终下界对应的整数解即为最优解
考场技巧:
- 画分支树。在草稿纸上画出分支树,标清楚每个节点的目标值和解,避免混乱。
- 优先分支「离整数最远」的变量。经验规则:选小数部分最接近 0.5 的变量分支,收敛更快。
- 注意剪枝。这是得分的关键——很多考生只顾分支,忘了剪枝,导致计算量爆炸。
- max 问题和 min 问题的上下界方向相反,不要搞混。
5.3 0-1 规划的建模技巧
0-1 变量是建模的万能工具,以下几类约束必须掌握:
(1)项目选择的逻辑关系
| 逻辑关系 | 约束写法 |
|---|---|
| 项目 j 必须被选中 | xⱼ = 1 |
| 至少选一个 | Σxⱼ ≥ 1 |
| 至多选 k 个 | Σxⱼ ≤ k |
| 恰好选 k 个 | Σxⱼ = k |
| 若选 A 则必选 B | x_A ≤ x_B |
| A、B 至少选一个 | x_A + x_B ≥ 1 |
| A、B 至多选一个(互斥) | x_A + x_B ≤ 1 |
| A、B 要么都选要么都不选 | x_A = x_B |
| 若不选 A 则不能选 B | x_B ≤ x_A |
(2)固定成本问题
场景:生产产品 j 需要固定投入 Fⱼ(如设备调试费),一旦生产就要付出,不生产则不用付。
引入 0-1 变量 yⱼ:yⱼ = 1 表示生产产品 j,yⱼ = 0 表示不生产
约束:xⱼ ≤ M·yⱼ (M 为足够大的数,通常取 xⱼ 的上界)
目标:min Z = Σ(cⱼxⱼ + Fⱼyⱼ)
原理:若 xⱼ > 0,则 yⱼ 必须为 1(付出固定成本);若 yⱼ = 0,则 xⱼ 必须为 0。
(3)多中选一约束
场景:从 m 个备选方案中选择恰好一个。
Σ yⱼ = 1,yⱼ ∈ {0,1}
(4)隐含的「或」约束
场景:满足约束 A 或 约束 B 之一。
引入 0-1 变量 y 和大数 M:
约束 A:f(x) ≤ b₁ + M·y
约束 B:g(x) ≤ b₂ + M·(1-y)
5.4 指派问题与匈牙利法
指派问题是 0-1 规划的特殊形式(也是运输问题的特例):n 个人做 n 件事,每人做一件,求最小总成本。
匈牙利法步骤(最小化问题):
步骤 1:系数矩阵每行减去该行最小元素
步骤 2:每列减去该列最小元素
步骤 3:用最少的水平线/垂直线覆盖所有 0 元素
若最少线数 = n,得到最优解,转到步骤 5
若最少线数 < n,转到步骤 4
步骤 4:变换矩阵
找出未被覆盖的元素中的最小值 θ
未被覆盖的行:-θ
被覆盖的列:+θ
返回步骤 3
步骤 5:找出 n 个不同行不同列的 0 元素,即为最优指派
非标准情形的处理:
| 情形 | 处理 |
|---|---|
| 最大化问题 | 用最大元素减去每个元素,转化为最小化 |
| 人数 ≠ 事数 | 增加虚拟行或列,系数填 0 |
| 某人不能做某事 | 该位置系数填 M(大正数) |
六、网络计划技术(PERT/CPM)
网络计划是运筹学中最直观、也最容易拿满分的部分。它在工程项目、生产排程、产品研发中应用极广,是 IE 学生的必备技能。
6.1 网络图的绘制规则
双代号网络图(箭线表示活动)绘制规则:
- 箭线方向从左向右,不允许逆向
- 一条箭线表示一个活动,首尾必须有节点
- 相邻节点之间只能有一条箭线
- 不允许出现循环回路
- 只允许有一个起点节点和一个终点节点
- 节点编号:箭尾编号 < 箭头编号
虚活动的用法:虚活动(虚箭线)不消耗时间和资源,只表示逻辑关系。两种必须用虚活动的情形:
- 区分并行活动:两个活动同时从节点 i 开始、到节点 j 结束,必须用虚活动区分
- 表达搭接关系:例如「B 在 A 完成后开始,C 在 A 完成一半后开始」
6.2 时间参数计算(必考)
六个时间参数及其计算:
| 参数 | 符号 | 计算(从前往后/从后往前) | 含义 |
|---|---|---|---|
| 最早开始时间 | ES | ES = max{EF(紧前活动)} | 该活动最早能开始的时间 |
| 最早完成时间 | EF | EF = ES + D | 该活动最早能完成的时间 |
| 最迟完成时间 | LF | LF = min{LS(紧后活动)} | 该活动最迟必须完成的时间 |
| 最迟开始时间 | LS | LS = LF - D | 该活动最迟必须开始的时间 |
| 总时差 | TF | TF = LS - ES = LF - EF | 不影响总工期的机动时间 |
| 自由时差 | FF | FF = min{ES(紧后)} - EF | 不影响紧后活动最早开始的机动时间 |
关键路径的判定:总时差为 0 的活动连成的路径即为关键路径。
考试必记的几个结论:
- 关键路径是网络图中最长的路径(不是最短)
- 关键路径可能不止一条
- 缩短工期必须缩短关键路径上的活动
- 总时差为 0 的活动,自由时差也必为 0(反之不成立)
- 一项活动的总时差 ≥ 其自由时差
6.3 概率型网络计划(PERT)
当活动时间不确定时,用三点估计法:
期望时间:tₑ = (a + 4m + b) / 6
方差:σ² = ((b - a) / 6)²
其中 a 为最乐观时间,m 为最可能时间,b 为最悲观时间。
工期概率计算:
1. 计算关键路径上各活动的期望时间和方差
2. 关键路径期望工期 Tₑ = Σtₑ
3. 关键路径方差 σ²_cp = Σσ²
4. 标准差 σ_cp = √(σ²_cp)
5. 计算 Z 值:Z = (T_指定 - Tₑ) / σ_cp
6. 查标准正态分布表,得完工概率
典型考法:「该工程在 30 天内完工的概率是多少?」——先算 Tₑ 和 σ_cp,再算 Z = (30 - Tₑ)/σ_cp,查表得 P。
6.4 时间-费用优化
核心思想:在关键路径上找「直接费用率最低」的活动来压缩。
压缩费用率(费用斜率)= (赶工费用 - 正常费用) / (正常时间 - 赶工时间)
优化步骤:
1. 找出关键路径
2. 在关键路径上选择费用率最低的活动进行压缩
3. 压缩量受两个限制:
(a) 该活动自身的压缩极限(正常时间 - 赶工时间)
(b) 不使其他路径成为关键路径(考虑总时差)
4. 重新计算网络时间参数,更新关键路径
5. 重复,直到达到目标工期或无法继续压缩
6. 总费用 = 各活动直接费用之和 + 间接费用(工期 × 间接费率)
7. 对比不同压缩方案的总费用,取最低者
关键提醒:当压缩导致多条关键路径并存时,必须同时在所有关键路径上各压缩一个活动才能缩短总工期。
七、动态规划:建模比计算更重要
动态规划(DP)是运筹学中最考验思维的部分。它的难点不在计算,而在正确地定义状态和写出递推关系。
7.1 动态规划的四要素
1. 阶段(Stage):把问题分解为若干相互联系的阶段,k = 1,2,...,n
2. 状态(State):每个阶段开始时的客观条件,记作 sₖ
关键:状态必须满足「无后效性」——当前阶段之后的决策只与当前状态有关,
与之前如何到达该状态无关
3. 决策(Decision):每个阶段的选择,记作 uₖ(sₖ)
4. 状态转移方程:sₖ₊₁ = T(sₖ, uₖ)
7.2 贝尔曼最优性原理
一个最优策略的子策略,对于它的某个子过程的初始和终结状态而言,也必是最优的。
通俗说:最优路径上,从中间任意一点到终点这段路,也一定是从该点到终点的最优路径。
这是动态规划成立的理论基础,也是逆序解法的依据。
7.3 逆序解法(最常用)
基本递推方程(以最小化为例):
fₖ(sₖ) = min{ d(sₖ, uₖ) + fₖ₊₁(sₖ₊₁) }
uₖ
边界条件:f_{n+1}(s_{n+1}) = 0(或根据题意设定)
解题标准步骤:
步骤 1:划分阶段
明确「阶段」代表什么(时间段、决策顺序、资源分配轮次等)
步骤 2:定义状态变量
问自己:到了第 k 阶段,我需要知道什么信息才能做决策?
这个「什么」就是状态
步骤 3:确定决策变量及允许决策集合
该阶段可以选什么?取值范围是什么?
步骤 4:写出状态转移方程
sₖ₊₁ = T(sₖ, uₖ)
步骤 5:写出递推关系
fₖ(sₖ) = opt{ 阶段指标 + fₖ₊₁(sₖ₊₁) }
步骤 6:从最后一个阶段开始,逆序逐阶段计算
通常使用表格法,把每个状态的最优决策记录下来
步骤 7:回溯,找出最优策略
从初始状态出发,按记录的决策逐步前进
7.4 四类经典动态规划模型
(1)资源分配问题
场景:总量为 A 的资源分配给 n 个部门,第 k 个部门分配 x 单位资源的收益为 gₖ(x),求总收益最大的分配方案。
状态 sₖ:第 k 阶段初剩余的可分配资源量
决策 uₖ:分配给第 k 个部门的资源量,0 ≤ uₖ ≤ sₖ
转移:sₖ₊₁ = sₖ - uₖ
递推:fₖ(sₖ) = max{ gₖ(uₖ) + fₖ₊₁(sₖ - uₖ) }
边界:f_{n+1}(0) = 0,f_{n+1}(s) = 0
(2)最短路径问题
场景:从 A 点到 E 点,中间经过若干中间点,求最短路径。
阶段:按地理位置分层
状态:当前所在的点
决策:下一步走到哪个点
转移:当前点 → 下一个点
递推:fₖ(sₖ) = min{ d(sₖ, uₖ) + fₖ₊₁(uₖ) }
(3)生产存储问题
场景:n 个周期,每周期需求 dₖ,生产能力有限,有存储费用,求总成本最小的生产计划。
状态 sₖ:第 k 周期初的库存量
决策 uₖ:第 k 周期的生产量
约束:sₖ + uₖ - dₖ = sₖ₊₁ ≥ 0(不允许缺货)
成本:生产费用 C(uₖ) + 存储费用 h·sₖ₊₁
递推:fₖ(sₖ) = min{ C(uₖ) + h·(sₖ+uₖ-dₖ) + fₖ₊₁(sₖ+uₖ-dₖ) }
(4)背包问题
场景:容量为 W 的背包,n 种物品,第 k 种物品重量 wₖ、价值 vₖ,每种物品可装多件(完全背包)或一件(0-1 背包),求最大价值。
状态 sₖ:第 k 阶段剩余的背包容量
决策 uₖ:装入第 k 种物品的数量
转移:sₖ₊₁ = sₖ - wₖ·uₖ
递推:fₖ(sₖ) = max{ vₖ·uₖ + fₖ₊₁(sₖ - wₖ·uₖ) }
7.5 动态规划的应试策略
最重要的一点:把表格画清楚。
动态规划的计算量不大,但状态组合可能很多。用表格法可以:
- 避免遗漏状态
- 方便回溯最优决策
- 便于检查
表格格式示例:
阶段 k=3:
状态 s₃ | 决策 u₃=0 | u₃=1 | u₃=2 | ... | f₃*(s₃) | u₃*
0 | - | - | - | | ? | ?
1 | ... | ... | ... | | ? | ?
常见失分点:
- 状态定义不满足无后效性 → 递推关系错误
- 忘记边界条件
- 只算了最优值,没回溯最优策略(题目问「最优方案是什么」时)
- 约束条件没考虑全(如库存不能为负)
八、排队论:公式多但套路固定
排队论(随机服务系统理论)研究的是「顾客到达—排队—接受服务—离开」这类系统的运行效率。
8.1 排队系统的三个组成部分
1. 输入过程(顾客到达规律)
- 顾客源:有限/无限
- 到达方式:逐个/成批
- 到达间隔分布:最常用泊松分布(即到达间隔服从负指数分布)
2. 排队规则
- 等待制(损失制/混合制)
- 服务顺序:FCFS(先到先服务)、LCFS、优先级、随机
3. 服务机构
- 服务台数量:单台/多台
- 服务台排列:单队单台、单队多台并联、多队多台、串联
- 服务时间分布:最常用负指数分布
8.2 Kendall 记号
标准形式:X / Y / Z / A / B / C
| 位置 | 含义 | 常见取值 |
|---|---|---|
| X | 到达间隔分布 | M(负指数/泊松)、D(定长)、E_k(k 阶爱尔朗)、G(一般) |
| Y | 服务时间分布 | 同上 |
| Z | 服务台数 | 1, 2, ..., c |
| A | 系统容量 | 默认 ∞ |
| B | 顾客源数 | 默认 ∞ |
| C | 服务规则 | 默认 FCFS |
最常考的是 M/M/1 和 M/M/c。
8.3 M/M/1 系统核心公式(必背)
设 λ 为平均到达率,μ 为平均服务率,ρ = λ/μ 为服务强度(ρ < 1 系统才稳定)。
| 指标 | 公式 |
|---|---|
| 系统空闲概率 P₀ | P₀ = 1 - ρ |
| 系统中有 n 个顾客的概率 Pₙ | Pₙ = (1-ρ)ρⁿ |
| 系统中平均顾客数 L_s | L_s = λ/(μ-λ) = ρ/(1-ρ) |
| 队列中平均顾客数 L_q | L_q = ρ²/(1-ρ) = L_s - ρ |
| 顾客在系统中平均逗留时间 W_s | W_s = 1/(μ-λ) |
| 顾客在队列中平均等待时间 W_q | W_q = λ/(μ(μ-λ)) = W_s - 1/μ |
| 顾客需等待的概率 | P(N ≥ 1) = ρ |
Little 公式(万能关系式):
L_s = λ · W_s
L_q = λ · W_q
W_s = W_q + 1/μ
L_s = L_q + λ/μ
记忆技巧:记住 L_s = λ/(μ-λ) 和 L_q = ρ²/(1-ρ) 两个核心公式,其余用 Little 公式推导,不用死记。
8.4 M/M/c 系统核心公式
设 c 个服务台,ρ = λ/(cμ),服务强度。
P₀ = [ Σ_{n=0}^{c-1} (λ/μ)ⁿ/n! + (λ/μ)^c/(c!(1-ρ)) ]^(-1)
L_q = P₀ · (λ/μ)^c · ρ / (c! · (1-ρ)²)
L_s = L_q + λ/μ
W_q = L_q / λ
W_s = L_s / λ
8.5 排队系统的优化(常考应用题)
典型问题:某维修站有 1 名维修工,设备故障率 λ,修复率 μ。设备故障停机损失为 C₁ 元/小时,维修工工资为 C₂ 元/小时。问:配置几名维修工总费用最低?
解题步骤:
1. 明确系统类型(通常是 M/M/c)
2. 对每个可能的 c 值(c = 1, 2, 3, ...),计算系统指标
- 计算 P₀
- 计算 L_s
3. 计算总费用:TC(c) = C₁ · L_s(c) + C₂ · c
4. 比较不同 c 的总费用,取最小者
注意:这里 L_s 就是「故障待修 + 正在修理」的设备总数,对应停机损失。
九、存储论与决策分析
这两部分在部分院校的考试中出现,通常各占 10 分左右,属于「背公式就能拿分」的部分。
9.1 确定性存储模型
(1)经济订货批量(EOQ)模型
假设:需求连续均匀,不允许缺货,订货提前期为 0 或已知,瞬时补货。
参数:D 年需求量,C_O 每次订货费,C_H 单位货物年存储费
经济订货批量:Q* = √(2·D·C_O / C_H)
最优订货次数:n* = D / Q*
最优订货周期:t* = Q* / D (年) = 365·Q*/D(天)
最小总成本:TC* = √(2·D·C_O·C_H)
(2)允许缺货的 EOQ 模型
增加参数 C_S:单位货物年缺货费。
最优订货批量:Q* = √(2D·C_O/C_H) · √((C_H + C_S)/C_S)
最大缺货量:S* = Q* · C_H/(C_H + C_S)
最大库存量:Q* - S*
(3)经济生产批量模型(EPQ)
假设:货物是逐渐生产补充的,生产速率 P 大于需求速率 D。
最优生产批量:Q* = √(2·D·C_O / (C_H·(1 - D/P)))
(4)有数量折扣的模型
步骤:
1. 从最低价格档开始,计算该档的 EOQ
2. 若该 EOQ 落在该档的订货量区间内 → 可行,计算总成本
3. 若 EOQ 小于该档下限 → 取该档下限作为候选批量,计算总成本
4. 逐档向上计算,比较所有可行方案的总成本(含货物成本)
5. 取总成本最小者
关键提醒:有折扣时,总成本 = 订货费 + 存储费 + 货物采购成本,三项都要算。
9.2 决策分析
(1)决策的三要素
- 决策者可选的策略(行动方案)
- 自然状态(不受决策者控制)
- 各策略在各状态下的收益/损失
(2)五种决策准则
| 准则 | 适用条件 | 决策规则 |
|---|---|---|
| 悲观准则(max-min) | 风险厌恶,不确定型 | 各方案取最小收益,再选其中最大者 |
| 乐观准则(max-max) | 风险偏好,不确定型 | 各方案取最大收益,再选其中最大者 |
| 等可能准则(Laplace) | 不确定型,无先验信息 | 各状态等概率,算期望收益,取最大 |
| 最小机会损失(Savage) | 不确定型 | 先构造后悔矩阵,再按悲观准则决策 |
| 折中准则(Hurwicz) | 不确定型,给定乐观系数 α | 各方案算 α·最大收益 + (1-α)·最小收益,取最大 |
(3)风险型决策(已知概率)
- 最大期望收益准则(EMV):计算各方案的期望收益,取最大
- 最小期望机会损失(EOL):计算各方案的期望后悔值,取最小 重要性质:EMV 准则与 EOL 准则得到的最优方案相同
- 完全信息期望价值(EVPI):EVPI = 完全信息下的期望收益 - 最大 EMV 性质:EVPI = 最小 EOL(这个等式常用于验算)
(4)决策树方法
多阶段决策用决策树:
符号约定:
□ 决策节点:决策者可选择的点
○ 状态节点:自然状态发生的点
△ 结果节点:标明收益值
解法:从右向左「回滚」
状态节点:计算期望收益值
决策节点:比较各分支,选最优,剪掉劣支
决策树解题步骤:
1. 从左到右画树,标清决策点、状态点、概率、收益
2. 从右到左计算:
- 遇到状态节点(○):计算期望值,写在节点上方
- 遇到决策节点(□):比较各方案的期望值,选最大(或最小损失),剪枝
3. 继续向左,直到根节点
4. 沿未剪掉的分支,读出最优决策序列
十、考场实战:时间分配与失分防范
10.1 三小时的标准时间分配
| 阶段 | 时长 | 内容 |
|---|---|---|
| 审题与规划 | 10 分钟 | 快速浏览全卷,标注难度,确定答题顺序 |
| 第一遍(会做的) | 90 分钟 | 按先易后难顺序,把所有有把握的题做完 |
| 第二遍(啃硬骨头) | 60 分钟 | 攻克需要思考的题 |
| 检查与补漏 | 20 分钟 | 验算关键步骤,补齐未完成的步骤分 |
核心原则:先拿稳的分,再拿难的分。 不要在一道不会的题上死磕 30 分钟,那道题即使做对也只有 15 分,而本来可以用这 30 分钟稳稳拿下两道会的题(30 分)。
10.2 各题型的用时参考
| 题型 | 分值 | 建议用时 |
|---|---|---|
| 选择题/填空题(概念) | 每题 3-5 分 | 每题 2-3 分钟 |
| 线性规划建模 | 10-15 分 | 12-15 分钟 |
| 单纯形法迭代 | 15-20 分 | 18-22 分钟 |
| 对偶与灵敏度分析 | 15-20 分 | 18-22 分钟 |
| 运输问题 | 15-20 分 | 18-22 分钟 |
| 整数规划 | 12-15 分 | 15-18 分钟 |
| 网络计划 | 12-15 分 | 12-15 分钟 |
| 动态规划 | 12-15 分 | 15-18 分钟 |
| 排队论 | 10 分 | 8-10 分钟 |
| 存储论/决策 | 10 分 | 8-10 分钟 |
10.3 十大失分点与防范清单
| # | 失分点 | 防范措施 |
|---|---|---|
| 1 | 建模时约束方向写反(≥/≤) | 逐字读题,把「不少于」「至多」等词圈出来 |
| 2 | 单纯形表迭代算错一个元素 | 每迭代一次,把当前解代入原约束验算 |
| 3 | 忘记写非负约束 | 建模最后统一检查一遍 |
| 4 | 最小比值原则用错(选了最大) | 默念「最小的出去」,因为第一个耗尽的先出基 |
| 5 | 运输问题退化没补 0 | 数一下基变量个数是否为 m+n-1 |
| 6 | 位势法求检验数算错 | 用 σᵢⱼ = cᵢⱼ - uᵢ - vⱼ 逐格验算 |
| 7 | 分支定界忘了剪枝 | 每生成一个子问题,先判断能否剪掉 |
| 8 | 网络计划时差算反 | 记住:ES/EF 从前往后取 max,LF/LS 从后往前取 min |
| 9 | 动态规划漏掉某些状态 | 用表格法,穷举所有可能状态 |
| 10 | 排队论公式记混 | 只记 L_s 和 L_q,其余用 Little 公式推 |
10.4 步骤分的争取策略
运筹学是按步骤给分的,即使最终结果算错,只要步骤对就能拿到大部分分。因此:
- 建模题:即使不会求解,也要把模型写完整(决策变量 + 目标函数 + 约束条件),这部分通常占 40%-50% 的分
- 计算题:写出正确的公式、正确的迭代过程,即使最后一步算错,也能拿 60%-70% 的分
- 不会做的题:写出相关的公式和思路,不要留空白
- 时间不够时:优先补全「框架性」内容(如单纯形表的初始表和最终表,中间迭代可简写)
十一、复习计划:三个月从零到熟练
阶段一:基础构建(第 1-5 周)
| 周次 | 内容 | 目标 |
|---|---|---|
| 第 1 周 | 线性规划基本概念、图解法、单纯形法原理 | 理解原理,能手工做小规模迭代 |
| 第 2 周 | 单纯形法强化、大 M 法、两阶段法 | 每天练 2 道完整迭代 |
| 第 3 周 | 对偶理论、影子价格、互补松弛 | 能解释经济含义 |
| 第 4 周 | 灵敏度分析、运输问题 | 掌握位势法和闭回路调整 |
| 第 5 周 | 整数规划、指派问题 | 掌握分支定界和匈牙利法 |
本阶段产出:完成教材例题 + 课后习题的 60%
阶段二:全面覆盖(第 6-10 周)
| 周次 | 内容 | 目标 |
|---|---|---|
| 第 6 周 | 网络计划(绘制、时间参数、关键路径) | 能独立绘制中等复杂网络图 |
| 第 7 周 | 网络计划优化、PERT | 掌握时间-费用优化步骤 |
| 第 8 周 | 动态规划(四类经典模型) | 能独立建立递推关系 |
| 第 9 周 | 图论(最短路、最大流、最小生成树) | 掌握 Dijkstra、Ford-Fulkerson |
| 第 10 周 | 排队论、存储论、决策分析 | 公式背熟,能做标准题型 |
本阶段产出:完成教材习题 90% + 开始做真题
阶段三:真题实战(第 11-13 周)
| 周次 | 内容 | 目标 |
|---|---|---|
| 第 11 周 | 真题第一遍(按套做,不计时) | 摸清命题风格和难度 |
| 第 12 周 | 真题第二遍(按专题做) | 攻克薄弱板块 |
| 第 13 周 | 真题第三遍(严格计时模考) | 训练时间分配 |
本阶段产出:近 10-15 年真题至少做三遍
阶段四:冲刺巩固(第 14 周至考前)
- 每天一套模拟或一套真题,保持手感
- 回看错题本,重点看「反复错」的题型
- 默写所有核心公式
- 整理「考场检查清单」,考前一天只看这个
结语:运筹学是「练」出来的
运筹学不同于政治和英语,它不靠背诵,靠的是大量的、有反馈的练习。
三条核心建议:
先理解原理,再练速度。不要一上来就背步骤。理解「为什么最小比值原则要选最小的」,你对单纯形法的记忆会深刻得多,也不容易在变型题上翻车。
建立错题本,按「错误类型」分类。不要只抄题目,要记录「我为什么错」——是概念不清、计算失误、还是方法用错。统计下来你会发现,80% 的失分集中在 2-3 类错误上,攻克它们,分数立刻上去。
真题至少三遍。第一遍摸底,第二遍按专题攻克,第三遍严格计时模考。真题的价值远高于任何模拟题,因为它直接反映命题人的风格和偏好。
最后提醒:运筹学是工业工程研究生的看家本领。认真学好它,不只是为了考研这几十分——你在研究生阶段做课题、写论文、进企业做项目,用的都还是这套东西。把基础打扎实,上岸之后的路会顺很多。
附:运筹学核心公式速查表
线性规划
检验数:σⱼ = cⱼ - c_B·B⁻¹·Pⱼ
最优性:max 问题所有 σⱼ ≤ 0
最小比值:θ = min{b̄ᵢ/āᵢₖ | āᵢₖ > 0}
对偶与灵敏度
对偶最优解:Y* = c_B·B⁻¹
影子价格:yᵢ* = ∂Z*/∂bᵢ
新目标值:Z′ = Z* + Σᵢ yᵢ*·Δbᵢ
基不变条件:B⁻¹b′ ≥ 0
运输问题
位势:uᵢ + vⱼ = cᵢⱼ(基变量)
检验数:σᵢⱼ = cᵢⱼ - uᵢ - vⱼ
基变量个数:m + n - 1
网络计划
ES/EF 从前往后取 max;LF/LS 从后往前取 min
TF = LS - ES = LF - EF
FF = min{ES(紧后)} - EF
PERT:tₑ = (a+4m+b)/6,σ² = ((b-a)/6)²
排队论(M/M/1)
ρ = λ/μ
L_s = ρ/(1-ρ),L_q = ρ²/(1-ρ)
W_s = 1/(μ-λ),W_q = λ/(μ(μ-λ))
Little 公式:L = λW
存储论
EOQ:Q* = √(2D·C_O/C_H)
允许缺货:Q* = √(2D·C_O/C_H)·√((C_H+C_S)/C_S)
生产批量:Q* = √(2D·C_O/(C_H(1-D/P)))
决策分析
EMV = Σ P(θᵢ)·V(aⱼ,θᵢ)
后悔值 = 该状态最大收益 - 该方案该状态收益
EVPI = 完全信息期望收益 - 最大 EMV = 最小 EOL
相关阅读
- 运筹学在工业工程里的落地:线性规划、排队论与仿真:从产品组合的线性规划算例讲到影子价格与瓶颈判断,详解 M/M/1 与 M/M/c 排队模型算…
- 工业工程考研专业课|管理学完全攻略:管理学不是背概念就能拿分——近年真题中论述题与案例分析合计占近一半分值,考的是用理论诊断现实…
- 工业工程考研数学全攻略:数一数二数三怎么选,怎么考到 120+:数学是考研的分水岭,150 分的科目能把总分拉开 40 分以上。本文先讲清楚工业工程各院校考…
- 工业工程保研(推免)全攻略:从大一开始的三年布局:保研不是大三下学期才开始的事,它从大一第一门课的成绩就已经开始了。本文拆解推免资格获取的硬性…
- 工业工程考研复试全攻略:笔试、面试、英语与临场应对:复试是考研最后一道关卡,也是最容易因准备不足翻车的一环——初试高分被刷、擦线逆袭每年都在发生…