TOPSIS多属性决策方法用python程序怎么做
时间: 2023-12-24 20:02:15 浏览: 21
要用Python实现TOPSIS多属性决策方法,同样需要使用一些开源的Python库,例如Pandas、NumPy和SciPy等。
以下是一个简单的TOPSIS方法Python实现的示例:
```python
import pandas as pd
import numpy as np
# 构建决策矩阵
data = {
'方案1': [10, 8, 6, 7],
'方案2': [9, 6, 8, 6],
'方案3': [8, 7, 7, 7],
'方案4': [7, 9, 5, 8]
}
df = pd.DataFrame(data, index=['标准1', '标准2', '标准3', '标准4'])
# 标准化决策矩阵
df_norm = (df - df.min()) / (df.max() - df.min())
# 设置每个标准的权重
weights = [0.5, 0.3, 0.1, 0.1]
# 计算正向和负向理想解
ideal_best = np.max(df_norm)
ideal_worst = np.min(df_norm)
# 计算每个方案到正向和负向理想解的距离
dist_best = np.sqrt(np.sum((df_norm - ideal_best) ** 2 * weights, axis=1))
dist_worst = np.sqrt(np.sum((df_norm - ideal_worst) ** 2 * weights, axis=1))
# 计算每个方案的综合得分
topsis_scores = dist_worst / (dist_best + dist_worst)
# 计算方案排名
rank = np.argsort(topsis_scores) + 1
print("方案排名:", rank)
```
这个程序首先构建了一个决策矩阵,并将其标准化为0到1之间的值。然后,设置每个标准的权重,并计算正向和负向理想解。接着,计算每个方案到正向和负向理想解的距离,并使用这些距离计算每个方案的得分。最后,使用Numpy的argsort函数计算方案排名。
需要注意的是,这只是一个简单的示例程序,实际应用中可能需要更复杂的方法和技术来处理更复杂的问题。