运筹学 · 知识点全解
> 参考教材:《运筹学》教材编写组 清华大学出版社 第四版
> 适用对象:管理科学、工业工程、计算机等专业
目录结构
| 章节 | 名称 | 核心主题 | 难度 |
|---|---|---|---|
| 第1章 | 绪论 | 运筹学概况 | ⭐ |
| 第2章 | 线性规划建模及单纯形法 | 线性规划模型、图解法、单纯形法 | ⭐⭐⭐ |
| 第3章 | 对偶理论与灵敏度分析 | 对偶问题、影子价格 | ⭐⭐⭐⭐ |
| 第4章 | 运输问题 | 产销平衡、表上作业法 | ⭐⭐⭐ |
| 第5章 | 整数规划 | 分支定界、0-1规划、指派问题 | ⭐⭐⭐⭐ |
| 第6章 | 目标规划 | 多目标决策、偏差变量 | ⭐⭐⭐ |
| 第7章 | 动态规划 | 多阶段决策、最优化原理 | ⭐⭐⭐⭐ |
| 第8章 | 图与网络分析 | 最短路、最大流、最小费用流 | ⭐⭐⭐ |
| 第9章 | 统筹方法 | 网络图、关键路径 | ⭐⭐ |
| 第10章 | 决策分析 | 不确定/风险决策、效用理论 | ⭐⭐ |
| 第11章 | 对策论 | 矩阵对策、混合策略 | ⭐⭐⭐ |
| 第12章 | 排队论 | M/M/1、M/M/s模型 | ⭐⭐⭐⭐ |
| 第13章 | 库存论 | EOQ模型、随机库存 | ⭐⭐⭐ |
| 第14章 | 非线性规划 | 一维搜索、无约束极值 | ⭐⭐⭐⭐ |
| 第15章 | 多目标决策规划 | Pareto最优、分层序列法 | ⭐⭐⭐ |
| 第16章 | 用Excel求解运筹学问题 | 软件操作 | ⭐ |
第1章 绪论
运筹学核心思想
第2章 线性规划建模及单纯形法(重点 ⭐⭐⭐)
2.1 线性规划模型
2.2 图解法(两变量)
2.3 单纯形法
2.4 人工变量法
第3章 对偶理论与灵敏度分析
3.1 对偶问题
3.2 对偶定理
3.3 影子价格
3.4 灵敏度分析
第4章 运输问题
4.1 运输问题模型
4.2 表上作业法
第5章 整数规划
5.1 整数规划模型
5.2 分支定界法
5.3 割平面法
5.4 0-1规划
第6章 目标规划
6.1 数学模型
6.2 图解法与单纯形法
第7章 动态规划(重点 ⭐⭐⭐⭐)
7.1 基本概念
7.2 动态规划基本方程
7.3 典型应用
第8章 图与网络分析
8.1 图的基本概念
8.2 最短路问题
8.3 最大流问题
8.4 最小费用最大流
第9章 统筹方法(网络计划)
9.1 网络图绘制
9.2 时间参数
第10章 决策分析
10.1 决策分类
10.2 不确定型决策准则
10.3 风险型决策
10.4 效用理论
第11章 对策论
11.1 基本概念
11.2 矩阵对策
第12章 排队论(重点 ⭐⭐⭐⭐)
12.1 基本概念
12.2 M/M/1 模型
12.3 M/M/s 模型
第13章 库存论
13.1 基本概念
13.2 确定性库存模型
13.3 随机性库存模型
第14章 非线性规划
14.1 基本概念
14.2 一维搜索
14.3 无约束极值
14.4 约束极值
第15章 多目标决策规划
15.1 基本概念
15.2 求解方法
第16章 用Excel求解运筹学问题
🔑 重要公式速查
| 类别 | 公式 |
|---|---|
| 单纯形检验数 | σⱼ = cⱼ − Σcᵢaᵢⱼ |
| 对偶弱定理 | cᵀx ≤ bᵀy |
| 定量订货EOQ | Q* = √(2DS/H) |
| M/M/1平均顾客数 | L = λ/(μ−λ) |
| M/M/1平均逗留时间 | W = 1/(μ−λ) |
| M/M/1排队强度 | ρ = λ/μ < 1 |
| 动态规划基本方程 | fₖ(sₖ)=opt{vₖ+fₖ₊₁(sₖ₊₁)} |
📝 配套练习题
第1章 · 绪论 练习题
练习1 — 运筹学的基本概念
运筹学的英文名称 Operations Research(OR)的含义是什么?运筹学解决实际问题的基本工作步骤有哪些?
Operations Research 意为"作战研究"或"运作研究",指用数学方法研究各类资源的优化配置与有效运用。
基本工作步骤:提出问题 → 建立数学模型 → 求解模型 → 检验与评价 → 实施
运筹学的核心思想是"在资源约束下寻求最优决策"。
判断以下说法是否正确,并说明理由:
(1) 运筹学只能解决工程领域的优化问题。
(2) 运筹学给出的最优解一定可以在实际中直接实施。
(3) 数学模型越复杂,求解结果就越准确。
(1) 错误。运筹学广泛应用于管理、经济、军事、物流、信息技术等多个领域。
(2) 错误。模型是对现实的简化,最优解还需结合实际约束(如政策、人为因素)进行调整。
(3) 错误。模型的准确性取决于对问题的本质把握,过复杂的模型可能难以求解且对数据误差敏感。
运筹学的核心是"合适的模型解决合适的问题"。
第2章 · 线性规划建模及单纯形法 练习题
练习1 — 线性规划模型(基础)
某工厂生产甲、乙两种产品,每件产品消耗的原材料和工时如下表:
| 产品 | 原材料(kg/件) | 工时(h/件) | 利润(元/件) |
|---|---|---|---|
| 甲 | 4 | 2 | 60 |
| 乙 | 3 | 4 | 80 |
每天可用原材料 120kg,工时 100h,且市场要求乙产品产量不超过 20 件。试建立该问题的线性规划模型,使每天总利润最大。
设甲、乙产品的日产量分别为 $x_1$、$x_2$ 件。
$\\max z = 60x_1 + 80x_2$
s.t.(约束条件)
$\\quad 4x_1 + 3x_2 \\leq 120$(原材料约束)
$\\quad 2x_1 + 4x_2 \\leq 100$(工时约束)
$\\quad x_2 \\leq 20$(市场约束)
$\\quad x_1, x_2 \\geq 0$
线性规划三要素:决策变量、线性目标函数、线性约束条件。
将下列线性规划的一般形式转化为标准形式($\\max z = c^T x$,s.t. $Ax = b$,$x \\geq 0$):
$\\min z = 3x_1 + 2x_2$
s.t.
$2x_1 + x_2 \\geq 10$
$x_1 + 3x_2 \\leq 15$
$x_1, x_2 \\geq 0$
第一步:将极小化转化为极大化 → $\\max z' = -3x_1 - 2x_2$
第二步:引入松弛变量和剩余变量
$\\quad 2x_1 + x_2 - x_3 = 10$($x_3 \\geq 0$ 为剩余变量)
$\\quad x_1 + 3x_2 + x_4 = 15$($x_4 \\geq 0$ 为松弛变量)
标准形式:
$\\max z' = -3x_1 - 2x_2$
s.t.
$\\quad 2x_1 + x_2 - x_3 = 10$
$\\quad x_1 + 3x_2 + x_4 = 15$
$\\quad x_1, x_2, x_3, x_4 \\geq 0$
松弛变量将 $\\leq$ 变为等式,剩余变量将 $\\geq$ 变为等式。
练习2 — 图解法
用图解法求解以下线性规划问题:
$\\max z = 4x_1 + 3x_2$
s.t.
$x_1 + x_2 \\leq 8$
$2x_1 + x_2 \\leq 12$
$x_1 \\leq 5$
$x_1, x_2 \\geq 0$
求出最优解和最优值。
可行域为约束条件围成的凸多边形。
顶点求解:
— $A(0,0)$:$z = 0$
— $B(5,0)$:$z = 4\\times5 + 0 = 20$
— $C(5,2)$:由 $x_1=5$ 与 $x_1+x_2=8$ 联立,$x_2=3$,但还需满足 $2x_1+x_2 \\leq 12$ → $10+2=12 \\leq 12$ ✓,故 $C(5,2)$,$z=4\\times5+3\\times2=26$
— $D(4,4)$:由 $x_1+x_2=8$ 与 $2x_1+x_2=12$ 联立 → 相减得 $x_1=4$,$x_2=4$,$z=4\\times4+3\\times4=28$
— $E(0,8)$:$z=3\\times8=24$
比较各顶点,最优解为 $x_1^=4$,$x_2^=4$,$z^*=28$
线性规划的最优解总是在可行域的顶点处取得。
考虑线性规划问题:
$\\max z = 2x_1 + 4x_2$
s.t.
$x_1 + 2x_2 \\leq 8$
$x_1 \\leq 4$
$x_2 \\leq 3$
$x_1, x_2 \\geq 0$
(1) 用图解法求解。
(2) 说明该问题是否有无穷多最优解,为什么?
(1) 可行域顶点:$O(0,0)$,$A(4,0)$,$B(4,2)$,$C(2,3)$,$D(0,3)$
目标函数值:$z_O=0$,$z_A=8$,$z_B=2\\times4+4\\times2=16$,$z_C=2\\times2+4\\times3=16$,$z_D=12$
最优值 $z^*=16$,最优解为 $B(4,2)$ 和 $C(2,3)$。
(2) 有无穷多最优解。因为目标函数 $z=2x_1+4x_2$ 的等值线与约束 $x_1+2x_2=8$ 的边界线平行,线段 BC 上的所有点都是最优解。
当目标函数等值线与某条约束边界平行时,会出现无穷多最优解。
练习3 — 单纯形法
用单纯形法求解以下线性规划问题:
$\\max z = 3x_1 + 2x_2$
s.t.
$x_1 + x_2 \\leq 6$
$2x_1 + x_2 \\leq 10$
$x_1, x_2 \\geq 0$
要求:写出初始单纯形表,列出每次迭代后的表格,给出最优解。
引入松弛变量 $x_3$、$x_4$ 得标准形式:
$\\max z = 3x_1 + 2x_2$,s.t. $x_1+x_2+x_3=6$,$2x_1+x_2+x_4=10$,$x_j \\geq 0$
| 基 | $x_1$ | $x_2$ | $x_3$ | $x_4$ | b |
|---|---|---|---|---|---|
| $x_3$ | 1 | 1 | 1 | 0 | 6 |
| $x_4$ | 2 | 1 | 0 | 1 | 10 |
| $\\sigma_j$ | 3 | 2 | 0 | 0 | 0 |
最小比值:$\\min\\{6/1=6,\\; 10/2=5\\}=5$ → $x_4$ 出基。
| 基 | $x_1$ | $x_2$ | $x_3$ | $x_4$ | b |
|---|---|---|---|---|---|
| $x_3$ | 0 | 0.5 | 1 | -0.5 | 1 |
| $x_1$ | 1 | 0.5 | 0 | 0.5 | 5 |
| $\\sigma_j$ | 0 | 0.5 | 0 | -1.5 | -15 |
| 基 | $x_1$ | $x_2$ | $x_3$ | $x_4$ | b |
|---|---|---|---|---|---|
| $x_2$ | 0 | 1 | 2 | -1 | 2 |
| $x_1$ | 1 | 0 | -1 | 1 | 4 |
| $\\sigma_j$ | 0 | 0 | -1 | -1 | -16 |
$\\sigma_j = c_j - \\sum c_B a_{ij}$,当所有 $\\sigma_j \\leq 0$ 时达到最优。
考虑线性规划问题:
$\\max z = x_1 + 2x_2$
s.t.
$x_1 + x_2 \\leq 10$
$-x_1 + x_2 \\leq 4$
$x_1 \\leq 6$
$x_1, x_2 \\geq 0$
(1) 写出标准形式。
(2) 用单纯形法求解,指出最优解和最优值。
(3) 如果目标函数变为 $\\max z = x_1 + x_2$,最优解是否会变化?为什么?
(1) 引入松弛变量 $x_3,x_4,x_5 \\geq 0$:
$\\max z = x_1 + 2x_2$
s.t. $x_1 + x_2 + x_3 = 10$,$-x_1 + x_2 + x_4 = 4$,$x_1 + x_5 = 6$
$x_1,x_2,x_3,x_4,x_5 \\geq 0$
(2) 单纯形法求解过程:
迭代后:
| 基 | $x_1$ | $x_2$ | $x_3$ | $x_4$ | $x_5$ | b |
|---|---|---|---|---|---|---|
| $x_3$ | 2 | 0 | 1 | -1 | 0 | 6 |
| $x_2$ | -1 | 1 | 0 | 1 | 0 | 4 |
| $x_5$ | 1 | 0 | 0 | 0 | 1 | 6 |
| $\\sigma_j$ | 3 | 0 | 0 | -2 | 0 | -8 |
| 基 | $x_1$ | $x_2$ | $x_3$ | $x_4$ | $x_5$ | b |
|---|---|---|---|---|---|---|
| $x_1$ | 1 | 0 | 0.5 | -0.5 | 0 | 3 |
| $x_2$ | 0 | 1 | 0.5 | 0.5 | 0 | 7 |
| $x_5$ | 0 | 0 | -0.5 | 0.5 | 1 | 3 |
| $\\sigma_j$ | 0 | 0 | -1.5 | -0.5 | 0 | -17 |
非基变量检验数为 0 时,可能存在无穷多最优解。
练习4 — 人工变量法(大M法)
用大M法求解以下线性规划问题:
$\\max z = 2x_1 + 3x_2$
s.t.
$x_1 + x_2 \\geq 4$
$3x_1 + x_2 \\leq 12$
$x_1, x_2 \\geq 0$
标准化:第一约束为 $\\geq$,引入剩余变量 $x_3$ 和人工变量 $x_5$;第二约束引入松弛变量 $x_4$
$\\max z = 2x_1 + 3x_2 - Mx_5$
s.t. $x_1 + x_2 - x_3 + x_5 = 4$
$\\quad 3x_1 + x_2 + x_4 = 12$
$\\quad x_1, x_2, x_3, x_4, x_5 \\geq 0$
大M法将人工变量 $x_5$ 的系数设为 $-M$($M$ 为很大的正数),迫使最优解中人工变量为 0。
迭代后得最优解:$x_1^=0$,$x_2^=4$,$x_3^=0$,$x_4^=8$,$x_5^=0$,$z^=12$
大M法的关键在于用足够大的惩罚系数 $M$ 保证人工变量在最优解中被驱赶出基。
某线性规划问题在用单纯形法求解时,初始基变量中需要引入人工变量。试用两阶段法求解:
$\\min z = 5x_1 + 3x_2$
s.t.
$2x_1 + x_2 \\geq 6$
$x_1 + 2x_2 \\geq 4$
$x_1, x_2 \\geq 0$
要求写出第一阶段和第二阶段的求解过程。
第一阶段:构造辅助问题,引入剩余变量 $x_3,x_4$ 和人工变量 $x_5,x_6$
辅助目标:$\\min w = x_5 + x_6$
s.t. $2x_1 + x_2 - x_3 + x_5 = 6$
$\\quad x_1 + 2x_2 - x_4 + x_6 = 4$
$\\quad x_j \\geq 0$
用单纯形法求解辅助问题,得到 $w^*=0$,$x_5=x_6=0$,得到一个基本可行解 $x_1=8/3$,$x_2=2/3$。
以第一阶段得到的可行基为初始基继续迭代,得到最优解:
$x_1^=8/3$,$x_2^=2/3$,$z^*=5\\times(8/3) + 3\\times(2/3) = 40/3 + 2 = 46/3 \\approx 15.33$
两阶段法避免了 $M$ 取值的数值困难,第一阶段寻找可行解,第二阶段寻找最优解。
第3章 · 对偶理论与灵敏度分析 练习题
练习1 — 对偶问题
写出下列线性规划问题的对偶问题:
$\\max z = 4x_1 + 5x_2$
s.t.
$x_1 + 2x_2 \\leq 10$
$3x_1 + x_2 \\leq 12$
$x_1, x_2 \\geq 0$
原问题有 2 个约束、2 个变量,对偶问题有 2 个变量、2 个约束。
设对偶变量为 $y_1 \\geq 0$、$y_2 \\geq 0$,对偶问题为:
$\\min w = 10y_1 + 12y_2$
s.t.
$y_1 + 3y_2 \\geq 4$
$2y_1 + y_2 \\geq 5$
$y_1, y_2 \\geq 0$
对偶规则:$\\max$ 的原问题对应 $\\min$ 的对偶;原问题约束为 $\\leq$,对偶变量 $\\geq 0$;原问题变量 $\\geq 0$,对偶约束为 $\\geq$。
练习2 — 对偶定理
已知原问题为:
$\\max z = 2x_1 + 3x_2$,s.t. $x_1 + 2x_2 \\leq 6$,$3x_1 + x_2 \\leq 8$,$x_1,x_2 \\geq 0$
其对偶问题的最优解为 $y_1^*=7/5$,$y_2^*=1/5$,最优值 $w^*=10$。
(1) 验证弱对偶定理。
(2) 利用互补松弛定理求原问题的最优解。
(1) 对偶问题:$\\min w = 6y_1 + 8y_2$
s.t. $y_1+3y_2 \\geq 2$,$2y_1+y_2 \\geq 3$,$y_1,y_2 \\geq 0$
弱对偶定理:对任意可行解 $x$ 和 $y$,有 $c^Tx \\leq b^Ty$。
代入 $y^$:$w^ = 6\\times(7/5) + 8\\times(1/5) = 42/5 + 8/5 = 50/5 = 10$
原问题任何可行解的目标值 $\\leq 10$。
(2) 互补松弛定理:若 $y_i^* > 0$,则原问题第 $i$ 个约束取等式。
$y_1^* = 7/5 > 0$ → $x_1 + 2x_2 = 6$
$y_2^* = 1/5 > 0$ → $3x_1 + x_2 = 8$
联立解得:$x_1^=2$,$x_2^=2$,$z^*=2\\times2+3\\times2=10$ ✓
互补松弛提供了从对偶解反推原问题最优解的简洁方法。
练习3 — 影子价格与灵敏度分析
某公司用两种资源生产三种产品,最优单纯形表的最终结果如下($x_4$、$x_5$ 为松弛变量):
最优解:$x_1^*=4$,$x_3^*=6$,$x_2^*=x_4^*=x_5^*=0$,$z^*=420$
最终检验数行:$\\sigma_2=-3$,$\\sigma_4=-2$,$\\sigma_5=-5$
(1) 求两种资源的影子价格。
(2) 如果第一种资源的可用量增加 1 单位,总利润能增加多少?
(3) 当第二种资源的价格为 4 元/单位时,从经济角度是否应该增加该资源的投入?
(1) 松弛变量 $x_4$、$x_5$ 对应两个资源的约束,其检验数的相反数即为影子价格。
资源1的影子价格 = $-\\sigma_4 = 2$(元/单位)
资源2的影子价格 = $-\\sigma_5 = 5$(元/单位)
(2) 资源1增加 1 单位,总利润增加量 = 影子价格 = 2 元(在当前最优基不变的前提下)。
(3) 资源2的影子价格为 5 元/单位,即每增加 1 单位该资源可带来 5 元利润增量。市场价 4 元 < 5 元,所以应该增加投入——每单位净赚 1 元。
影子价格 $y_i = \\partial z / \\partial b_i$,反映了资源的边际价值。
已知线性规划问题:
$\\max z = 6x_1 + 4x_2$,s.t. $2x_1 + 3x_2 \\leq 24$,$3x_1 + 2x_2 \\leq 18$,$x_1,x_2 \\geq 0$
最优单纯形表如下($x_3$、$x_4$ 为松弛变量):
基:$x_1=6$,$x_2=0$,$x_3=12$,$x_4=0$,$z^*=36$
检验数:$\\sigma_2=0$,$\\sigma_3=0$,$\\sigma_4=-2$
(1) 当 $c_1$ 的系数在什么范围内变化时,最优基不变?
(2) 如果增加一个新变量 $x_5$,其在约束中的系数为 $(1,1)^T$,$c_5=5$,问最优解是否需要调整?
(1) 设 $c_1 = 6 + \\Delta c_1$,要保持最优基不变,需所有非基变量的检验数 $\\leq 0$。
$\\sigma_2 = c_2 - (c_1a_{12} + c_3a_{32}) = 4 - ((6+\\Delta c_1)\\times a_{12} + 0) = 4 - (6+\\Delta c_1)\\times a_{12} \\leq 0$
从单纯形表中可求出 $a_{12}$,通过灵敏度分析公式可得 $\\Delta c_1$ 的范围。
经计算,$c_1$ 的变化范围为 $4 \\leq c_1 \\leq 8$ 时最优基不变。
(2) 计算新变量 $x_5$ 的检验数:$\\sigma_5 = c_5 - \\sum c_B a_{5j} = 5 - (6\\times1 + 0\\times1) = -1 < 0$
检验数为负,$x_5$ 入基不会改善目标函数 → 不需要调整最优解。
灵敏度分析帮助企业决策资源价格、产品定价策略变化时的最优方案调整。
第4章 · 运输问题 练习题
练习1 — 运输问题模型与初始方案
三个产地 $A_1,A_2,A_3$ 的产量分别为 50、60、40 吨;四个销地 $B_1,B_2,B_3,B_4$ 的需求量分别为 30、40、50、30 吨。单位运价(元/吨)如下表:
| $B_1$ | $B_2$ | $B_3$ | $B_4$ | |
|---|---|---|---|---|
| $A_1$ | 3 | 5 | 7 | 6 |
| $A_2$ | 4 | 2 | 8 | 5 |
| $A_3$ | 6 | 4 | 3 | 4 |
(1) 判断该运输问题是否产销平衡。
(2) 用最小元素法求初始调运方案。
(1) 总产量 = $50+60+40 = 150$ 吨,总需求量 = $30+40+50+30 = 150$ 吨 → 产销平衡。
(2) 最小元素法:每次选运价最小的格子优先分配。
运价最小为 $c_{32}=4$ 和 $c_{34}=4$(并列),先选 $c_{32}=4$($A_3 \\to B_2$):
— 分配 $\\min(40,40)=40$ 吨,$A_3$ 用完,$B_2$ 满足
— 剩余最小 $c_{34}=4$:$A_3$ 已用完,跳过
— 次小 $c_{22}=2$:$B_2$ 已满足,跳过
— $c_{21}=4$:$A_2 \\to B_1$ 分配 $\\min(60,30)=30$,$B_1$ 满足
— $c_{34}=4$:$A_3$ 已用完
— $c_{13}=7$:$A_1 \\to B_3$ 分配 $\\min(50,50)=50$,$B_3$ 满足,$A_1$ 用完
— $c_{24}=5$:$A_2 \\to B_4$ 分配 30 吨
初始方案:$A_1\\to B_3:50$,$A_2\\to B_1:30$,$A_2\\to B_4:30$,$A_3\\to B_2:40$,总运费 = $50\\times7+30\\times4+30\\times5+40\\times4 = 350+120+150+160 = 780$ 元。
最小元素法优先满足运费最小的路线,但不一定最优,需用位势法检验。
对于上述运输问题,用沃格尔法(VAM)重新求初始方案,并比较最小元素法得到的总运费,说明哪种初始方案更优。
VAM 法核心:计算每行每列最小运价与次小运价之差(罚数),优先满足罚数最大的行/列。
行罚数:$A_1$行:$|5-3|=2$,$A_2$行:$|4-2|=2$,$A_3$行:$|4-3|=1$
列罚数:$B_1$列:$|4-3|=1$,$B_2$列:$|4-2|=2$,$B_3$列:$|7-3|=4$,$B_4$列:$|5-4|=1$
最大罚数 4($B_3$列),最小运价 $c_{33}=3$,分配 $\\min(40,50)=40$,$A_3$ 用完。
重复计算,最终方案(经验证):
$A_1\\to B_1:30$,$A_1\\to B_2:20$,$A_2\\to B_2:20$,$A_2\\to B_4:30$,$A_3\\to B_3:40$,$A_1\\to B_3:10$(补充)
调整后总运费经计算 比最小元素法更优(运费更低),因此 VAM 法通常能给出更好的初始解。
沃格尔法的初始解通常比最小元素法更接近最优解,但计算量稍大。
练习2 — 表上作业法
已知某运输问题的初始方案如下(数字为运量):
| $B_1$ | $B_2$ | $B_3$ | 产量 | |
|---|---|---|---|---|
| $A_1$ | 10 | — | 5 | 15 |
| $A_2$ | — | 10 | — | 10 |
| $A_3$ | — | 5 | 10 | 15 |
| 需求量 | 10 | 15 | 15 |
单位运价矩阵为:
$c = \\begin{pmatrix} 3 & 7 & 4 \\\\ 6 & 5 & 8 \\\\ 2 & 4 & 6 \\end{pmatrix}$
用位势法求各非基变量的检验数,判断当前方案是否最优。若不是,用闭回路法调整一次。
位势法:设 $u_i$ 为行位势,$v_j$ 为列位势,基变量满足 $u_i + v_j = c_{ij}$。
令 $u_1=0$:$u_1+v_1=3 \\to v_1=3$;$u_1+v_3=4 \\to v_3=4$
$u_2+v_2=5$,$u_3+v_2=4$,$u_3+v_3=6$
解得:$u_2=1$,$v_2=4$,$u_3=0$
非基变量检验数 $\\sigma_{ij} = c_{ij} - (u_i+v_j)$:
$\\sigma_{12} = 7-(0+4)=3>0$,$\\sigma_{21}=6-(1+3)=2>0$,$\\sigma_{22}=5-(1+4)=0$(基),$\\sigma_{31}=2-(0+3)=-1<0$
$\\sigma_{31}=-1<0$ → 非最优,需调整。
$A_3B_1 \\to A_1B_1 \\to A_1B_3 \\to A_3B_3 \\to A_3B_1$
调整量 $\\theta = \\min\\{10,10\\}=10$
调整后方案:$A_3B_1=10$,$A_1B_1=0$,$A_1B_3=15$,$A_3B_3=0$,其余不变。
新方案总运费 = $15\\times4 + 10\\times5 + 10\\times2 + 5\\times4 = 60+50+20+20 = 150$
闭回路调整法保证新方案仍满足产销平衡且总运费下降。
某公司有三个仓库(分别存有 30、50、20 单位货物)和四个门店(分别需要 25、30、35、10 单位货物)。由于某些路线存在运输限制,不允许从仓库 2 运货到门店 4。
(1) 写出该运输问题的产销平衡表。
(2) 若不允许运输的路线对应的运价设为 $M$(很大的正数),能否用表上作业法求解?
(3) 如果总产量大于总需求量(产销不平衡),应如何转化为平衡问题?
(1) 总产量 = $30+50+20 = 100$,总需求 = $25+30+35+10 = 100$,产销平衡,但 $A_2\\to B_4$ 禁止运输。
运价矩阵中加入 $M$:$c_{24}=M$。
(2) 可以用表上作业法求解。最小元素法或 VAM 法会自然避免选择运价为 $M$ 的路线;若位势法检验到含 $M$ 的路线检验数为正,该方案已最优。
(3) 若总产量 > 总需求(如产量 100,需求 90),需虚拟一个销地,需求量 = 10,运价为 0(表示不运出,即库存)。
若总需求 > 总产量,需虚拟一个产地,产量 = 差额,运价为 0(表示缺货)。
这样就将不平衡问题转化为平衡运输问题来求解。
产销不平衡问题通过引入虚拟产地或虚拟销地转化为平衡问题,是运输问题的标准处理技巧。
第5章 · 整数规划 练习题
练习1 — 整数规划模型与分支定界法
判断以下说法是否正确:
(1) 整数规划的最优解一定不会优于其松弛问题(去掉整数约束)的最优解。
(2) 若松弛问题的最优解恰好满足整数条件,则该解也是整数规划的最优解。
(3) 0-1 规划是整数规划的一种特殊形式。
(4) 分支定界法中,分支后子问题的可行域比原问题小。
(1) 正确。松弛问题的可行域更大(包含所有整数解和非整数解),所以最优值不会低于整数规划。
(2) 正确。如果松弛问题的最优解天然满足整数条件,那它必然是整数规划的最优解。
(3) 正确。0-1 规划是整数规划中变量只能取 0 或 1 的特殊情况。
(4) 正确。分支添加了 $x_j \\leq \\lfloor x_j^ \\rfloor$ 或 $x_j \\geq \\lceil x_j^ \\rceil$ 约束,可行域缩小。
整数规划比线性规划难求解得多(NP-hard),分支定界是核心算法之一。
用分支定界法求解以下整数规划问题:
$\\max z = 5x_1 + 4x_2$
s.t.
$x_1 + x_2 \\leq 5$
$10x_1 + 6x_2 \\leq 45$
$x_1, x_2 \\geq 0$,整数
Step 1:求解松弛问题。
$\\max z = 5x_1+4x_2$,s.t. $x_1+x_2 \\leq 5$,$10x_1+6x_2 \\leq 45$,$x_1,x_2 \\geq 0$
图解法得最优解:$x_1^=3.75$,$x_2^=1.25$,$z^*=5\\times3.75+4\\times1.25=18.75+5=23.75$
下界(初始整数解,如 $(0,0)$)为 0,上界为 23.75。
分支1:$x_1 \\leq 3$ → 新问题求解得:$x_1=3$,$x_2=2$,$z=23$(整数解!)→ 更新下界 $\\underline{z}=23$
分支2:$x_1 \\geq 4$ → 新问题:$x_1+x_2 \\leq 5$,$10x_1+6x_2 \\leq 45$,$x_1 \\geq 4$
得 $x_1=4$,$x_2=0.833$,$z=23.33$(非整数,但 $23.33 < 23$ 不可能优于已有整数解 → 剪枝)
分支定界法的关键在于定界和剪枝,下界≥上界时停止该分支。
练习2 — 0-1规划与指派问题
某公司需从 4 个项目中选若干进行投资,各项目的投资额和预期收益如下:
| 项目 | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
| 投资额(万元) | 150 | 100 | 200 | 120 |
| 预期收益(万元) | 80 | 50 | 120 | 70 |
可用总资金为 350 万元。
(1) 建立 0-1 规划模型。
(2) 若项目 1 和项目 3 不能同时选,增加此约束。
(1) 设决策变量 $x_i = \\begin{cases}1 & \\text{选项目 }i\\\\0 & \\text{不选}\\end{cases}$($i=1,2,3,4$)
$\\max z = 80x_1 + 50x_2 + 120x_3 + 70x_4$
s.t. $150x_1 + 100x_2 + 200x_3 + 120x_4 \\leq 350$
$\\quad x_i \\in \\{0,1\\}$
(2) 项目 1 和项目 3 不能同时选 → $x_1 + x_3 \\leq 1$
0-1 规划用二进制变量处理"选或不选"决策,广泛应用于投资组合、选址等问题。
用匈牙利算法求解以下指派问题(最小化):有 4 名员工 $A,B,C,D$ 分配到 4 项任务 $1,2,3,4$,效率矩阵如下(数字越小效率越高):
$\\begin{pmatrix} 7 & 3 & 8 & 5 \\\\ 4 & 6 & 9 & 7 \\\\ 5 & 4 & 6 & 8 \\\\ 6 & 5 & 7 & 4 \\end{pmatrix}$
Step 1:各行减最小元素。
$\\begin{pmatrix} 7-3=4 & 3-3=0 & 8-3=5 & 5-3=2 \\\\ 4-4=0 & 6-4=2 & 9-4=5 & 7-4=3 \\\\ 5-4=1 & 4-4=0 & 6-4=2 & 8-4=4 \\\\ 6-4=2 & 5-4=1 & 7-4=3 & 4-4=0 \\end{pmatrix} = \\begin{pmatrix} 4 & 0 & 5 & 2 \\\\ 0 & 2 & 5 & 3 \\\\ 1 & 0 & 2 & 4 \\\\ 2 & 1 & 3 & 0 \\end{pmatrix}$
第一列最小 0,第二列最小 0,第三列最小 2,第四列最小 0
$\\begin{pmatrix} 4 & 0 & 5-2=3 & 2 \\\\ 0 & 2 & 5-2=3 & 3 \\\\ 1 & 0 & 2-2=0 & 4 \\\\ 2 & 1 & 3-2=1 & 0 \\end{pmatrix} = \\begin{pmatrix} 4 & 0 & 3 & 2 \\\\ 0 & 2 & 3 & 3 \\\\ 1 & 0 & 0 & 4 \\\\ 2 & 1 & 1 & 0 \\end{pmatrix}$
用 3 条线即可覆盖所有 0 → 小于 4,需调整。
未被覆盖的最小元素为 1,未被覆盖的行减 1,被覆盖的列加 1。
调整后矩阵可找到 4 个独立 0 元素:
$A \\to$ 任务 2(效率 3)
$B \\to$ 任务 1(效率 4)
$C \\to$ 任务 3(效率 6)
$D \\to$ 任务 4(效率 4)
总效率值 = $3+4+6+4 = 17$
匈牙利算法是求解指派问题的经典方法,时间复杂度 $O(n^3)$。
第6章 · 目标规划 练习题
某公司生产两种产品,有关数据如下:
| 产品1 | 产品2 | 资源限制 | |
|---|---|---|---|
| 原材料(kg/件) | 2 | 3 | 24 |
| 工时(h/件) | 3 | 2 | 18 |
| 利润(元/件) | 40 | 30 |
公司制定以下目标(按优先级):
$P_1$:总利润不低于 300 元
$P_2$:避免原材料超用
$P_3$:产品 1 产量不超过产品 2 产量的 2 倍
建立该问题的目标规划模型。
设产品1、产品2的产量分别为 $x_1$、$x_2$,引入偏差变量 $d_i^+$(超额)、$d_i^-$(不足)。
$\\min z = P_1d_1^- + P_2d_2^+ + P_3d_3^+$
s.t.
$\\quad 40x_1 + 30x_2 + d_1^- - d_1^+ = 300$(利润目标)
$\\quad 2x_1 + 3x_2 + d_2^- - d_2^+ = 24$(原材料约束)
$\\quad x_1 - 2x_2 + d_3^- - d_3^+ = 0$(产量比例约束)
$\\quad x_1, x_2 \\geq 0,\\; d_i^-, d_i^+ \\geq 0$
目标规划通过优先级因子 $P_1 \\gg P_2 \\gg P_3$ 处理多目标冲突问题。
对于上述问题,如果优先级改为:
$P_1$:避免原材料超用
$P_2$:总利润不低于 300 元
$P_3$:产品 1 产量不超过产品 2 产量的 2 倍
问:优先级改变后,最优方案是否可能不同?为什么?
可能不同。目标规划按优先级逐级求解——先满足 $P_1$ 目标,在不损害 $P_1$ 的前提下再满足 $P_2$,以此类推。
第1题中 $P_1$ 是利润目标,第2题中 $P_1$ 改为原材料约束,两个问题的优化顺序不同,得到的方案可能不同。
例如:若为保原材料不超用而降低产量,利润可能达不到 300 元。
目标规划中优先级次序的改变会直接影响最优解,决策者需根据实际情况确定各目标的优先级。
第7章 · 动态规划 练习题
练习1 — 基本概念与最短路径
动态规划的基本概念包括阶段、状态、决策、策略。请简述:
(1) 什么是"状态转移方程"?
(2) 什么是"贝尔曼最优化原理"?
(3) 动态规划通常采用什么递推方向?
(1) 状态转移方程:$s_{k+1} = T_k(s_k, u_k)$,描述从第 $k$ 阶段的状态 $s_k$ 经过决策 $u_k$ 后,转移到下一阶段状态 $s_{k+1}$ 的规律。
(2) 贝尔曼最优化原理:最优策略的子策略也是最优的。即从最优策略中任取一段,该段子策略对于它所处子过程来说也是最优的。
(3) 通常采用逆序递推——从最后一个阶段开始向前递推。
动态规划基本方程:$f_k(s_k) = \\text{opt}\\{v_k(s_k,u_k) + f_{k+1}(s_{k+1})\\}$。
用动态规划求解以下最短路径问题:从起点 $A$ 到终点 $E$,有以下几个阶段:
$A \\to B_1(3)$,$A \\to B_2(4)$
$B_1 \\to C_1(2)$,$B_1 \\to C_2(5)$
$B_2 \\to C_1(4)$,$B_2 \\to C_2(3)$,$B_2 \\to C_3(5)$
$C_1 \\to D_1(3)$,$C_1 \\to D_2(4)$
$C_2 \\to D_1(1)$,$C_2 \\to D_2(2)$
$C_3 \\to D_1(5)$,$C_3 \\to D_2(6)$
$D_1 \\to E(4)$,$D_2 \\to E(3)$
(括号内为距离)求 $A$ 到 $E$ 的最短路径及长度。
逆序递推:
阶段4($D \\to E$):
$f_4(D_1) = 4$,$f_4(D_2) = 3$
$f_3(C_1) = \\min\\{3+f_4(D_1),\\; 4+f_4(D_2)\\} = \\min\\{3+4=7,\\; 4+3=7\\} = 7$(两条路长度相同)
$f_3(C_2) = \\min\\{1+4=5,\\; 2+3=5\\} = 5$
$f_3(C_3) = \\min\\{5+4=9,\\; 6+3=9\\} = 9$
$f_2(B_1) = \\min\\{2+7=9,\\; 5+5=10\\} = 9$ → 选 $C_1$
$f_2(B_2) = \\min\\{4+7=11,\\; 3+5=8,\\; 5+9=14\\} = 8$ → 选 $C_2$
$f_1(A) = \\min\\{3+9=12,\\; 4+8=12\\} = 12$
$A \\to B_1 \\to C_1 \\to D_1(或D_2) \\to E$
$A \\to B_2 \\to C_2 \\to D_1(或D_2) \\to E$
逆序递推是动态规划的标准方法,从后往前计算各阶段最优值。
练习2 — 资源分配问题
某公司将 5 万元资金分配给 3 个项目,各项目在不同投资额度下的收益(万元)如下:
| 投资额 | 0万 | 1万 | 2万 | 3万 | 4万 | 5万 |
|---|---|---|---|---|---|---|
| 项目1 | 0 | 1.5 | 3.0 | 4.5 | 5.5 | 6.0 |
| 项目2 | 0 | 1.0 | 2.5 | 4.0 | 5.0 | 5.5 |
| 项目3 | 0 | 2.0 | 3.5 | 4.0 | 4.5 | 5.0 |
用动态规划求使总收益最大的资金分配方案。
将 3 个项目视为 3 个阶段,状态 $s_k$ 为分配到第 $k$ 阶段时的剩余资金。
$f_3(0)=0$,$f_3(1)=2.0$,$f_3(2)=3.5$,$f_3(3)=4.0$,$f_3(4)=4.5$,$f_3(5)=5.0$
$f_2(0)=0$,$f_2(1)=\\max\\{1.0+0=1.0,\\;0+2.0=2.0\\}=2.0$($x_2=0$)
$f_2(2)=\\max\\{0+3.5=3.5,\\;1.0+2.0=3.0,\\;2.5+0=2.5\\}=3.5$($x_2=0$)
$f_2(3)=\\max\\{0+4.0=4.0,\\;1.0+3.5=4.5,\\;2.5+2.0=4.5,\\;4.0+0=4.0\\}=4.5$($x_2=1$ 或 $2$)
$f_2(4)=\\max\\{0+4.5=4.5,\\;1.0+4.0=5.0,\\;2.5+3.5=6.0,\\;4.0+2.0=6.0,\\;5.0+0=5.0\\}=6.0$($x_2=2$ 或 $3$)
$f_2(5)=\\max\\{0+5.0=5.0,\\;1.0+4.5=5.5,\\;2.5+4.0=6.5,\\;4.0+3.5=7.5,\\;5.0+2.0=7.0,\\;5.5+0=5.5\\}=7.5$($x_2=3$)
$=\\max\\{0+7.5=7.5,\\;1.5+6.0=7.5,\\;3.0+4.5=7.5,\\;4.5+3.5=8.0,\\;5.5+2.0=7.5,\\;6.0+0=6.0\\}=8.0$($x_1=3$)
最优方案:项目1=3万,项目2=1万(或2万),项目3=1万,总收益 = 8.0 万元。
资源分配问题是动态规划的经典应用,将多维问题分解为单维逐阶段处理。
用动态规划求解0-1背包问题:背包容量 $C=10$,有 4 件物品,每件物品的重量 $w_i$ 和价值 $v_i$ 如下:
$w = (2, 3, 4, 5)$,$v = (3, 4, 5, 7)$
(1) 请列出动态规划的状态转移方程。
(2) 填出动态规划表,给出最优方案。
(1) 状态转移方程:
$f_k(j) = \\max\\{f_{k-1}(j),\\; f_{k-1}(j-w_k) + v_k\\}$,$j=0,1,\\ldots,10$
其中 $f_k(j)$ 表示考虑前 $k$ 件物品、容量为 $j$ 时的最大价值。
(2) 动态规划表(按物品逐个考虑):
| 容量 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| $k=1$($w_1=2,v_1=3$) | 0 | 0 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 |
| $k=2$($w_2=3,v_2=4$) | 0 | 0 | 3 | 4 | 4 | 7 | 7 | 7 | 7 | 7 | 7 |
| $k=3$($w_3=4,v_3=5$) | 0 | 0 | 3 | 4 | 5 | 7 | 8 | 9 | 9 | 12 | 12 |
| $k=4$($w_4=5,v_4=7$) | 0 | 0 | 3 | 4 | 5 | 7 | 8 | 10 | 11 | 12 | 14 |
最优解:总价值 = 14,方案:物品2+物品3+物品4($3+4+5=12 \\leq 10$)或物品1+物品3+物品4($2+4+5=11>10$ 不行)
回溯:$f_4(10)=14$,$f_4(10) \\neq f_3(10)$ 且 $f_4(10)=f_3(5)+7$ → 选物品4,剩余容量 5
$f_3(5)=7$ 且 $f_3(5)=f_2(5)$ → 不选物品3
$f_2(5)=7$ 且 $f_2(5)=f_1(2)+4$ → 选物品2,剩余容量 2
$f_1(2)=3$ 且 $f_1(2)=f_0(0)+3$ → 选物品1
最终方案:物品1、物品2、物品4,重量 $2+3+5=10$,价值 $3+4+7=14$。
动态规划背包问题的时间复杂度 $O(nC)$,是伪多项式算法。
第8章 · 图与网络分析 练习题
练习1 — 最小生成树
已知 6 个顶点 $V=\\{A,B,C,D,E,F\\}$ 及其带权边(无向图):
$AB=5$,$AC=4$,$BC=3$,$BD=6$,$BE=7$,$CD=2$,$CE=8$,$DE=5$,$DF=4$,$EF=3$
(1) 用 Kruskal 算法求最小生成树。
(2) 用 Prim 算法(从 A 开始)求最小生成树,并比较结果。
(1) Kruskal算法(每次选权最小且不构成圈的边):
排序:$CD=2 < BC=3 < EF=3 < AC=4 < DF=4 < AB=5 < DE=5 < BD=6 < BE=7 < CE=8$
— 选 $CD=2$($C-D$)
— 选 $BC=3$($B-C$,不构成圈)
— 选 $EF=3$($E-F$,不构成圈)
— 选 $AC=4$($A-C$,不构成圈)
— 选 $DF=4$($D-F$,不构成圈)
已选 5 条边,6 个顶点连通,停止。
最小生成树:$\\{CD, BC, EF, AC, DF\\}$,总权 = $2+3+3+4+4 = 16$
(2) Prim算法(从 A 开始,每次选距离当前树最近的顶点):
— $A$:最近 $C(4)$,加入 $C$
— $\\{A,C\\}$:最近 $B(3)$ 或 $D(2)$,选 $D(2)$ → 加入 $D$
— $\\{A,C,D\\}$:最近 $B(3)$(通过 $C$),加入 $B$
— $\\{A,B,C,D\\}$:最近 $F(4)$(通过 $D$),加入 $F$
— $\\{A,B,C,D,F\\}$:最近 $E(3)$(通过 $F$),加入 $E$
结果相同:总权 = $4+2+3+4+3 = 16$。
Kruskal 与 Prim 算法结果相同(最小生成树唯一当边权均不同)。
练习2 — 最短路与最大流
用 Dijkstra 算法求下图中从顶点 $v_1$ 到各顶点的最短路径(非负权):
$v_1 \\to v_2(4)$,$v_1 \\to v_3(2)$
$v_2 \\to v_3(1)$,$v_2 \\to v_4(5)$,$v_2 \\to v_5(6)$
$v_3 \\to v_4(3)$,$v_3 \\to v_5(7)$
$v_4 \\to v_5(2)$
要求列出每次迭代的临时标号和永久标号。
初始化:$d(v_1)=0$(永久标号 P),$d(v_2)=4$,$d(v_3)=2$,$d(v_4)=\\infty$,$d(v_5)=\\infty$
更新 $v_3$ 邻居:$d(v_4)=\\min\\{\\infty,\\; 2+3=5\\}=5$,$d(v_5)=\\min\\{\\infty,\\; 2+7=9\\}=9$
更新 $v_2$ 邻居:$d(v_3)=2$(已有 P),$d(v_4)=\\min\\{5,\\; 4+5=9\\}=5$,$d(v_5)=\\min\\{9,\\; 4+6=10\\}=9$
更新 $v_4$ 邻居:$d(v_5)=\\min\\{9,\\; 5+2=7\\}=7$
结果:
$v_1\\to v_2$:最短路径 $v_1\\to v_3\\to v_2$,长度 = $2+1=3$(非直接 4)
$v_1\\to v_3$:直接 $v_1\\to v_3$,长度 = 2
$v_1\\to v_4$:$v_1\\to v_3\\to v_4$,长度 = 5
$v_1\\to v_5$:$v_1\\to v_3\\to v_4\\to v_5$,长度 = 7
Dijkstra 算法每次确定一个距离最小的顶点,不能用于含负权边的图。
用 Floyd 算法求上题中任意两点间的最短路径。
Floyd 算法通过依次以每个顶点为中间点来更新距离矩阵。
初始距离矩阵 $D^{(0)}$:
$D^{(0)} = \\begin{pmatrix} 0 & 4 & 2 & \\infty & \\infty \\\\ 4 & 0 & 1 & 5 & 6 \\\\ 2 & 1 & 0 & 3 & 7 \\\\ \\infty & 5 & 3 & 0 & 2 \\\\ \\infty & 6 & 7 & 2 & 0 \\end{pmatrix}$
$D^{(1)}$(以 $v_1$ 为中间点):无变化
$D^{(2)}$(以 $v_2$ 为中间点):$d_{13}=\\min(2, 4+1=5)=2$,$d_{14}=\\min(\\infty, 4+5=9)=9$(暂不变),$d_{15}=\\min(\\infty, 4+6=10)=10$
$D^{(3)}$(以 $v_3$ 为中间点):$d_{12}=\\min(4, 2+1=3)=3$ ✓,$d_{14}=\\min(9, 2+3=5)=5$ ✓,$d_{15}=\\min(10, 2+7=9)=9$,$d_{24}=\\min(5, 1+3=4)=4$
继续迭代直到 $D^{(5)}$。
最终得到任意两点间最短距离矩阵。
Floyd 算法一次求出所有节点对的最短路径,时间复杂度 $O(n^3)$。
已知某网络流的容量网络(有向图,弧上数字为容量),从源点 $s$ 到汇点 $t$:
$s \\to a(10)$,$s \\to b(8)$
$a \\to b(4)$,$a \\to t(6)$
$b \\to t(10)$
(1) 用 Ford-Fulkerson 标号法求最大流。
(2) 说明最大流-最小割定理并验证。
(1) 初始流:各弧流量为 0。
增广后:$s\\to a(6/10)$,$a\\to t(6/6)$,流量 = 6
增广后:$s\\to b(8/8)$,$b\\to t(8/10)$,流量 = 14
$s\\to a$ 剩余容量 4,$a\\to b$ 容量 4(前向),$b\\to t$ 剩余容量 2
可增量 = $\\min\\{4,4,2\\}=2$
增广后:$s\\to a(8/10)$,$a\\to b(2/4)$,$b\\to t(10/10)$,流量 = 16
无法再找到增广路。
(2) 最大流-最小割定理:任何网络中的最大流量等于最小割集的容量。
取割集 $(\\{s,a,b\\},\\{t\\})$,割容量 = $c_{at}+c_{bt} = 6+10=16$
最大流 16 = 最小割容量 16 ✓
Ford-Fulkerson 算法核心是反复寻找增广路,直到不存在增广路为止。
第9章 · 统筹方法 练习题
网络计划中,某工序的时间参数如下:最早开始时间 $ES=5$,最早完成时间 $EF=9$,最迟开始时间 $LS=7$。
(1) 求该工序的持续时间 $t$。
(2) 求该工序的最迟完成时间 $LF$。
(3) 求该工序的总时差,并判断它是否在关键路径上。
(1) 持续时间 $t = EF - ES = 9 - 5 = 4$
(2) $LF = LS + t = 7 + 4 = 11$
(3) 总时差 $= LS - ES = 7 - 5 = 2$(或 $LF - EF = 11 - 9 = 2$)
总时差 > 0 → 不在关键路径上(关键路径上的工序总时差为 0)
总时差 = $LS - ES = LF - EF$,时差为 0 的工序组成关键路径。
某工程项目各工序的先后关系及持续时间如下:
| 工序 | 紧前工序 | 持续时间(天) |
|---|---|---|
| A | — | 3 |
| B | A | 5 |
| C | A | 4 |
| D | B | 2 |
| E | C | 6 |
| F | D, E | 3 |
(1) 绘制网络图(用节点表示事项,弧表示工序)。
(2) 求各工序的 ES、EF、LS、LF 和时差。
(3) 找出关键路径和总工期。
(1) 网络图可表示为:$1\\xrightarrow{A}2\\xrightarrow{B}3\\xrightarrow{D}4\\xrightarrow{F}5$,且 $2\\xrightarrow{C}6(虚节点或平行)$,实际需要虚工序处理。
(2) 时间参数计算:
| 工序 | ES | EF | LS | LF | 时差 |
|---|---|---|---|---|---|
| A | 0 | 3 | 0 | 3 | 0 |
| B | 3 | 8 | 3 | 8 | 0 |
| C | 3 | 7 | 4 | 8 | 1 |
| D | 8 | 10 | 8 | 10 | 0 |
| E | 7 | 13 | 8 | 14 | 1 |
| F | 13 | 16 | 14 | 17 | 1 |
注意:$F$ 的紧前为 $D$ 和 $E$,需两者均完成后 $F$ 才能开始,故 $ES_F = \\max(EF_D, EF_E) = \\max(10, 13) = 13$。
更正:$F$ 的 ES 应为 13 而非上述表格中的值。
(3) 实际上关键路径由时差为 0 的工序组成。
重新计算正确的时间参数后,关键路径为 $A \\to B \\to D$(或包含其他工序)。总工期 = 3+5+2+3=13 天。
网络图中引入虚工序可以正确表达工序间的逻辑关系。
第10章 · 决策分析 练习题
练习1 — 不确定型决策
某公司面临三种投资方案 $A_1,A_2,A_3$,未来可能遇到三种市场状态 $S_1,S_2,S_3$,收益矩阵(万元)如下:
| $S_1$ | $S_2$ | $S_3$ | |
|---|---|---|---|
| $A_1$ | 50 | 30 | -10 |
| $A_2$ | 20 | 40 | 10 |
| $A_3$ | -5 | 15 | 60 |
分别用以下不确定型决策准则选择最优方案:
(1) 乐观准则(max max)
(2) 悲观准则(max min)
(3) 等可能准则(Laplace)
(4) 最小遗憾准则(Savage)
(1) 乐观准则:各方案最大收益:$A_1=50$,$A_2=40$,$A_3=60$ → 选 $\\max=\\mathbf{60}$ → $A_3$
(2) 悲观准则:各方案最小收益:$A_1=-10$,$A_2=10$,$A_3=-5$ → 选 $\\max=\\mathbf{10}$ → $A_2$
(3) 等可能准则:各方案平均收益:
$A_1=(50+30-10)/3 = 23.33$
$A_2=(20+40+10)/3 = 23.33$
$A_3=(-5+15+60)/3 = 23.33$
三者相等 → 三个方案无差异。
(4) 最小遗憾准则:先构造遗憾矩阵。
各状态下最大收益:$S_1=50$,$S_2=40$,$S_3=60$
遗憾值 = 最大收益 - 实际收益:
| $S_1$ | $S_2$ | $S_3$ | |
|---|---|---|---|
| $A_1$ | 0 | 10 | 70 |
| $A_2$ | 30 | 0 | 50 |
| $A_3$ | 55 | 25 | 0 |
各方案最大遗憾:$A_1=70$,$A_2=50$,$A_3=55$ → 选最小 = $\mathbf{50}$ → $A_2$
不同准则反映决策者的不同风险态度:乐观者选 $A_3$,保守者选 $A_2$。
练习2 — 风险型决策
若上题中已知三种市场状态发生的概率分别为 $P(S_1)=0.3$,$P(S_2)=0.5$,$P(S_3)=0.2$。
(1) 用期望值准则选择最优方案。
(2) 计算全情报价值(EVPI),并说明其意义。
(3) 画出该问题的决策树。
(1) 各方案期望收益:
$E(A_1) = 0.3\\times50 + 0.5\\times30 + 0.2\\times(-10) = 15+15-2 = 28$ 万元
$E(A_2) = 0.3\\times20 + 0.5\\times40 + 0.2\\times10 = 6+20+2 = 28$ 万元
$E(A_3) = 0.3\\times(-5) + 0.5\\times15 + 0.2\\times60 = -1.5+7.5+12 = 18$ 万元
最大期望收益 = 28 万元,$A_1$ 和 $A_2$ 并列最优。
(2) 全情报价值 EVPI:
完全信息下的期望收益 = $0.3\\times50 + 0.5\\times40 + 0.2\\times60 = 15+20+12 = 47$ 万元
$\\text{EVPI} = 47 - 28 = 19$ 万元
意义:公司最多愿意花 19 万元来获取完全准确的市场信息。
(3) 决策树:
— 决策节点(方框)引出 3 个方案分支
— 每个方案分支连接一个状态节点(圆圈)
— 状态节点引出 3 条概率分支($S_1:0.3$,$S_2:0.5$,$S_3:0.2$)
— 末端的收益值分别为对应收益
EVPI 是决策者为获取完美信息愿支付的最高价格。
某决策问题的效用函数为 $U(x) = 1 - e^{-x/50}$($x$ 为收益,单位万元)。
现有两个方案:
方案甲:稳获 20 万元。
方案乙:有 50% 的机会得 50 万元,50% 的机会得 0 元。
(1) 分别计算两个方案的期望效用。
(2) 决策者是风险厌恶还是风险偏好?为什么?
(3) 计算该决策者的风险溢价(risk premium)。
(1) 期望效用计算:
方案甲:$U(20) = 1 - e^{-20/50} = 1 - e^{-0.4} \\approx 1 - 0.6703 = 0.3297$
方案乙:$E[U] = 0.5\\times U(50) + 0.5\\times U(0)$
$U(50) = 1 - e^{-1} \\approx 1 - 0.3679 = 0.6321$
$U(0) = 1 - e^0 = 1 - 1 = 0$
$E[U] = 0.5\\times0.6321 + 0.5\\times0 = 0.3161$
方案甲(0.3297)> 方案乙(0.3161)→ 选方案甲
(2) 方案乙的期望收益 $= 0.5\\times50+0.5\\times0 = 25$ 万 > 20 万,但决策者选方案甲 → 风险厌恶。
效用函数 $U(x)=1-e^{-x/50}$ 是凹函数 → 风险厌恶。
(3) 风险溢价:使 $U(CE) = E[U]$ 的确定等值 $CE$。
$1 - e^{-CE/50} = 0.3161$
$e^{-CE/50} = 0.6839$
$-CE/50 = \\ln(0.6839) = -0.38$
$CE = 19$ 万元
风险溢价 $= 25 - 19 = 6$ 万元。
风险溢价表示决策者愿意放弃的期望收益以避免风险。
第11章 · 对策论 练习题
已知两人零和对策的支付矩阵(行选手的收益):
$A = \\begin{pmatrix} 6 & 2 \\\\ 3 & 5 \\end{pmatrix}$
(1) 该对策是否存在纯策略纳什均衡(鞍点)?
(2) 如果存在,指出最优策略和对策值。
(1) 行选手(最大化者):每行取最小值,再从这些最小值中取最大(max min)。
第1行最小 = $\\min\\{6,2\\}=2$,第2行最小 = $\\min\\{3,5\\}=3$
$\\max\\{2,3\\}=3$(行选手的保守收益)
列选手(最小化者):每列取最大值,再从这些最大值中取最小(min max)。
第1列最大 = $\\max\\{6,3\\}=6$,第2列最大 = $\\max\\{2,5\\}=5$
$\\min\\{6,5\\}=5$(列选手的保守损失)
因为 $3 \\neq 5$,即 $\\max\\min \\neq \\min\\max$,所以不存在纯策略鞍点。
(2) 不存在纯策略均衡 → 需要求解混合策略。
当 max min = min max 时存在纯策略鞍点,对策值即为该共同值。
对于上述支付矩阵,求行选手和列选手的最优混合策略及对策值。