层次分析法
层次分析法
层次分析法可以利用树状的层级结构,将复杂的决策问题在一个层级中区分为数个简单的子问题,并且每个子问题可以独立进行分析,这个层级中的子问题可以包含是任何类型的子问题,无论是有形的还是无形的,仔细计算的或者粗略估计的,理解清晰或模糊的,只要是用于最终决策的子问题都可以包括于此
步骤和方法
建立层次结构:
- 最高层:决策的目的、要解决的问题
- 中间层:考虑的因素、决策的准则。
- 最低层:决策时的备选方案
对于相邻的两层,称高层为目标层,低层为因素层。
构造判断(成对比较)矩阵:
一致矩阵法:
- 不把所有因素放在一起,而是两两相互比较。
- 对此时采用相对尺度,以尽可能减少性质不同的诸因素相互比较的困难,以提高精确度。
判断矩阵的元素aij用1-9标度方法给出。
标度 | 含义 |
---|---|
1 | 表示两个因素相比,具有同样重要性 |
3 | 表示两个因素相比,一个因素比另一个因素稍微重要 |
5 | 表示两个因素相比,一个因素比另一个因素明显重要 |
7 | 表示两个因素相比,一个因素比另一个因素强烈重要 |
9 | 表示两个因素相比,一个因素比另一个因素极端重要 |
2,4,6,8 | 上述两相邻判断的中值 |
倒数 | 因素i和j比较判断aij,则因素j与i比较的判断aji=1/aij |
示例:
现对于目标O有C1,C2,C3,C4,C5五个准则
C1 | C2 | C3 | C4 | C5 | |
---|---|---|---|---|---|
C1 | 1 | 1/2 | 4 | 3 | 3 |
C2 | 2 | 1 | 7 | 5 | 5 |
C3 | 1/4 | 1/7 | 1 | 1/2 | 1/3 |
C4 | 1/3 | 1/5 | 2 | 1 | 1 |
C5 | 1/3 | 1/5 | 3 | 1 | 1 |
Ci:Cj=aij A=(aij)n*n
A是互反矩阵,A~成对比矩阵
这时会发现成对比较不一致的情况:
a21=2(C2:C1);a13=4(C1:C3)\(\Rightarrow\)a23=8(C2:C3)
允许不一致,但要确定不一致的允许范围。
设W=w1,w2,…,wn,令aij=wi/wj;满足aij*ajk=aik的正互反阵A称一致阵。
一致阵的性质:
- A的秩为1,A的唯一非零特征根为n
- 非零特征根n所对应的特征向量归一化后可作为权向量
对于不一致(但在允许范围内)的成对比较阵A,用对应于最大特征根\(\lambda\)的特征向量作为权向量w,即Aw=\(\lambda\)w。
层次单排序及其一致性检验:
对应于判断矩阵最大特征根\(\lambda\)max的特征向量,经归一化(使向量中各元素之和等于1)后记为W。
W的元素为同一层次因素对于上一层次因素某因素相对重要性的排序权值,这一过程称为层次单排序。
能否确认层次单排序,需要进行一致性检验,所谓一致性检验是指对A确定不一致的允许范围。
定理:n阶一致阵的唯一非零特征根为n 。
定理:n阶正互反阵A 的最大特征根\(\lambda\)\(\geq\)n,当且仅当\(\lambda\)=n时 A为一致阵。
由于\(\lambda\)连续的依赖于aij,则\(\lambda\)比n大的越多,A的不一致性越严重。用最大特征值对应的特征向量作为被比较因素对上层某因素影响程度的权向量,其不一致程度越大,引起的判断误差越大。因而可以用\(\lambda\)-n数值的大小来衡量A的不一致程度。
定义一致性指标:
- CI=0,有完全的一致性
- CI接近于0,有满意的一致性
- CI越大,不一致越严重
为了衡量CI的大小,引入随机一致性指标RI。
n | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|---|
RI | 0 | 0 | 0.58 | 0.90 | 1.12 | 1.24 | 1.32 | 1.41 |
定义一致性比率:
一般,当一致性比率CR<0.1时,认为A的不一致程度在容许范围之内,有满意的一致性,通过一致性检验。可用其归一化特征向量作为权向量,否则要重新构造成对比矩阵A,对aij加以调整。
层次总排序及其一致性检验:
- 计算某一层次所有因素对于最高层(总目标)相对重要性的权值,称为层次总排序。
- 这一过程是从最高层次到最低层次依次进行的。
A层m个因素A1,A2,…,Am,对总目标Z的排序为a1,a2,…,am。
B层n个因素对上层A中因素为Aj的层次单排序为b1j,b2j,…,bnj。
B层的层次总排序为:
层次总排序的一致性检验
设B层B1,B2,…,Bn对上层(A层)中因素Aj的层次单排序一致性指标为CIj,随即一致性指标RIj,则·层次总排序的一致性比率为:
当CR<0.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
当A=[1 3 5;0.33 1 3;0.2 0.33,1]时。
请输入准则层判断矩阵A(n阶)
A=[1 3 5;0.33 1 3;0.2 0.33,1]
准则层特征向量w=
0.6376
0.2578
0.1046
准则层最大特征根t=
3.0330
此矩阵的一致性可以接受!
CI=
0.0165
CR=
0.0318
更加专业的讲解请阅读—— 褚志鹏. Analytic Hierarchy Process Theory 層級分析法(AHP)理論與實作 (PDF). 国立东华大学 National Dong Hwa University.[2021-09-12]. (原始内容存档 (PDF)于2021-09-12).