topsis熵权法示例代码
时间: 2023-05-13 16:04:40 浏览: 152
结合熵权法的topsis方法的代码.zip
以下是 topsis 熵权法的示例代码:
```python
import numpy as np
def topsis(data, weights):
# normalize the data
norm_data = data / np.sqrt(np.sum(data**2, axis=0))
# calculate the weighted normalized decision matrix
weighted_norm_data = norm_data * weights
# calculate the ideal and anti-ideal solutions
ideal = np.max(weighted_norm_data, axis=1)
anti_ideal = np.min(weighted_norm_data, axis=1)
# calculate the distance to ideal and anti-ideal solutions
dist_to_ideal = np.sqrt(np.sum((weighted_norm_data - ideal[:, np.newaxis])**2, axis=1))
dist_to_anti_ideal = np.sqrt(np.sum((weighted_norm_data - anti_ideal[:, np.newaxis])**2, axis=1))
# calculate the relative closeness to ideal solution
relative_closeness = dist_to_anti_ideal / (dist_to_ideal + dist_to_anti_ideal)
# return the ranking of the alternatives
return np.argsort(relative_closeness)[::-1]
```
这是一个 Python 函数,用于实现 topsis 熵权法。它接受两个参数:一个是数据矩阵,另一个是权重向量。它返回一个排名列表,其中排名最高的是最优解。
阅读全文