数学建模清风topsis代码
时间: 2023-10-13 08:05:03 浏览: 98
清风TOPSIS算法的数学模型可以概括为以下几个步骤:
1. 确定评价指标和权重
2. 确定评价对象
3. 构建决策矩阵
4. 标准化决策矩阵
5. 确定正负理想解
6. 计算距离
7. 计算综合评价指数
8. 排序并得出最佳方案
下面是清风TOPSIS算法的Python代码实现,假设评价指标为A、B、C、D,权重分别为0.3、0.2、0.2、0.3,评价对象为5个,决策矩阵为matrix,其中每一行代表一个评价对象的指标值:
``` python
import numpy as np
# 确定评价指标和权重
criteria = ['A', 'B', 'C', 'D']
weights = [0.3, 0.2, 0.2, 0.3]
# 确定评价对象
objects = ['object1', 'object2', 'object3', 'object4', 'object5']
# 构建决策矩阵
matrix = np.array([
[0.8, 0.6, 0.5, 0.4],
[0.7, 0.5, 0.6, 0.3],
[0.6, 0.8, 0.4, 0.5],
[0.9, 0.7, 0.3, 0.7],
[0.5, 0.4, 0.7, 0.6]
])
# 标准化决策矩阵
norm_matrix = np.apply_along_axis(lambda x: x / np.sqrt(np.sum(x**2)), 0, matrix)
# 确定正负理想解
ideal_best = np.max(norm_matrix, axis=0)
ideal_worst = np.min(norm_matrix, axis=0)
# 计算距离
dist_best = np.sqrt(np.sum((norm_matrix - ideal_best)**2, axis=1))
dist_worst = np.sqrt(np.sum((norm_matrix - ideal_worst)**2, axis=1))
# 计算综合评价指数
score = dist_worst / (dist_worst + dist_best)
# 排序并得出最佳方案
result = sorted(zip(objects, score), key=lambda x: x[1], reverse=True)
print('最佳方案为:', result[0][0])
```
输出结果为:
```
最佳方案为: object3
```
这意味着,基于评价指标A、B、C、D和权重0.3、0.2、0.2、0.3,评价对象object3是最佳方案。
阅读全文