层次分析法 (AHP) 含代码

摘要:

层次分析法主要应用在不确定情况下及具有多数个评估准则的决策问题上。 层次分析法发展的目的是将复杂的问题系统化,由不同层面给予层级分解,并透过量化的运算,找到脉络后加以综合评估。(维基百科)

1、方法介绍

层次分析法可以利用树状的层级结构,将复杂的决策问题在一个层级中区分为数个简单的子问题,并且每个子问题可以独立进行分析,这个层级中的子问题可以包含是任何类型的子问题,无论是有形的还是无形的,仔细计算的或者粗略估计的,理解清晰或模糊的,只要是用于最终决策的子问题都可以包括于此。

一旦这个层级建立完毕,决策专家会有有系统地评估尺度针对每一个部分的相对重要性给予权重数值,其后建立成对比较矩阵,并求出特征向量及特征值,以该特征向量代表每一层级中各部分的优先权,能提供决策者充分的决策资讯并组织有关决策的评选条件或标准(criteria)、权重(weight)和分析(analysis),且能减少决策错误的风险性。

AHP的评估尺度作为每一层级指标因素间的成对比较,基本划分包括五项,即等强(Equal Strong)、稍强(Weak Strong)、颇强(Strong)、极强(Very Strong)、绝强(Absolution),并赋予名目尺度1、3、5、7、9的衡量值,另设四个尺度介于五个基本尺度之间,并赋予2、4、6、8的衡量值,共计九个尺度,各尺度所代表之意义如下表所示——
在这里插入图片描述
在AHP层次分析法操作流程中,第一步骤首先问题描述,而后判别影响要素并建立层级结构,并设计问卷项目,而后依问卷收集的数据资料找出各层级间决策属性的相对重要性,并依此建立成对比较矩阵用以计算矩阵特征值与特征向量,所得出的数据经由一致性检定及层级结构一致性检定的回馈修正后,便可计算出各指标之权重以协助选出最适决策方案。

手动划重点(以下)
基本思路:先分解后综合

首先将所要分析的问题层次化,根据问题的性质和要达到的总目标,将问题分解成不同的组成因素,按照因素间的相互关系及隶属关系,将因素按不同层次聚集组合,形成一个多层分析结构模型,最终归结为最低层(方案、措施、指标等)相对于最高层(总目标)相对重要程度的权值或相对优劣次序的问题。

运用层次分析法建模,大体上可按下面四个步骤进行:

  1. 建立递阶层次结构模型;
  2. 构造出各层次中的所有判断矩阵;
  3. 层次单排序及一致性检验;
  4. 层次总排序及一致性检验。

2、例题的建模分析

例题复习:复习直接看此链接,完美讲解例题,不过代码有误别看了

★网上代码很多都特么跑不了,收藏一个能动的——
层次分析评价交通模型

clc
clear
a=[1 1/6 1/3 1/4;6 1 5 5;3 1/5 1 2;4 1/5 1/2 1]
b1=[1 2 6 4;1/2 1 6 4;1/6 1/6 1 1/3;1/4 1/4 3 1]
b2=[1 2 5 4;1/2 1 5 4;1/5 1/5 1 1/2;1/4 1/4 2 1]
b3=[1 5 3 5;1/5 1 2 2;1/3 1/2 1 1/2;1/5 1/2 2 1]
b4=[1 1/3 1/6 1/7;3 1 1/5 1/4;6 5 1 1/3;7 4 3 1] 
b=cat(3,b1,b2,b3,b4)
lammax_a=max(eig(a));%b为a矩阵的最大特征值
CI=(lammax_a-length(a))/(length(a)-1);
RI=[0 0 0.58 0.96 1.12 1.24 1.32 1.41 1.45];
CR=CI/RI(length(a))  
for i=1:4
    lammax_b(i)=max(eig(b(:,:,i)))
    CI_b(i)=(lammax_b(i)-4)/(4-1)
    CR_b(i)=CI_b(i)/RI(4)
end
for i=1:(length(a))
c=prod(a(i,:))^(1/length(a));%计算每一行的几何平均值
d(i)=c;
end
for i=1:length(a)
    e=d(i)/sum(d);
    w(i)=e;
end
for j=1:4
    for i=1:4
c=prod(b(i,:,j))^(1/4)   %计算每一行的几何平均值
d(i)=c;
end
for i=1:4
    e=d(i)/sum(d);
    wb(j,i)=e;
end
end
m=wb'
for i=1:4
 u=m*w'
zong(i)=sum(u(i,:))
end
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章