层次分析法(附实例)

层次分析法原理及实例(AHP) 层次分析法(analytic hierarchy process),简称AHP,是指将与决策总是有关的元素分解成目标、准则、方案等层次,在此基础之上进行定性和定量分析的决策方法。该方法是美国运筹学家匹茨堡大学教授萨蒂于20世纪70年代初,在为美国国防部研究"根据各个工业部门对国家福利的贡献大小而进行电力分配"课题时,应用网络系统理论和多目标综合评价方法,提出的一种层次权重决策分析方法。 阅读详情

为了从备选方案中选择最佳方案,我们的主要思想是:

  1. 确定 n n n 个备选对象与 m m m 个评价指标
  2. 确定每个备选对象在每个指标下的打分情况,第 i i i 个对象在第 j j j 个指标下的打分情况记为 c i j c_{ij} cij​
  3. 确定每个指标的权重,第 j j j 个指标的权重记为 W j W_{j} Wj​
  4. 将权重与每个备选对象的打分情况相乘并求和,最终得到每个备选对象的总得分。第 i i i 个对象的总得分为 S i = ∑ j = 1 j = m c i j W j S_i=\sum_{j=1}^{j=m} c_{ij}W_{j} Si​=∑j=1j=m​cij​Wj​
  5. 通过比较所有对象的总得分 S i S_i Si​,最终确定选择哪一个对象

显然,步骤 1.4.5. 都是由简单的计算得到,那么问题的难点在于步骤2 .3.这里就要用到层次分析法。下面我们举例来说明权重向量与打分矩阵如何得到

问题:选择一部适合自己的手机

一、确定评价对象与评价指标

评价对象

确定几个备选对象,这里我们选择:苹果,三星,华为

评价指标

确定几个评价指标,这里我们选择:价格,用户评价,售后服务

二、确定打分

比较矩阵

两两比较得到比较矩阵

首先我们来确定三个备选对象在价格方面的打分。

对于三个及三个以上的情况,我们往往难以给出合理的打分方案。层次分析法的思想就是,把打分方案分解成两两比较,这样的话得到的结果往往会更合理

标度含义
1表示两个因素相比,具有同样重要性
3表示两个因素相比,一个因素比另一个因素稍微重要
5表示两个因素相比,一个因素比另一个因素明显重要
7表示两个因素相比,一个因素比另一个因素强烈重要
9表示两个因素相比,一个因素比另一个因素极端重要
2,4,6,8上述两相邻判断的中值
倒数A和B相比如果标度为3,那么B和A相比就是1/3

(有时重要性理解为满意度更合理)

我们依照上述表格来得到一个价格比较矩阵

价格苹果三星华为
苹果11/51/9
三星513
华为91/31

(以上数据都是本人随便填的,不具有任何参考价值)

显然,比较矩阵应为对称矩阵,且对角线元素为 1

上述矩阵含义为:相比较于苹果,三星的价格明显便宜(明显更令人满意);相比较于苹果,华为的价格极端便宜(极端令人满意);相比较于华为,三星的价格稍微便宜(稍微更令人满意)。

判断比较矩阵是否能通过一致性检验

所谓一致性,指的是你所得到的矩阵是否符合逻辑。比如说,
苹果 三星 = 1 5 , 苹果 华为 = 1 9 \frac{\text{苹果}}{\text{三星}}=\frac{1}{5},\frac{\text{苹果}}{\text{华为}}=\frac{1}{9} 三星苹果​=51​,华为苹果​=91​
那么
三星 华 为 = 1 9 / 1 5 = 5 9 \frac{\text{三星}}{华为}=\frac{1}{9}/\frac{1}{5}=\frac{5}{9} 华为三星​=91​/51​=95​
但是在我们的比较矩阵中,
三星 华 为 = 3 \frac{\text{三星}}{华为}=3 华为三星​=3
这就是说明我们的比较矩阵出现了逻辑错误。事实上,比较矩阵越大,出错的可能性就越大,因为人脑很难同时对多个指标做出合理的分析。因此,我们应当允许出现小错误。为了衡量错误的大小,我们建立了一致性指标。

  1. 计算一致性指标 C I CI CI
    C I = λ max ⁡ − n n − 1 CI=\frac{\lambda_{\max}-n}{n-1} CI=n−1λmax​−n​
    这里 λ max ⁡ \lambda_{\max} λmax​ 指的是比较矩阵的最大特征值
  2. 查找对应的平均随机一致性指标RI
n123456789
RI000.520.891.121.261.361.411.46
  1. 计算一致性比例 C R CR CR
    C R = C I R I CR=\frac{CI}{RI} CR=RICI​
    如果 C R < 0.1 CR < 0.1 CR<0.1, 则可认为比较矩阵的一致性可以接受;否则需要对比较矩阵进行修正。

对于我们这个题,比较矩阵为:
[ 1 1 / 5 1 / 9 5 1 3 9 1 / 3 1 ] \begin{bmatrix} 1&1/5&1/9\\ 5&1&3\\ 9&1/3&1\end{bmatrix} ⎣⎡​159​1/511/3​1/931​⎦⎤​
特征值为:
λ 1 = 3.3244 + 0.0000 i , λ 2 = − 0.1622 + 1.0257 i , λ 3 = − 0.1622 − 1.0257 i \lambda_1=3.3244 + 0.0000i,\lambda_2=-0.1622 + 1.0257i,\lambda_3=-0.1622 - 1.0257i λ1​=3.3244+0.0000i,λ2​=−0.1622+1.0257i,λ3​=−0.1622−1.0257i
对于虚数的情况,我们比较他们的模,则
∣ λ 1 ∣ = 3.3244 , ∣ λ 2 ∣ = 1.0385 , ∣ λ 3 ∣ = 1.0385 |\lambda_1|=3.3244,|\lambda_2|=1.0385,|\lambda_3|=1.0385 ∣λ1​∣=3.3244,∣λ2​∣=1.0385,∣λ3​∣=1.0385
从而
λ max ⁡ = 3.3244 \lambda_{\max}=3.3244 λmax​=3.3244
C I = λ max ⁡ − n n − 1 = 3.3244 − 3 3 − 1 = 0.1622 CI=\frac{\lambda_{\max}-n}{n-1}=\frac{3.3244-3}{3-1}= 0.1622 CI=n−1λmax​−n​=3−13.3244−3​=0.1622
查表得到
R I = 0.52 RI=0.52 RI=0.52
于是
C R = C I R I = 0.3119 > 0.1 CR=\frac{CI}{RI}=0.3119>0.1 CR=RICI​=0.3119>0.1
没有通过一致性检验,需要重新对比较矩阵进行调整。

经调整后得到新的比较矩阵为:

[ 1 1 / 5 1 / 9 5 1 1 / 3 9 3 1 ] \begin{bmatrix} 1&1/5&1/9\\ 5&1&1/3\\ 9&3&1\end{bmatrix} ⎣⎡​159​1/513​1/91/31​⎦⎤​

重新计算得到:
λ max ⁡ = 3.0391 \lambda_{\max}=3.0391 λmax​=3.0391
C I = λ max ⁡ − n n − 1 = 3.0291 − 3 3 − 1 = 0.0146 CI=\frac{\lambda_{\max}-n}{n-1}=\frac{3.0291-3}{3-1}= 0.0146 CI=n−1λmax​−n​=3−13.0291−3​=0.0146
C R = C I R I = 0.0281 < 0.1 CR=\frac{CI}{RI}=0.0281<0.1 CR=RICI​=0.0281<0.1
通过一致性检验。

所以,我们最终得到了价格比较矩阵为

[ 1 1 / 5 1 / 9 5 1 1 / 3 9 3 1 ] \begin{bmatrix} 1&1/5&1/9\\ 5&1&1/3\\ 9&3&1\end{bmatrix} ⎣⎡​159​1/513​1/91/31​⎦⎤​

得分向量

归一化处理

每个元素除以元素所在列的和,得到:

[ 0.0667 0.0476 0.0769 0.3333 0.2381 0.2308 0.6000 0.7143 0.6923 ] \begin{bmatrix} 0.0667 & 0.0476 & 0.0769\\ 0.3333 & 0.2381 & 0.2308\\ 0.6000 & 0.7143& 0.6923 \end{bmatrix} ⎣⎡​0.06670.33330.6000​0.04760.23810.7143​0.07690.23080.6923​⎦⎤​

例:第一行第一列的元素可经下列计算得到
0.0667 = 1 1 + 5 + 9 0.0667=\frac{1}{1+5+9} 0.0667=1+5+91​

求解得分向量

对归一化后的矩阵的每一行做算数平均即可得到得分向量
[ 0.0637 0.2674 0.6689 ] \begin{bmatrix} 0.0637\\ 0.2674\\ 0.6689 \end{bmatrix} ⎣⎡​0.06370.26740.6689​⎦⎤​
所以最终打分为

价格得分
苹果0.0637
三星0.2674
华为0.6689

打分矩阵

利用同样的思想,我们可以分别得到备选对象们在用户评价和售后服务上的得分情况,最终我们得到打分矩阵与权重向量

打分矩阵价格用户评价售后服务
苹果0.06370.50.6
三星0.26740.30.2
华为0.66890.20.2
指标价格用户评价售后服务
权重0.60.10.3

于是我们得到每个对象的最终得分:

品牌得分
苹果0.2682
三星0.2504
华为0.4813

例:0.2682=0.0637 * 0.6+0.5 * 0.1+0.6 * 0.3

所以我们选择华为手机

模型评价

优点

系统性的分析方法

层次分析法把研究对象作为一个系统,按照分解、比较判断、综合的思维方式进行决策,成为继机理分析、统计分析之后发展起来的系统分析的重要工具。系统的思想在于不割断各个因素对结果的影响,而层次分析法中每一层的权重设置最后都会直接或间接影响到结果,而且在每个层次中的每个因素对结果的影响程度都是量化的,非常清晰明确。这种方法尤其可用于对无结构特性的系统评价以及多目标、多准则、多时期等的系统评价。

简洁实用的决策方法

这种方法既不单纯追求高深数学,又不片面地注重行为、逻辑、推理,而是把定性方法与定量方法有机地结合起来,使复杂的系统分解,能将人们的思维过程数学化、系统化,便于人们接受,且能把多目标、多准则又难以全部量化处理的决策问题化为多层次单目标问题,通过两两比较确定同一层次元素相对上一层次元素的数量关系后,最后进行简单的数学运算。计算简便,并且所得结果简单明确,容易为决策者了解和掌握。

所需定量数据信息较少

层次分析法主要是从评价者对评价问题的本质、要素的理解出发,比一般的定量方法更讲求定性的分析和判断。由于层次分析法是一种模拟人们决策过程的思维方式的一种方法,层次分析法把判断各要素的相对重要性的步骤留给了大脑,只保留人脑对要素的印象,化为简单的权重进行计算。这种思想能处理许多用传统的最优化技术无法着手的实际问题。 [2]

缺点

不能为决策提供新方案

层次分析法的作用是从备选方案中选择较优者。在应用层次分析法的时候,可能就会有这样一个情况,就是我们自身的创造能力不够,造成了我们尽管在我们想出来的众多方案里选了一个最好的出来,但其效果仍然不够企业所做出来的效果好。而对于大部分决策者来说,如果一种分析工具能替我分析出在我已知的方案里的最优者,然后指出已知方案的不足,又或者甚至再提出改进方案的话,这种分析工具才是比较完美的。但显然,层次分析法还没能做到这点。

定量数据较少,定性成分多,不易令人信服

在如今对科学的方法的评价中,一般都认为一门科学需要比较严格的数学论证和完善的定量方法。但现实世界的问题和人脑考虑问题的过程很多时候并不是能简单地用数字来说明一切的。层次分析法是一种带有模拟人脑的决策方式的方法,因此必然带有较多的定性色彩。

指标过多时,数据统计量大,且权重难以确定

当我们希望能解决较普遍的问题时,指标的选取数量很可能也就随之增加。指标的增加就意味着我们要构造层次更深、数量更多、规模更庞大的判断矩阵。那么我们就需要对许多的指标进行两两比较的工作。由于一般情况下我们对层次分析法的两两比较是用1至9来说明其相对重要性,如果有越来越多的指标,我们对每两个指标之间的重要程度的判断可能就出现困难了,甚至会对层次单排序和总排序的一致性产生影响,使一致性检验不能通过。不能通过,就需要调整,在指标数量多的时候比较难调整过来。 [2]

特征值和特征向量的精确求法比较复杂

在求判断矩阵的特征值和特征向量时,所用的方法和我们多元统计所用的方法是一样的。在二阶、三阶的时候,我们还比较容易处理,但随着指标的增加,阶数也随之增加,在计算上也变得越来越困难。不过幸运的是这个缺点比较好解决,我们有三种比较常用的近似计算方法。第一种就是和法,第二种是幂法,还有一种常用方法是根法。 [3]

参考文献


2021年1月28日11:45:28

层次分析法详细讲解(小白必看&电脑查看) 时间 2020年4月15日 组别 数学建模 姓名 Zkaisen ... 阅读详情

相关推荐

【数学建模学习】matlab实现评价模型——层次分析法(AHP)

本文使用例子展示层次分析法的使用及实现

denghls的博客 1万+

层次分析法

层次分析法使用讲解及代码实现

Lov1_BYS的博客 6705

层次分析法之python

1.简介 2.算法解析 3.实例分析 3.1 构造矩阵 3.2 查看行数和列数 3.3 求特征向量 3.4 找到最大特征值和最大特征向量 3.5 计算权重 3.6 一致性检验 3.7 计算评分 完整代码

PY洋洋 1万+

层次分析法原理和matlab代码实现

笔记来自清风老师的数学建模系列课程,课程链接:层次分析法 层次分析法例题,IMMC2020https://blog.youkuaiyun.com/yanyanwenmeng/article/details/104907412 1. 指标选择途径 (1)题目背景 (2)中国知网、百度学术、谷歌学术等地方搜索相关文献,查找指标 (3)搜索网站推荐:虫部落https://search.chongbul...

yanyanwenmeng的博客 9938

层次分析法AHP及Python实现

AHP (Analytic Hierarchy Process)层次分析法是一种实用的多方案或多目标的决策方法。 层次分析法是一种主客观结合的多指标综合评价方法;即定性分析与定量分析有机结合,实现定量化决策。 有两次定权过程,即准则层定权和方案层定权。 思路 层次分析法的思路是: 将所要分析的问题层次化,根据问题的性质和要达到的总目标,将问题分解成不同的组成因素,按照因素间的相互关系及...

积一时之步,臻千里之遥程 1万+

层次分析法及matlab代码

数学建模算法(一) 层次分析法 The analytic hierarchy process(AHP) 文章目录数学建模算法(一)层次分析法 The analytic hierarchy process(AHP)解决评价类问题的一般步骤:层次分析法的过程:一致性检验的步骤:计算权重?一致矩阵:归一化处理判断矩阵将计算所得的权重填入权重表中并计算得分层次分析法具体讲解层次分析法的局限性模型拓展Matlab代码详解 主要用于解决评价类问题,确定一些评价指标,并为每个指标定权重(和为1) (同颜色的单元格和为1

小风啊吼吼吼的博客 5633

数学建模:层次分析法实例以及代码

目录层次分析法的思想层次分析法步骤具体案例(市政工程项目建设决策)1.问题提出2.建立递阶层次结构3.构造判断矩阵(成对比较阵)并赋值4.层次单排序(计算权向量)与检验(一致性检验)计算权向量一致性检验5.层次总排序(组合权向量)与检验(一致性检验)6.结果分析7.层次分析法的优缺点层次分析法的代码实现(matlab) 层次分析法的思想 层次分析法的思想:将所有要分析的问题层次化; 根据问题的性质和所要到达的总目标,将问题分为不同的组成因素,并按照这些因素间的关联影响即其隶属关系,将因素按不同层次聚集组.

hanhan的博客 3万+

Python实现“层次分析法”及“自调节层次分析法”

Python实现“层次分析法”及“自调节层次分析法” 假设我们遇到如下问题: ①对于M个方案,每个方案有N个属性,在已知各个方案每个属性值&&任意两个属性的重要程度的前提下,如何选择最优的方案? ②对于一个层级结构,在已知各底层指标相互之间的重要程度下,如何确定各底层指标对最高级指标的权值? … … 此时,便可用层次分析法将我们的主观想法——“谁比谁重要”转换为客观度量——“权值” 层次分析法 层次分析法的基本思想是将复杂问题分为若干层次和若干因素,在同一层次的各要素之间简单地进行比较判断和

Lwwwwwwwl的博客 2892

层次分析法(AHP)

层次分析法(Analytic Hierarchy Process,简称 AHP)是对一些较为复杂、较为模糊的问题作出决策的简易方法,它特别适用于那些难于完全定量分析的问题。它是美国运筹学家 T. L. Saaty 教授于上世纪 70 年代初期提出的一种简便、灵活而又实用的多准则决策方法。

m0_57053955的博客 8338

层次分析法和多属性决策算法

层次分析法 层次分析法是笔者参加建模比赛最喜欢用的模型,也是各种算法中最简单的算法,大部分类型的题目都可以用层次分析法入手,进行初步的分析。 层次分析法的优点在于不需要任何数据,矩阵中用到的数据都是建模者主观上的比较,适用于没有数据或者数据少的问题中,缺点在于有些时候逻辑不够严谨以及模型较单一,推广能力差。 层次分析法概念: 层次分析法(AHP)特点在于对复杂的决策问题的本质、影响因素及其内在关系等进行深入分析的基础上,利用较少的定量信息使决策的思维过程数学化,从而为多目标、多准则或无结构特性的复杂决策

Yua_H的博客 8190

层次分析法之matlab

1.简介 2.算法解析 3.实例分析 3.1 构造矩阵 3.2 查看行数和列数 3.3 求特征向量 3.4 找到最大特征值和最大特征向量 3.5 计算权重 3.6 一致性检验 3.7 计算评分 完整代码

PY洋洋 3494

层次分析法【就业问题选择】附matlab代码

就业问题选择 摘要 毕业生在毕业之际,面临着就业选择问题。他们有阿里、百度和腾讯的选择,但也要考虑工作环境、工资待遇、发展前途、住房条件等因素。我们可以利用层次分析法来确定每个因素之间的比重,得到每个选择的综合评分,得到客观准确的分析来帮助毕业生进行选择。 目录 一、问题的重述 2 二、模型假设 2 三、变量说明 2 四、模型的建立与求解 2 问题一: 2 1.建模...

weixin_43535668的博客 1万+

数学建模-层次分析法

系列文章目录 第一节 层次分析法的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 前言 层次分析法(Theanalytichierarchyprocess,简称AHP): 建模比赛中最基础的模型之一,其主要用于解决评价类问题(例如:选择哪种方案最好、哪位运 动员或者员工表现的更优秀)。 提示:以下是本篇文章正文内容,下面案...

m0_62301979的博客 1万+

层次分析法步骤及源代码

层次分析法步骤及matlab源码层次分析法步骤例题matlab源代码 层次分析法步骤 建立层次结构模型。在深入分析实际问题的基础上,将有关的各个因素按照不同属性自上而下地分解成若干层次,同一层的诸因素从属于上一层的因素或对上层因素有影响,同时又支配下一层的因素或受到下层因素的作用。最上层为目标层,通常只有1个因素,最下层通常为方案或对象层,中间可以有一个或几个层次,通常为准则或指标层。当准则过多时(譬如多于9个)应进一步分解出子准则层。 构造成对比较阵。从层次结构模型的第2层开始,对于从属于(或影响

weixin_44569216的博客 3524

用层次分析法分析如何选购电脑

关于选购电脑的建议 摘 要 本文通过近几年对选购电脑的研究,简要分析了影响选购电脑的四大因素和我们常用的三大品牌的电脑进行比较,对电脑选购的方法进行定量与定性的分析,为选购电脑提供了科学的理论依据和指导。 我在层次分析法的基础上建立了模型,它是以三个品牌,即国内一线品牌联想,美国品牌戴尔,台湾创立的品牌华硕为方案层,以配置、外观、价格、功能作为准则层,定义选购一台合适的电脑为目标层。经准则层,得出...

weixin_46701831的博客 8053

层次分析法(一)

层次分析法简介

m0_58071164的博客 9217

AHP层次分析法

2014年参加数学建模美赛, 其中一道题是选出5大优秀教练,数据来源要求自行寻找。 在比赛中,我们运用了层次分析法(AHPAnalytic Hierarchy Process)进行建模,好不容易理解了这一方法的思想,在自己的博客里记录一下,希望可以帮助初次接触层次分析法的人,更快地理解这一的整体思想,也利于进一步针对细节进行学习。文章内容主要参阅 《matlab数学建模算法实例与分析》,部分图片来...

萧萧的专栏 8万+

llama.cpp部署大模型

llama.cpp如何部署大模型

Eddy的博客 976
上一篇: 线性代数/判断向量组是否线性相关/定义与例题
下一篇: 计算九连环需要多少步解下来的方法
陌雨’
博客等级 码龄7年 1378粉丝 222原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值