TOPSIS法是一种多属性决策分析方法,通过计算各方案与理想解和负理想解的距离来进行排序。以下是使用Python进行TOPSIS法操作的基本步骤:
确定决策矩阵
将所有可选项的属性数据放在一个矩阵中,每一行代表一个可选项,每一列代表一个属性。例如,假设我们有m个可选项和n个属性,则决策矩阵为一个$m \times n$的矩阵,记作$X$。
标准化决策矩阵
由于不同属性的单位和量纲可能不同,需要将每个属性的数据进行标准化。标准化通常使用最大最小值归一化方法,即将每个属性的数据除以该属性中的最大值,以使其值范围在0到1之间。
公式:$$z_{ij} = \frac{X_{ij}}{\sqrt{\sum_{i=1}^m X_{ij}^2}}$$
确定权重向量
权重向量表示每个属性在决策中的相对重要性。一般情况下,需要根据实际问题的需求来确定权重向量。如果没有给定权重向量,可以使用主观方法或客观方法来确定。主观方法可以直接由决策者提供,而客观方法可以使用层次分析法(AHP)等方法来确定。
公式:$$\textbf{w} = [w_1, w_2, ..., w_n]$$
计算加权标准化决策矩阵
将标准化决策矩阵$Z$与权重向量$\textbf{w}$相乘,得到加权标准化决策矩阵$Y$。
公式:$$Y_{ij} = w_j \cdot z_{ij}$$
确定理想解和负理想解
理想解是各指标的最优解,负理想解是各指标的最劣解。
初始化理想解$V1$和负理想解$V2$。
对于正指标(越大越好),取加权标准化矩阵每列的最大值赋给$V1$,最小值赋给$V2$。
对于负指标(越小越好),取加权标准化矩阵每列的最小值赋给$V1$,最大值赋给$V2$。
计算各方案到理想解和负理想解的距离
分别计算评价对象与理想解和负理想解的距离$D+$和$D-$。
计算综合评价指数
根据距离值$D+$和$D-$,计算各方案的综合评价指数$C$。
公式:$$C = \frac{D^-}{D^+ + D^-}$$
排列方案的优劣次序
根据综合评价指数$C$,对方案进行排序,$C$值越大,方案越优。
```python
import numpy as np
决策矩阵
X = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
标准化决策矩阵
Z = (X - np.min(X, axis=0)) / (np.max(X, axis=0) - np.min(X, axis=0))
权重向量(示例)
w = [0.3, 0.4, 0.3]
计算加权标准化决策矩阵
Y = Z * np.array(w).reshape(-1, 1)
确定理想解和负理想解
V1 = np.max(Y, axis=0)
V2 = np.min(Y, axis=0)
计算各方案到理想解和负理想解的距离
D_plus = np.sqrt(np.sum((Y - V1) 2, axis=1)) D_minus = np.sqrt(np.sum((Y - V2)
计算综合评价指数
C = D_minus / (D_plus + D_minus)
输出结果
print("综合评价指数:", C)
```
通过以上步骤和代码,可以实现TOPSIS法的基本操作。根据实际问题的需求,可以调整权重向量和数据处理方法。