UTASTAR法
方法概述
UTASTAR(UTilité Additive STAR)是一种基于加性效用函数的多准则决策方法,由 Jacquet-Lagrèze 和 Siskos 于1982年提出。该方法通过构建每个指标的边际效用函数,将各指标的原始值转化为效用值,并累加得到方案的总效用,从而对方案进行排序。
UTASTAR法的核心思想是:
- 根据决策者的先验知识或历史数据,确定各指标的偏好方向(极大型、极小型、中间型、区间型),并对原始数据进行正向化处理。
- 将正向化后的数据标准化到 [0,1] 区间。
- 对每个指标,在 [0,1] 区间内划分为若干等距分段,构造分段线性边际效用函数。
- 通过线性规划或简化方法估计边际效用函数的参数(即各分段点的效用值),使得各方案的总体效用与给定的排序(如果有)尽可能一致。
- 若无给定排序,则直接根据总效用大小对方案排序。
- 最终得到各指标的权重(由边际效用的总变化计算)和各方案的总效用值。
该方法能够从数据中“学习”出决策者的偏好结构,适用于存在历史排序或需要揭示内在偏好规律的评价问题。
计算步骤
1. 构建原始数据矩阵
设有 \(n\) 个评价对象(方案),\(m\) 个评价指标,原始数据矩阵为:
\[ X = \begin{bmatrix} x_{11} & x_{12} & \cdots & x_{1m} \\ x_{21} & x_{22} & \cdots & x_{2m} \\ \vdots & \vdots & \ddots & \vdots \\ x_{n1} & x_{n2} & \cdots & x_{nm} \end{bmatrix} \]
若已知各方案的先验排序,可将排序向量作为附加列(可选)。
2. 数据正向化
根据每个指标的类型,将原始数据转换为“越大越好”的形式(极大型)。平台支持以下四种类型:
(1)极大型指标(越大越好)
保持不变: \[ y_{ij} = x_{ij} \]
(2)极小型指标(越小越好)
\[ y_{ij} = \max(x_j) - x_{ij} \]
(3)中间型指标(越接近某固定值 \(a\) 越好)
设 \(M = \max |x_{ij} - a|\),则: \[ y_{ij} = 1 - \frac{|x_{ij} - a|}{M} \] 若 \(M=0\)(所有值均等于 \(a\)),则 \(y_{ij}=1\)。
(4)区间型指标(落在区间 \([a,b]\) 内最好)
设 \(M = \max(a - \min(x_j), \max(x_j) - b)\),则: \[ y_{ij} = \begin{cases} 1 - \frac{a - x_{ij}}{M}, & x_{ij} < a \\ 1, & a \leq x_{ij} \leq b \\ 1 - \frac{x_{ij} - b}{M}, & x_{ij} > b \end{cases} \] 若 \(M=0\)(所有值均落在区间内),则 \(y_{ij}=1\)。
3. 数据标准化
将正向化后的数据通过极差标准化映射到 \([0,1]\) 区间:
\[ z_{ij} = \frac{y_{ij} - \min(y_j)}{\max(y_j) - \min(y_j)} \]
若 \(\max(y_j) = \min(y_j)\),则 \(z_{ij}=1\)。
4. 构建边际效用函数
对于每个指标 \(j\),将其取值范围 \([0,1]\) 等分为 \(k\) 段(\(k\) 为分段数,由用户指定,通常取 3~10),得到 \(k+1\) 个分段点 \(0 = \xi_j^0 < \xi_j^1 < \cdots < \xi_j^k = 1\)。
设分段点处的边际效用值为 \(u_j^0, u_j^1, \dots, u_j^k\),满足 \(u_j^0 = 0\),且 \(u_j^t\) 随 \(t\) 单调非减(对极大型指标)。在任意点 \(z \in [\xi_j^{t-1}, \xi_j^t]\),边际效用由线性插值得到:
\[ u_j(z) = u_j^{t-1} + \frac{u_j^t - u_j^{t-1}}{\xi_j^t - \xi_j^{t-1}} (z - \xi_j^{t-1}) \]
5. 计算总效用
方案 \(i\) 的总效用为各指标边际效用之和:
\[ U_i = \sum_{j=1}^{m} u_j(z_{ij}) \]
6. 确定边际效用参数
若有先验排序(即用户提供了各方案的排名),则通过求解线性规划模型来估计边际效用参数,使得排序误差最小化(UTASTAR 标准算法)。本平台简化实现:若无排序向量,则默认边际效用为线性递增,即 \(u_j^t = t/k\);若有排序向量,则根据排序调整参数(实际代码中暂未实现完整线性规划,但保留了接口)。
7. 计算指标权重
指标 \(j\) 的权重由边际效用的总变化决定:
\[ w_j = \frac{u_j(1) - u_j(0)}{\sum_{i=1}^{m} [u_i(1) - u_i(0)]} \]
由于 \(u_j(0)=0\),\(u_j(1)\) 即为指标 \(j\) 的最大边际效用。将所有权重归一化后得到各指标的最终权重。
8. 方案排序
根据总效用 \(U_i\) 从大到小排序,\(U_i\) 越大表示方案越优。若有先验排序,则计算排序与先验排序的吻合程度。
案例分析
案例背景:某企业拟从四个供应商(A、B、C、D)中选择合作伙伴,评价指标包括:产品质量(极大型)、价格(极小型)、交货准时率(极大型)。原始数据如下:
| 供应商 | 产品质量 | 价格 | 交货准时率 |
|---|---|---|---|
| A | 85 | 200 | 0.95 |
| B | 90 | 180 | 0.90 |
| C | 75 | 210 | 0.85 |
| D | 80 | 190 | 0.92 |
设分段数 \(k=5\),无先验排序,采用默认线性边际效用。
计算过程
1. 数据正向化
- 产品质量(极大型):保持不变。
- A: 85, B: 90, C: 75, D: 80
- 价格(极小型):需转换为极大型。\(\max=210\)。
- A: \(210-200=10\)
- B: \(210-180=30\)
- C: \(210-210=0\)
- D: \(210-190=20\)
- 交货准时率(极大型):保持不变。
- A: 0.95, B: 0.90, C: 0.85, D: 0.92
正向化矩阵 \(Y\):
\[ Y = \begin{bmatrix} 85 & 10 & 0.95 \\ 90 & 30 & 0.90 \\ 75 & 0 & 0.85 \\ 80 & 20 & 0.92 \end{bmatrix} \]
2. 数据标准化(极差法)
- 产品质量:\(\min=75\), \(\max=90\),范围 15。
- A: \((85-75)/15 = 0.6667\)
- B: \((90-75)/15 = 1.0000\)
- C: \((75-75)/15 = 0.0000\)
- D: \((80-75)/15 = 0.3333\)
- 价格:\(\min=0\), \(\max=30\),范围 30。
- A: \((10-0)/30 = 0.3333\)
- B: \((30-0)/30 = 1.0000\)
- C: \((0-0)/30 = 0.0000\)
- D: \((20-0)/30 = 0.6667\)
- 交货准时率:\(\min=0.85\), \(\max=0.95\),范围 0.1。
- A: \((0.95-0.85)/0.1 = 1.0000\)
- B: \((0.90-0.85)/0.1 = 0.5000\)
- C: \((0.85-0.85)/0.1 = 0.0000\)
- D: \((0.92-0.85)/0.1 = 0.7000\)
标准化矩阵 \(Z\):
\[ Z = \begin{bmatrix} 0.6667 & 0.3333 & 1.0000 \\ 1.0000 & 1.0000 & 0.5000 \\ 0.0000 & 0.0000 & 0.0000 \\ 0.3333 & 0.6667 & 0.7000 \end{bmatrix} \]
3. 构建边际效用函数(分段数 \(k=5\))
分段点:\(0, 0.2, 0.4, 0.6, 0.8, 1.0\)。采用线性递增边际效用,即 \(u(0)=0\), \(u(0.2)=0.2\), \(u(0.4)=0.4\), \(u(0.6)=0.6\), \(u(0.8)=0.8\), \(u(1.0)=1.0\)。对任意 \(z\),按所在分段线性插值。
4. 计算各方案的总效用
- 方案A:
- 产品质量 \(0.6667\):介于 \(0.6\) 和 \(0.8\) 之间,插值得 \(0.6 + (0.6667-0.6)/(0.8-0.6)\times(0.8-0.6) = 0.6 + 0.3335\times0.2 = 0.6667\)(巧合等于数值)。
- 价格 \(0.3333\):介于 \(0.2\) 和 \(0.4\) 之间,插值得 \(0.2 + (0.3333-0.2)/(0.4-0.2)\times(0.4-0.2) = 0.2 + 0.6665\times0.2 = 0.3333\)。
- 交货准时率 \(1.0\):等于 \(1.0\),效用 \(1.0\)。
- 总效用 \(U_A = 0.6667 + 0.3333 + 1.0 = 2.0000\)
- 方案B:
- 产品质量 \(1.0\):效用 \(1.0\)。
- 价格 \(1.0\):效用 \(1.0\)。
- 交货准时率 \(0.5\):介于 \(0.4\) 和 \(0.6\) 之间,插值得 \(0.4 + (0.5-0.4)/(0.6-0.4)\times(0.6-0.4) = 0.4 + 0.5\times0.2 = 0.5\)。
- 总效用 \(U_B = 1.0 + 1.0 + 0.5 = 2.5000\)
- 方案C:
- 产品质量 \(0.0\):效用 \(0\)。
- 价格 \(0.0\):效用 \(0\)。
- 交货准时率 \(0.0\):效用 \(0\)。
- 总效用 \(U_C = 0.0000\)
- 方案D:
- 产品质量 \(0.3333\):介于 \(0.2\) 和 \(0.4\) 之间,插值得 \(0.2 + (0.3333-0.2)/(0.4-0.2)\times(0.4-0.2) = 0.2 + 0.6665\times0.2 = 0.3333\)。
- 价格 \(0.6667\):介于 \(0.6\) 和 \(0.8\) 之间,插值得 \(0.6 + (0.6667-0.6)/(0.8-0.6)\times(0.8-0.6) = 0.6 + 0.3335\times0.2 = 0.6667\)。
- 交货准时率 \(0.7\):介于 \(0.6\) 和 \(0.8\) 之间,插值得 \(0.6 + (0.7-0.6)/(0.8-0.6)\times(0.8-0.6) = 0.6 + 0.5\times0.2 = 0.7\)。
- 总效用 \(U_D = 0.3333 + 0.6667 + 0.7 = 1.7000\)
5. 计算指标权重
各指标边际效用的总变化均为 \(1-0=1\),因此权重相等,各为 \(1/3\)。
6. 排序
\(U_B = 2.5 > U_A = 2.0 > U_D = 1.7 > U_C = 0\),故供应商B最优,C最差。
结论:供应商B在产品质量和价格上表现最佳,总效用最高;供应商C在所有指标上均处劣势,排序最差。
常见问题
Q1: 分段数 \(k\) 如何选择?
A: 分段数决定了边际效用函数的精细程度。分段数越多,函数越能逼近任意形状,但可能导致过拟合且增加计算量。通常取 \(k=3 \sim 10\),可根据样本量(方案数)和指标数量权衡。方案较少时建议取较小值。
Q2: 误差阈值 \(\sigma\) 的作用是什么?
A: 误差阈值用于控制线性规划模型中允许的排序误差(即方案总效用与先验排序的偏差)。本平台暂未实现完整线性规划,但保留了参数接口,供后续扩展。
Q3: 什么情况下需要使用“有排序向量”模式?
A: 当您已有历史排序或专家给出的先验排序(例如已知某些方案优于另一些方案)时,可选择此模式。平台将尝试估计边际效用参数,使得计算出的总效用与先验排序尽可能一致,从而“学习”出决策者的偏好。若无先验排序,则默认边际效用为线性。
Q4: 如何处理中间型和区间型指标?
A: 在“指标类型设置”中,选择相应类型并输入最优值(中间型)或区间上下限(区间型)。平台会在正向化阶段自动将数据转换为极大型。
Q5: 支持多工作表吗?
A: 支持。平台允许上传包含多个工作表的Excel文件,每个工作表可代表不同轮次、不同专家群体或不同评价体系的数据,系统会分别分析并输出结果,便于对比。
平台功能
UTASTAR法分析平台提供以下核心功能:
数据输入
- 支持CSV、Excel、TXT多种格式。
- Excel文件支持多工作表,自动识别工作表名称。
- 数据格式要求:第一行为指标名称,第一列为方案名称,数据区域为数值型。若包含排序向量,请将其放在最后一列,并在参数中指定列号。
参数设置
- 排序向量设置:选择“无排序向量(自动计算)”或“有排序向量(从数据中读取)”,若选择后者需指定排序向量列号。
- 分段数:每个指标的分段数量(默认5)。
- 误差阈值σ:控制模型允许的误差(默认0.05)。
- 小数位数:控制输出精度(默认6位)。
- 显示中间结果:可选是否展示正向化矩阵、标准化矩阵等中间步骤。
- 指标类型设置:为每个指标指定类型(极大型、极小型、中间型、区间型),并设置相应参数。
- 权重约束设置:可选为每个指标的权重设置上下限(0~1之间),用于约束权重范围。
结果展示
- 详细分析报告:包含各方案的总效用值及排序。
- 计算过程:展示原始数据、正向化矩阵、标准化矩阵、边际效用函数参数(权重)。
- 可视化图表:总效用排名图、指标权重分布图。
- AI智能分析:基于DeepSeek API自动解读结果,提供决策建议(每日限3次)。
- 多格式导出:支持Excel和HTML报告下载。
工作表管理
- 多工作表自动识别,支持批量分析。
- 实时显示每个工作表的验证状态。
- 支持对比不同工作表的权重分布与排序结果。
使用建议
准备阶段:明确评价对象和指标体系,确定每个指标的类型(极大型/极小型/中间型/区间型)。若有先验排序,准备排序向量列。
数据收集:使用平台提供的模板文件填写数据,确保数据完整且无缺失值。每个工作表可代表不同的数据集(如不同年份、不同专家组)。
参数设置:
- 正确选择排序向量模式,若为“有排序向量”,务必确认列号正确。
- 分段数可先取默认值5,后续根据结果稳定性调整。
- 若对权重有先验约束,可设置权重上下限(例如某指标权重不得低于0.1)。
结果解读:
- 总效用值反映了方案的综合表现,值越大越优。
- 权重揭示了各指标在决策中的相对重要性,可结合领域知识判断合理性。
- 若无先验排序,默认线性边际效用等价于标准化后的加权和(权重等权时即为简单加权平均)。
迭代优化:
- 若结果与预期不符,可检查指标类型设置是否正确,或调整分段数。
- 尝试使用“有排序向量”模式,输入历史排序,观察学习出的权重是否符合认知。
- 对比不同工作表的结果,分析决策稳定性。
平台界面

平台界面包含:数据上传区、参数设置区、多工作表预览、分析结果展示和AI分析模块
参考文献:
- Jacquet-Lagrèze E, Siskos Y. Assessing a set of additive utility functions for multicriteria decision-making: the UTA method[J]. European Journal of Operational Research, 1982, 10(2): 151-164.
- 徐泽水. 不确定多属性决策方法及应用[M]. 清华大学出版社,2004.
- UTASTAR方法在供应商选择中的应用研究[J]. 运筹与管理,2010.