参考:

  1. (中文)https://zhuanlan.zhihu.com/p/35051786
  2. (中文繁体)www.nhu.edu.tw/~ykhuang/AHP.doc
  3. (英文,作者即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}\)满足:

  1. \(a_{ij}>0\)
  2. \(a_{ji} = \frac{w_{j}}{w_{i}} = \frac{1}{\frac{w_{i}}{w_{j}}} = \frac{1}{a_{ji}}\)
  3. \(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)的更多相关文章

  1. 层次分析法(Analytic Hierarchy Process,AHP)

    昨天晚上室友问我什么是层次分析法?我当时就大概给他介绍了一下,没有细讲. 今天我仔细讲讲这个. 层次分析法是运筹学里面的一种方法,是讲与决策总是有关的元素分解成目标.准则.方案等层次,在此基础上进行定 ...

  2. 从Elo Rating System谈到层次分析法

    1. Elo Rating System Elo Rating System对于很多人来说比较陌生,根据wikipedia上的解释:Elo评分系统是一种用于计算对抗比赛(例如象棋对弈)中对手双方技能水 ...

  3. 层次分析法、模糊综合评测法实例分析(涵盖各个过程讲解、原创实例示范、MATLAB源码公布)

    目录 一.先定个小目标 二.层次分析法部分 2.1 思路总括 2.2 构造两两比较矩阵 2.3 权重计算方法 2.3.1 算术平均法求权重 2.3.2 几何平均法求权重 2.3.3 特征值法求权重 2 ...

  4. 同TTX更可爱的层次分析法游戏破解

    最近的工作太忙,没啥时间写文章,今天遇到一点点的游戏,浅析.以中午的优势写这篇文章. 移动MM的游戏.前面我们已经写过非常多文章,没有看过的朋友,自行查找就可以,今天我们继续分析一个类似的游戏,只是使 ...

  5. ahp层次分析法软件

    http://www.jz5u.com/Soft/trade/Other/58808.html 权重计算 归一化 本组当前数 - 本组最小 / 本组最大-本组最小 http://blog.csdn.n ...

  6. 层次分析法MATLAB

    输入成对比较矩阵,输出权重值和一致性检验结果. disp('请输入判断矩阵A(n阶)'); A=input('A='); [n,n]=size(A); x=ones(n,100); y=ones(n, ...

  7. 网络分析法(Analytic Network Process,ANP)

    什么是网络分析法 网络分析法(ANP)是美国匹兹堡大学的T.L.Saaty教授于1996年提出的一种适应非独立的递阶层次结构的决策方法,它是在层次分析法(Analytic Hierarchy Proc ...

  8. matlab-层次分析法

    层次分析法(AHP)是把问题条理化.层次化,构造出一个有层次的结构模型的方法. 比如要选择旅游地,有3个选择方案,苏杭.北戴河和桂林.选择过程需要考虑多个因素,比如景色.费用.居住.饮食和旅途. 1. ...

  9. 2017人生总结(MECE分析法)

    试着用MECE分析法对人生的整个规划做一下总结.作为技术人员,其实除了编码架构能力之外,分析问题的能力的重要程度也会随着职业发展越来越重要.<美团点评技术博客>说这几天要在黄金时段头版头条 ...

随机推荐

  1. CHROME浏览器清缓存

  2. 实际项目中如何使用git命令

    使用工具:Git Bash 工作空间项目存放路径C:/用户/git/demoProject 操作步骤: 1.切换到git项目路径 cd  git/demoProject 2.git status   ...

  3. linux搭建

    1.安装rpm包 [root@lixiaojie lixiaojie]# rpm -ivh openfire-3.9.3-1.i386.rpm Preparing... ############### ...

  4. LinkedStack

    public class LinkedStack<T> { private static class Node<U>{ U item; Node<U>next; N ...

  5. [Java]刷题中的Java基础

    数组 取数组长度是属性length ArrayList ArrayList<Integer> maxRootHeap = new ArrayList<Integer>(); m ...

  6. 带缓冲I/O 和不带缓冲I/O的区别与联系

    首先要明白不带缓冲的概念:所谓不带缓冲,并不是指内核不提供缓冲,而是只单纯的系统调用,不是函数库的调用.系统内核对磁盘的读写都会提供一个块缓冲(在有些地方也被称为内核高速缓存),当用write函数对其 ...

  7. 国内最火的10款Java开源项目,都是国人开发,CMS居多

    原文链接:https://www.cnblogs.com/jimcsharp/p/8266954.html 国内的开源环境已经相当好,但是国内开发注重是应用,创新有但不多,从榜单可以看出,专门搞技术的 ...

  8. 史上最全 | 39个RNAseq分析工具与对比

    文献:Sahraeian S M E, Mohiyuddin M, Sebra R, et al. Gaining comprehensive biological insight into the ...

  9. 记一次Struts2 内核问题分析解决

    问题场景描述 生产环境某个处理耗时比较长的接口,吞吐能力极差.客服反馈此功能长期处于毫无响应状态. 具体表现 系统启动后第一次调用耗时极慢,长时间不响应.紧随之后发起的请求也同时没有响应. 等待第一次 ...

  10. python 13 常用模块 一

    一.time模块 1.time.time()获取当前时间戳,返回长整型 2.time.localtime() 获取当地结构化时间,time.gmtime()获取格林尼治时间   一图需要传入匹配格式, ...