
层次分析法
| 适用问题类型 | 主观决策权重计算 |
|---|---|
| 常用程度 | ⭐⭐ |
| 难度 | ⭐⭐ |
核心思路:将方案层对准则层的权重及准则层对目标层的权重进行综合
首先确定:
- 评价目标是什么
- 评价指标有哪些
- 有什么可选方案
两两比较法
标准:
1.首先得到如下判断矩阵,并定义如下,得到指标重要程度
2.确定待选方案在某一指标上的得分
3.一致性判断
💡
注意到得到的判断矩阵可能存在不一致的情况,因此先进行一致性检验
- 三种判断方法
c.随机一致性指标表
d.一致性比例
4.权重计算
💡
分别计算准则层和方案层权重
- 算术平均法求权重(不常用)
- 特征值法求权重
- 归一化:
5.层次总排序/层次一致性判断
代码部分
criterion_matrix=[1 0.5 4 3;2 1 5 5;0.25 0.2 1 0.25;1/3 0.2 4 1];
scheme_mat_1=[1 2 5;0.5 1 2;0.2 0.5 1];
scheme_mat_2=[1 1 3;1 1 2;1/3 0.5 1];
scheme_mat_3=[1 2 3;0.5 1 2;1/3 0.5 1];
scheme_mat_4=[1 3 5;1/3 1 4;0.2 0.25 1];
%定义判断矩阵
for n=1:4
mat=['co(scheme_mat_' num2str(n) ')'];
eval(mat);
end
%判断一致性
for n=1:4
mat=['weight(scheme_mat_' num2str(n) ')'];
eval(mat);
end
%分别求出方案层权重
co(criterion_matrix);
weight(criterion_matrix);
%最后求出准则层权重
%导入excel进行计算即可function co(matrix)
[n n]=size(matrix);
[V,D]=eig(matrix);
lambda=max(max(D));
CI=(lambda-n)/(n-1);
RI=[0 0.0001 0.52 0.89 1.12 1.26];
CR=CI/RI(n);
if CR<0.1
disp('通过一致性检验');
else
x=['未通过一致性检验,请调整参数'];
disp(x)
end
endfunction weight(matrix)
[V D]=eig(matrix);
temp=V(:,1);
omega=temp ./ sum(temp);
disp(omega);
end











