层次分析法(Analytic Hierarchy Process)
2015-05-23 10:47
85 查看
层次分析法(Analytic Hierarchy Process ,简称 AHP )
AHP (Analytic Hierarchy Process)层次分析法是美国运筹学家Saaty教授于二十世纪80年代提出的一种实用的多方案或多目标的决策方法。其主要特征是,它合理地将定性与定量的决策结合起来,按照思维、心理的规律把决策过程层次化、数量化。该方法自1982年被介绍到我国以来,以其定性与定量相结合地处理各种决策因素的特点,以及其系统灵活简洁的优点,迅速地在我国社会经济各个领域内,如能源系统分析、城市规划、经济管理、科研评价等,得到了广泛的重视和应用。
层次分析法的基本思路:先分解后综合
首先将所要分析的问题层次化,根据问题的性质和要达到的总目标,将问题分解成不同的组成因素,按照因素间的相互关系及隶属关系,将因素按不同层次聚集组合,形成一个多层分析结构模型,最终归结为最低层(方案、措施、指标等)相对于最高层(总目标)相对重要程度的权值或相对优劣次序的问题。运用层次分析法建模,大体上可按下面四个步骤进行:
1. 建立递阶层次结构模型;
2. 构造出各层次中的所有判断矩阵;
3. 层次单排序及一致性检验;
4. 层次总排序及一致性检验。
实例
人们在日常生活中经常会碰到多目标决策问题,例如假期某人想要出去旅游,现有三个目的地(方案):风光绮丽的杭州(P1)、迷人的北戴河(P2)和山水甲天下的桂林(P3)。假如选择的标准和依据(行动方案准则)有5个:景色,费用,饮食,居住和旅途。则常规思维的方式如下:
常规思维过程=⎧⎩⎨⎪⎪确定这些准则在你心目中各占的比重多大就每一准则将三个地点进行对比将这两个层次的比较判断进行综合,作出选择∗∗∗ 常规思维过程=\left\{
\begin{aligned}
确定这些准则在你心目中各占的比重多大\\就每一准则将三个地点进行对比\\将这两个层次的比较判断进行综合,作出选择\end{aligned}
***
\right.
(1)建立层次结构模型
(2)构造判断矩阵
通过相互比较确定各准则对于目标的权重,即构造判断矩阵。在层次分析法中,为使矩阵中的各要素的重要性能够进行定量显示,引进了矩阵判断标度(1~9标度法) :标度 | 含义 |
---|---|
1 | 表示两个元素相比,具有同样的重要性 |
3 | 表示两个元素相比,前者比后者稍重要 |
5 | 表示两个元素相比,前者比后者明显重要 |
7 | 表示两个元素相比,前者比后者极其重要 |
9 | 表示两个元素相比,前者比后者强烈重要 |
2,4,6,8 | 表示上述相邻判断的中间值 |
倒数:若元素i和元素j的重要性之比为aij,那么元素j与元素i的重要性之比为aji=1aija_{ji}=\frac{1}{a_{ij}} |
---|
设准则层包含5个准则,景色:C1C_1,费用:C2C_2,居住:C3C_3,饮食:C4C_4,旅途:C5C_5。相对于目标层:选择旅游地,进行两两比较打分。
构造所有相对于不同准则的方案层判断矩阵
(3)层次单排序
所谓层次单排序是指,对于上一层某因素而言,本层次各因素的重要性的排序。具体计算是:对于判断矩阵B,计算满足BW=λmaxWBW = \lambda_{max}W的特征根与特征向量。
式中λmax\lambda_{max}为矩阵B的最大特征根,WW为对应于λmax\lambda_{max}的正规化的特征向量,WW的分量ωi\omega_i即是相应元素单排序的权值。
利用判断矩阵计算各因素C对目标层Z的权重(权系数)
将A的每一列向量归一化得:ω˘ij=aij∑ni=1aij\breve{\omega}_{ij}=\frac{a_{ij}}{\sum_{i=1}^n {a_{ij}}}对ω˘ij\breve{\omega}_{ij}按行求和得ω˘i=∑nj=1ω˘ij\breve{\omega}_i=\sum_{j=1}^n {\breve{\omega}_{ij}}
将ω˘j\breve{\omega}_j归一化ωi=ω˘i∑ni=1ω˘i,ω=(ω1,ω2,…,ωn)T\omega_i=\frac{\breve{\omega}_i}{\sum_{i=1}^n {\breve{\omega}_i}},\omega=(\omega_1,\omega_2,\ldots,\omega_n)^T,即为近似特征根(权向量)
计算λ=1n∑ni=1(Aω)iωi\lambda=\frac{1}{n}\sum_{i=1}^n\frac{(A\omega)_i}{\omega_i},作为最大特征根的近似值。
得到排序结果:ω=(0.588,0.322,0.090)T,λmax=3.009\omega=(0.588,0.322,0.090)^T,\lambda_{max}=3.009
矩阵与向量的乘积计算
判断矩阵的一致性检验
判断矩阵通常是不一致的,但是为了能用它的对应于特征根的特征向量作为被比较因素的权向量,其不一致程度应在容许的范围内.如何确定这个范围?1. 一致性指标:CI=λ−nn−1CI=\frac{\lambda-n}{n-1},CI=0CI=0时A一致,CICI越大,A的不一致性程度越严重
2. 随机一致性指标RIRI:
n | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
---|---|---|---|---|---|---|---|---|---|---|---|
RI | 0.00 | 0.00 | 0.58 | 0.90 | 1.12 | 1.24 | 1.32 | 1.41 | 1.45 | 1.49 | 1.51 |
CR=CIRICR=\frac{CI}{RI}
当CR<0.1CR<0.1时,A的不一致性程度在容许范围内,此时可用A的特征向量作为权向量。
例题 解:
第一步:自上而下,先求判断矩阵A的最大特征根与特征向量。
A=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢1214131312117151547123351211351311⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥A=\begin{bmatrix}1 & \frac{1}{2} & 4 & 3 & 3 \\
2 & 1 & 7 & 5 & 5 \\
\frac{1}{4} & \frac{1}{7} & 1 & \frac{1}{2} & \frac{1}{3} \\
\frac{1}{3} & \frac{1}{5} & 2 & 1 & 1\\
\frac{1}{3} & \frac{1}{5} & 3 & 1 & 1\\
\end{bmatrix}
λmax=5.073\lambda_{max}=5.073对应于λmax\lambda_{max}的正规化的特征向量为:
ω(2)=(0.263,0.475,0.055,0.099,0.110)T\omega^{(2)}=(0.263,0.475,0.055,0.099,0.110)^T
第二步:计算与准则层各准则相关的判断矩阵最大特征跟及权向量:
第三步,算出B2,B3,B4,B5B_2,B_3,B_4,B_5的最大特征值分别为:
λmax(2)=3.002,λmax(3)=3,λmax(4)=3.009,λmax(5)=3\lambda_{max(2)}=3.002,\lambda_{max(3)}=3,\lambda_{max(4)}=3.009,\lambda_{max(5)}=3所对应的特征向量分别为:
第四步,一致性检验
A=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢1214131312117151547123351211351311⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥a14=3,a43=2⇒a13=a14a43=3×2=6A=\begin{bmatrix}1 & \frac{1}{2} & 4 & 3 & 3 \\
2 & 1 & 7 & 5 & 5 \\
\frac{1}{4} & \frac{1}{7} & 1 & \frac{1}{2} & \frac{1}{3} \\
\frac{1}{3} & \frac{1}{5} & 2 & 1 & 1\\
\frac{1}{3} & \frac{1}{5} & 3 & 1 & 1\\
\end{bmatrix} \\ a_{14}=3,a_{43}=2 \Rightarrow \\ a_{13}=a_{14}a_{43}=3 \times 2 = 6前述计算得到了最大特征根:λmax=5.073\lambda_{max}=5.073
CI=λmax−nn−1=5.073−55−1=0.01825CI=\frac{\lambda_{max}-n}{n-1}=\frac{5.073-5}{5-1}=0.01825
经过查表可以得到平均随机一致性指标RIRI,从而可检验矩阵一致性:
CR=CIRI=0.018251.12=0.016295<0.1CR=\frac{CI}{RI}=\frac{0.01825}{1.12}=0.016295<0.1
同理,对于第二层的景色、费用、居住、饮食、旅途五个判断矩阵的一致性检测均通过。
以W(3)kW_k^{(3)}为列向量构成矩阵:
ps:这一次就不附赠代码啦~
相关文章推荐
- Analytic Hierarchy Process(AHP)
- [Step By Step]SAP HANA中创建层次分析视图(Hierarchy Analytic View)
- 网络分析法(Analytic Network Process,ANP)
- 如何利用adplus来dump某个process的memory
- Codeforces 660C Hard Process【二分 Or 尺取】
- 有关数据库的process 资料收集
- Process.RedirectStandardInput
- Delphi 2010,在主窗体中使用Application.ProcessMessages提示错误的解决办法
- 关于JavaProcess的一些笔记
- Restarting dead background process QMNC一例
- activiti processEngineLifecycleListener使用
- Flex Air bug: Process terminated without establishing connection to debugger. Command: "d:/Program Files/Adobe/Flex Builder 3/
- Android XML Editor cannot process this input
- 关于一类external allocation too large for this process的处理
- contiki学习笔记1:helloworld+process结构分析
- EPROCESS ;ethread WINDOWS 结构
- net.sf.json.JSONException: There is a cycle in the hierarchy!
- Generic Host Process for Win32 Services遇到了一个问题,需要关闭
- android:sharedUserId, process说明
- Calls For Stricter US Drug Safety Process