山海科技发展网

数学建模 middot 层次分析法基本步骤及参考代码_老哥数学建模层次分析 😊

导读 在这个快节奏的时代,掌握一些实用的数学工具变得尤为重要。层次分析法(Analytic Hierarchy Process, AHP)就是一种非常强大的决策支持

在这个快节奏的时代,掌握一些实用的数学工具变得尤为重要。层次分析法(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