跳到主要内容

规划求解

规划求解

把利润或成本写成目标,把原料、工时、产能写成不等式,在可行域里找一组决策变量;教学表另把试解点收成松弛、贴边、越界三仓。

更新日期 2026-08-29 运筹

这篇能回答什么

规划求解回答的是「决策变量取多少,才能在硬约束下让目标最优」。典型写法是线性规划(Linear Programming, LP):max cᵀx,s.t. Ax ≤ b,x ≥ 0。求解器给出一组 x*、最优目标值,以及每条约束的松弛。本页教学结果另把求解器扫过的试解点收成互斥三仓:类别 A = 松弛可行(落在可行域内部,松弛全为正),类别 B = 贴边可行(可行且至少一条约束松弛为零),类别 C = 越界不可行(至少违反一条不等式)。

试解点合计 354:松弛仓 A 64(18.08%),贴边仓 B 79(22.32%),越界仓 C 211(59.6%)。可行合计 A+B = 143(40.40%)。C 最厚只说明网格或随机探点大量落在多面体外面,不能写成「六成决策单元无效」——后者是数据包络分析对多座矿井的相对效率语言。

什么时候不该用

要比较多座矿井、医院谁把投入变成产出更有效,用 DEA,不要把 TE 当成规划里的 x*。只要多指标排序,用TOPSIS 或层次分析法。已经做完的因素水平试验看主次,用正交实验极差。要素谁传到谁,用解释结构模型。

如何选择方法

先分清你要一组最优产量/配比,还是一排相对效率分数。规划求解服务一个决策者:给定目标与约束,输出 x*。DEA 给每个 DMU 各解一次径向收缩 LP,输出的是 0–1 效率,不是「下周甲产品做多少件」。同一张矿井投入产出表可以两用,问法不能混。

  • 规划求解:决策变量、目标系数、资源上限;输出 x*、目标值,以及松弛/贴边/越界占用。

  • 数据包络分析:1 个 DMU 标识 + 投入 + 产出;输出 TE、PTE、SE,不给车间配产。

  • TOPSIS / AHP:方案打分排序,没有 Ax ≤ b 的可行域。

  • 正交极差:已做完的试验日志看因素主次,不求解不等式组。

输入、输出与限制

输入

需要一张能还原成「变量—资源」的表:决策列(产量、运量、仓位),目标系数(单价、成本),约束列(工时、原料、设备台时)及右端上限。教学练习可用 DEA 产能表的员工人数、工时、设备投入当作资源库存,另设甲、乙两种规格的单位消耗。

  • 决策变量:最少 1 个,最多 20 个非负定量列或手工声明的变量名。

  • 目标与约束:1 个目标方向(最大/最小),1 条及以上线性(或可局部线性化)不等式。

输出

占用表按类别 A/B/C 给出频数、占比与合计 354。本页把三档读成松弛可行、贴边可行、越界。图展示可行域切片或目标等值线;最优顶点应落在贴边仓附近,不会落在越界仓。表不打印对偶影子价格时,不要把 22.32% 写成某种影子价格。

产品限制

  • 三仓加总是试解点个数,不必等于矿井座数 24,也不必等于工作表行数。

  • 默认按线性规划解读;目标或约束明显弯曲时,贴边仓不再保证全局最优。

  • 变量须有有限上、下界,否则探点网格无法铺开,越界仓会虚高。

  • 类别 A/B/C 不是「最优 / 次优 / 最差产品」的标签。

  • 投入导向 CCR 的 θ 与本页的目标值量纲不同,格子不能对抄。

案例

决策问题。 选煤车间要把两种规格(甲块煤、乙混煤)排进同一周的工时与设备台时。管理者问的不是「哪座矿相对有效」,而是「甲、乙各安排多少吨,利润最大且不把库存打穿」。

教学示例下载 DEA 产能表,工作表「DEA产能」。把员工人数、工时、设备投入视作本周可调用库存,原煤产量列只用来对照,不充当效率前沿。求解器在 (甲吨, 乙吨) 平面上留下 354 个试解点:内部松弛 64,贴着某条工时或台时边界 79,至少撞破一条上限 211。最优角点应在 B 仓的顶点上,而不是在 C 仓里「再挤一挤」。

下载教学示例表(DEA 产能)

在 StatsX 中操作

  1. 步骤 1 · 装入产能表

    打开工作台,把 DEA 产能 xlsx 拖进上传区,确认工作表是「DEA产能」。单文件不超过 20 MB。这一步只是借用资源数字,不是开始算效率。

  2. 步骤 2 · 把列读成库存而不是 DMU

    画像里员工人数、工时、设备投入是定量且为正。矿井名称列不要拖进决策变量——规划求的是甲/乙吨数,不是给 M01 打分。

  3. 步骤 3 · 搜索规划求解

    目录搜「规划」或「求解」。卡片若仍显示适合,只说明表能跑,不说明你已经写好目标系数。

  4. 步骤 4 · 声明目标与不等式

    决策变量写成甲吨、乙吨(或用两列产量代理)。目标选利润最大。约束用库存列做右端。运行后把 A/B/C 对上松弛 / 贴边 / 越界。

  5. 步骤 5 · 先读三仓再读角点

    先看越界是不是过半(本例是),再在贴边仓里找目标最好的顶点。不要把松弛仓里的某个内点当成已经最优。

上传产能表以便做规划求解
把产能表拖进工作台,后面当资源库存用。
画像中查看工时与设备列
工时、设备须为正的定量列;矿井名不是决策变量。
目录中选择规划求解
选定「规划求解」,不要误点数据包络分析。
为规划求解指定决策与约束
声明产量变量与资源上限后运行。

如何阅读输出

占用表清点 354 个试解点。松弛仓 64(18.08%)还没碰到墙,目标通常还能沿某条梯度再走;贴边仓 79(22.32%)已经贴上至少一条资源墙,线性规划的最优顶点在这一仓里;越界仓 211(59.6%)违反约束,目标值再好看也不能上产。可行率 40.40% 不是效率均值。

规划求解结果表
项目类别统计量取值
规划求解类别 A频数64
规划求解类别 B频数79
规划求解类别 C频数211
规划求解合计有效样本 N354
规划求解类别 A占比(%)18.08
规划求解类别 B占比(%)22.32
规划求解类别 C占比(%)59.6

左右滑动可查看完整表格

教学示例表在 StatsX 工作台中的计算结果口径。

规划求解松弛贴边越界占用表
工作台三类人数应与上表一致;标签按可行状态读,不按矿井名读。
规划求解可行域与试解点分布
内部点、边界点与域外点分仓着色;最优角点应落在贴边一侧。

解读顺序:约束是否写全 → 越界仓是否异常厚(网格是否铺得比可行域大)→ 贴边仓里哪一个点目标最好 → 才报告甲吨、乙吨与利润。C 仓 59.6% 不能改写成「多数矿井规模报酬递减」。若你真正要的是 24 座矿的 TE,离开本页去 DEA。

线性目标的最优解出现在顶点(基本可行解)。内点法路径会穿过 A 仓,单纯形法则在 B 仓的顶点之间跳。两种算法停在同一顶点时,目标值应一致,路径占用可以不同。非线性目标时,A 仓内部也可能藏着局部最优,这时贴边不再自动等于全局。

理论与公式

标准形线性规划与第 i 条不等式的松弛 s_i 为:

互补松弛:若某条原约束松弛为正,对应的对偶变量为 0;对偶变量为正,则该资源用尽。本页占用表是探点直方图,不是对偶解。DEA 的投入导向 CCR 也是线性规划,但决策变量是强度 λ 与径向 θ,约束是参照集包络,目标是压缩投入——和「甲吨、乙吨利润最大」不是同一道题。

试解点落入三仓的比例满足 n_A+n_B+n_C=354。可行域体积越小、网格越疏,C 仓越容易膨胀。缩小步长或改用单纯形只走顶点,占用会变,x* 在线性情形下不应跟着乱跳。

注意事项

  • 漏写一条关键库存,可行域会假大,贴边仓里的「最优」上线会撞墙。

  • 单位不一致(工时对人数、吨对台时)会让约束没有物理意义。

  • 整数件、最小开工批量会把顶点推离连续松弛解,需要声明整数变量。

  • 目标系数估错时,顶点仍「算对」,决策是错的。

  • 不要把越界占比当成 DEA 的 1−TE。

  • 同一张产能表两用时,方法节必须写清本页求的是配产而不是效率。

常见问题

参考文献

  • Dantzig, G. B. Linear Programming and Extensions[M]. Princeton University Press, 1963.

  • Bertsimas, D., Tsitsiklis, J. N. Introduction to Linear Optimization[M]. Athena Scientific, 1997.

  • 运筹学教材编写组. 运筹学[M]. 清华大学出版社.

  • Charnes, A., Cooper, W. W., Rhodes, E. Measuring the efficiency of decision making units[J]. European Journal of Operational Research, 1978, 2(6): 429–444.