TOPSIS法(理想解法)

综合评价与决策方法之理想解法

简介:本文介绍多属性决策问题的理想解法,理想解法亦称为TOPSIS法,是一种有效的多指标评价方法。这种方法通过构造评价问题的正理想解负理想解,即各指标的最优解和最劣解,通过计算每个方案到理想方案的相对贴近度,即靠近正理想解和远离负理想解的程度,来对方案进行排序,从而选出最优方案。

文章目录

一.方法和原理

TOPSIS法(理想解法)TOPSIS法(理想解法)
用理想解法求解时只要在属性空间定义适当的距离测度就能计算备选方案与理想解的距离。TOPSIS法所用的是欧氏距离。至于既用正理想解又用负理想解是因为在仅仅使用正理想解时有时会出现某两个备选方案与正理想解的距离相同的情况,为了区分这两个方案的优劣,引入负理想解并计算这两个方案与负理想解的距离,与正理想解的距离相同的方案离负理想解远者为优。

二.TOPSIS法的计算步骤

TOPSIS法(理想解法)
TOPSIS法(理想解法)
TOPSIS法(理想解法)
属性有多种类型,包括效益性、成本型和区间型等。这三种属性中,效益性属性越大越好,成本型属性越小越好,区间型属性是在某个区间最佳。
TOPSIS法(理想解法)
TOPSIS法(理想解法)

三.示例

例题:研究生院试评估,为了客观地评价我国研究生教育的实际状况和各研究生院的教学质量,国务院学位委员会办公室组织过一次研究生院的估。为了取得经验,先选5所研究生院,收集有关数据资料进行了试评估,表14.1是所给出的部分数据。
TOPSIS法(理想解法)

1.第一步:数据预处理

数据预处理又称属性值的规范化,其有三个作用:必须在综合评价之前将属性的类型做一致化处理,使得表中任一属性下性能越优的方案变换后的属性值越大。(也称为指标正向化)②无量纲化,排除量纲的选用对决策或评估结果的影响。(去量纲即标准化)归一化,即把表中数值均变换到[0,1]区间上。

常用的属性规范化方法有以下几种:
TOPSIS法(理想解法)TOPSIS法(理想解法)TOPSIS法(理想解法)
TOPSIS法(理想解法)
TOPSIS法(理想解法)

MATLAB代码
clc, clear
x2=@(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; %最优区间,无法容忍下界和上界
x2data=[5 6 7 10 2]'; %x2属性值
y2=x2(qujian,lb,ub,x2data) %调用匿名函数,进行数据变换

TOPSIS法(理想解法)TOPSIS法(理想解法)
TOPSIS法(理想解法)

MATLAB代码
x=[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];
y=zscore(x)

注:标准化去量纲在数据预处理时一定要做。
TOPSIS法(理想解法)
注:还有非线性变换等其他方法。

2.第二步:构造加权规范阵

TOPSIS法(理想解法)

3.第三步:确定正负理想解

4.第四步:求备选方案到正负理想解的距离

TOPSIS法(理想解法)

5.第五步:计算排序指标值并排序

TOPSIS法(理想解法)

MATLAB代码
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);
x2=@(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)=x2(qujian,lb,ub,a(:,2)); %对属性2进行变换
b=a./vecnorm(a)     %利用矩阵广播进行向量规范化
w=[0.2 0.3 0.4 0.1];
c=b.*w;             %利用矩阵广播求加权矩阵
Cstar=max(c);       %求正理想解
Cstar(4)=min(c(:,4))  %属性4为成本型的
C0=min(c);            %q求负理想解
C0(4)=max(c(:,4))        %属性4为成本型的
Sstar=vecnorm(c-Cstar,2,2)  %逐行计算2范数即到正理想解的距离
S0=vecnorm(c-C0,2,2)        %逐行计算2范数即到负理想解的距离
f=S0./(Sstar+S0)
[sf,ind]=sort(f,'descend')       %求排序结果
上一篇:codeforces 580C Kefa and Park(DFS)


下一篇:基于qemu-riscv从0开始构建嵌入式linux系统ch0.引言