关于程序员:TOPISIS综合评价算法

TOPSIS的全称是“迫近于现实值的排序办法”

依据多项指标、对多个计划进行比拟抉择的分析方法,这种办法的中心思想在于首先确定各项指标的正现实值和负现实值,所谓正现实值是一构想的最好值(计划),它的的各个属性值都达到各候选计划中最好的值,而负现实解是另一构想的最坏的值(计划),而后求出各个计划与正现实值和负现实值之间的加权欧氏间隔,由此得出各计划与最优计划的靠近水平,作为评估计划的优劣规范。

%A为决策矩阵,W为权值矩阵,M为正指标所在的列,N为负指标所在的列

A=xlsread('F:/DATA/q2.xls','N15:U19');
W=[0.125 0.125 0.125 0.125 0.125 0.125 0.125 0.125];
[ma,na]=size(A);          %ma为A矩阵的行数,na为A矩阵的列数
 for i=1:na
     B(:,i)=A(:,i)*W(i);  %按列循环失去[加权标准化矩阵]
end
V1=zeros(1,na);            %初始化正现实解和负现实解
V2=zeros(1,na);
BMAX=max(B);               %取加权标准化矩阵每列的最大值和最小值
BMIN=min(B);               
for i=1:na
     %if i<=size(M,2)      %循环失去现实解和负现实解,留神判断,不然会超个数
     V1(i)=BMAX(i);
     V2(i)=BMIN(i);
     %end
     %if i<=size(N,2)
     %V1(N(i))=BMIN(N(i));
     %V2(N(i))=BMAX(N(i));
     %end
end

for i=1:ma              %按行循环求各计划的贴近度
     C1=B(i,:)-V1;
     S1(i)=norm(C1);    %S1,S2别离为离正现实点和负现实点的间隔,用二阶范数

     C2=B(i,:)-V2;
     S2(i)=norm(C2);
     T(i)=S2(i)/(S1(i)+S2(i));     %T为贴近度
end
output_args=T

 

 

 


评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理