DEA模型复现介绍:带有资源约束的模糊DEA线性生产博弈
DEA模型复现介绍:带有资源约束的模糊DEA线性生产博弈
一、论文基本信息
论文题目: 带有资源约束的模糊DEA线性生产博弈模型及分配 作者: 南江霞、吴小勇、李西娜、张茂军 发表: 《控制与决策》2023, 38(11): 3231–3241 | DOI: 10.13195/j.kzyjc.2021.2179
三家云服务供应商各自有 CPU、内存、存储,都能把物理机虚拟成四种虚拟机。联合生产多出来的收益怎么分,才能让所有人都不退出联盟?
论文的答案:用 DEA 让技术系数随数据动态变化,用模糊数 α-截集处理价格与资源的不确定性,用乐观/悲观双角度框出收益区间,最后用 α-核心锁住分配稳定性。
二、模型骨架
模型由两个维度交叉而成,看懂这两个维度就看懂了全文。
维度一:两种合作水平
| 合作水平 I | 合作水平 II | |
|---|---|---|
| 共享内容 | 技术 + 资源 | 仅资源 |
| 技术集合 | 联盟全部观测 \(D(S)\) | 局中人自身观测 \(D(i)\) |
| 合作难度 | 高 | 低(现实中更普遍) |
| 收益 | 高 | 低 |
维度二:三类资源(规模收益可变下)
- 最低资源 \(b^{\min}_r\):模型可行的最小数量,低于它生产无法进行;
- 最佳资源 \(b^{\text{opt}}_r\):收益达最大、再增加资源收益不再增长的最小数量;
- 有效资源 \(b^{\text{eff}}_r\):介于两者之间,收益随资源增加而增长。
论文由此得出收益随资源"先增后平"的结论。
三、核心公式(三个式子看懂全文)
① 三角模糊数 \(\tilde A=(a,b,c)\) 的 α-截集——把"模糊"变成"区间":
\[\tilde A_\alpha=[a+\alpha(b-a),\;c-\alpha(c-b)]\equiv[A^L,A^R]\]
② 联盟收益模型(合作水平 I,乐观角度):
\[v^{IR}_\alpha(S)=\max\sum_{k\in P}c^R_k\sum_{i\in S}y_k(i)\]
\[\text{s.t.}\quad\sum_{j\in D(S)}\lambda_{ij}X^L_{rj}\le x_r(i),\qquad \sum_{j\in D(S)}\lambda_{ij}Y^R_{kj}\ge y_k(i),\qquad \sum_{i\in S}x_r(i)\le b^R_r(S)\]
悲观角度把 \((X^L,Y^R,b^R,c^R)\) 换成 \((X^R,Y^L,b^L,c^L)\)。
三个关键点:① 第三条约束是唯一的联盟耦合项(前两条逐局中人独立),这就是标题里"带有资源约束"的含义;② \(D(S)\) 是联盟全部观测集(技术共享);③ 产出 \(y(i)\) 是决策变量,由 \(\lambda(i)\) 确定——这正是 DEA 生产博弈优于传统线性生产博弈之处:能直接得到每个局中人的产出,无需解对偶。
③ α-核心分配式(定理 5,全篇最实用的一条):
\[\bar u_i=\Big[\sum_{r}b^L_r(i)\eta^{*L}_r+\xi^{*L}_i,\;\;\sum_{r}b^R_r(i)\eta^{*R}_r+\xi^{*R}_i\Big]\]
其中 \(\eta^*\) 为资源约束的对偶最优解,\(\xi^*_i\) 为 \(\sum_j\lambda_{ij}=1\) 的对偶最优解(规模收益不变时 \(\xi\) 项消失)。
论文还给出一个漂亮的简化:规模收益可变且资源不低于最佳资源时,直接解原问题即可得 α-核心分配,无需求对偶(定理 4)。
四、复现结果:哪些对上了
技术栈:Julia 1.12 + JuMP 1.29 + HiGHS + Ipopt(全部开源免费),共 140 个 LP。
| 内容 | 结果 |
|---|---|
| §3 示例(收益、\(\lambda^*\)、产出、投入、最佳/最低资源共 7 项) | 完全一致(12.0800 / (0,0,1,0) / (13,12) / (26,24) / (88,166,17200) / (176,332,34400) / (66,132,13480)) |
| 论文图 2(最佳资源与最大收益) | 4 个数字精确命中 |
| 定理 1 超可加性 | 15/15 组合成立 ✓ |
| 定理 2 两种合作水平 CRS 下相等 | 差异 0.0000000000 ✓ |
| 定理 3 α-核心非空 | 5/5 个 α 成立 ✓ |
| 定理 5 对偶与强对偶 | 完全一致 ✓ |
| 命题 2、命题 3 | 成立 ✓ |
| 表 7/表 8(VRS)数据完整的 15 格 | 15/15 一致(误差 < 0.005) |
| 表 10 右端点 | 平均误差 0.0035,14/15 精确 |
| 表 11 左端点 | 平均误差 0.109,11/15 精确 |
论文图 2 的四个数字是最有分量的一次独立验证:
| 图 2 报告 | 本文模型算出 |
|---|---|
| CPU 最佳资源 1722.3 | 1722.3 ✓ |
| 内存最佳资源 3559.2 | 3559.2 ✓ |
| 存储最佳资源 346665 | 346665 ✓ |
| 存储曲线最大收益 139.57 | 139.5748 ✓ |
这四行命中,把"模型没建对"这个可能性彻底排除了。
五、值得说的第一个坑:对偶值的符号约定
这是本次复现踩到的最大一个坑,论文正文与附录都没有明说,但它的症状极具欺骗性。
论文模型是最大化问题,而 HiGHS 对 ≤
约束返回的原始对偶值整体为负。如果按习惯写
abs(dual(...))——这是极其自然的写法——那么分配式里的 \(\eta\) 和 \(\xi\)
同时被翻正,结果整体错位。
症状:三个供应商的偏差在同一个 α 下几乎完全相同(α=0 时都偏 +4.49),看起来像"论文算式漏了一项",而不像代码 bug。我最初就是据此误判成"论文省略了固定项",绕了一大圈才回到正确方向。
正解:尊重模型自身返回的符号,直接代进附录公式。
| 取绝对值(错误) | 保留符号(正确) | |
|---|---|---|
| 表10 左端点平均误差 | 3.117 | 0.566 |
| 最大误差 | 4.494 | 1.987 |
| 精确格(<0.01) | 0/15 | 3/15 |
经验:当偏差呈现出"跨对象完全一致"的模式时,先怀疑自己的符号/系数,再怀疑论文。 真正随机的数据错误不会这么整齐,而一次符号翻转恰恰会造成这种系统偏移。
六、论文的三处数值问题
1. 表 6 缺一整行
原文表 4、表 5 各有 4 行产出(small / medium / large
/ extra-large),表 6(供应商 3)只有 3 行——缺 large
行,且"medium"被误印成
产出-mmLarge。电子附录也只有定理证明,不含这张表。
影响:涉及供应商 3 的 20 个数值格无法精确复现。处理:把该行当作未知参数,以表 7、表 9 中一切涉及供应商 3 的数值格为目标做联合反演,合计误差从 154.9 降到 16.9。
2. 表 9 表头与正文矛盾
正文写"在规模收益可变…得到表 9",表 9 表头写"规模收益不变"。实测:CRS 拟合平均误差 6.08,VRS 拟合 145.10。
结论:表 9 是 CRS,正文那句话是错的。
3. 表 9 的 (1,2) 行有 4 格在数学上不可能成立
联盟 (1,2) 只用供应商 1、2 的数据,与表 6 缺行无关,数据完整。
判定依据(与建模约定无关的纯代数事实):
α-截集资源 \(b(\alpha)\) 随 α 单调不增(从模糊数右端点降到峰值),所以 α=0 处的资源就是整条曲线的最大值。
把资源固定为各模糊数上界之和、系数取最有利值,得到每个 α 的绝对上界:
| α | 绝对上界 | 论文值 | 论文 − 上界 | 判定 |
|---|---|---|---|---|
| 0.0 | 176.1885 | 176.19 | +0.0015 | 界内 |
| 0.2 | 133.0929 | 135.16 | +2.0671 | ★ 超出 |
| 0.4 | 97.6344 | 104.84 | +7.2056 | ★ 超出 |
| 0.6 | 77.0560 | 80.84 | +3.7840 | ★ 超出 |
| 0.8 | 62.2874 | 61.51 | −0.7774 | 界内 |
4/5 个 α 处的右端点超过了该上界。 换个直观说法:论文在 α=0.4 处的值,要求该联盟的资源比 α=0 时的资源还大 8.9%——而 α-截集资源只能随 α 减小。
交叉验证:放开 9 个自由参数去同时拟合这 4 个数,能做到误差 0.02,但反演出的资源轨迹是 \(460\to451\to\mathbf{593}\to525\to468\)——非单调,物理上不可能。
已排除的解释:表 6 缺行、VRS/CRS 假设、资源聚合方式、资源冻结、取峰值或上界、系数端点取法、列错位、对偶最优解不唯一——全部排除。
七、复现小结
这篇论文的主线可以概括成一句话:
用 DEA 让生产技术随数据动态变化,用 α-截集把不确定性变成区间,用双角度框住收益上下界,再用 α-核心保证分配让联盟稳定。
从复现角度,最大启示有两条:
第一条,关于那个符号陷阱:
当偏差呈现"跨对象完全一致"的模式时,先怀疑自己,再怀疑论文。
第二条,关于"什么才算复现成功":
能精确命中的部分要精确命中(§3 示例、论文图 2、VRS 完整数据格 15/15),命中不了的部分要能给出数学上的理由,而不是"差不多就行"。
这次模型与算法层面全部对齐,例 1 与图 2 零误差,主要表格精度在千分位;剩下三处偏差——一处归因于原文缺数据(附录也没有),一处经严格证明在数学上不可能成立,一处是表头与正文的矛盾——每一处都有可复算的依据。
复现的最高境界,是比原论文更懂它的模型。
复现资料包(Julia 全部脚本 + 逐格对照结果 + 完整说明文档),如需获取请联系微信 canglang12002 任公子


