数学建模(层次分析法 python代码 案例)

本文介绍了层次分析法(AHP),一种多准则决策分析方法,用于解决复杂决策问题。文章通过一个选择旅行目的地的案例,详细阐述了层次分析法的步骤,包括准则重要性矩阵、方案矩阵、一致性检验和特征值法求权值。通过Python代码展示如何实际操作,并给出运行结果,帮助读者理解并应用AHP进行决策分析。
摘要由CSDN通过智能技术生成

目录

介绍: 

模板:

例题:从景色、花费、饮食,男女比例四个方面去选取目的地

 准则重要性矩阵:

 每个准则的方案矩阵:​

 一致性检验:

 特征值法求权值:

完整代码:

运行结果:

介绍: 

层次分析法(Analytic Hierarchy Process, AHP)是一种多准则决策分析方法,它将多个准则组织成一个层次结构,通过对各个层次之间的比较和权重的计算,最终得到准则的相对重要性和最优解决方案。

层次分析法的基本思想是将复杂的决策问题分解为一系列层次,从总体目标到具体准则和方案,建立层次结构模型。在层次结构模型中,各层次之间的关系通过比较矩阵来表示,比较矩阵中的元素表示各个准则或方案之间的相对重要性。

在层次分析法中,通过对比较矩阵进行一系列计算,可以得到各个准则和方案的权重,从而评估它们的相对重要性。最终,通过计算各个方案的综合评价值,可以选择最优解决方案。

层次分析法的特点是能够处理多个准则之间的相对重要性,能够量化主观判断,并且易于理解和应用。它广泛应用于决策分析、资源分配、评估和排序等领域。

模板:

#以下是一个使用Python实现层次分析法的简单模板:

```python
import numpy as np

def ahp(criteria_matrix):
    n = len(criteria_matrix)
    weights_matrix = np.zeros((n, n))
    
    # Step 1: 计算准则矩阵的列向量归一化
    column_sums = criteria_matrix.sum(axis=0)
    normalized_matrix = criteria_matrix / column_sums
    
    # Step 2: 计算每个准则的权重
    weights = normalized_matrix.sum(axis=1) / n
    
    # Step 3: 计算每个准则之间的相对重要性
    for i in range(n):
        for j in range(n):
            weights_matrix[i, j] = weights[i] / weights[j]
    
    # Step 4: 计算最终权重
    final_weights = weights_matrix.sum(axis=1) / n
    
    return final_weights

# 测试代码
criteria_matrix = np.array([[1, 1/2, 2], [2, 1, 3], [1/2, 1/3, 1]])
weights = ahp(criteria_matrix)
print("准则的权重:", weights)
```

在这个模板中,我们首先定义了一个名为`ahp`的函数,它接收一个准则矩阵作为参数。准则矩阵是一个n×n的二维数组,表示准则之间的相对重要性。

在函数内部,我们首先计算准则矩阵的列向量归一化,然后计算每个准则的权重。接下来,我们通过两层循环计算每个准则之间的相对重要性,并将结果存储在权重矩阵中。

最后,我们计算权重矩阵每一行的平均值作为最终的权重,并返回结果。

在测试代码中,我们创建了一个准则矩阵`criteria_matrix`,然后调用`ahp`函数计算准则的权重,并打印出结果。

请注意,这只是一个简单的模板,可以根据具体的应用场景进行修改和扩展。

例题:从景色、花费、饮食,男女比例四个方面去选取目的地

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值