公司动态

TOPSIS优劣解距离法:多属性决策的量化评估与Python实现

📅 2026/8/28 6:33:10
TOPSIS优劣解距离法:多属性决策的量化评估与Python实现
1. 从“选谁更好”到“量化距离”TOPSIS方法的核心思想在科研、管理、甚至日常生活中我们常常面临一个经典难题如何在多个各有优劣的方案中选出一个“最好”的比如公司要采购一批设备有A、B、C三家供应商有的价格便宜但性能一般有的性能顶尖但售后堪忧还有的价格和性能都居中但品牌知名度高。我们手里有一堆数据但怎么把这些冷冰冰的数字变成一个能说服所有人的决策依据这就是多属性决策问题。很多朋友的第一反应是加权平均呗。给每个指标价格、性能、售后打个分再根据重要性给个权重最后算个总分谁分高选谁。这个方法简单直接但有个致命的缺陷它假设所有指标都是“越大越好”。实际上像价格、故障率这类指标显然是“越小越好”。更麻烦的是不同指标的量纲和数量级天差地别价格动辄几万满意度评分却只有1到5。直接加权平均数量级大的指标如价格会完全“淹没”数量级小的指标如满意度导致决策失真。TOPSISTechnique for Order Preference by Similarity to Ideal Solution中文常译为“优劣解距离法”或“逼近理想解排序法”就是为了解决上述痛点而生的。它的核心思想非常直观且符合人类直觉我们不直接比较方案本身而是比较每个方案与“理想中最好方案”和“理想中最差方案”的距离。想象一下我们把所有备选方案和两个虚拟方案画在一个多维空间里每个维度代表一个评价指标。第一个虚拟点是所有指标都达到最优值的那个点我们称之为“正理想解”第二个虚拟点是所有指标都达到最差值的那个点称之为“负理想解”。那么一个优秀的方案应该离“正理想解”尽可能近同时离“负理想解”尽可能远。TOPSIS做的就是这件事它通过一套标准化的数学流程计算出每个真实方案与这两个虚拟理想解的综合距离并以此为依据进行排序。与正理想解距离最近、且与负理想解距离最远的方案就是最优方案。这个方法巧妙地规避了量纲问题统一了效益型越大越好和成本型越小越好指标使得决策过程更加科学、透明结果也更容易被理解和接受。它不仅是数学建模竞赛中的常客更是企业管理、项目评估、供应商选择等实际场景中的得力工具。2. 步步为营TOPSIS算法的完整推演与实现理解了TOPSIS的哲学思想后我们来看它如何通过具体的数学步骤将思想落地。这个过程就像烹饪一道名菜每一步都有其讲究错一步都可能影响最终“味道”。我们假设有一个决策矩阵包含m个备选方案和n个评价指标。2.1 构建原始决策矩阵与指标同向化首先我们得到原始数据形成一个m行n列的矩阵记作X。每一行代表一个方案每一列代表一个指标。方案\指标 | 价格(万元) | 性能(分) | 故障率(%) ----------|------------|----------|----------- A | 10 | 85 | 2.5 B | 15 | 92 | 1.8 C | 12 | 88 | 3.0这里立刻遇到第一个问题指标类型不一致。价格和故障率是成本型指标越小越好性能是效益型指标越大越好。TOPSIS要求所有指标方向一致通常都转化为效益型越大越好。所以我们需要进行同向化处理。对于成本型指标常用倒数法或差值法。倒数法简单但若指标值有0或负数则失效。更稳健的方法是使用差值法新值 Max(原指标列) - 原值。以价格列为例最大值是15那么A方案的新价格得分 15 - 10 5。这意味着价格越低原值小转换后的得分反而越高。故障率列同理。注意同向化方法的选择需谨慎。对于绝对数值型指标差值法普遍适用。对于比率或指数型指标可能需要其他函数变换。核心原则是确保变换后数值大的代表“好”。经过同向化我们的矩阵X‘中所有指标都变成了“越大越好”。2.2 数据标准化消除量纲的魔法接下来是关键一步标准化。价格列变换后的值在0-5之间性能列在85-92之间数量级差异依然存在。标准化就是为了消除这种差异让所有指标处于同一个“竞技场”。最常用的是向量归一化法。对于矩阵X‘中的每一个元素x_{ij}第i个方案的第j个指标值其标准化值z_{ij}的计算公式为z_{ij} x_{ij} / sqrt( sum_{k1}^{m} (x_{kj})^2 )这个公式的意思是将每个原始值除以该指标所在列所有值的平方和的平方根。这样处理之后每个指标下所有方案标准化值的平方和为1。它有两个巨大优势1) 完全消除了量纲2) 保留了各方案在同一指标下的相对差距。计算后我们得到标准化矩阵Z。2.3 确定加权标准化矩阵指标的重要性通常不同。我们需要引入权重向量W [w1, w2, ..., wn]其中wj代表第j个指标的权重且所有权重之和为1。权重的确定本身就是一个子课题可以采用层次分析法AHP、熵权法、专家打分法等。得到权重后构建加权标准化矩阵Vv_{ij} w_j * z_{ij}。这一步相当于给每个标准化后的指标值“加杠杆”重要指标被放大次要指标被缩小。矩阵V是我们进行距离计算的基准。2.4 寻找正负理想解这是TOPSIS思想的集中体现。我们从加权标准化矩阵V中找出那两个虚拟的“理想点”。正理想解 V由每个指标在所有方案中的最大值构成。V [ max(v_{i1}), max(v_{i2}), ..., max(v_{in}) ]负理想解 V-由每个指标在所有方案中的最小值构成。V- [ min(v_{i1}), min(v_{i2}), ..., min(v_{in}) ]注意这里的最大值和最小值是在加权标准化后的值里找。V代表“梦中情案”所有指标都顶格V-代表“避之不及”所有指标都垫底。2.5 计算距离与相对贴近度现在计算每个真实方案到这两个理想点的距离。通常采用欧氏距离直线距离。方案i到正理想解的距离 S_i sqrt( sum_{j1}^{n} (v_{ij} - V_j)^2 )方案i到负理想解的距离 S_i- sqrt( sum_{j1}^{n} (v_{ij} - V-_j)^2 )最后计算每个方案的相对贴近度 C_iC_i S_i- / (S_i S_i-)这个公式是精髓所在。分子是到“坏榜样”的距离分母是到“好榜样”和“坏榜样”的距离之和。因此当一个方案无限接近正理想解时S_i 趋近于0C_i 趋近于1。当一个方案无限接近负理想解时S_i- 趋近于0C_i 趋近于0。 所以C_i 的值域在[0, 1]之间值越大说明该方案越优秀。2.6 排序与决策根据计算出的相对贴近度C_i值对所有方案进行降序排列。C值最大的方案就是综合最优方案。决策者可以依据这个排序结果进行选择。3. 从理论到代码手把手实现TOPSIS算法纸上得来终觉浅绝知此事要躬行。理解了算法步骤我们用一个完整的Python示例从数据准备到结果可视化走通整个流程。这里我们使用一个更复杂的例子评估4款新能源汽车。import numpy as np import pandas as pd import matplotlib.pyplot as plt # 1. 原始数据4款车5个指标 # 指标价格(万元成本型)续航(公里效益型)百公里电耗(kWh成本型)智能评分(分效益型)充电速度(分钟/100km成本型) data { 车型: [Model A, Model B, Model C, Model D], 价格: [24.8, 26.5, 22.3, 30.1], 续航: [520, 610, 480, 550], 电耗: [14.5, 15.2, 13.8, 16.1], 智能评分: [88, 92, 85, 90], 充电速度: [25, 30, 28, 22] } df pd.DataFrame(data) print(原始决策矩阵) print(df) # 分离出指标数据和方案名称 scheme_names df[车型].values raw_matrix df[[价格, 续航, 电耗, 智能评分, 充电速度]].values.astype(float) m, n raw_matrix.shape # m个方案n个指标 # 2. 指标同向化 (假设前3列为成本型后2列为效益型) # 这里我们明确指定类型0-成本型1-效益型 indicator_type [0, 1, 0, 1, 0] # 价格(成本)续航(效益)电耗(成本)智能(效益)充电速度(成本) normalized_matrix raw_matrix.copy().astype(float) for j in range(n): col raw_matrix[:, j] if indicator_type[j] 0: # 成本型 - 效益型 (差值法) normalized_matrix[:, j] np.max(col) - col # 效益型指标保持不变 print(\n同向化后的矩阵所有指标越大越好) print(pd.DataFrame(normalized_matrix, columns[价格(转换), 续航, 电耗(转换), 智能评分, 充电速度(转换)])) # 3. 标准化 (向量归一化) norm_squared np.sqrt(np.sum(normalized_matrix ** 2, axis0)) standard_matrix normalized_matrix / norm_squared print(\n标准化矩阵 Z) print(pd.DataFrame(standard_matrix, columnsdf.columns[1:])) # 4. 确定权重 (这里使用主观赋权法例如AHP得出的结果) weights np.array([0.25, 0.30, 0.15, 0.20, 0.10]) # 权重和为1 print(f\n指标权重{weights}) # 5. 计算加权标准化矩阵 V weighted_matrix standard_matrix * weights print(\n加权标准化矩阵 V) print(pd.DataFrame(weighted_matrix, columnsdf.columns[1:])) # 6. 确定正理想解和负理想解 ideal_best np.max(weighted_matrix, axis0) # 正理想解 ideal_worst np.min(weighted_matrix, axis0) # 负理想解 print(f\n正理想解 V : {ideal_best}) print(f负理想解 V- : {ideal_worst}) # 7. 计算各方案到正/负理想解的距离 # 使用欧氏距离 dist_to_best np.sqrt(np.sum((weighted_matrix - ideal_best) ** 2, axis1)) dist_to_worst np.sqrt(np.sum((weighted_matrix - ideal_worst) ** 2, axis1)) print(f\n各方案到正理想解的距离 S : {dist_to_best}) print(f各方案到负理想解的距离 S- : {dist_to_worst}) # 8. 计算相对贴近度 closeness dist_to_worst / (dist_to_best dist_to_worst) print(f\n各方案相对贴近度 C : {closeness}) # 9. 排序 ranking np.argsort(-closeness) # 降序排列的索引 result_df pd.DataFrame({ 车型: scheme_names, 相对贴近度 C: closeness, 排名: np.arange(1, m1)[np.argsort(ranking)] # 根据排序结果分配名次 }) result_df result_df.sort_values(by相对贴近度 C, ascendingFalse).reset_index(dropTrue) print(\n TOPSIS 综合评价结果 ) print(result_df) print() # 10. 结果可视化 fig, axes plt.subplots(1, 2, figsize(14, 5)) # 子图1相对贴近度柱状图 axes[0].bar(result_df[车型], result_df[相对贴近度 C], color[gold, silver, peru, skyblue]) axes[0].set_title(各车型TOPSIS相对贴近度, fontsize14, fontweightbold) axes[0].set_ylabel(相对贴近度 C) axes[0].set_ylim(0, 1) # 在柱子上方添加数值 for i, v in enumerate(result_df[相对贴近度 C]): axes[0].text(i, v 0.02, f{v:.3f}, hacenter, fontweightbold) # 子图2雷达图展示各方案在加权后的指标表现 categories df.columns[1:] angles np.linspace(0, 2 * np.pi, len(categories), endpointFalse).tolist() angles angles[:1] # 闭合图形 ax axes[1] ax.set_theta_offset(np.pi / 2) # 设置0度位置在顶部 ax.set_theta_direction(-1) # 顺时针方向 plt.xticks(angles[:-1], categories) # 绘制每个方案 colors [red, blue, green, orange] for idx, row in result_df.iterrows(): scheme_idx np.where(scheme_names row[车型])[0][0] values weighted_matrix[scheme_idx].tolist() values values[:1] # 闭合图形 ax.plot(angles, values, o-, linewidth2, labelrow[车型], colorcolors[idx]) ax.fill(angles, values, alpha0.1, colorcolors[idx]) ax.set_title(加权标准化指标表现雷达图, fontsize14, fontweightbold, pad20) ax.legend(locupper right, bbox_to_anchor(1.3, 1.0)) plt.tight_layout() plt.show()运行这段代码你将得到清晰的排序结果和直观的图表。在这个例子中尽管Model D价格最高但其优秀的续航和智能评分加上最快的充电速度使其综合贴近度最高。而价格最便宜的Model C由于续航和智能评分较低排名靠后。这个结果生动地体现了TOPSIS综合权衡的思想而非单一指标决策。实操心得在编写代码时务必注意指标同向化类型的准确指定。这是新手最容易出错的地方。一个有效的检查方法是同向化后手动检查每个指标列确保数值越大确实代表在该指标上表现越好。可以将indicator_type列表打印出来与原始数据表逐列核对。4. 权重确定TOPSIS的“定盘星”与熵权法实战在TOPSIS中权重赋值是决定结果走向的“定盘星”。权重不同结论可能大相径庭。上面示例中我们使用了主观赋权[0.25, 0.30, 0.15, 0.20, 0.10]这依赖于专家经验或决策者偏好但容易受人为主观性影响。为了增强客观性熵权法是一种常用的客观赋权方法。它的原理是某个指标的数据差异越大其包含的信息量就越大在评价中应赋予更大的权重。下面我们接续上面的新能源汽车例子使用熵权法来计算权重并与主观权重结果进行对比。# 接续之前代码在得到标准化矩阵Z之后计算熵权 def entropy_weight_method(standard_matrix): 熵权法计算权重 :param standard_matrix: 标准化后的矩阵Z (m行n列) :return: 权重向量 (n维) m, n standard_matrix.shape # 1. 计算第j项指标下第i个方案的特征比重 p_ij # 为防止log(0)给标准化值一个极小的偏移量 p standard_matrix / np.sum(standard_matrix, axis0, keepdimsTrue) p np.where(p 0, 1e-10, p) # 替换0值为一个极小值 # 2. 计算第j项指标的熵值 e_j k 1 / np.log(m) # 熵值系数 e -k * np.sum(p * np.log(p), axis0) # 3. 计算第j项指标的差异系数 g_j g 1 - e # 4. 计算权重 w_j w g / np.sum(g) return w # 使用之前计算好的标准化矩阵 standard_matrix entropy_weights entropy_weight_method(standard_matrix) print(基于熵权法计算的指标权重) for col, w in zip(df.columns[1:], entropy_weights): print(f {col}: {w:.4f}) print(f权重和: {np.sum(entropy_weights):.4f}) # 对比主观权重与熵权法权重 weight_comparison pd.DataFrame({ 指标: df.columns[1:], 主观权重: weights, 熵权法权重: entropy_weights, 权重变化: entropy_weights - weights }) print(\n权重对比) print(weight_comparison) # 使用熵权法权重重新进行TOPSIS计算 weighted_matrix_entropy standard_matrix * entropy_weights ideal_best_e np.max(weighted_matrix_entropy, axis0) ideal_worst_e np.min(weighted_matrix_entropy, axis0) dist_to_best_e np.sqrt(np.sum((weighted_matrix_entropy - ideal_best_e) ** 2, axis1)) dist_to_worst_e np.sqrt(np.sum((weighted_matrix_entropy - ideal_worst_e) ** 2, axis1)) closeness_e dist_to_worst_e / (dist_to_best_e dist_to_worst_e) result_df[相对贴近度 (熵权法)] closeness_e result_df[排名 (熵权法)] result_df[相对贴近度 (熵权法)].rank(ascendingFalse, methodmin).astype(int) result_df result_df.sort_values(by相对贴近度 (熵权法), ascendingFalse).reset_index(dropTrue) print(\n TOPSIS 综合评价结果 (熵权法) ) print(result_df[[车型, 相对贴近度 (熵权法), 排名 (熵权法)]])运行后你会发现熵权法给出的权重可能与主观权重差异很大。例如如果“充电速度”这个指标在所有车型上数值都很接近差异小那么熵权法会认为该指标区分度低、信息量小从而赋予其一个很小的权重。这可能导致最终排序发生变化。核心技巧在实际应用中我推荐采用主客观组合赋权。例如用AHP层次分析法确定主观权重Ws用熵权法确定客观权重Wo然后通过一个线性组合得到综合权重W α * Ws (1-α) * Wo其中α是主观偏好系数通常在0.3到0.7之间取值。这样既能体现决策者的经验和战略意图又能尊重数据本身的客观规律使权重分配更为合理。5. 避坑指南TOPSIS应用中的八大常见问题与对策TOPSIS原理清晰实现也不复杂但在实际应用尤其是数学建模竞赛或企业分析中稍不注意就会踩坑。下面是我总结的八个关键问题及应对策略。5.1 指标同向化方法选择不当问题对于成本型指标盲目使用倒数法1/x。当原始数据中存在0或负数时会导致计算错误或意义扭曲。对策优先使用稳健的差值法Max - x或区间型指标处理方法。如果指标值均为正且范围合适倒数法也可用但务必检查分母不为零。5.2 标准化方法混淆问题误用“Min-Max标准化”将数据缩放到[0,1]区间代替TOPSIS标准流程中的“向量归一化”。影响Min-Max标准化会改变原始数据的分布形状且标准化后的数据平方和不为1这与TOPSIS后续计算距离的数学基础不匹配可能导致排序结果失真。对策严格使用向量归一化公式。记住它的特征处理后各指标下数据的平方和为1。5.3 权重和不为1或为负问题手动赋权时各权重相加不等于1使用熵权法等客观方法时因计算过程有误如对数底数错误、未处理p0的情况导致得到负权重。对策手动赋权后必须校验sum(weights) 1。使用客观赋权法时在计算特征比重p_ij后必须用np.where(p 0, 1e-10, p)之类的语句处理零值避免计算log(0)导致溢出或得到NaN。5.4 距离公式的选择问题默认使用欧氏距离但在指标间相关性很强时欧氏距离可能不能准确反映真实“接近程度”。对策欧氏距离在绝大多数情况下是适用的。如果确知指标间存在强相关性可以考虑使用马氏距离它能考虑指标间的协方差结构。但马氏距离计算更复杂且需要样本数大于指标数在建模中需谨慎使用。5.5 极端值异常值的干扰问题数据中存在极端大或极端小的异常值会严重影响标准化结果和正负理想解的确定导致整个评价体系扭曲。对策在数据预处理阶段必须进行异常值检测与处理。可以使用箱线图、3σ原则等方法识别异常值并根据业务逻辑决定是剔除、修正还是用中位数/均值替代。5.6 指标高度相关导致的信息重复问题选用的多个评价指标之间可能存在高度相关性例如“研发投入”和“专利数量”。这相当于同一个信息被多次加权会扭曲权重分配的真实意图。对策在构建指标体系初期就应进行相关性分析如计算皮尔逊相关系数矩阵。对于相关系数超过0.8或0.9的指标对考虑剔除其中一个或使用主成分分析PCA等降维方法先提取互不相关的主成分再对主成分进行TOPSIS评价。5.7 对结果盲目信任缺乏稳健性检验问题得到排序结果后直接采用未考虑权重或数据微小变动对结果的影响。对策必须进行敏感性分析。例如将某个关键指标的权重上下浮动10%重新计算排序观察名次是否发生变化。如果名次对权重变动非常敏感说明结果不稳定需要重新审视权重分配或指标体系的合理性。也可以使用蒙特卡洛模拟在权重可能的分布范围内进行大量随机抽样计算观察各方案排名第一的概率。5.8 忽略定性指标的量化问题评价体系中包含“品牌影响力”、“设计美观度”等定性指标直接忽略或随意打分。对策定性指标必须经过科学量化。常用方法包括模糊数学法如使用语言变量差、中、好对应1、3、5分、李克特量表1-5级或1-7级评分、或德尔菲法组织多位专家背对背打分并多轮反馈。量化后的数据才能进入TOPSIS矩阵进行计算。6. 进阶与变体模糊TOPSIS与灰色关联TOPSIS标准的TOPSIS处理的是精确数值。但在现实世界中很多信息是不精确、模糊的。例如“用户体验很好”、“交货期大约在10天左右”。为了处理这种不确定性TOPSIS发展出了多个变体。6.1 模糊TOPSIS当指标值或权重无法用精确数表示而只能用“大约”、“介于...之间”、“可能为”来描述时就需要引入模糊数学。常用的是三角模糊数或梯形模糊数。一个三角模糊数可以表示为 (l, m, u)其中l是最小可能值m是最可能值u是最大可能值。例如“交货期大约10天”可以表示为 (8, 10, 12)天。模糊TOPSIS的核心步骤构建模糊决策矩阵所有元素和权重都用模糊数表示。模糊数标准化有专门的公式处理模糊数的归一化使其落在[0,1]区间内。构建加权模糊矩阵模糊数乘法。确定模糊正负理想解正理想解由每个指标下各方案模糊数的“最大值”构成需定义模糊数的比较规则负理想解同理。计算模糊距离计算每个方案到两个模糊理想解的距离。这里需要计算两个模糊数之间的距离有海明距离、欧氏距离等多种定义。计算贴近度并排序原理与清晰TOPSIS相同。模糊TOPSIS的计算远比清晰TOPSIS复杂通常需要借助专门的模糊运算库或软件。它的优势在于能更真实地反映人类决策中的不确定性特别适用于评价信息不完整、存在主观判断的场合。6.2 灰色关联TOPSIS (GRA-TOPSIS)灰色系统理论适用于“部分信息已知部分信息未知”的“小样本、贫信息”系统。灰色关联分析GRA关注的是序列之间几何形状的相似程度形状越相似关联度越大。GRA-TOPSIS是一种混合方法它用灰色关联度来代替或补充欧氏距离。基本思路按照标准TOPSIS流程得到加权标准化矩阵V。确定正负理想解V和V-。计算灰色关联系数分别计算每个方案与V、V-的灰色关联系数矩阵。关联系数反映了曲线间的相似性。计算灰色关联度对每个方案将其与V在各指标上的关联系数求平均得到该方案与正理想解的灰色关联度r_i。同理得到与负理想解的灰色关联度r_i-。综合距离与关联度将欧氏距离S_i, S_i-和灰色关联度r_i, r_i-进行无量纲化然后通过一个综合公式如加权平均计算每个方案的最终贴近度。一种常见公式是C_i α * (S_i-/(S_iS_i-)) β * (r_i/(r_ir_i-))其中α和β是偏好系数。这种方法既考虑了空间距离的接近TOPSIS的本意又考虑了变化趋势的相似灰色关联评价维度更丰富尤其适用于数据波动大、存在非线性关系的场景。经验之谈在数学建模竞赛中如果问题背景中明确提到了“信息不完全”、“数据较少”或“存在不确定性”那么采用模糊TOPSIS或灰色关联TOPSIS会是一个显著的加分项因为它展示了你对问题复杂性的深刻理解和处理能力。但在使用前务必在论文中清晰阐述所选方法的原理和适用性。7. 实战案例深度剖析TOPSIS在智慧城市项目评估中的应用让我们通过一个模拟的、但高度贴近现实的案例将前面所有知识点串联起来。某市计划推进“智慧停车”项目有5家供应商S1-S5投标。评估委员会确定了6个核心指标1) 项目总投资万元成本型、2) 技术先进性专家评分效益型、3) 数据安全等级1-5级效益型、4) 预计日均服务车次千次效益型、5) 企业资质等级A5, B4, C3效益型、6) 项目交付周期月成本型。部分指标存在模糊性如“技术先进性”由5位专家打分去掉最高最低分取平均存在一定主观性。我们的任务运用TOPSIS方法帮助评估委员会选出最优供应商。步骤一数据收集与预处理收集到的原始数据如下表。其中“技术先进性”是5位专家打分的平均值我们将其视为精确值但心里要明白其不确定性。供应商总投资技术先进性数据安全日均服务企业资质交付周期S185088412.5A(5)18S292092510.0B(4)15S378085415.0A(5)20S411009038.5C(3)12S595087511.0A(5)16步骤二确定指标类型与同向化成本型总投资、交付周期。采用差值法同向化。效益型技术先进性、数据安全、日均服务、企业资质。保持不变。步骤三组合赋权主观权重委员会经讨论认为“数据安全”和“技术先进性”最为关键“总投资”次之。初步赋权[0.20, 0.25, 0.25, 0.10, 0.10, 0.10]。客观权重熵权法基于同向化并标准化后的数据计算。综合权重取α0.6更看重委员会经验β0.4。计算得综合权重约为[0.18, 0.26, 0.28, 0.09, 0.08, 0.11]。可见数据安全的客观权重很高因为各供应商在该指标上差异明显在综合权重中得到了加强。步骤四执行标准TOPSIS计算使用上述综合权重按照第2章流程计算。关键中间结果正理想解 V代表了“投资最少、技术最先进、安全最高、服务最多、资质最好、交付最快”的理想状态。负理想解 V-则完全相反。 计算各方案距离与贴近度后得到排序S3 S1 S5 S2 S4。步骤五结果分析与决策建议S3胜出原因分析虽然其交付周期最长20个月但其总投资最低780万、日均服务能力最强15千次、且技术和安全资质都不错85分4级。TOPSIS的综合权衡机制使其在多数指标上的优势抵消了交付周期的劣势。S1与S5对比S1在投资和服务量上优于S5但技术分略低。综合权重下技术先进性权重较高使得S5略微领先S1不我们的排序显示S1优于S5。仔细分析加权矩阵发现S1在“数据安全”高权重和“日均服务”上的优势弥补了“技术先进性”的微小差距。这正体现了多指标决策的魅力。S4垫底原因尽管其交付周期最短但总投资最高、企业资质最差C级、日均服务能力最弱导致其综合表现最差。步骤六敏感性分析与报告撰写敏感性分析我们将“数据安全”的权重在±20%范围内变动发现前三名S3, S1, S5的排序非常稳定说明结果稳健。最终报告不应只给出一个排名。应撰写分析报告包括1) 评估方法与流程说明2) 各供应商在各指标上的优劣势雷达图3) 综合排名及主要依据4) 敏感性分析结论5) 最终推荐建议推荐S3并指出其交付周期是主要风险点建议在合同中加强延期惩罚条款。这个案例展示了TOPSIS从数据准备、权重处理、计算分析到结果解读的全流程。它不仅仅是一个数学工具更是一个结构化决策支持系统能将复杂的多因素决策问题转化为透明、可追溯、可讨论的分析过程。