MODEL LAB数学建模交互课
课程进度09/ 16 讲
第 9 讲 · 在约束里寻找最好方案

第 9 讲 · 线性规划与整数规划

把现实决策写成变量、目标和约束,读懂可行域与最优解,再用整数、0–1 与敏感性让方案真正可执行。

6 个微知识点24 道即时练习答案逐题隐藏无需联网运行
学完能做什么

可检查的学习目标

01
能从文字题定义变量、目标和约束
02
能用可行域解释线性规划最优解
03
能判断何时需要整数/0–1 变量并核验求解结果
知识点01

模型能改变什么

先定义决策变量

约 7 min
先猜一猜

“每月最多有 1000 小时机器时间”是变量,还是已经给定的参数?

决策变量是模型需要选择的行动量,例如产多少、运多少、是否建设。参数是当前已知的成本、需求和资源上限。

变量定义必须包含对象、时间、单位和取值类型。定义模糊会让后续每个公式都失去现实含义。

别踩坑把资源上限当变量漏写索引和单位
动手试一试

变量定义质量

LIVE

比较含糊符号与可执行变量。

清晰度
42
可信度
38
可用度
35

不知道 x 改什么、单位是什么。

跟我算一遍生产计划

决定下周 A/B 产品生产量。

STEP 01

xA=下周 A 生产件数。

立即练习

学一点,马上做 4 题

答案默认隐藏。聚焦题卡后按 Space,一次只揭晓一道。

01选择未作答

“仓库容量 500 箱”在模型中通常是什么?

02简答未作答

为“决定 7 天每天安排多少名兼职”定义一个变量。

03判断未作答

变量取值是否为整数可以在求解后四舍五入,无需提前声明。

04选择未作答

“是否建设第 j 个站点”最自然用什么变量?

知识点02

最好什么,必须满足什么

目标函数与约束要线性一致

约 9 min
先猜一猜

“成本低、服务好”为什么还不是一个可求解目标?

目标函数把方案好坏压成可比较数值,例如最大利润或最小总成本。约束描述资源、需求、平衡和规则。

线性规划要求目标与约束中变量均以一次线性组合出现,不能包含变量相乘、平方或条件跳变。

别踩坑目标没有量化约束两边单位不同
动手试一试

模型完整度

LIVE

比较目标和约束的完整程度。

清晰度
35
可信度
28
可用度
30

没有量化标准,无法比较。

跟我算一遍两产品资源

A/B 利润 40/30;机器分别用 2/1 小时,总共 100 小时。

STEP 01

目标 max 40xA+30xB。

立即练习

学一点,马上做 4 题

答案默认隐藏。聚焦题卡后按 Space,一次只揭晓一道。

01选择未作答

下列哪个是线性表达式?

02计算未作答

每件 A 用 3 小时,生产 x 件,最多 60 小时,约束怎么写?

03判断未作答

最小成本与最大服务水平可以不经处理同时作为唯一目标函数。

04简答未作答

为什么约束两边单位必须一致?

知识点03

先可行,再谈最优

可行域与角点最优

约 11 min
先猜一猜

利润最高的组合为什么可能被资源约束排除?

满足全部约束的点组成可行域。线性规划若有有限最优解,至少有一个最优解位于可行域角点。

无可行解表示约束互相冲突;无界表示目标能无限改善,常因漏约束;多个最优解表示一条边上同样好。

别踩坑只比较单条约束把不可行点当候选
动手试一试

求解状态识别

LIVE

比较三类异常状态。

清晰度
62
可信度
88
可用度
25

约束交集为空,应检查冲突或放宽条件。

跟我算一遍角点比较

约束 x+y≤6、x≤4、y≤5、x,y≥0,目标 max 3x+2y。

STEP 01

可行角点含 (0,0),(4,0),(4,2),(1,5),(0,5)。

立即练习

学一点,马上做 4 题

答案默认隐藏。聚焦题卡后按 Space,一次只揭晓一道。

01计算未作答

点 (4,2) 在目标 3x+2y 下的值是多少?

02判断未作答

线性规划的最优解一定唯一。

03选择未作答

求解器返回 unbounded 最优先检查什么?

04简答未作答

无可行解与无界有什么区别?

本讲主实验 · 拖一拖再下结论

资源与利润下的可行方案

调整两类资源上限和产品利润,观察最优整数生产组合。

实时更新
观察结果等待计算

调整左侧参数,观察模型输出怎样变化。

实验后想一想

逐步提高机器资源,最优利润是否每次都增加?什么时候人工资源会成为真正瓶颈?

知识点04

能不能拆、选不选、开不开

整数与 0–1 变量表达现实逻辑

约 7 min
先猜一猜

线性规划给出 2.4 辆车,四舍五入到 2 辆或 3 辆会有什么风险?

计数、班次、车辆等通常要整数;建设/选择/启用用 0–1。整数约束使可行点离散,不能简单对连续解四舍五入。

0–1 变量还能表达“若启用才允许分配”“至少选择一个”“二选一”等逻辑。

别踩坑连续解直接四舍五入Big-M 取得过大
动手试一试

离散决策

LIVE

比较连续、取整与整数优化。

清晰度
88
可信度
80
可用度
45

数学上好,但可能出现半辆车。

跟我算一遍是否开仓

若不开仓,发货量必须为 0;开仓后最多发 500 箱。

STEP 01

y=是否开仓,y∈{0,1}。

立即练习

学一点,马上做 4 题

答案默认隐藏。聚焦题卡后按 Space,一次只揭晓一道。

01判断未作答

连续最优解四舍五入后一定仍满足约束。

02选择未作答

“是否选择供应商 j”最适合哪种变量?

03计算未作答

约束 x≤100y,若 y=0,x 最大是多少?

04简答未作答

Big-M 为什么不能随便取极大?

知识点05

需求、平衡、逻辑与覆盖

把文字规则翻译成约束

约 9 min
先猜一猜

“每个门店至少配送一次”和“总配送次数至少等于门店数”一样吗?

总量约束不能替代逐对象约束。每个门店、每个时段、每名员工通常都需要带索引的独立约束。

常见类型:资源上限、需求下限、流量平衡、覆盖、互斥、先后、联动。

别踩坑用总量掩盖局部缺口漏写对所有 j
动手试一试

约束颗粒度

LIVE

比较总量与逐对象约束。

清晰度
72
可信度
52
可用度
55

总数够,但局部可能严重缺货。

跟我算一遍门店需求

3 个门店需求分别 20、30、40。

STEP 01

定义 xij 为仓库 i 发往门店 j 数量。

立即练习

学一点,马上做 4 题

答案默认隐藏。聚焦题卡后按 Space,一次只揭晓一道。

01选择未作答

“A 和 B 恰好选一个”怎样写?

02判断未作答

总供给≥总需求就能保证每个地区都满足需求。

03简答未作答

流量平衡约束表达什么?

04选择未作答

“至少启用 3 个站点”写成?

知识点06

求解器只忠实于你写的模型

结果核验与敏感性

约 11 min
先猜一猜

软件说 optimal,为什么仍可能得到现实中完全错误的方案?

求解器保证的是对输入模型的数学最优,不保证变量含义、单位、数据和约束录入正确。

核验包括可行性重算、目标重算、与基准比较、边界测试和参数敏感性。

别踩坑只贴求解器截图不检查零值与边界
动手试一试

最优解证据

LIVE

比较结果截图与完整核验。

清晰度
75
可信度
45
可用度
52

模型漏约束也可能显示最优。

跟我算一遍资源松弛

机器上限 100,最优方案使用 100;人工上限 80,只用 52。

STEP 01

机器约束松弛 0,是活跃瓶颈。

立即练习

学一点,马上做 4 题

答案默认隐藏。聚焦题卡后按 Space,一次只揭晓一道。

01选择未作答

某约束松弛量为 0,通常说明?

02判断未作答

optimal 状态证明现实问题已经正确建模。

03简答未作答

优化结果表为何要包含约束左值、右值和松弛?

04选择未作答

需求来自预测且有误差,最适合增加什么分析?

离开前完成

从一段文字建立可审计优化模型

选择生产、运输或选址问题,先手画变量—目标—约束,再使用 Excel/Python/MATLAB 求解。

LOCAL PACK

本地学习资源

讲义、练习、实验与挑战清单均在本地页面内。