是偏主观的确定权重的方法
用于解决复杂的决策问题,比如最佳方案的选取、评价类的问题、指标体系的优选。
一. 理论 步骤
大致分为以下四个步骤:
① 确定目标层、准则层、方案层
② 构造判断矩阵
Ci:Cj→aij,即Ci的重要程度/Cj的重要程度。
A=aij(n×n),aij>0,aij=1/aji(允许不一致,但要确定不一致的范围,即③)
实际上我们需要构造出一个准则层关于目标层的判断矩阵以及五个方案层关于准则层的矩阵,一共六个判断矩阵。
如果A不是一致阵,则需要通过一致性检验
③ 一致性检验
(1) 首先计算一致性指标CI :
其中λ为最大特征根。CI越大,不一致性越大
(2) 查找对应的平均随机一致性指标RI
注:在实际运用中,n很少超过10,如果指标的个数大于10,则可考虑建立二级指标体系,或使用我们以后要学习的模糊综合评价模型。此外,RI 可以直接查表使用即可。
(3) 计算一致性比例CR
如果 CR < 0.1, 则可认为判断矩阵的一致性可以接受;否则需要对判断矩阵进行修正。
④ 计算权重
简化计算方法:
最终得到如下图所示的权重矩阵:
ps: 每个矩阵都需要通过一致性检验。
然后就可以计算每个地点的最终的得分了,比如苏杭得分:指标权重×苏杭与其他两种方案中的权重,即前两列相乘:
0.5954×0.2636+0.0819×0.4758+0.4286×0.0538+0.6337×0.0981+0.1667×0.1087=0.299.
二、代码
使用方法
(1)构造判断矩阵A
(2)将下文代码复制粘贴到Matlab中即可
例如:A=[1 3 5;0.33 1 3;0.2 0.33,1]
clc,clear;
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