层次分析法模型及求解
1.层次分析法(AHP)
a.概念
该方法将定量分析和定性分析结合起来,用决策者的经验判断各衡量目标能否实现的标准之间的相对重要程度,并合理地给出每个决策方案的每个标准权数,利用全书求出方案的优劣次序。比较有效地应用于解决难以用定量方法解决的决策问题
b.典型应用
(1)用于最佳方案的选取(选择运动员、选择地址)
(2)用于评价类问题(评价水质状况、评价环境)
(3)用于指标体系的优选(兼顾科学和效率)
c.使用步骤
(1)将问题划分为三层(也可以根据实际需要化为两层)
(2)在中间层构建层次矩阵
将两两元素放在一起,通过以下准则构建矩阵
构建出的矩阵称为正反矩阵,下面介绍一致矩阵的两个重要性质
(1)A的秩为1,A的唯一非零特征根为n
(2)非零特征根n所对应的特征向量归一化后可作为权向量
对于不一致的成对比较阵,我们用对应于最大特征根
λ
\lambda
λ的特征向量作为权向量,即
A
ξ
=
λ
ξ
A\xi=\lambda \xi
Aξ=λξ
(3)层次单排序及其一致性检验
层次单排序即矩阵
ω
\omega
ω的归一化
一致性检验即依照下列公式
为衡量CI的大小,引入随机一致性指标RI
我们利用上面两个指标,定义一致性比率,用这个比率来进行中间层的一致性检验
(4)对最底层元素相对于中间层构建多个比较矩阵,进行层次总排序及一致性检验
我们求出第三次
B
i
B_i
Bi相对于中间层
A
j
A_j
Aj的比较矩阵A,然后求对
A
j
A_j
Aj的权向量
ω
i
\omega_i
ωi
表中的每数列就是一个权向量
下面对该权重进行一致性检验:
这里用到CR定义为
下面做最后决策
我们按照中间层的
A
j
A_j
Aj的权重和最底层
B
I
B_I
BI的权重,计算总的权重,排出大小,做出选择
2.matlab求解
a.我们可以设计一个程序
输入比较矩阵即可
%使用方法
%(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
b.我们也可以用AHP软件来求解
# 3.层次分析法的优缺点 ## a.优点 (1)**系统性** 把所研究的问题看成一个系统,按照分解、比较判断、综合分析的思维方式进行决策分析,也是实际中继机理分析方法、统计分析方法之后发展起来的又一个重要的系统分析工具 (2)**实用性** 把定性与定量方法结合起来,能处理许多传统的优化方法无法处理的实际问题,应用范围广。而且将决策者和分析者联系起来,体现了决策者的主观意见,决策者可以直接利用它进行决策分析,增加了决策的有效性和实用性 (3)**简洁性** 计算简便,结果简单明确 ## b.缺点 粗略、主观 首先,它的比较、判断及结果都是粗糙的,不适于精度要求很高的问题 其次,从建立层次结构图到给出两两比较的矩阵,人的主观因素作用很大,使决策结果较大程度依赖于人的主观意志,可能难以为众人接受。
学习内容来源链接link