一 概述
Topsis法(逼近理想排序法)是系统工程中一种多目标决策方法,找出有限方案中的最优与最劣的方案,当某个可行解方案最靠近最优方案同时又远离最劣方案时,这个方案解的向量集就是最优影响评价指标。
Topsis法其作为一种综合指标的评价方法,区别于如模糊综合评判法,层次分析法,它的主观性比较强,不需要目标函数,也不需要通过相应的检验,即限制要求大大降低,这使它的适用范围更为广泛
二 Topsis影响力度算法步骤
2.1统一指标类型(一般正向化指标)
2.1.1 常见的四种指标总结
| 指标名称 |
指标特征 |
例子 |
| 极大型指标(利益型指标) |
越大(多)越好 |
成绩、收益 |
| 极小型指标(成本型指标) |
越小(少)越好 |
成本、污染程度、费用 |
| 中间型指标 |
中间值最好 |
水污染的pH值(最好是pH=7) |
| 区间型指标 |
特定区间内最好 |
疫情期间你的温度、水中营养物的含量 |
因为各指标之间的评价指标不一样,所以我们需要对各个指标进行指标正向化(现在通常是全部转化为极大型指标进行评价)
接下来分别介绍各个指标正向化的步骤
2.1.2 其他指标的指标正向化
①极小型指标—>极大化指标
运用公式:xi(更新值)=max−xi1
栗子:
| 姓名 |
成绩 |
吵架次数 |
极小型后的吵架次数 |
| 小明 |
98 |
4 |
0 |
| 小李 |
86 |
3 |
1 |
| 小红 |
61 |
0 |
4 |
| 小蓝 |
77 |
1 |
3 |
这个可以理解为我需要让他们的量化标准相同,所以脾气越好的个人加分越多,在选择方案时也需要按照相同的量化标准来进行评分2
②中间型指标—>极大型指标
运用公式:
M=max{∣xi−xbest∣}x^i=1−M∣xi−xbest∣
栗子:
| pH值(原) |
pH值(更改后) |
| 7 |
1-2∣7−7∣=1
|
| 6 |
1-2∣6−7∣=21
|
| 8 |
1-2∣8−7∣=21
|
| 9 |
1-2∣9−7∣=0
|
其中M=max{∣7−7∣,∣6−7∣,∣8−7∣,∣9−7∣}=2
这样将最好的值xbest设为了1,而最差的值为0.将所有的值缩放到了[0,1]区间中
③区间型指标—>极大型指标
运用公式:
M=max{∣xmin−xi∣,∣xi−xmax∣}xi=⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧1−Ma−xi xi<a1a≤xi≤b1−Mxi−bxi>b
栗子:(设人体温度最健康的区间是在[36.0,37.0])
| 温度(原) |
温度(正向化指标) |
| 35.2 |
0.4286 |
| 35.8 |
0.8571 |
| 36.2 |
1 |
| 37.1 |
0.9286 |
| 38.4 |
0 |
其中a=36b=37M=max{∣36−35.2∣,∣38.4−37∣}=1.4
2.2 正向化矩阵标准化
目的: 消除不同指标量纲的影响
假设有n个对象,m个指标,其经过正向化后的矩阵表示如下:
⎝⎜⎜⎛x11x21...xn1x12x22...xn2............x1mx2m...xnm⎠⎟⎟⎞那么,其标准化后的矩阵记为Z,Z中的每一个元素,都需要进行:zij=i=1∑nxij2xij即,(每一个元素/其所在列求和后开平方的值)
注意:标准化的方法有很多,没有必要局限于这一个,只要都能达到消除量纲的影响的结果就行
计算得分并归一化
Step1
由上述得到的Z矩阵,进而得到最优向量Zj+=1≤i≤mmax∣Zij∣和最劣向量Zj−=1≤i≤mmin∣Zij∣
Step2
计算所选取或构建的每个指标和最优向量的欧氏距离D+=j=1∑n(Zij−Zj+)2和最劣向量的距离D−=j=1∑n(Zij−Zj−)2
Step3
最后得到与最优值的相对接近程度Wi=Di++Di−Di−
2.3 Topsis总算法流程

三 部分说明
现实问题中对于这些评价指标的重要性会有一系列的判断说明,跟上篇博客AHP相关,我们可以通过层次分析法来判断各个指标的重要性程度,仅需满足
∑wi=1
因为层次分析法存在着主观赋值的成分,一般推荐用熵权法作为修正,但是目前我还没有学习,所以先不提这个,之后修改博客的时候会引入链接哒~
-
如果元素均为正数,也可以用xi=xi1 ↩︎
-
之后的中间型指标和区间型指标也采用相同思想 ↩︎