topsis python
时间: 2023-08-15 11:14:12 浏览: 140
Python库 | topsis_101903681-0.0.1.tar.gz
Topsis(Technique for Order of Preference by Similarity to Ideal Solution)是一种多准则决策分析方法,用于评估和选择最佳方案。在Python中,可以使用不同的库来实现Topsis算法。以下是一个使用numpy库来实现Topsis的示例代码:
```python
import numpy as np
def topsis(matrix, weights, impacts):
# 标准化矩阵
normalized_matrix = matrix / np.sqrt(np.sum(matrix**2, axis=0))
# 加权标准化矩阵
weighted_normalized_matrix = normalized_matrix * weights
# 理想解和负理想解
ideal_solution = np.max(weighted_normalized_matrix, axis=1)
negative_ideal_solution = np.min(weighted_normalized_matrix, axis=1)
# 计算距离度量
distance_to_ideal = np.sqrt(np.sum((weighted_normalized_matrix - ideal_solution)**2, axis=1))
distance_to_negative_ideal = np.sqrt(np.sum((weighted_normalized_matrix - negative_ideal_solution)**2, axis=1))
# 计算接近程度
closeness = distance_to_negative_ideal / (distance_to_ideal + distance_to_negative_ideal)
return closeness
# 示例数据
matrix = np.array([[3, 5, 4, 2], [2, 4, 3, 5], [5, 2, 4, 3], [4, 3, 5, 2]])
weights = np.array([0.4, 0.3, 0.1, 0.2])
impacts = np.array([1, 1, -1, 1])
# 调用Topsis方法
result = topsis(matrix, weights, impacts)
print(result)
```
在上述代码中,`matrix` 是原始数据矩阵,`weights` 是每个准则的权重,`impacts` 是每个准则的影响(正向或负向)。最后,通过调用 `topsis` 方法,可以得到每个方案相对于理想解的接近程度。
阅读全文