日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数学建模学习笔记(二)——Topsis优劣解距离法

發布時間:2025/3/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数学建模学习笔记(二)——Topsis优劣解距离法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

(續上篇文章)層次分析法的局限

上一篇文章中,層次分析法有這樣的局限

  • 評價決策層不能太多;
  • 數據是已知的的話,便無法使用層次分析法進行精確的分析評價;
  • 因此,為對這些情況做出更為精準的分析,我們可以使用Topsis優劣解距離法。

    Topsis優劣解距離法介紹

    Topsis優劣解距離法是一種綜合評價方法,主要優點是能夠充分利用原始數據來進行分析。

    主要步驟為:

  • 將原始數據正向化
  • 將正向化矩陣進行標準化(消除量綱的影響)
  • 計算樣本數據與最大值、最小值的距離
  • 根據公式,利用距離計算未歸一化的得分
  • 最后進行排序即可
  • 正向化簡介

    指標名稱指標特點實例
    極大型指標數據越大越好成績、水體氧氣含量……
    極小型指標數據越小越好細菌含量、水體富營養化程度……
    中間型指標數據越靠近一個中間的值越好PH值……
    區間型指標數據在一個區間中最好人體體溫、水體植物量

    在Topsis第一步中,我們需要將數據進行正向化處理,一般的處理模式都是將其他類型指標轉化為極大型指標。下面敘述轉化方法:

  • 極小型指標 →\rightarrow 極大型指標
    轉化公式為:max?x轉化公式為:max-xmax?x同時,如果所有數據都是正數(注意正數不包含0哦~~)也可以使用公式 1x\frac{1}{x}x1?,但主要推薦使用 max?xmax-xmax?x 來轉化。
    (正向化公式不唯一,如果有更好的公式,歡迎告訴我,我會持續更新hhh)
  • 中間型指標 →\rightarrow 極大型指標
    中間型指標一般會有一個最佳數值,記為 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=maxxi??xbest?xi?^?=1?Mxi??xbest??例如:對于PH值的正向化(xbest=7,max=3x_{best}=7, max=3xbest?=7,max=3)
  • PHPH(正向化后)
    11?63=?11-\frac{6}{3}=-11?36?=?1
    61?13=231-\frac{1}{3}=\frac{2}{3}1?31?=32?
    81?13=231-\frac{1}{3}=\frac{2}{3}1?31?=32?
    101?33=01-\frac{3}{3}=01?33?=0
  • 區間型指標 →\rightarrow 極大型指標
    區間型指標一般也會有一個最佳區間 [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,axi?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.20.4286
    35.80.8571
    36.61
    37.10.9286
    37.80.4286
    38.40

    下面來看一個具體的例子

  • 原始數據為:
  • 姓名成績過失次數競賽次數總和
    小明892250
    小剛600460
    小張741670
    小李993880

    由原始數據可知,成績指標為極大型指標,過失次數為極小型指標,競賽次數為區間型指標,總和為中間型指標。

    根據上面描述的方法可以得到正向化矩陣為: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優劣距離法的核心在于計算距離z與最小值的距離z與最大值的距離+z與最小值的距離\frac{\text{z與最小值的距離}}{\text{z與最大值的距離+z與最小值的距離}}z與最大值的距離+z與最小值的距離z與最小值的距離?
  • 要區別歸一化和標準化,前者是對計算結果計算比例,后者是去除量綱的影響。
  • 模型拓展

    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=1m?ωj?(Zj+??zij?)2?Di??=j=1m?ωj?(Zj???zij?)2?(ωj\omega_jωj?為權重)

    這就是Topsis優劣距離法的步驟。其中的數據處理可以使用MatlabMatlabMatlab編程計算。如果有什么錯誤的話,煩請告知~~~

    有什么建議也請告訴我哦~~~

    總結

    以上是生活随笔為你收集整理的数学建模学习笔记(二)——Topsis优劣解距离法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。