AHP有多个子准则层最后怎么算一致性检验的python代码
时间: 2024-02-07 21:02:11 浏览: 31
以下是用Python计算AHP多个子准则层一致性检验的示例代码:
```python
import numpy as np
def ahp_consistency_check(matrix):
n = matrix.shape[0]
# 计算特征向量
eig_val, eig_vec = np.linalg.eig(matrix)
max_eig_val = max(eig_val.real) # 获取最大特征值
max_eig_vec = eig_vec[:, np.argmax(eig_val.real)] # 获取对应的特征向量
# 计算一致性指标CI
ci = (max_eig_val - n) / (n - 1)
# 获取随机一致性指标RI
ri_dict = {1: 0, 2: 0, 3: 0.58, 4: 0.90, 5: 1.12, 6: 1.24, 7: 1.32, 8: 1.41, 9: 1.45}
ri = ri_dict[n]
# 计算一致性比例CR
cr = ci / ri
return ci, cr
# 示例使用的判断矩阵
matrix_1 = np.array([[1, 3, 5], [1/3, 1, 2], [1/5, 1/2, 1]])
matrix_2 = np.array([[1, 2], [1/2, 1]])
# 计算子准则层的一致性检验结果
ci_1, cr_1 = ahp_consistency_check(matrix_1)
ci_2, cr_2 = ahp_consistency_check(matrix_2)
print("子准则层1的一致性指标CI:", ci_1)
print("子准则层1的一致性比例CR:", cr_1)
print("子准则层2的一致性指标CI:", ci_2)
print("子准则层2的一致性比例CR:", cr_2)
```
请注意,代码中的 `matrix_1` 和 `matrix_2` 是示例使用的判断矩阵,你需要根据你的实际情况替换为自己的判断矩阵。同时,代码中假设判断矩阵是方阵,且已经通过一致性检验的要求进行了填充。