MACBETH 法多准则决策分析工具
方法概述
MACBETH(Measuring Attractiveness by a Categorical Based Evaluation Technique)是一种基于语义类别的多准则决策方法。它通过将方案之间的偏好差异表达为语义类别(C0-C6),构造一个满足一致性要求的区间尺度,从而对方案进行综合排序,并得到各准则的权重。
本工具实现了标准 MACBETH 的核心步骤:
- 对每个准则下方案的原始得分做 min-max 归一化,使其落在 [0,1] 区间,消除量纲差异;
- 将归一化后的两两得分差异映射为 7 个语义类别(0 无差异,1-6 差异递增);
- 构造方案判断矩阵,求解 MACBETH 基本量表(线性规划),得到各方案在该准则下的得分;
- 对准则重要性判断矩阵采用同一过程求解,得到 准则权重;
- 加权求和得到方案综合得分,并按需标准化后排序;
- 进行 一致性检验(循环检测 + 类别序一致性),并对不一致判断自动松弛。
输入数据
1. 数据文件(CSV / Excel / TXT)
- 第一行为准则名称;
- 第一列为方案名称;
- 数据区域为各方案在各准则下的原始得分(数值);每个准则可在界面中设置指标方向(效益型=越大越优 / 成本型=越小越优,默认效益型);
- 支持多个工作表,每个工作表独立分析;
- 单个文件不超过 5MB。
注意:各工作表须具有相同数量的准则,否则将跳过不一致的工作表。
2. 准则重要性判断矩阵
在界面中填写准则间的相对重要性,取值使用 0-6 的语义类别,符号表示优劣方向:
矩阵[i, j] > 0:准则 i 比准则 j 更重要,数值为语义类别(1-6);矩阵[i, j] < 0:准则 j 比准则 i 更重要;对角线保持为 0;矩阵[i, j]与矩阵[j, i]应互为相反数。
默认值:上三角为 1,下三角为 -1,对角线为 0。可使用”自动填充对称元素”或”重置矩阵”辅助填写。
语义类别含义:
| 类别 | 含义 |
|---|---|
| 0 | 无差异 |
| 1 | 非常弱差异 |
| 2 | 弱差异 |
| 3 | 中等差异 |
| 4 | 强差异 |
| 5 | 非常强差异 |
| 6 | 极端差异 |
算法流程
1. 每准则归一化
对第 k 个准则下各方案的原始得分 x,按指标方向归一化:
归一化得分(效益型)= (x - min) / (max - min)
归一化得分(成本型)= (max - x) / (max - min)
归一化后得分落在 [0,1] 区间。成本型准则(如价格)得分越小越优,因此归一化时反向处理。若某准则下所有方案得分相同,则归一化得分为全 0(即全部无差异)。
2. 语义类别分箱
对归一化后的两两得分差 d(取绝对值),按等宽阈值映射为语义类别 0-6:
| 差值范围 | 语义类别 |
|---|---|
| < 1e-9 | 0 |
| (0, 1/6] | 1 |
| (1/6, 2/6] | 2 |
| (2/6, 3/6] | 3 |
| (3/6, 4/6] | 4 |
| (4/6, 5/6] | 5 |
| (5/6, 1] | 6 |
由于先做了每准则归一化,类别判断与原始数据的绝对量纲无关。
3. 构建判断矩阵
对方案 i、j:
- 若归一化得分
x_i > x_j:矩阵[i,j] = 类别值,矩阵[j,i] = -类别值; - 若
x_i < x_j:矩阵[i,j] = -类别值,矩阵[j,i] = 类别值; - 若相等:
矩阵[i,j] = 矩阵[j,i] = 0。
4. 求解 MACBETH 基本量表
对每个准则,在得分变量 v 上构建线性规划:
- 严格偏好约束:方案 a 优于 b 时,
v_a - v_b ≥ 1; - 无差异约束:方案 a 与 b 无差异时,
v_a - v_b = 0; - 类别序约束:对任意两对偏好 (x)、(y),若类别(x) > 类别(y),则
d_x - d_y ≥ 1;若类别相等,则d_x - d_y ≥ 0; - 锚点约束:最劣方案
v = 0; - 目标:最小化所有方案得分之和(得到”基本量表”)。
求解成功后,将各准则量表缩放到 [0,100],保证准则间可比。
说明:语义类别不直接作为得分的绝对差值,而是通过”类别序约束”决定各类别差距的相对大小——这与标准 MACBETH 方法一致。
5. 准则权重
准则权重有两种来源:
方式一:语义判断矩阵(默认)。对准则重要性判断矩阵采用同样的基本量表过程求解,得到各准则的重要性值,再归一化:
权重(k) = v(k) / Σ v(j)
注意:最不重要的准则作为参考锚点,其权重为 0,这是 MACBETH 方法的标准行为。
方式二:直接输入权重。在界面中直接为每个准则输入相对权重(如 3、1),程序自动归一化使其和为 1:
权重(k) = w(k) / Σ w(j)
直接输入模式不涉及判断矩阵,因此不计算整体一致性指标(显示”—“),结果中不包含准则重要性矩阵。
6. 综合得分
综合得分(i) = Σ_k 准则得分(k, i) × 权重(k)
若勾选”标准化得分”,再对综合得分做整体 min-max 标准化到 [0,100];最后按综合得分降序给出排名。
7. 一致性检验
- 循环检测:若方案偏好关系存在循环(如 A 优于 B、B 优于 C、C 优于 A),判断矩阵无效,一致性指标记为 0;
- 类别序一致性:计算求解出的量表满足”严格偏好差 ≥ 1”与”类别序约束”的比例,得到 0-1 之间的一致性指标,越接近 1 越一致;
- 当全约束线性规划不可行(判断不一致)时,自动松弛为仅保留严格偏好约束再求解,并在结果中体现较低的一致性指标。
一致性指标同样应用于准则重要性判断矩阵,并在结果中作为一行(“准则重要性矩阵(整体)”)展示。若使用”直接输入权重”模式,不存在判断矩阵,该行显示”—“。
参数设置
| 参数 | 说明 |
|---|---|
| 小数位数 | 结果保留的小数位数 |
| 标准化得分 | 是否将综合得分整体标准化到 [0,100] |
| 显示一致性检验 | 是否在结果中展示各准则及整体的重要性判断一致性指标 |
| 指标方向 | 每个准则可选”效益型(越大越优)“或”成本型(越小越优)“,默认效益型 |
| 权重来源 | 选择”语义判断矩阵”或”直接输入权重” |
| 直接权重 | 在”直接输入权重”模式下为每个准则输入相对权重(需为正数,自动归一化和为 1) |
结果说明
| 输出 | 内容 |
|---|---|
| 综合结果 | 各方案综合得分与排序、准则权重、权重来源、指标方向 |
| 各准则得分 | 各方案在各准则下的 0-100 量表得分 |
| 判断矩阵 | 指标方向说明、准则重要性矩阵(直接权重模式下显示提示)、原始数据矩阵 |
| 一致性检验 | 各准则一致性指标 + 准则重要性矩阵整体一致性(直接权重模式整体行显示”—“) |
| 可视化 | 方案综合得分图、准则权重分布图 |
可下载 Excel 报告(含汇总与各工作表明细)或 HTML 报告。
AI 辅助分析
工具支持调用大语言模型对分析结果进行专业解读(每日限 3 次),需配置 API 密钥(环境变量)。
边界与说明
- 各工作表准则数量须一致,否则该表被跳过并提示;
- 单准则情形下准则权重恒为 1;
- 方案数量很大(偏好对超过阈值)时,为控制求解时间会自动跳过”类别序约束”(一致性指标仍按实际约束计算);
- 判断矩阵全等价时准则权重等权;
- 一致性指标为 0 表示判断存在循环或矛盾,此时量表和排序结果仅作参考,建议修正判断矩阵后重新计算。
平台界面

平台界面包含:数据上传区、参数设置区、多工作表预览、分析结果展示和AI分析模块