数学建模-Topsis综合评价(评价模型)

时间:2024-11-13 08:14:45

Topsis算法核心思想是逼近理想解的排序方法。正理想解,各指标都达到各候选方案的最好值,负理想解,各指标都达到各候选方案的最差值。基于有限个评价对象与理想化目标的接近程度进行排序,在现有的对象中进行相对优劣的评价。

 

 

算法步骤:

1.构造决策矩阵vij,i为各方案,j为各指标

2.对决策矩阵进行规范化处理

3.构建权重wj,可通过熵权法、FAHP、相关性等方法确定权重

4.计算加权决策矩阵

图片

 5.计算正负理想解

图片

图片

6.计算各方案与正负理想解间的距离

图片

图片

7.计算各方案与正理想解的相对贴近度

图片

(*算法步骤参考了NHASMJ公众号*) 

Topsis算法基本思想:基于归一化后的原始数据矩阵,找出有限方案中的最优方案和最劣方案(分别用最优向量和最劣向量表示),然后分别计算各评价对象与最优方案和最劣方案间的距离,获得各评价对象与最优方案的相对接近程度,以此作为评价优劣的依据。

 代码实现:

x=[
21584   76.7    7.3  1.01    78.3    97.5
24372   86.3    7.4  0.80    91.1    98.0
22041   81.8    7.3  0.62    91.1    97.3
21115   84.5    6.9  0.60    90.2    97.7
24633   90.3    6.9  0.25    95.5    97.9];
%矩阵
[n,m]=size(x);
%将3,4的低优指标去倒数转化为高优指标并且把所有指标换成接近的大小
x(:,1)=x(:,1)/100;
x(:,3)=(1./x(:,3))*100;
x(:,4)=(1./x(:,4))*100;
zh=zeros(1,m);
d1=zeros(1,n); %最小值矩阵
d2=zeros(1,n); %最大值矩阵
c=zeros(1,n);  %接近程度
%归一化
for i=1:m
    for j=1:n
        zh(i)=zh(i)+x(j,i)^2;
    end
end
for i=1:m
    for j=1:n
       x(j,i)=x(j,i)/sqrt( zh(i));
    end
end
%计算距离
xx=min(x);
dd=max(x);
for i=1:n
    for j=1:m
        d1(i)=d1(i)+(x(i,j)-xx(j))^2;
    end
    d1(i)=sqrt(d1(i));
end
for i=1:n
    for j=1:m
        d2(i)=d2(i)+(x(i,j)-dd(j))^2;
    end
    d2(i)=sqrt(d2(i));
end
%计算接近程度
for i=1:n
    c(i)=d1(i)/(d2(i)+d1(i));
end