层次分析法(AHP)详细步骤

层次分析法(AHP)详细步骤1.算法简介

大家好,又见面了,我是你们的朋友全栈君。

1. 算法简介

层次分析法(AHP)是美国运筹学家萨蒂于上世纪70年代初,为美国国防部研究“根据各个工业部门对国家福利的贡献大小而进行电力分配”课题时,应用网络系统理论和多目标综合评价方法,提出的一种层次权重决策分析方法。
层次分析法是一种解决多目标的复杂问题的定性与定量相结合的决策分析方法。该方法将定量分析与定性分析结合起来,用决策者的经验判断各衡量目标之间能否实现的标准之间的相对重要程度,并合理地给出每个决策方案的每个标准的权数,利用权数求出各方案的优劣次序,比较有效地应用于那些难以用定量方法解决的课题。

2. 算法基本原理

例子:
在这里插入图片描述

2.1. 解决问题的思路

层次分析法的基本思路是将所要分析的问题层次化;根据问题的性质和所要达成的总目标,将问题分解为不同的组成因素,并按照这些因素的关联影响及其隶属关系,将因素按不同层次凝聚组合,形成一个多层次分析结构模型;最后,对问题进行优劣比较并排列。

2.2. 层次分析法的步骤

1.建立层次结构模型

  • 将决策的目标、考虑的因素(决策准则)和决策对象按照他们之间的相互关系分为最高层、中间层和最低层,绘出层次结构图。
  • 最高层: 决策的目的、要解决的问题。
    最低层: 决策时的备选方案。
    中间层: 考虑的因素、决策的准则。
  • 对相邻的两层,称高层为目标层,低层为因素层

层次分析法所要解决的问题是关于最低层对最高层的相对权重的问题,按此相对权重可以对最低层中的各种方案、措施进行排序,从而在不同的方案中做出选择或形成选择方案的原则。

2.构造判断矩阵
层次分析法中构造判断矩阵的方法是一致矩阵法,即:不把所有因素放在一起比较,而是两两相互比较;对此时采用相对尺度,以尽可能减少性质不同因素相互比较的困难,以提高准确度。

判断矩阵 a i j a_{ij} aij的标度方法

标度 含义
1 表示两个因素相比,具有同样重要性
3 表示两个因素相比,一个因素比另一个因素稍微重要
5 表示两个因素相比,一个因素比另一个因素明显重要
7 表示两个因素相比,一个因素比另一个因素强烈重要
9 表示两个因素相比,一个因素比另一个因素极端重要
2,4,6,8 上述两相邻判断的中值
倒数 因素 i i i j j j比较的判断 a i j a_{ij} aij,则因素 j j j i i i比较的判断 a j i = 1 / a i j a_{ji}=1/a_{ij} aji=1/aij

3.层次单排序及其一致性检验
对应于判断矩阵最大特征根 λ m a x \lambda max λmax的特征向量,经归一化(使向量中各元素之和为1)后记为 W W W W W W的元素为同一层次元素对于上一层因素某因素相对重要性的排序权值,这一过程称为层次单排序

定义一致性指标 C I = λ − n n − 1 CI=\frac {\lambda-n}{n-1} CI=n1λn
C I = 0 CI=0 CI=0,有完全的一致性;
C I CI CI接近于0,有满意的一致性;
C I CI CI越大,不一致越严重。

为了衡量 C I CI CI的大小,引入随机一致性指标 R I RI RI


随机一致性指标
RI

n 1 2 3 4 5 6 7 8 9 10 11
RI 0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51


定义一致性比率: C R = C I R I CR=\frac{CI}{RI} CR=RICI,一般认为一致性比率 C R < 0.1 CR<0.1 CR<0.1时,认为A的不一致程度在容许范围之内,有满意的一致性,通过一致性检验。可用其归一化特征向量作为权向量,否则要重新构造成对比较矩阵A,对 a i j a_{ij} aij加以调整。

示例:
在这里插入图片描述在这里插入图片描述

4.层次总排序及其一致性检验

  • 计算某一层次所有因素对于最高层(总目标)相对重要性的权值,称为层次总排序。
  • 这一过程是从最高层次到最低层次依次进行的。
    在这里插入图片描述
    A层 m m m个因素 A 1 , A 2 , ⋅ ⋅ ⋅ , A m , A_{1},A_{2},···,A_{m}, A1,A2,,Am,对总目标Z的排序为 a 1 , a 2 , ⋅ ⋅ ⋅ , a m a_{1},a_{2},···,a_{m} a1,a2,,am
    B层 n n n个因素对上层A中因素为 A j A_{j} Aj的层次单排序为 b 1 j , b 2 j , ⋅ ⋅ ⋅ , b n j ( j = 1 , 2 , 3 , ⋅ ⋅ ⋅ , m ) b_{1j},b_{2j},···,b_{nj}(j=1,2,3,···,m) b1j,b2j,,bnj(j=1,2,3,,m)

B层的层次总排序(即B层第 i i i个因素对总目标的权值为: ∑ j = 1 m a j b i j \sum_{j=1}^{m}a_{j}b_{ij} j=1majbij)为:
B 1 : a 1 b 11 + a 2 b 12 + ⋅ ⋅ ⋅ + a m b 1 m , B_{1}:a_{1}b_{11}+a_{2}b_{12}+···+a_{m}b_{1m}, B1:a1b11+a2b12++amb1m,
B 2 : a 1 b 21 + a 2 b 22 + ⋅ ⋅ ⋅ + a m b 2 m , B_{2}:a_{1}b_{21}+a_{2}b_{22}+···+a_{m}b_{2m}, B2:a1b21+a2b22++amb2m,
⋅ ⋅ ⋅ ···
B n : a 1 b n 1 + a 2 b n 2 + ⋅ ⋅ ⋅ + a m b n m , B_{n}:a_{1}b_{n1}+a_{2}b_{n2}+···+a_{m}b_{nm}, Bn:a1bn1+a2bn2++ambnm,

层次总排序的一致性比率为: C R = a 1 C I 1 + a 2 C I 2 + ⋅ ⋅ ⋅ + a m C I m a 1 R I 1 + a 2 R I 2 + ⋅ ⋅ ⋅ + a m R I m CR=\frac{a_{1}CI_{1}+a_{2}CI_{2}+···+a_{m}CI_{m}}{a_{1}RI_{1}+a_{2}RI_{2}+···+a_{m}RI_{m}} CR=a1RI1+a2RI2++amRIma1CI1+a2CI2++amCIm,当 C R < 0.1 CR<0.1 CR<0.1时,认为层次总排序通过一致性检验。
例子:
在这里插入图片描述在这里插入图片描述

3.算法总结

  • 应用领域:经济计划个管理,能源政策和分配,人才选拔和评价,生产决策,交通运输,科研选题,产业结构,教育,医疗,环境,军事等。
  • 处理问题类型:决策、评价、分析、预测等。
  • 建立层次分析结构模型是关键一步,要有主要决策层参与。
  • 构造成对比较矩阵是数量依据,应由经验丰富、判断力强的专家给出。

4.参考

  1. 层次分析法建模——《百度文库》
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/153648.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月27日 上午6:46
下一篇 2022年6月27日 上午6:46


相关推荐

  • 总结:相关滤波器(Correlation Filters)

    总结:相关滤波器(Correlation Filters)本文是对相关滤波器(CorrelationFilters)相关paper的理解和总结,不过对于我来说,KCF实在不好理解,感觉好多地方理解的不彻底,错误之处还请指出,共同进步。

    2022年5月22日
    38
  • ACM中Java输入输出[通俗易懂]

    ACM中Java输入输出[通俗易懂]最初写算法时,是用Scanner的。因为当时接触的测试数据基本都是以算法的复杂度为主,但是后面遇到大量的输入数据时。发现Scanner远远不能满足条件。下面列出几种常用的输入输出方式。(输出统一用printwriter,系统的system.out太慢,结尾要释放缓存才能输出,不然数据放在缓存中输不出来)1:Scanner这个类最慢,但是最好用,因为这个类没有缓存处理,所以io方面大量输入…

    2022年5月18日
    47
  • 扩频调制matlab仿真

    扩频调制matlab仿真扩频调制1.扩频调制概念2.仿真代码(matlab)2.1主程序2.2产生m序列函数3.实验结果1.扩频调制概念扩展频谱是指将信号的频谱扩展至占用很宽的频带,简称扩频。扩展频谱通信系统是将基带信号的频谱通过某种调制扩展到远大于原基带信号带宽的系统。扩展频谱技术一般可以分为三类:1.直接序列扩谱,它通常用一段伪随机序列表示一个信息码元,对载波进行调制。2.跳频扩谱,它是发射机的载频在一个信…

    2022年5月8日
    56
  • CSDN 夏令营课程 项目分析

    CSDN 夏令营课程 项目分析

    2022年1月14日
    41
  • RabbitMQ 延迟队列实现订单支付结果异步阶梯性通知[通俗易懂]

    RabbitMQ 延迟队列实现订单支付结果异步阶梯性通知[通俗易懂]在第三方支付中,例如支付宝、或者微信,对于订单请求,第三方支付系统采用的是消息同步返回、异步通知+主动补偿查询的补偿机制。 由于互联网通信的不可靠性,例如双方网络、服务器、应用等因素的影响,不管是同步返回、异步通知、主动查询报文都可能出现超时无响应、报文丢失等情况,所以像支付业务,对结果的通知一般采用几种方案结合的补偿机制,不能完全依赖某一种机制。例如一个支付结果的通知,一方面会在支付页…

    2022年5月13日
    48
  • 支持向量机与支持向量回归(support vector machine and support vector regression)

    支持向量机与支持向量回归(support vector machine and support vector regression)支持向量机和支持向量回归是目前机器学习领域用得较多的方法,不管是人脸识别,字符识别,行为识别,姿态识别等,都可以看到它们的影子。在我的工作中,经常用到支持向量机和支持向量回归,然而,作为基本的理论,却没有认真地去梳理和总结,导致有些知识点没有彻底的弄明白。这篇博客主要就是想梳理一遍支持向量机和支持向量回归的基础理论知识,一个是笔记,另一个是交流学习,便于大家共勉。凸集、凸函数、凸优化凸集:如果集合…

    2022年5月29日
    34

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号