AHP算法(一)----算法介绍

  • 介绍
  • 作用使用场景
    • 应用场景
  • 涉及知识点
  • 程序算法解析
    • 1.构建层次分析结构
    • 2.构造判断矩阵
    • 3.计算初始权重
    • 4.一致性检验
  • 代码实现链接

介绍

AHP是Analytic Hierarchy Process得简称,中文名:层次分析法、多方案决策方法。
AHP是美国运筹学家T. L. Saaty教授于二十世纪70年代提出的一种实用的多方案或多目标的决策方法,是一种定性与定量相结合的决策分析方法。

作用使用场景

适合于具有分层交错评价指标的目标系统,而且目标值又难于定量描述的决策问题。层次分析法将决策问题按照总目标、各层子目标、评价准则直至备选方案的顺序分解为不同的层次结构,然后运用相关数学方法,求得每一层次的各元素相对上一层次某元素的权重,最终通过加权求和的方法求得各备选方案相对总目标的权重。

应用场景

  • 层级区分明显得评分指标得权重计算
  • 多方案决策问题

涉及知识点

程序算法解析

层次分析法主要步骤包括:

  1. 构建层次分析结构
  2. 构建判断矩阵
  3. 计算初始权重
  4. 一致性检验

下面将对层次分析法主要步骤进行介绍。

1.构建层次分析结构

将决策的目标、考虑的因素(决策准则)和决策对象按它们之间的相互关系分为层次一(最高层)、层次二(中间层)和层次三(最低层),绘出层次结构图。 **层次一是指预定目标、要解决的问题。层次二指做出决策的中间环节,如决策的维度、准则等。 层次三是指决策时的备选的措施或方案。**层次分析法的结构具体如下图所示 :

2.构造判断矩阵

基于上述层次分析结构,结合专家判断后的的风险因子短清单,根据各业务专家的风险因子重要性排序结果构建风险因子两两比较关系,并得出重要性比较等级aij作为判断矩阵元素。aij表示因子i对比因子j的重要性,取值为1至9,aij大于1,表示风险因子i比风险因子j重要,且aij越大表示风险因子i对比风险因子j越重要。
同时,判断矩阵元素具有如下性质:
a i j = 1 a j i {\mathrm a}_{\mathrm{ij}}=\frac1{{\mathrm a}_{\mathrm{ji}}} aij​=aji​1​
判断矩阵元素aij的取值逻辑如下:

取值 风险因子i比风险因子j
1 同样重要
3 稍微重要
5 较为重要
7 非常重要
9 极端重要
2、4、6、8 上述两相邻判断的中值

矩阵元素可以通过专家判断法及线性近似法获得。
专家判断法:通过专家判断,对风险因子短清单中的所有风险因子分别进两两比较,得到每两个风险因子之间的重要性比较等级。
线性近似法:结合风险因子排序结果,确定各风险因子间的重要性比较等级,计算公式如下:
如果风险因子i比j重要,或同等重要,则:
a i j = 1 + 8 n − 1 × d i j a_{ij}=1+\frac8{n-1}\times d_{ij} aij​=1+n−18​×dij​
如果风险因子i不如j重要,则:
a i j = 1 1 + 8 n − 1 × ( − d i j ) a_{ij}=\frac1{1+{\displaystyle\frac8{n-1}}\times\left(-d_{ij}\right)} aij​=1+n−18​×(−dij​)1​
其中,n表示风险因子总个数,dij表示风险因子i与j的排序差,dij>0表示风险因子i比j重要,dij=0表示风险因子i与j同样重要,dij<0表示风险因子i不如j重要。
在完成上述步骤的基础上,构建判断矩阵
A = [ a 11 a 12 … a 1 n a 21 a 22 … a 2 n … … … … a n 1 a n 2 … a n n ] A=\begin{bmatrix}a_{11}&a_{12}&\dots&a_{1n}\\a_{21}&a_{22}&\dots&a_{2n}\\\dots&\dots&\dots&\dots\\a_{n1}&a_{n2}&\dots&a_{nn}\end{bmatrix} A= ​a11​a21​…an1​​a12​a22​…an2​​…………​a1n​a2n​…ann​​ ​

3.计算初始权重

基于上述步骤所得到的判断矩阵A,通过方根法得出矩阵最大特征值所对应的单位化特征向量,以进一步计算出各风险因子的权重值。具体流程如下
计算判断矩阵中所有风险因子的几何平均数,得到列向
V = ( ν 1 , ν 2 , … , ν n ) T V=\left(\nu_1,\nu_2,\dots,\nu_n\right)^T V=(ν1​,ν2​,…,νn​)T
几何平均数 Vi 的计算公式如下:
ν i = ( ∏ j = 1 n a i j ) 1 n , i = 1 , 2 , 3 , … , n \nu_i=\left(\prod_{j=1}^na_{ij}\right)^\frac1n,i=1,2,3,\dots,n νi​=(j=1∏n​aij​)n1​,i=1,2,3,…,n
其中,aij表示风险因子i相较于风险因子j的重要性,n为短清单中风险因子个数。
计算权重向量Ω
Ω = ( ω 1 , ω 2 , … , ω n ) T \Omega=\left(\omega_1,\omega_2,\dots,\omega_n\right)^T Ω=(ω1​,ω2​,…,ωn​)T
其中通过对进行归一化处理得出,归一化公式如下:
ω i = ν i ∑ j = 1 n ν j \omega_i=\frac{\nu_i}{{\displaystyle\sum_{j=1}^n}\nu_j} ωi​=j=1∑n​νj​νi​​

4.一致性检验

计算得出初始权重后,需要对矩阵进行一致性检验,以验证各风险因子重要性比较结果是否符合常理。例如,若风险因子a比风险因子b重要,风险因子b比风险因子c重要,那么风险因子a一定比风险因子c 重要,否则与逻辑相悖,且可能导致最终计算出的权重无效。
通常利用CR(判断矩阵随机一致性比率)作为一致性检验评判指标,具体计算公式如下:
C R = C I R I CR=\frac{CI}{RI} CR=RICI​
其中,RI表示平均随机一致性指标,该指标与判断矩阵阶数存在一定对应关系,具体如下表 所示:

矩阵阶数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
RI 0.00 0.00 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51 1.54 1.56 1.57 1.58

CI表示判断矩阵的一般一致性指标,具体计算流程如下:
• 计算判断矩阵的最大特征根,具体计算公式如下:
λ m a x = 1 n ∑ i = 1 n ( A Ω ) i ω i = 1 n ∑ i = 1 n ∑ j = 1 n a i j ω j ω i \lambda_{max}=\frac1n\sum_{i=1}^n\frac{{\left(A\Omega\right)}_i}{\omega_i}=\frac1n\sum_{i=1}^n\frac{{\displaystyle\sum_{j=1}^n}a_{ij}\omega_j}{\omega_i} λmax​=n1​i=1∑n​ωi​(AΩ)i​​=n1​i=1∑n​ωi​j=1∑n​aij​ωj​​

• 根据及n进一步得出CI,具体计算公式如下:
C I = λ m a x − n n − 1 CI=\frac{\lambda_{max}-n}{n-1} CI=n−1λmax​−n​
根据CI及RI计算得出CR。若CR≤0.1,则认为判断矩阵满足一致性要求,确定模型风险因子权重;若CR>0.1,则认为判断矩阵不满足一致性要求,需由业务专家对风险因子进行重新排序。

代码实现链接

  • java实现
  • js实现

AHP算法(一)----算法介绍相关推荐

  1. python数据结构与算法分析 第2版_题库 | 百度数据结构 / 算法面试题型介绍及解析 第 2 期...

    题目1:分解成质因数 (如 435234=251*17*17*3*2) void prim(int m, int n){ if(m>n){ while(m%n != 0) n++; m /= n ...

  2. MD5算法原理简要介绍并采用C#应用在桌面应用系统的用户登录与注册中

    MD5算法原理简要介绍并采用C#应用在桌面应用系统的用户登录与注册中 接上文,本文简要介绍一下MD5加密算法的原理,并采用C#实现MD5算法的加密与解密过程,将这一实现过程应用在我自己开发的桌面办公应 ...

  3. OpenCv算法的基本介绍与应用

    OpenCv算法的基本介绍与应用 一.目录 二.图像处理流程 三.图像预处理 3.1噪声分类 3.1.1随机噪声 3.1.2椒盐噪声 3.1.3 高斯噪声 3.2 滤波 3.2.1 均值滤波 3.2. ...

  4. 教学优化算法的简单介绍

    目录 摘要 背景 算法 学生初始化 教学阶段 学习阶段 流程总结 优缺点 优点 缺点 一些改进 总结 参考文献 摘要 教学优化算法(Teaching-learning-based optimizati ...

  5. 面试必考排序算法最详细介绍,包含动画演示、大厂真题(每天一遍,面试必过)

    文章目录 前言 六大排序算法 冒泡排序 选择排序 插入排序 希尔排序 归并排序 快速排序 总结 一图解释所有 关于时间复杂度 关于稳定性 大厂面试真题 前言 不知道大家有没有发现,排序算法的考核在校招 ...

  6. 算法模型是什么意思,算法模型定义介绍

    算法模型定义介绍 1.马尔科夫模型 1.1马尔科夫过程 马尔可夫过程(Markov process)是一类随机过程.它的原始模型马尔可夫链.已知目前状态(现在)的条件下,它未来的演变(将来)不依赖于它 ...

  7. 图像显著性检测算法的评价指标介绍

    图像显著性检测算法的评价指标介绍 要评价一个图像显著性检测(Saliency Detection,SD)算法的好坏,当然离不开评价指标(Metric),显著性检测分为眼注视点显著性(eye fixat ...

  8. 计算机专业毕业生、求职升学面试 项目亮点,算法原理 双语介绍思路与样例

    文章大纲 项目亮点 样例 背景 背景(简洁版) 技术上的亮点 业务上的亮点 算法工程师 自我介绍与评价样例 中文 英文 项目经历 口述DEMO 工作描述 项目描述 面试算法原理 叙述逻辑举例 KMea ...

  9. 进化算法框架的介绍及Matlab实现(遗传算法)

    进化算法介绍及实现(遗传算法) 进化算法也可以称为遗传算法.进化算法的求解过程是模拟大自然生物进化的过程,通过"适者生存,劣者 淘汰"的规则不断进化,直到找到最优解或者达到终止条件 ...

  10. 【5G/4G】Snow 3G算法源码介绍

    文章目录 Snow 3G算法源码介绍 本人就职于国际知名终端厂商,负责modem芯片研发. 在5G早期负责终端数据业务层.核心网相关的开发工作,目前牵头6G算力网络技术标准研究. 博客内容主要围绕: ...

最新文章

  1. 知识点的积累(零碎的积累)
  2. 解决deepin微信无法登录
  3. BZOJ1941:[SDOI2010]Hide and Seek(K-D Tree)
  4. Linux(Centos7) 设置静态IP
  5. retrofit框架学习(二)----retrofit封装
  6. 从网页监听Android设备的返回键
  7. 和老师们合作,注定了是打工的(转)
  8. python的单元测试unittest模块
  9. 充一次电使用一年的手机_手机充一次电用一年?现有技术难实现
  10. 如何区别文本是BIG5还是GB
  11. 大数据可视化-Tableau
  12. thermal 代码分析
  13. h5 页面唤起微信和qq
  14. CRM客户信息管理系统
  15. 防止后缀aol.com}AOL勒索病毒*** .com}AOL勒索病毒解密工具处理方法
  16. H5 百度高德地图导航
  17. “手撕“ BootStrap 方法
  18. 消费服务平台“小黑鱼科技”完成5000万美金融资,资方含光速美国、晨兴资本等多家知名机构...
  19. 间述i计算机主要应用领域,电子科技大学17年11月《计算机导论》作业考核试题题目...
  20. 把html转化为thymeleaf,Springboot和Thymeleaf HTML模板:转换为PDF后,汉字消失

热门文章

  1. 开关直流稳压电源/可调直流稳压电源电路设计
  2. 【C/C++】指针的思考与注意:空指针,指针赋值,void*指针,二级指针,结构体指针,指向同一地址的多个指针释放问题
  3. Python 自动化工具pyautogui 安装过程详解
  4. mysql splunk_SPLUNK 安装配置及常用语法
  5. 约瑟夫环问题-基础版(数学归纳法)
  6. linux 实现SNAT技术
  7. 鲲鹏近3个月热门问题和解决方案整理
  8. 熔化焊包括哪五种_常用的几种熔焊方法
  9. RSNA、802.1X及4-way handshake的关系
  10. MySQL 8.0报错1114, “The table ‘/data/mysql/5306/tmp/#sql70da_911_3‘ is full