在这个快节奏的时代,掌握一些实用的数学工具变得尤为重要。层次分析法(Analytic Hierarchy Process, AHP)就是一种非常强大的决策支持工具,它可以帮助我们在面对复杂问题时,系统地进行分析和决策。🔍
首先,让我们了解一下层次分析法的基本步骤:
1. 确定问题目标:明确我们要解决的问题是什么。🎯
2. 建立层次结构模型:将问题分解成不同层次的因素,并构建一个层次结构图。📊
3. 成对比较矩阵的建立:针对每一层次中的元素,通过成对比较来确定它们之间的相对重要性。🔄
4. 计算权重向量:利用特征向量法或几何平均法计算出各因素的权重。📐
5. 一致性检验:确保我们的判断是合理的,不会出现自相矛盾的情况。🧐
6. 综合评价:根据权重向量,综合评价各方案或选项。🌟
接下来,我将分享一段Python代码,用于实现层次分析法的基本流程。👇
```python
import numpy as np
from numpy.linalg import eigvals
成对比较矩阵
def create_matrix(criteria, comparisons):
matrix = np.zeros((len(criteria), len(criteria)))
for comp in comparisons:
i, j, value = comp
matrix[i][j] = value
matrix[j][i] = 1 / value
return matrix
计算权重向量
def calculate_weights(matrix):
eigenvalues, eigenvectors = np.linalg.eig(matrix)
max_eigenvalue_index = np.argmax(eigenvalues)
weights = eigenvectors[:, max_eigenvalue_index].real
return weights / sum(weights)
一致性检验
def consistency_check(matrix, weights):
n = len(matrix)
lambda_max = np.max(np.dot(matrix, weights) / weights)
ci = (lambda_max - n) / (n - 1)
ri = [0, 0, 0.58, 0.9, 1.12, 1.24, 1.32, 1.41, 1.45, 1.49, 1.51]
cr = ci / ri[n]
return cr < 0.1
示例
criteria = ["成本", "效率", "可靠性"]
comparisons = [(0, 1, 3), (1, 2, 2), (0, 2, 4)]
matrix = create_matrix(criteria, comparisons)
weights = calculate_weights(matrix)
print("权重向量:", weights)
print("一致性比率:", consistency_check(matrix, weights))
```
希望这段代码能够帮助大家更好地理解和应用层次分析法!🚀
数学建模 层次分析法 AHP