ahp-topsis模型
时间: 2025-01-24 14:48:57 浏览: 24
AHP-TOPSIS模型实现方法介绍
层次分析法(AHP)
层次分析法 (Analytic Hierarchy Process, AHP) 是一种用于处理复杂决策问题的方法,通过构建层次结构模型来分解目标、准则和方案之间的关系。该方法能够将定性和定量因素结合起来考虑,在多个备选方案之间进行比较并得出权重。
为了建立AHP模型:
构建判断矩阵:对于每一对标准或替代品,专家们会给出偏好程度的比例尺度。
计算特征向量:求得最大特征根及其对应的标准化特征向量作为各元素相对重要性的度量指标[^1]。
import numpy as np
def calculate_eigenvector(matrix):
eigenvalues, eigenvectors = np.linalg.eig(matrix)
max_index = np.argmax(eigenvalues.real)
return eigenvectors[:,max_index].real / sum(eigenvectors[:,max_index].real)
技术优选排序法(TOPSIS)
技术优选排序法 (Technique for Order Preference by Similarity to Ideal Solution, TOPSIS),作为一种多属性决策工具,旨在找到最接近理想解的选项。此过程涉及计算正理想解(PIS)与负理想解(NIS),并通过测量候选对象到这两个极端的距离来进行评估。
具体步骤如下:
- 加权归一化的决策矩阵;
- 确定PIS和NIS;
- 测量每个方案至PIS及NIS间的欧氏距离;
- 计算贴近度C;最终选择具有最高C值者为最优方案[^2]。
from sklearn.preprocessing import MinMaxScaler
def topsis_method(decision_matrix, weights_vector):
scaler = MinMaxScaler()
normalized_dm = scaler.fit_transform(decision_matrix.T).T
weighted_normalized_dm = normalized_dm * weights_vector.reshape(-1, 1)
pis = np.max(weighted_normalized_dm, axis=1)
nis = np.min(weighted_normalized_dm, axis=1)
distance_to_pis = np.sqrt(np.sum((weighted_normalized_dm - pis[:, None])**2, axis=0))
distance_to_nis = np.sqrt(np.sum((weighted_normalized_dm - nis[:, None])**2, axis=0))
closeness_coefficient = distance_to_nis / (distance_to_pis + distance_to_nis)
best_alternative_idx = np.argmax(closeness_coefficient)
return best_alternative_idx, closeness_coefficient
结合AHP与TOPSIS
当把这两种方法结合起来时,通常先利用AHP确定不同属性的重要性权重,再把这些权重应用于TOPSIS算法之中。这样可以更科学合理地分配各项评价因子所占比例,从而提高整体评分体系的有效性与准确性[^3]。
相关推荐















