本文同步发表于本人博客哔哔哔哔-数学建模-优劣解距离法(TOPSIS),未经允许严禁转载
优劣解距离法,又称逼近理想解法,是应用于评价类问题的解法,能够反应原始数据的信息.
在层次分析法(AHP)无法处理时,常用TOPSIS处理.
指标类型 | 描述 |
---|---|
极大型指标 | 越大越好 |
极小型指标 | 越小越好 |
中间型指标 | 越接近某个值越好 |
区间型指标 | 在某个区间最好 |
将所有指标统一为极大型指标的过程,称为指标正向化.
构造计算公式
x i ~ \tilde{x_i} xi~= m a x − x i max-x_i max−xi
若所有 x x x均为正数,则可以用以下公式表示
x i ~ \tilde{x_i} xi~= 1 x i \frac{1}{x_i} xi1
首先找出每个 x i x_i xi与最优值之间距离的最大值 M M M
M M M= m a x max max{ ∣ x i − x b e s t ∣ |x_i-x_{best}| ∣xi−xbest∣}
x i ~ \tilde{x_i} xi~=1- ∣ x i − x b e s t ∣ M \frac{|{x_i}-x_{best}|}{M} M∣xi−xbest∣
假设 { x i } \{x_i\} {xi}的最佳区间为 [ a . b ] [a.b] [a.b]
M M M= m a x max max { a − m i n { x i } , m a x { x i } − b } \{a-min\{x_i\},max\{x_i\}-b\} {a−min{xi},max{xi}−b}
x i ~ = { 1 − a − x M , x < a 1 , a ≤ x ≤ b 1 − x − b M , x > b \tilde{x_i}=\left\{ \begin{aligned} 1-\frac{a-x}{M},xb \end{aligned} \right. xi~=⎩ ⎨ ⎧1−Ma−x,x<a1,a≤x≤b1−Mx−b,x>b
标准化的目的是消除不同指标采用不同量纲的影响
在由 n n n个评价对象, m m m个已正向化的指标构成的正向化矩阵中
X = [ x 11 x 12 ⋯ x 1 m x 21 x 22 ⋯ x 2 m ⋮ ⋮ ⋱ ⋮ x n 1 x n 2 ⋯ x n m ] X= \begin{bmatrix} {x_{11}}&{x_{12}}&{\cdots}&{x_{1m}}\\ {x_{21}}&{x_{22}}&{\cdots}&{x_{2m}}\\ {\vdots}&{\vdots}&{\ddots}&{\vdots}\\ {x_{n1}}&{x_{n2}}&{\cdots}&{x_{nm}}\\ \end{bmatrix} X=⎣ ⎡x11x21⋮xn1x12x22⋮xn2⋯⋯⋱⋯x1mx2m⋮xnm⎦ ⎤
经过标准化处理后的矩阵记为 Z Z Z,那么 Z Z Z的每个元素为
z i j = x i j ∑ i = 1 n x i j 2 z_{ij}=\frac{x_{ij}}{\sqrt{\sum_{i=1}^n{x_{ij}}^2}} zij=∑i=1nxij2xij
可以表示为z与最小值的距离/z与最大值的距离+z与最小值的距离
若不考虑各因素的权重,则可按如下方式处理
已经过标准化处理的矩阵为
Z = [ z 11 z 12 ⋯ z 1 m z 21 z 22 ⋯ z 2 m ⋮ ⋮ ⋱ ⋮ z n 1 z n 2 ⋯ z n m ] Z= \begin{bmatrix} {z_{11}}&{z_{12}}&{\cdots}&{z_{1m}}\\ {z_{21}}&{z_{22}}&{\cdots}&{z_{2m}}\\ {\vdots}&{\vdots}&{\ddots}&{\vdots}\\ {z_{n1}}&{z_{n2}}&{\cdots}&{z_{nm}}\\ \end{bmatrix} Z=⎣ ⎡z11z21⋮zn1z12z22⋮zn2⋯⋯⋱⋯z1mz2m⋮znm⎦ ⎤
这里求出每列的最大值和最小值,并分别记为行向量 Z + Z^{+} Z+和 Z − = ( m a x { z 11 , z 21 , ⋯ , z n 1 } , ⋯ , m a x { z 1 m , z 2 m , ⋯ , z n m } ) Z^{-}=(max\{z_{11},z_{21},\cdots,z_{n1}\},\cdots,max\{z_{1m},z_{2m},\cdots,z_{nm}\}) Z−=(max{z11,z21,⋯,zn1},⋯,max{z1m,z2m,⋯,znm})
Z + = ( m i n { z 11 , z 21 , ⋯ , z n 1 } , ⋯ , m i n { z 1 m , z 2 m , ⋯ , z n m } ) Z^{+}=(min\{z_{11},z_{21},\cdots,z_{n1}\},\cdots,min\{z_{1m},z_{2m},\cdots,z_{nm}\}) Z+=(min{z11,z21,⋯,zn1},⋯,min{z1m,z2m,⋯,znm})
第 i ( i = 1 , 2 , ⋯ , n ) i(i=1,2,\cdots,n) i(i=1,2,⋯,n)个评价对象与最大值距离 D + = ∑ i = 1 n ( z j + − z i j ) 2 D^{+}=\sqrt{\sum_{i=1}^n(z_j^{+}-z_{ij})^2} D+=∑i=1n(zj+−zij)2
D − = ∑ i = 1 n ( z j − − z i j ) 2 D^{-}=\sqrt{\sum_{i=1}^n(z_j^{-}-z_{ij})^2} D−=∑i=1n(zj−−zij)2
第 i ( i = 1 , 2 , ⋯ , n ) i(i=1,2,\cdots,n) i(i=1,2,⋯,n)个评价对象最终结果为
S i = D i − D i + + D i − S_i=\frac{D_i^{-}}{D_i^{+}+D_i^{-}} Si=Di++Di−Di− ( 0 ≤ S i ≤ 1 ) (0\leq S_i\leq 1) (0≤Si≤1)
可见, S i S_i Si越大, D i − D_i^{-} Di−越小,越接近最大值.
若考虑各因素的权重,可以通过层次分析法(AHP)计算权重,并按如下处理
第 i ( i = 1 , 2 , ⋯ , n ) i(i=1,2,\cdots,n) i(i=1,2,⋯,n)个评价对象与最大值距离 D + = ∑ i = 1 n ω i ( z j + − z i j ) 2 D^{+}=\sqrt{\sum_{i=1}^n\omega_i(z_j^{+}-z_{ij})^2} D+=∑i=1nωi(zj+−zij)2
D − = ∑ i = 1 n ω i ( z j − − z i j ) 2 D^{-}=\sqrt{\sum_{i=1}^n\omega_i(z_j^{-}-z_{ij})^2} D−=∑i=1nωi(zj−−zij)2
当然,最后还需要检验所有权重之和是否唯一
∑ j = 1 m ω j = 1 \sum_{j=1}^m\omega_j=1 ∑j=1mωj=1