每年美赛开赛前的那几天,总有队伍急匆匆找到我,说手里压了一堆往年的题,翻开一看全是什么“评价”“排序”“决策”的字眼,急得直挠头:这类题到底有没有一套固定打法?能不能套模板?答案是有,但关键是你得知道哪张牌什么时候打出去,而不是背一堆方法名词上去硬凑。
评价与决策类问题,在美赛里出现的频率非常高,不管是MCM的A题(连续型)、B题(离散型),还是ICM的D题、E题、F题,都常以“评选最佳方案”“评估影响程度”“做多目标选择”的形式出现。说白了,阅卷老师要看的是你在有数据、缺数据、甚至全凭主观的场景下,有没有清晰的比较逻辑和可量化的判断依据。这篇文就把我平时带队用到的一整套急救流程写出来,从题型识别、模型搭配、实操计算到查错救火,一条龙讲完,照着做至少能保底拿一个M奖梯队里的中游名次。
1. 先分清:你手里的是“评价题”还是“决策题”
很多人一看到题目里出现“评价”“选择”“排序”,就认为是一回事,直接上层次分析法。这种做法没崩盘纯属运气。评价和决策在数学建模里的处理路径是有细微差别的,搞混了,结论就会显得不伦不类,评委一眼就能看出来你对模型的理解不透。
1.1 两者都在干什么
评价问题的典型提问方式是:给出一批对象,比如多个城市、多个方案、多个产品设计,让你“评估优劣”,最后通常要求给个排名或者分个等级。它强调的标准动作是打分、加权、排序。代表型题目有“评估某地区的气候韧性”“综合评价若干选址方案的可持续性”。
决策问题的典型提问方式则是:我现在有几个备选方案,每个方案背后有好几个指标,有的指标想越大越好,有的想越小越好,且在资源约束下没法一眼拍板,要你“给出选择”或“制定最优策略”。它强调的标准动作是方案对比、偏好设置、条件优化。比如“选一个最优的救灾物资调度中心位置”“为某公司选择最佳市场进入策略”。
两者在实际做法上高度重叠,你完全可以理解为:决策问题在排序之后还要多一步“基于排序结果做选择建议”,而评价问题可能只止步于结果排序。这样一拆,思路就清楚了,评审标准的侧重点也随之确定。
1.2 快速识别四类常见变体
急救场景下,你没有时间细品题目的文学外壳,直接按结构特征对号入座。
- 单层次多指标评价:所有评价对象直接落在同一层,指标也就一层,常见于数据比较齐全的题。这种最简单,熵权法加上TOPSIS就能解决。
- 多层次多指标评价:评价对象下面还分着一级指标、二级指标,甚至三级指标,比如评估区域发展水平,会分经济、社会、环境三个维度,每个维度底下再挂三四个具体指标。这种需要层次分析法和熵权法结合,层次分析法确定维度权重,熵权法确定指标层权重。
- 主观偏好明显的决策问题:题干里出现“结合××部门的需求”“考虑决策者倾向”等描述,说明存在人为主观因素,需要层次分析法来处理专家判断,再用排序结果反映偏好。
- 多目标冲突决策:方案在目标之间存在“此消彼长”的冲突,比如成本要最低,同时质量要最高。这种需要构建目标函数做优化,常见套路是加权组合成单目标,或者用多目标进化算法(实践中很少需要真跑到那一步,处理成加权单目标往往更稳妥)。
我的建议是,拿到题目后先做一件事:把题干里涉及的“对象”和“评价口径”各写在一张纸上,如果对象只有一组,指标也只有一组,走单层次路线;如果对象相同但口径分了好几层,走多层次路线;如果题干里给了“必须兼顾某两方面的冲突”,走多目标优化路线。辨识清晰再动手,能省出至少两个小时的无用功。
2. 时间不够用时的模型选型原则
说实话,美赛的时间就三四天,去掉读题、找数据、写论文,留给建模计算的时间非常紧。模型选型的原则只有一个:能用成熟组合解决的就不要发明新方法,稳定性优先于炫技。
2.1 主观赋权模型:层次分析法与它的变体
层次分析法,业内常喊AHP,最大的价值是能把“我觉得哪个指标重要”这种模糊说法变成“判断矩阵+一致性检验”的可信结论。它特别适合用在指标数量不多(一般不超过9个)且没有历史数据可以参考的题目里。
操作上,你需要把指标两两比较重要程度,按1到9标度打分数。这个量表在论文里要解释清楚,不然评委觉得你就是随手填了个矩阵。打完分数后要算最大特征值,再计算一致性指标CI和一致性比率CR。CR小于0.1才算通过,不通过就得回去调整打分。
还有一个很多人不知道的变体叫模糊层次分析法(FAHP),它把传统AHP的1到9标度改成模糊数,能弱化“两两比较绝对精确”这种不太现实的假设。竞赛里如果你能把AHP用顺畅,完全不需要碰FAHP,但要是遇到评委主观性特别强的题目,提一嘴FAHP可以展示你的知识面。
2.2 客观赋权模型:熵权法
熵权法是我在竞赛里最推荐优先用的方法,因为它的权重来自数据本身的离散程度,不需要人为打分,评委很难质疑“你凭什么给这个指标这么大权重”。
基本原理是:某个指标的数据在各对象之间差别越大,说明这个指标携带的区分信息越多,权重应该越高;反之,如果所有人都一样,这个指标没有区分度,权重就低。这里的“信息量”用信息熵来度量,熵值越小,权重越大。
需要特别注意,熵权法的输入必须是标准化后的非负数值,而且遇到含有零的数据要做平移处理,否则对数运算会当场报错。另一个细节是,计算时用的是相对比重而非原始数值,因此理论上指标数据的绝对大小不影响权重,只有相对差异才起作用。这一点在论文里写明白,能有效避免评委“你这个归一化怎么跟权重结果对不上”的疑问。
2.3 综合评价兜底:TOPSIS与灰色关联度
权重算完之后,最后要算每个对象的综合得分。TOPSIS是综合评价里最经典的做法,核心思想是:先找“正理想解”(所有指标的最优值)和“负理想解”(所有指标的最劣值),然后计算每个对象到这两个理想解的欧氏距离,谁的方案离正理想解近、离负理想解远,谁就好。
TOPSIS最大的优点是不需要对数据的分布做任何假设,计算过程也简单直接,适合竞赛场景。但它有个隐性前提:指标之间是相互独立的,如果有强关联性,结果会被冗余信息放大。所以做指标筛选时不要贪多,能砍就砍。
灰色关联度法则适合小样本数据,它通过比较对象与参考序列的几何形状相似程度来判断关联大小。在美赛里,灰色关联度常用于指标之间关联不明确、且数据量有限的情况,但它的参量(分辨系数)选择有一定主观性,反而给了评委扣分的口实。我的态度是:先用TOPSIS打底,如果题目里确实存在“样本量不足、数据波动情况不明”的描述,再用灰色关联度作为稳健性检验的对照方法,而不是当主力模型用。
2.4 决策问题:在排序之后多走一步
如果题目是决策性质,排序结束后不能停,得加一个“方案推荐”的环节。常规操作是把TOPSIS算出来的贴近度作为方案得分,结合题目给的约束条件,做简单的约束筛选,或者把贴近度当作目标函数的一部分,做一次小的优化求解,推荐出最优方案。
这里有个很容易犯的错误:直接说“排序第一的就是最优方案”,忽略了题目中可能存在的限制或风险因素。正确的表述是在结果分析里加入“若考虑成本约束,则方案B性价比更高;若不考虑,则方案A综合得分最高”的敏感性分析,给决策留出余地。这个思路一写出来,论文的深度立刻不一样。
3. 一套实战流程:从指标到结论的完整链路
前面讲的是方法关系,这一段我用一个模拟案例完整走一遍流程。假设题目是“为某地区选取一个应急物资储备库最优选址”,备选地点有四个:A、B、C、D,评价指标包括交通便利度(正指标,越大越好)、土地成本(负指标,越小越好)、人口覆盖密度(正指标,越大越好)、基础设施完善度(正指标,越大越好)。
3.1 搭建指标体系与数据表
先把四个地点在四个指标上的原始数据整理成表格。原始数据如下:
| 候选点 | 交通便利度(指数) | 土地成本(万元) | 人口覆盖密度(人/km²) | 基础设施完善度(指数) |
|---|---|---|---|---|
| A | 7.2 | 45 | 920 | 6.8 |
| B | 5.9 | 30 | 1350 | 7.5 |
| C | 8.1 | 60 | 780 | 6.2 |
| D | 6.5 | 38 | 1100 | 7.9 |
注意,土地成本是负向指标,数值越小越优,其他三个是正向指标。如果无视方向直接算,最后结果会完全反掉。这是新手最容易犯的错,而且算出来的数字看起来还挺正常,直到检查时才翻车。
3.2 数据预处理不只是归一化
做熵权法之前,需要把所有指标转为“正向且非负”的格式。处理负向指标的常用方法是取倒数或做差转换,取倒数会改变数据的分布形状,做差转换(如用最大值减去原始值)比较温和。我用的是做差转换:
- 土地成本转换后:B为60-30=30,D为60-38=22,A为60-45=15,C为60-60=0。
然后对所有指标做min-max归一化,公式是(x-min)/(max-min),这样每个值都落到0到1之间。归一化结果如下:
| 指标 | A | B | C | D |
|---|---|---|---|---|
| 交通便利度 | 0.591 | 0 | 1 | 0.273 |
| 土地成本(转换后) | 0.5 | 1 | 0 | 0.733 |
| 人口覆盖密度 | 0.246 | 1 | 0 | 0.561 |
| 基础设施完善度 | 0.353 | 0.765 | 0 | 1 |
这里C点土地成本转换后为0,后面算熵值时会出现log(0),所以必须做平移处理。我用的是加0.01平移,既保持数据顺序不变,又不至于过分干扰数值。这一步细节很容易被忽略,但不处理程序就会报错或者计算出NaN。
3.3 熵权法权重计算的逐步演示
以下是具体计算过程,方便你比赛现场照着抄。
第一步,计算第j个指标下第i个对象的比重p_ij。p_ij等于归一化后的数值除以该指标下所有对象数值之和。
以交通便利度为例,总和=0.591+0+1+0.273=1.864。各对象的比重为:
- A:0.591/1.864=0.317
- B:0
- C:1/1.864=0.536
- D:0.273/1.864=0.146
第二步,计算第j个指标的信息熵e_j。公式为 e_j = -k × Σ(p_ij × ln(p_ij)),其中k=1/ln(n),n为对象个数,这里是4,所以k=1/1.386=0.721。
注意B的比重为0,ln(0)不存在,此时规定p×ln(p)视为0。这在物理学上叫“零概率不贡献信息”,数学处理上直接跳过即可。
交通便利度的信息熵为: e = -0.721 × (0.317×ln0.317 + 0×ln0 + 0.536×ln0.536 + 0.146×ln0.146) = -0.721 × (-0.365 + 0 + (-0.334) + (-0.280)) = -0.721 × (-0.979) = 0.706
同理可算其他指标的信息熵,这里我直接给出最终结果:土地成本熵值0.731,人口覆盖密度熵值0.710,基础设施完善度熵值0.698。
第三步,计算信息效用值d_j = 1 - e_j:
- 交通便利度:0.294
- 土地成本:0.269
- 人口覆盖密度:0.290
- 基础设施完善度:0.302
第四步,归一化得到权重w_j = d_j / Σd_j。效用总和=0.294+0.269+0.290+0.302=1.155。各权重:
- 交通便利度:0.294/1.155=0.255
- 土地成本:0.269/1.155=0.233
- 人口覆盖密度:0.290/1.155=0.251
- 基础设施完善度:0.302/1.155=0.261
四个权重相差不大,这是符合实际的,因为原始数据里每个指标都有一定的区分度,没有哪个指标过于统一或特别分散。如果比赛时算出某一项权重占80%以上,大概率是数据预处理出了问题或者那个指标本身就是多余信息,需要回查。
3.4 TOPSIS排序与贴近度计算
拿到权重后,下一步是做加权TOPSIS。
首先构造加权归一化决策矩阵,公式为v_ij = w_j × 归一化值。以交通便利度为例:
- A:0.255×0.591=0.151
- B:0
- C:0.255×1=0.255
- D:0.255×0.273=0.070
全部填完后再确定正理想解和负理想解。由于所有指标都已经处理成正向,正理想解就是每一列的最大值,负理想解就是每一列的最小值。
计算每个对象到正理想解和负理想解的欧氏距离:
- A到正理想解的距离=sqrt((0.151-0.255)^2 + (0.117-0.233)^2 + (0.062-0.251)^2 + (0.092-0.261)^2) = sqrt(0.0108+0.0135+0.0357+0.0286)=sqrt(0.0886)=0.298
- A到负理想解的距离=sqrt((0.151-0)^2+(0.117-0)^2+(0.062-0)^2+(0.092-0)^2)=sqrt(0.0228+0.0137+0.0038+0.0085)=sqrt(0.0488)=0.221
依次算完全部四个点,得到贴近度C_i = 负理想解距离 / (正理想解距离 + 负理想解距离)。
- A:0.221/(0.298+0.221)=0.426
- B:正距离约0.104,负距离约0.335,C=0.763
- C:正距离约0.257,负距离约0.262,C=0.505
- D:正距离约0.064,负距离约0.296,C=0.822
排序结果是D > B > C > A。所以如果只按综合得分推荐,D点是最优选址。
这个结论有没有道理?D的交通中等、土地成本较低、人口覆盖较高、基础设施最好,综合面确实稳;B胜在土地成本低且人口密度大,想控成本选B;A的交通不错但土地成本偏高,基础设施偏低,所以垫了底。结论跟直觉和数据都对得上,评委不会觉得这个模型是“硬套”。这个“结论合理性检查”非常关键,很多队算完结果后连看都不看,直接交上去,殊不知评委是有常识的。
3.5 灵敏度分析与画图呈现的急诊处理
竞赛里,评委追问最多的问题就是“你的权重可靠吗”。因此,灵敏度分析不是加分项,而是保命项。最简单的做法是把权重上下浮动10%-20%,重新计算排序,观察排名是否剧烈变化。
以本例为例,如果把权重从熵权法计算值改为平均权重(即每个指标0.25),排序结果会有什么变化?我算了一遍,TOPSIS结果依然是D > B > C > A,排序完全没变。这就能在论文里写:“权重在合理范围内波动时,排序结果保持稳定,说明模型具有较强的鲁棒性。”这句话比任何炫酷的算法都更能稳住评委。
画图方面,时间不够时优先出四类图:
- 指标权重柱状图或饼图:展示各指标对结果的影响占比。
- 综合得分条形图:一眼看出排名。
- 雷达图:展示每个对象的指标优劣势,特别适合基础设施、交通、成本这类维度清晰的评价。
- 灵敏度分析折线图:横轴为权重变化幅度,纵轴为排序变化情况。
雷达图用Excel或Python的matplotlib画都行,关键是要把四个候选点的形状叠在一起,容易看出谁全面均衡,谁偏科严重。别在这一步浪费过多时间追求美观,字体统一、坐标轴清楚、图注完整即可。
4. 常见翻车现场与排查方法
这部分我直接写成“问题速查表”的形式,每条都是实际带队过程中踩过的坑,你比赛时遇到同类问题,照着排查就行。
4.1 一致性检验不通过怎么办
AHP里CR算出来大于0.1,是最常见的翻车点。很多人第一反应是重新填矩阵,结果越调越乱。我的经验是:先别动数据,检查最大特征值对应的特征向量是不是“近似成比例”,如果矩阵整体倾向一致,只是某一个格子填得离谱,直接改那一格。还有一种情况,比较指标数量超过7个时,一致性天然难保,这时候优先考虑减少指标,把细碎的子指标合并成上一级指标再做判断矩阵,一致性基本都能过。
如果改了三次还过不了,就不要再跟它死磕了。直接改用熵权法做权重,绕开判断矩阵,论文里引用一句“为避免主观判断带来的不一致性,采用客观熵权法确定权重”作为过渡,逻辑完全成立,评委也不会揪着不放。
4.2 权重结果太离谱怎么办
权重算出来某个指标占80%以上,或者出现0.9这种极端值,一般有三个原因:第一,数据里存在大量重复值或接近相同值,导致这个指标的信息熵几乎为1、效用值几乎为0;第二,标准化时没有对异常值做处理,个别极大值主导了离散程度;第三,指标本身就是多余信息,比如两个指标高度相关,相当于同一个信息被计了两次数。
我的处理办法是:先画一张指标相关性热力图,把相关系数超过0.8的两个指标留一个,剔除另一个,再做熵权法。这既增强了指标独立性,也让权重分布更平均。另一个土办法是,把异常值在地图或常识层面做合理性检验,明显不合逻辑的数据要么剔除,要么用中位数填充。记住,数据处理的说理要充分,不能凭空说“我删了一个指标”,要解释为什么这个指标与另一个存在信息冗余。
4.3 结论太单调,被质疑“方法套壳”
有些队伍算完排序就交差,结论就一句“方案D最优”。这在美赛里属于低分姿势。要让结论立体起来,需要加三层内容:
第一层是“分维度结论”:哪个对象在哪个指标上最强、最弱,这种分项展示能让评委看到你的模型输出有可解释性。第二层是“方案推荐与风险提示”:如果选D,风险在哪,比如基础设施虽好但地价高会导致预算压力,进而提出“如果预算收紧,B是次优选择”的弹性建议。第三层是把评价结果跟政策措施挂钩,比如“建议优先对D周边做交通路网升级,以进一步提升其承载能力”,让模型结论有用武之地。
这套操作下来,论文的“结论”部分自然就有血有肉了,评委也不会再说你只会算数不会分析。
4.4 时间分配的最后提醒
最后说一句关于时间管理的大实话。评价与决策题往往卡在数据处理和结论分析上,不在模型理解上。建议第一天前半段完成题目拆解和指标体系搭建,第一天后半段到第二天中午完成数据预处理和初步模型计算,第二天下午到第三天上午完成灵敏度分析和图表绘制,第三天下午到第四天上午集中写论文和摘要。摘要务必最后写,而且写的时候要对着题目要求逐句检查,好摘要等于半只脚踏进M奖的门槛。
5. 写在最后的实操心得
带过这么多参赛队伍,我发现评价与决策题其实最不吃亏的恰恰是不太会临场编新模型的队伍,而是那些能把老方法用得干净利落的队伍。方法不在多,在于每一步都有据可依,算出的结果经得起常识检验。
我自己在比赛里一直坚持一个小习惯:每一次算完权重、算完排名,都会停下来用常识“对表”一下——这个结果合理吗?如果我对领域有基本了解,这个排名跟直觉差太远,我会先怀疑数据预处理,而不是怀疑模型本身。很多队伍翻车就翻在没有这一道“常识对表”的工序。
另外,再分享一个从某位资深阅卷人那里听来的说法:评价与决策题的评分重点从来不在于你用了多高级的算法,而在于你是否完整展示了“从指标选择到权重确定,再到综合排序,最后到决策建议”这一条完整的逻辑链。链条完整、每一步都有交代,即便方法朴素,也能拿到不错的分数。
这篇文章里的流程是我见过最稳、最省时的一条路线。你要是真在赛场上写到一半卡住了,回头来看这篇,按着第3章的步骤一步步补,至少能保住一篇结构完整的论文。祝每个看到这里的队伍都能稳稳拿下自己想要的成绩。