层次分析法概念
1.什么是层次分析法
层次分析法,简称AHP,是指将与决策总是有关的元素分解成目标、准则、方案等层次,在此基础之上进行定性和定量分析的决策方法。该方法是美国运筹学家匹茨堡大学教授萨蒂于20世纪70年代初,在为美国国防部研究"根据各个工业部门对国家福利的贡献大小而进行电力分配"课题时,应用网络系统理论和多目标综合评价方法,提出的一种层次权重决策分析方法。
层次分析法是将决策问题按总目标、各层子目标、评价准则直至具体的备投方案的顺序分解为不同的层次结构,然后用求解判断矩阵特征向量的办法,求得每一层次的各元素对上一层次某元素的优先权重,最后再加权和的方法递阶归并各备择方案对总目标的最终权重,此最终权重最大者即为最优方案。
层次分析法比较适合于具有分层交错评价指标的目标系统,而且目标值又难于定量描述的决策问题。
2.基本原理
层次分析法根据问题的性质和要达到的总目标,将问题分解为不同的组成因素,并按照因素间的相互关联影响以及隶属关系将因素按不同层次聚集组合,形成一个多层次的分析结构模型,从而最终使问题归结为最低层(供决策的方案、措施等)相对于最高层(总目标)的相对重要权值的确定或相对优劣次序的排定。
层次分析法计算步骤
1.层次分析法基本步骤
运用层次分析法大致分为四个步骤:
- 建立层次结构模型
- 构建判断矩阵(成对矩阵)
- 层次单排序和一致性检验
- 层次总排序和一致性检验
2.建立层次结构模型
将决策的目标、考虑的因素(决策准则)和决策对象按它们之间的相互关系分为最高层、中间层和最低层,绘出层次结构图。
- 最高层(目标层)是指决策的目的、要解决的问题。
- 最低层(方案层)是指决策时的备选方案。
- 中间层(准则层)是指考虑的因素、决策的准则。
例如:我们要购买一个水杯,有A、B、C、D四种水杯可以购买,但是至于购买那个,我们会从颜色,价格,实用性,质量四个因素考虑;其中购买一个水杯就是我们的最终目标,即最高层;A、A、B、C、D作为备选方案即为最底层;颜色,价格,实用性,质量四个因素即是中间层;
递阶层次结构中的层次数与问题的复杂程度及需要分析的详尽程度有关,一般地层次数不受限制。每一层次中各元素所支配的元素一般不要超过 9 个。这是因为支配 的元素过多会给两两比较判断带来困难。
3.构建判断矩阵(成对矩阵)
在确定各层次各因素间的权重时需要通过构建判断矩阵完成,构建判断矩阵采用更容易让人接受方法,Saaty等人提出的一致矩阵法,即将所有因素进行两两比较,采用相同的比较尺度,提高准确度;例如对于表示是因素i与因素j的比较结果。
判断矩阵元素的尺度方法:
标度 含义 1 表示两个因素相比,具有同样重要性 3 表示两个因素相比,一个因素比另一个因素稍微重要 5 表示两个因素相比,一个因素比另一个因素明显重要 7 表示两个因素相比,一个因素比另一个因素强烈重要 9 表示两个因素相比,一个因素比另一个因素极端重要 2,4,6,8 上述两相邻判断的中值 倒数 具备性质 心理学家认为成对比较的因素不宜超过9个,即每层不要超过9个因素。
例如在上面的实例中,中间层可以构成一个4*4的判断矩阵,最底层可以在中间层的基础上可以构成4个4*4的判断矩阵。
4.层次单排序和一致性检验
层次单排序是否符合要求,需要进行一致性检验,即判断矩阵在确定的不一致范围内即可;
首先在构建判断矩阵时,判断矩阵A应该是完全一致的,即:
但根据实际情况,构造判断矩阵满足上述要求是不可能的,因此允许存在判断矩阵的不一致性的存在。
一致性矩阵:
定理1:n阶一致阵的唯一非零特征根为n
定理2:n阶正互反阵A的最大特征根λ≥n,当且仅当λ=n时A为一致阵
由于λ连续的依赖于aij,则λ比n大的越多,A的不一致性越严重。用最大特征值对应的特征向量作为被比较因素对上层某因素影响程度的权向量,其不一致程度越大,引起的判断误差越大。因而可以用λ-n数值的大小来衡量A的不一致程度。
一致性检验
一致性指标定义:
λ表示最大特征根,n表示唯一非零特征根。CI接近0,则一致性就越高,为衡量CI大小,专家引入一致性指标RI,并定义一致性比率:
当一致性比率CR<0.1,即可认为判断矩阵A的不一致程度在允许范围内,一致性程度较高,通过一致性检验。
一致性指标RI是随机构造500个判断矩阵的CI求均值得出的,Saaty的随机一致性指标RI表如下:
n 1 2 3 4 5 6 7 8 9 10 11 RI 0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51
通过一致性检验的判断矩阵,求得归一化的特征向量即可以作为因素的权向量,否则需要重构判断矩阵,适当调整aij。
简化计算正互反阵最大特征根和特征向量的方法:将判断矩阵按列进行归一化处理,之后求出列向量的算数平均作为权向量,按照Aw=λw即可求出最大特征根和特征向量,近似于精确结果。
5.层次总排序和一致性检验
计算某一层次所有因素对于最高层(总目标)相对重要性的权值,称为层次总排序。这一过程是从最高层次到最低层次依次进行的。这一步是在已知单层因素对上一层的相对重要性排序的前提下进行的。
例如在买杯子的例子中,中间层4个因素对于总目标可以进行单层次排序,在此基础上每个因素下对最底层的单层次排序,即颜色下对ABCD进行单层次排序,价格下对ABCD进行单层次排序……并且每个因素下的单层次排序会分别得到一致性指标CI和RI和权向量。最底层对于总目标的总排序,即最底层每个因素在上层每个因素下的权值*上层因素对于总目标的权值并求和得到。例如A在价格、质量、颜色、实用性四个因素下的权值*价格、质量、颜色、实用性的权值即可得到A对总目标的权值。
层次总排序和一致性检验:
设B层B1,B2,…,Bn对上层(A层)中因素Aj(j=1,2,…,m)的层次单排序一致性指标为CIj,随机一致性指标为RIj,则层次总排序一致性比率为:
其中a1表示A层的权值,当CR<0.1时,认为层次总排序通过一致性检验。层次总排序具有满意的一致性,否则需要重新调整那些一致性比率高的判断矩阵的元素取值。
算法评估
层次分析法是一种系统性的分析方法、简洁实用、所需要的定量的数据信息较少。但是也存在不少缺点:不能为决策提供新方案;定量数据较少,定性成分多,不易令人信服; 指标过多时,数据统计量大,且权重难以确定。所以在使用此方法时分解简化问题时把握主要因素,不漏不多;注意相比较元素之间的强度关系,相差太悬殊的要素不能在同一层次比较。
matlab代码实现
使用方法
(1)构造判断矩阵A
(2)将下文代码复制粘贴到Matlab中即可
例如:A=[1 3 5;0.33 1 3;0.2 0.33,1]
disp('请输入准则层判断矩阵A(n阶)');
A=input('A=');
[n,n]=size(A);
[V,D]=eig(A);%求得特征向量和特征值
%求出最大特征值和它所对应的特征向量
tempNum=D(1,1);
pos=1;
for h=1:n
if D(h,h)>tempNum
tempNum=D(h,h);
pos=h;
end
end
w=abs(V(:,pos));
w=w/sum(w);
t=D(pos,pos);
disp('决策层特征向量w=');disp(w);disp('决策层最大特征根t=');disp(t);
%下面进行一致性检验
CI=(t-n)/(n-1);RI=[0 0 0.52 0.89 1.12 1.26 1.36 1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59 1.60 1.61 1.615 1.62 1.63];
CR=CI/RI(n);
if CR<0.10
disp('此矩阵的一致性可以接受!');
disp('CI=');disp(CI);
disp('CR=');disp(CR);
else disp('此矩阵的一致性验证失败,请重新进行评分!');
end
参考文献
本文是学习笔记,借鉴许多文章,如有错误,请求指正。