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分析法对人生的整个规划做一下总结.作为技术人员,其实除了编码架构能力之外,分析问题的能力的重要程度也会随着职业发展越来越重要.<美团点评技术博客>说这几天要在黄金时段头版头条 ...
随机推荐
- webconfig标签收集
在web项目启动时,很多因为vs没有报错,而页面跑不出来的情况,无法调试找到错误, 可以在webconfig中添加一个标签,运行项目就可以在页面显示错误 <customErrors mode=& ...
- linux大文件读取
在生产环境中有时候可能会遇到大文件的读取问题,但是大文件读取如果按照一般的手法.如cat这种都是对io的一个挑战,如果io扛得住还好,如果扛不住 造成的后果,如服务器内存奔溃,日志损坏 方法一: se ...
- C语言作业04-数组
1.本章学习总结 1.1思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 通过本章的学习,学会了几种用于循环的语句,能够利用循环解决复杂的问题,但对于几种循环的使用并不熟练,其中对于c ...
- A Boring Problem UVALive - 7676
16年北京现场赛的题,全场过的队30+. 初看只知道 O(N^2logK)的暴力,以为是什么变换. 仔细发现活用 二项式定理 就行. #include <bits/stdc++.h> us ...
- 记录-eureka
我的工程目录是这样的: eureka- server:服务端 EurekaServerApplication的内容: 服务端配置文件内容: eureka-server :服务端 pom 文件: < ...
- Scrapy简单入门及实例讲解
Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以 ...
- The declared package does not match the expected package Java
今天使用vscode 编写java代码做测试时候,发现这个问题,大概总结一下. 目录结构 bao -> Point.java test.java package bao; public clas ...
- ubuntu 环境下 安装虚拟环境
sudo pip3 install virtualenv 安装虚拟环境 sudo pip3 instal virtualenvwrapper #安装虚拟环境扩展包 编辑home目录下面的.bashrc ...
- FastDFS api介绍
1. 命令行api介绍 FastDFS提供了可用于运维测试的命令行api,下面进行介绍: 1.1 fastdfs服务管理 tracker进程服务管理脚本 /etc/init.d/fdfs_tracke ...
- 人脸识别1:n对比 (二)
本项目采用了百度AI 人脸识别 第三方接口,实现了自选本地手机相册图片上传人脸(faceSet中添加人脸) 和 自选本地手机相册图片寻找出集合中相似度最高的一个face,可返回比对相似度.位置等信息. ...