数学建模学习笔记(二)——Topsis优劣解距离法
(續上篇文章)層次分析法的局限
上一篇文章中,層次分析法有這樣的局限
因此,為對這些情況做出更為精準的分析,我們可以使用Topsis優劣解距離法。
Topsis優劣解距離法介紹
Topsis優劣解距離法是一種綜合評價方法,主要優點是能夠充分利用原始數據來進行分析。
主要步驟為:
正向化簡介
| 極大型指標 | 數據越大越好 | 成績、水體氧氣含量…… |
| 極小型指標 | 數據越小越好 | 細菌含量、水體富營養化程度…… |
| 中間型指標 | 數據越靠近一個中間的值越好 | PH值…… |
| 區間型指標 | 數據在一個區間中最好 | 人體體溫、水體植物量 |
在Topsis第一步中,我們需要將數據進行正向化處理,一般的處理模式都是將其他類型指標轉化為極大型指標。下面敘述轉化方法:
轉化公式為:max?x轉化公式為:max-x轉化公式為:max?x同時,如果所有數據都是正數(注意正數不包含0哦~~)也可以使用公式 1x\frac{1}{x}x1?,但主要推薦使用 max?xmax-xmax?x 來轉化。
(正向化公式不唯一,如果有更好的公式,歡迎告訴我,我會持續更新hhh)
中間型指標一般會有一個最佳數值,記為 xbestx_{best}xbest? ,設 {xix_ixi?} 是中間型指標序列,那么正向化公式為:M=max∣xi?xbest∣xi^=1?∣xi?xbest∣MM = max{|x_i - x_{best}|} \\ \hat{x_i} = 1 - \frac{|x_i - x_{best}|}{M}M=max∣xi??xbest?∣xi?^?=1?M∣xi??xbest?∣?例如:對于PH值的正向化(xbest=7,max=3x_{best}=7, max=3xbest?=7,max=3)
| 1 | 1?63=?11-\frac{6}{3}=-11?36?=?1 |
| 6 | 1?13=231-\frac{1}{3}=\frac{2}{3}1?31?=32? |
| 8 | 1?13=231-\frac{1}{3}=\frac{2}{3}1?31?=32? |
| 10 | 1?33=01-\frac{3}{3}=01?33?=0 |
區間型指標一般也會有一個最佳區間 [a,b][a, b][a,b] ,同樣設 {xi}\{x_i\}{xi?} 是區間型指標序列,那么正向化公式為:M=max{a?min{xi},max{xi?b}}xi^={1?a?xiM,a<xi,1,a≤xi≤b,1?xi?bM,xi<bM = max\{a-min\{x_i\}, max\{x_i-b\}\} \\ \\ \hat{x_i}=\left\{ \begin{aligned} & 1-\frac{a-x_i}{M}, a<x_i, \\ \\ & 1, a \leq x_i \leq b, \\ \\ & 1-\frac{x_i-b}{M}, x_i<b \end{aligned} \right.M=max{a?min{xi?},max{xi??b}}xi?^?=???????????????????????1?Ma?xi??,a<xi?,1,a≤xi?≤b,1?Mxi??b?,xi?<b?例如對于人體體溫的轉化:
a=36,b=37,M=max{36?35.2,38.4?37}=1.4a=36, b=37, M = max\{36-35.2, 38.4-37\}=1.4a=36,b=37,M=max{36?35.2,38.4?37}=1.4
| 35.2 | 0.4286 |
| 35.8 | 0.8571 |
| 36.6 | 1 |
| 37.1 | 0.9286 |
| 37.8 | 0.4286 |
| 38.4 | 0 |
下面來看一個具體的例子
| 小明 | 89 | 2 | 2 | 50 |
| 小剛 | 60 | 0 | 4 | 60 |
| 小張 | 74 | 1 | 6 | 70 |
| 小李 | 99 | 3 | 8 | 80 |
由原始數據可知,成績指標為極大型指標,過失次數為極小型指標,競賽次數為區間型指標,總和為中間型指標。
根據上面描述的方法可以得到正向化矩陣為:X=[89100.56031174210.599000]X= \begin{bmatrix} 89 & 1 & 0 & 0.5 \\ 60 & 3 & 1 & 1 \\ 74 & 2 & 1 & 0.5 \\ 99 & 0 & 0 & 0\\ \end{bmatrix}X=?????89607499?1320?0110?0.510.50??????2. 將正向化的矩陣進行標準化去除量綱的影響
標準化公式為:zij=xij∑i=1nx02(每一個元素/其所在列的元素的平方和)標準化公式為:z_{ij} = \frac{x_{ij}}{\sqrt{\sum_{i=1}^n x_0^2}}(每一個元素 / \sqrt{\text{其所在列的元素的平方和}})標準化公式為:zij?=∑i=1n?x02??xij??(每一個元素/其所在列的元素的平方和?) S=[0.54370.267300.40820.36650.80180.70710.81650.45200.53450.70710.40820.6048000]S=\begin{bmatrix} 0.5437 & 0.2673 & 0 & 0.4082 \\ 0.3665 & 0.8018 & 0.7071 & 0.8165 \\ 0.4520 & 0.5345 & 0.7071 & 0.4082 \\ 0.6048 & 0 & 0 & 0\\ \end{bmatrix}S=?????0.54370.36650.45200.6048?0.26730.80180.53450?00.70710.70710?0.40820.81650.40820??????
3. 將標準化矩陣進行歸一化
- 求解樣本數據與最大值和最小值的距離
定義最大值 Z+=(max{z11,z21,?,zn1},max{z12,z22,?,zn2},?,max{z1m,z2m,?,znm})Z^+ = (max\{z_{11}, z_{21}, \cdots, z_{n1}\}, max\{z_{12}, z_{22}, \cdots, z_{n2}\}, \cdots, max\{z_{1m}, z_{2m}, \cdots, z_{nm}\})Z+=(max{z11?,z21?,?,zn1?},max{z12?,z22?,?,zn2?},?,max{z1m?,z2m?,?,znm?})
定義最小值 Z?=(min{z11,z21},?,zn1},min{z12,z22,?,zn2},?,min{z1m,z2m,?,znm})Z^- = (min\{z_{11}, z_{21}\}, \cdots, z_{n1}\}, min\{z_{12}, z_{22}, \cdots, z_{n2}\}, \cdots, min\{z_{1m}, z_{2m}, \cdots, z_{nm}\})Z?=(min{z11?,z21?},?,zn1?},min{z12?,z22?,?,zn2?},?,min{z1m?,z2m?,?,znm?})
因此,第i(i=1,2,?,n)i(i=1, 2, \cdots, n)i(i=1,2,?,n)個評價對象與最大值的距離Di+=∑j=1m(Zj+?zij)2D_i^+ = \sqrt{\sum_{j=1}^{m}(Z_j^+-z_{ij})^2}Di+?=∑j=1m?(Zj+??zij?)2?
第i(i=1,2,?,n)i(i=1, 2, \cdots, n)i(i=1,2,?,n)個評價對象與最小值的距離Di?=∑j=1m(Zj??zij)2D_i^- = \sqrt{\sum_{j=1}^{m}(Z_j^- - z_{ij})^2}Di??=∑j=1m?(Zj???zij?)2?
那么,我們可以計算出第 i(i=1,2,?,n)i(i=1, 2, \cdots, n)i(i=1,2,?,n) 個評價對象未歸一化的得分:Si=Di?Di++Di?S_i = \frac{D_i^-}{D_i^+ + D_i^-}Si?=Di+?+Di??Di???,即:Stand_X=[0.17310.42400.32790.0751]Stand\_X=\begin{bmatrix} 0.1731\\ 0.4240\\ 0.3279\\ 0.0751\\ \end{bmatrix}Stand_X=?????0.17310.42400.32790.0751??????
因此可以得到最終排序結果為:
| 小剛 | 1 |
| 小張 | 2 |
| 小明 | 3 |
| 小李 | 4 |
總結:
模型拓展
Topsis模型還可以加入權重,因此可以將上一篇文章中的層次分析法應用于該模型中。只需要在計算距離時乘以權重即可。具體公式為:Di+=∑j=1mωj(Zj+?zij)2Di?=∑j=1mωj(Zj??zij)2D_i^+ = \sqrt{\sum_{j=1}^{m}\omega_j(Z_j^+-z_{ij})^2} \\ D_i^- = \sqrt{\sum_{j=1}^{m}\omega_j(Z_j^--z_{ij})^2}Di+?=j=1∑m?ωj?(Zj+??zij?)2?Di??=j=1∑m?ωj?(Zj???zij?)2?(ωj\omega_jωj?為權重)
這就是Topsis優劣距離法的步驟。其中的數據處理可以使用MatlabMatlabMatlab編程計算。如果有什么錯誤的話,煩請告知~~~
有什么建議也請告訴我哦~~~
總結
以上是生活随笔為你收集整理的数学建模学习笔记(二)——Topsis优劣解距离法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 镜像安装linux选择内核版本,在Cen
- 下一篇: 两个html页面之间通讯,面试官:前端跨