Maths | 层次分析法(Analytic Hierarchy Process)
参考:
- (中文)https://zhuanlan.zhihu.com/p/35051786
- (中文繁体)www.nhu.edu.tw/~ykhuang/AHP.doc
- (英文,作者即AHP提出者,美国运筹学家、匹兹堡大学T. L. Saaty教授)THE ANALYTIC HIERARCHY PROCESS-WHAT IT IS AND HOW IT IS USED
1. 概述
我们遇到的大多数问题(决策目标),都可以逐层拆解为:准则,子准则,……,最底层即所有的可选方案。
拆解层级如图。注意对于父层的每一个因素,必须包含(联系于)子层的所有因素。
我们知道,大多数决策过程既存在客观成分(客观指标),也存在主观因素(心理,偏好等)。
AHP正是一种很好的解决方案,可以结合主、客观因素,定量作出决策。
作者的原话是:
For a long time people have been concerned with the measurement of both physical and psychological events. By physical...
By contrast, the psychological is the realm of the intangibles as it relates to subjective ideas and beliefs of the individual about himself of herself and the world of experience. The question is whether there is a coherent theory that can deal with both these worlds of reality without compromising either. The AHP is a method that can be used to establish measures in both the physical and social domains.
由于AHP的本质方法是计算各个因素的权值,因此也常用于对各影响因素进行重要性排序。
实际上,人作决策时往往也会对各参考因素排序,因此AHP和人的决策过程具有一致性。
2. AHP算法
2.1. 建立层级
对于一个既定决策目标(目标层),我们将其逐层拆解为多层,名为准则层;最底层即方案层。
AHP的最终目标,就是确定方案层中的每一个方案,对于目标层的相对权重。
如上图,“选购笔记本”属于目标层,三款电脑属于方案层,中间的参考因素都属于准则层。
注意,同一层级的元素之间必须是相互独立的(Independence),否则,应考虑网络分析法ANP。
2.2. 构造 成对 比较 矩阵
假设某\(f_1\)层有一个元素source。我们想探究,下一层\(f_2\)中的所有元素,对于source元素而言的重要性。
绝对重要性是很难量化的,但相对重要性比较好量化。
因此我们构造如下矩阵:
其中,\(a_{ij} = \frac{w_{i}}{w_{j}}\)代表:\(f_2\)层中,\(i\)元素与\(j\)元素相比,对于\(f_1\)层source元素的相对重要程度。\(w_{i}\)即该层级中准则\(i\)的绝对权重。
Saaty建议用整数\(1\)到\(9\)及其倒数,作为\(a_{ij}\)的值域。该值域又称为比例尺度Ratio Scale。
比如,若\(a_{ij}=9\),那么与\(j\)元素相比,\(i\)元素对于source元素绝对重要得多得多得多得多。
又如,若\(a_{ij}=1\),那么\(j\)和\(i\)元素对于source元素是同等重要的。
显然,成对比较矩阵元素\(a_{ij}\)满足:
- \(a_{ij}>0\)
- \(a_{ji} = \frac{w_{j}}{w_{i}} = \frac{1}{\frac{w_{i}}{w_{j}}} = \frac{1}{a_{ji}}\)
- \(a_{ii}=1\)
基于以上特点,该矩阵又称为正互反矩阵(Positive Reciprocal Matrix)。
由于相对重要性的判断容易出现偏差,因此Saaty建议同一层级的元素不要超过7个。作者原话是:
The question is, "How much should one include in a hierarchy?" A general rule is that the hierarchy should be complex enough to capture the situation, but small and nimble enough to be sensitive to changes.
2.3. 成对比较矩阵的 一致性检验 与 层次单排序
假设\(i\)元素(对source元素)的重要性是\(j\)元素的3倍,\(j\)元素的重要性是\(k\)元素的2倍。
那么符合直觉的是:\(i\)元素(对source元素)的重要性是\(k\)元素的6倍。
这就称为传递性(Transitivity),也称为一致性(Consistency)。
若一个成对比较矩阵中的元素都满足:\(a_{ik} \cdot a_{kj} = a_{ij}\),则称\((a_{ij})_{n \times n}\)为一致性矩阵。判断定理如下:
定理:\(n\)阶正互反矩阵\(A\)为一致性矩阵,等价于:\(A\)的最大特征值\({\lambda}_{max} = n\),其余特征值为0。
证明:参见这篇论文
其中关键的一点是:设\(\overline{w} = (w_1,w_2,\cdots,w_n)^T\)是权值向量,那么有\(A\overline{w} = n\overline{w}\),特征向量\(\overline{w}\)对应的特征值就是\(n\)。
实际操作中,我们难遇完全一致的成对比交矩阵,一是因为客观事物并不简单(相互关联等),二是人的判断有主观性。
因此,Saaty建议先求出\(A\)的最大特征值,其对应的特征向量归一化后(使元素和为1)即权值向量。这一过程称为层次单排序。
在实际应用中,最大特征值往往是近似求解的。可以参见各路PPT。
但是显然,这种近似是有条件的:\(A\)需要满足一定程度的一致性。
一致性指标(Consistence Index)的检验方法,就称为一致性检验:\(CI = \frac{\lambda_{max}-n}{n-1}\)。
显然,当\(CI = 0\)时,表示完全一致;\(CI\)越大,一致性越差。
CI是否能为负?正互反矩阵的最大特征值是否一定不小于其阶数?考证了很久没得到结果。。
Oak Ridge National Laboratory & Wharton School进行了一项研究。假设\(A\)具有某一阶数,其值是随机生成的。
经过1000次随机模拟后,我们统计了平均的\(CI\)值:
这又称为随机性指标(Random Index)。显然,如果我们的\(A\)具有和\(RI\)相近的\(CI\),那么我们的矩阵很可能是无效的。
因此规定,只有当一致性比率(Consistency Ratio)\(CR = \frac{CI}{RI} <0.1\)时,一致性才令人满意。
2.4. 层次总排序
在层次单排序后,我们把各层权重合成。合成后也可以计算一致性指标,但通常不予考虑。详见第一个参考链接。
Maths | 层次分析法(Analytic Hierarchy Process)的更多相关文章
- 层次分析法(Analytic Hierarchy Process,AHP)
昨天晚上室友问我什么是层次分析法?我当时就大概给他介绍了一下,没有细讲. 今天我仔细讲讲这个. 层次分析法是运筹学里面的一种方法,是讲与决策总是有关的元素分解成目标.准则.方案等层次,在此基础上进行定 ...
- 从Elo Rating System谈到层次分析法
1. Elo Rating System Elo Rating System对于很多人来说比较陌生,根据wikipedia上的解释:Elo评分系统是一种用于计算对抗比赛(例如象棋对弈)中对手双方技能水 ...
- 层次分析法、模糊综合评测法实例分析(涵盖各个过程讲解、原创实例示范、MATLAB源码公布)
目录 一.先定个小目标 二.层次分析法部分 2.1 思路总括 2.2 构造两两比较矩阵 2.3 权重计算方法 2.3.1 算术平均法求权重 2.3.2 几何平均法求权重 2.3.3 特征值法求权重 2 ...
- 同TTX更可爱的层次分析法游戏破解
最近的工作太忙,没啥时间写文章,今天遇到一点点的游戏,浅析.以中午的优势写这篇文章. 移动MM的游戏.前面我们已经写过非常多文章,没有看过的朋友,自行查找就可以,今天我们继续分析一个类似的游戏,只是使 ...
- ahp层次分析法软件
http://www.jz5u.com/Soft/trade/Other/58808.html 权重计算 归一化 本组当前数 - 本组最小 / 本组最大-本组最小 http://blog.csdn.n ...
- 层次分析法MATLAB
输入成对比较矩阵,输出权重值和一致性检验结果. disp('请输入判断矩阵A(n阶)'); A=input('A='); [n,n]=size(A); x=ones(n,100); y=ones(n, ...
- 网络分析法(Analytic Network Process,ANP)
什么是网络分析法 网络分析法(ANP)是美国匹兹堡大学的T.L.Saaty教授于1996年提出的一种适应非独立的递阶层次结构的决策方法,它是在层次分析法(Analytic Hierarchy Proc ...
- matlab-层次分析法
层次分析法(AHP)是把问题条理化.层次化,构造出一个有层次的结构模型的方法. 比如要选择旅游地,有3个选择方案,苏杭.北戴河和桂林.选择过程需要考虑多个因素,比如景色.费用.居住.饮食和旅途. 1. ...
- 2017人生总结(MECE分析法)
试着用MECE分析法对人生的整个规划做一下总结.作为技术人员,其实除了编码架构能力之外,分析问题的能力的重要程度也会随着职业发展越来越重要.<美团点评技术博客>说这几天要在黄金时段头版头条 ...
随机推荐
- 上位机与三菱FX3U通过FX-232-BD通信
PLC侧设置: 和校验+协议4 读D200单字: 05 30 30 46 46 57 52 30 44 30 32 30 30 30 31 返回“201”:02 30 30 46 46 30 ...
- ActiveMQ安装使用与spring整合配置教程
https://blog.csdn.net/qq_22075041/article/details/77602996
- 小组团队项目的NABCD分析
N:1.学校中有很多学生是外省的,然后不知道附近有什么地方周末可以去玩,有时候想记录自己每天发生的乐趣事情并且想跟别人分享.2.学校中学生有很多用不到的东西但是联系不到合适的买家.A:我们可以做一个软 ...
- WMS二开:外挂页面开发培训
springboot:MAVEN结构前后台都是MVC架构基于模板引擎thymeleafapplication.yml文件里面配置了一个DEV\TEST\PROD,用于自动选择配置文件applicati ...
- 解题(GoUpstairs -- 上楼梯)
题目描述 有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶.2阶.3阶.请实现一个方法,计算小孩有多少种上楼的方式.为了防止溢出,请将结果Mod 1000000007 给定一个正整数int n, ...
- 用深信服AC控制方位话机注册链路的开、关
1.话机正常配置:专线.互联网 配置: 抓包: 结论:话机走专线注册,正常. 2.在SANGFOR AC上阻断专线地址组(域名没有找到阻断方式),模拟专线断开的场景 1)nslookup解析出地址组 ...
- python note 08 文件操作
1.相对路径与绝对路径比较 #绝对路径 f = open('d:\pzw.txt',mode='r',encoding='UTF-8') content = f.read() print(conten ...
- Spring整合quartz关闭,关闭Tomcat Servlet容器时内存泄漏
出错信息 22-Sep-2017 06:19:51.064 WARNING [main] org.apache.catalina.loader.WebappClassLoaderBase.clearR ...
- python 聊天程序(基于UDP)
from threading import Thread from socket import * updSocket = socket(AF_INET,SOCK_DGRAM) updSocket.b ...
- lodash 判断一个数据是否包含另一个数组
if (_.intersection(v.ids, value).length == value.length) { this.groupListExtData.push(v.names); } ...