层次分析法

2022-11-15 18:49:33 浏览数 (3)

层次分析法

(The analytic hierarchy process,简称AHP)

  • 主要解决评价类问题(eg:选择哪种方案最好、哪位球员表现更优秀)
  • 解决最低层对最高层的相对权重问题

层次分析法要素

可以将决策问题分为3个或多个层次。

最高层:

  • 目标层,表示解决问题的目的
  • (表示解决问题的目的,总目标,1个)

中间层:

  • 准则层 、指标层、策略层、约束层
  • (表示采取某种措施、政策、方案等实现预定总目标所涉及的中间环节)

最底层:

  • 方案层
  • (表示将选用的解决问题的各种措施、政策、方案等等,通常有几个方案)

构造判断(成对比较矩阵)

RI查表可得

注意:用定量数据作比获得的矩阵显然满足一致性要求,不需要做一致性检验

Matlab层次分析法代码

代码语言:javascript复制
disp('请输入判断矩阵A(n阶)');
A=input('A=');
[n,n]=size(A);
x=ones(n,100);
y=ones(n,100);
m=zeros(1,100);
m(1)=max(x(:,1));
y(:,1)=x(:,1);
x(:,2)=A*y(:,1);
m(2)=max(x(:,2));
y(:,2)=x(:,2)/m(2);
p=0.0001;i=2;k=abs(m(2)-m(1));
while  k>p
  i=i 1;
  x(:,i)=A*y(:,i-1);
  m(i)=max(x(:,i));
  y(:,i)=x(:,i)/m(i);
  k=abs(m(i)-m(i-1));
end
a=sum(y(:,i));
w=y(:,i)/a;
t=m(i);
disp(w); %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];
CR=CI/RI(n);
if CR<0.10
    disp('此矩阵的一致性可以接受!');
    disp('CI=');disp(CI);
    disp('CR=');disp(CR);
end

注意:可于工作区找到更多的对应参数值

参考资料

1.例题

注意:指标权重相加等于1,方案分数分配也为1(eg: 0.7 0.3=1)

搜索网站

例题: 2014年美赛、2020年美赛D题

0 人点赞