TOPSIS评价法

目录

  • TOPSIS评价法
  • TOPSIS评价法流程图
  • 实例演示
    • 1.数据预处理
      • 区间性属性转化为效益性指标
      • 向量化处理
    • 2.加权处理
    • 3.正负理想值距离计算
      • 计算综合评价指标
  • matlab代码

TOPSIS评价法

评估方案中任何一个距离理想最优解和最劣解的综合距离

TOPSIS评价法流程图

TOPSIS评价法_第1张图片

实例演示

TOPSIS评价法_第2张图片

1.数据预处理

效益性指标`:正向化指标,数值越大说明决策者对该项指标越满意
成本性指标:负向化指标,数值越小说明决策者对该项指标越满意
区间式指标:指标处于最佳区间时说明决策者对该项指标越满意

区间性属性转化为效益性指标

设第i个指标的最佳属性区间为[ai0,ai*],可容忍区间为[ai’,ai’']
指标处于最优属性区间内,值设为1,指标处于可容忍区间外,值设为0。
对于不在最优属性区间却在可容忍区间内,通过下列公式计算
TOPSIS评价法_第3张图片

向量化处理

确保不同评价指标在同一数量级(0-1之间)
规范化的数值,同一属性指标的平方和为1
TOPSIS评价法_第4张图片

2.加权处理

在这里插入图片描述

3.正负理想值距离计算

TOPSIS评价法_第5张图片

计算综合评价指标

在这里插入图片描述

matlab代码

TOPSIS法
clc, clear
% 输入原始数据
a=[0.1	5	5000	4.7
 0.2	6	6000	5.6
 0.4	7	7000	6.7
 0.9	10	10000	2.3
 1.2	2	400	    1.8];
[m,n]=size(a);      % m是行数(方案数),n是列数(属性数)
区间型属性的变换
设第j个指标的最优属性区间为,为无法容忍下限,为无法容忍上限,则:

% 定义函数句柄b2,相当于在此定义了一个函数
% @(qujian,lb,ub,x)意味着调用b2时,需要给它括号里的四个参数
% (x>=lb & x<qujian(1))是逻辑与,如果&符号左右两边的条件都满足,则为1,否则为0
% 四种情况是互斥的,所以可以乘以各自区间条件逻辑计算后相加
a2=@(qujian,lb,ub,x)...
(1-(qujian(1)-x)./(qujian(1)-lb)).*(x>=lb & x<qujian(1))...
+(x>=qujian(1) & x<=qujian(2))...
+(1-(x-qujian(2))./(ub-qujian(2))).*(x>qujian(2) & x<=ub); 

% 设最优区间等参数
qujian=[5,6]; lb=2; ub=12;
a(:,2)=a2(qujian,lb,ub,a(:,2));     % 对生师比进行变换
向量规范化
每一列(同一属性/指标)的元素值都化为01的值,且平方和为1
norm求向量数范,等于一个向量中的所有元素求平方和再开根
公式:
for j=1:n
    b(:,j)=a(:,j)/norm(a(:,j));  %向量规划化
end
加权后求解
w=[0.2 0.3 0.4 0.1];  
ww = repmat(w,m,1);     % repmat复制得到m个权重矩阵w,在矩阵下面排列
c=b.*ww;      %求加权后的矩阵;

% 注意正理想解和负理想解的定义
% max(c)是包含矩阵c每一列的最大值的行向量
Cstar=max(c);    %求正理想解
Cstar(4)=min(c(:,4))  %属性4为成本型的!!!专门修改它
C0=min(c);       %q求负理想解
C0(4)=max(c(:,4))        %属性4为成本型的!!!专门修改它

for i=1:m
    Sstar(i)=norm(c(i,:)-Cstar);  %求到正理想解的距离
    S0(i)=norm(c(i,:)-C0);      %求到负理想的距离
end

% 综合评价指数f
f=S0./(Sstar+S0);
[sf,ind]=sort(f,'descend')       % 'descend'表示降序排序,得分高的放在第一位
sf是对综合评价指数f降序排序后的结果,ind对应原始元素的序号
ind=[4 3 2 1 5],代表第一名是第4号院校,第2名是3号院校……

# 适用赛题
1.题目提供了足够多的评价指标和数据
2.评价指标的类型差异很大
比如数值,比例,百分数,既有正相关评价指标又有负相关评价指标

你可能感兴趣的:(建模算法,算法)