层次分析法用于没有明确评价标准的方案选择

层次分析法的基本步骤是确定准则层和方案层的权重,然后方案层和准则层的权重对应相乘相加,最终得到每个方案的评价分数,根据评价分数进行方案的选择,,具体步骤可以参见https://wenku.baidu.com/view/e34b51e99f3143323968011ca300a6c30c22f108.html

MATLAB程序

a=[1,1/2,4,3,3;2,1,7,5,5;1/4,1/7,1,1/2,1/3;1/3,1/5,2,1,1;1/3,1/5,3,1,1];
%[1,9,7,5;1/9,1,1/3,1/5;1/7,3,1,1/3;1/5,5,3,1];%任意待检验的矩阵
[m,n]=size(a);
for i=1:n
b(i)=sum(a(1:m,i));%列求和
end
for i=1:m
    for j=1:n
    c(i,j)=a(i,j)/b(j);
    end
end

for k=1:m
d(k)=sum(c(k,1:n));%行求和
end
mo=sum(d(1:n));
for k=1:m
    w(k)=d(k)/mo;%权重
end
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];
[e,v]=eig(a);
eigenvalue=diag(v);
 lamda=eigenvalue(1);
 y_lamda=e(:,1);
 CI=(lamda-n)/(n-1);
 CR=CI/RI(n);
 if CR<0.1
     disp('此矩阵能通过一致性检验');
     disp('CI=');disp(CI);
      disp('CR=');disp(CR);
 else
     disp('矩阵不能通过一致性检验');
 end
 %在准则层下,A1A2An的权重为a1,a2,an;
 %方案B1的权重为ww11,ww12,wwn;
 %方案B2的权重为ww21,ww22,ww23;
 %方案B3的权重为ww31,ww32,ww33;
 %各个方案的最终得分
%  for i=1:n
%    defen(i)=sum(w(i)*ww(i,1:n));
%   end

你可能感兴趣的:(层次分析法用于没有明确评价标准的方案选择)