Chaos is a ladder.|

West11

园龄:11个月粉丝:1关注:1

层次分析法

需要评价指标:网络搜索……

问题描述

问题分为三层:目标层,准则层,方案层。

以一个经典的旅游地选取为例,问题得层次结构如下:

问题解决步骤

首先,对准则层构造判断矩阵,得到特征向量,验证一致性,若一致性良好,则特征向量可以表示每个准则的权重。

然后,对于准则层的每个准则,都可以构建一个所有方案再该准则上的矩阵,得到特征向量作为所有方案在某个指标上的得分。

最后,再利用权重算总分。

正互反矩阵(判断矩阵)

判断矩阵的作用:

对每一层的指标进行打分,得到指标的权重,然后将这些权重用于下一层的指标。

性质 :

AijAji=1

A11=A22==1

Aij>0

一致反矩阵:每一行或每一列成比例

引理:n阶一致反矩阵A的特征值λmax=n,

当且仅当A为正互反矩阵且不一致时,一定满足λmax>n.

一致性检验步骤:

一致性检验合格的矩阵才能使用,从而获得权重。

1.计算一致性检验指标CI=(λmaxn)/(n1).

2.查找对应的平均随机一致性指标RI

3.计算一致性比例CR=CI/RI.(CR<0.1,判断矩阵的一致性可以接受,否则需要修正)

一致矩阵计算权重:

直接算特征向量,以特征值最大的向量的各个分量作为权重。

代码

function [w,t] = AHP(A)
%w为准则层特征向量,t为则层最大特征根
%判别矩阵具有完全一致性
[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); % t指的是最大的特征值
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

end

本文作者:cxy1114blog

本文链接:https://www.cnblogs.com/cxy1114blog/p/18300837

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   West11  阅读(19)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起