優劣解距離法(TOPSIS)
摘要
對於解決某個實際問題的若干個方案,常常給出非常多的指標來衡量方案間的優劣性,當這些指標的數據是確定的,比如某項學科的期末成績、池水含氮量等等,我們需要用優劣解距離法確定最優解。優劣解距離法通過將指標數據正向化后,計算比較空間內的優劣值,再通過計算每個解的指標向量與最劣向量的“距離” 得到每個解的優劣評分,最終,評分最高的解為最優解。
數學描述的優劣性
假設衡量方案 \(A,B,C\) 優劣性的指標只有一個 \(v\),我們獲得了各個方案在指標 \(v\) 下的得分:
指標 \(v\) 下的得分 | |
---|---|
\(A\) | \(a\) |
\(B\) | \(b\) |
\(C\) | \(c\) |
假設指標 \(v\) 的得分越高越好,顯然得分最高的方案最優。但僅用原始得分判斷並不嚴謹,因為我們進行比較的 “空間” 只在 \(A,B,C\) 三者之中,我們需要 \(A,B,C\) 三者的在指標 \(v\) 下的得分是 “相互影響” 的。我們給出下面的轉化公式:
其中 \(v_i\) 代表方案 \(i\) 在指標 \(v\) 下的原始得分,\(z_i\) 為轉化后的得分, \(\max\) 和 \(\min\) 為表格中原始得分的最大值與最小值
然后我們將轉化后的得分進行標准化處理,將每個得分除以得分平方和的平方根:
然后將其歸一化:
於是我們就得到了數學意義下優劣性得分。
指標的類型與指標正向化
極大型指標與正向化
前面描述的指標假定了得分越高越好,比如成績,這種指標叫做極大型指標。
但有些指標的得分並非越高越好,比如成本。
在進行優劣解距離之前,我們需要將非極大型指標全部轉化為極大型指標,叫做指標正向化。
極小型指標與其正向化
指標得分越小越好的指標叫做極小型指標,極小型指標的正向化非常容易:
中間型指標與其正向化
有一類指標為取值越接近某個值越好,這類指標叫做中間型指標。比如飲用水的 \(PH\) 值。
假設得到方案在中間型指標下的得分序列 \(\{x_i\}\) ,該指標的最佳值為 \(x_{best}\) ,那么,正向化公式如下:
\(X_i\) 為正向化后的指標得分值。
區間型指標與其正向化
區間型指標為指標值處於某個區間內最佳,這類指標叫做區間型指標。比如人的體溫。
假設得到方案在區間型指標下的得分序列 \(\{x_i\}\) ,該指標的最佳區間為 \([a,b]\) ,那么,正向化公式如下:
優劣解距離法
構造正向矩陣
假設我們有方案 \(p_1,p_2,...,p_m\),有指標 \(v_1,v_2,...,v_n\),那么,它們構造成一個指標矩陣 \(X_{m\times n}\)
方案\指標 | \(v_1\) | \(v_2\) | ... | \(v_n\) |
---|---|---|---|---|
\(p_1\) | ||||
\(p_2\) | ||||
... | ||||
\(p_m\) |
我們將該矩陣的所有指標正向化,形成正向矩陣 \(Z_{m\times n}\)
正向矩陣單位化
我們將正向矩陣中的每個元素除以其所在列的所有元素平方和的平方根,得到單位化后的正向矩陣:
計算優劣距離
由於此時指標不止一個,於是我們需要在指標 \(V\) 向量空間中考慮最大值與最小值。
極值向量
我們這樣定義最大值向量 \(Z^+\) :
同樣,最小值向量 \(Z^-\):
優劣距離
我們得到極值向量后,我們計算方案 \(i\) 的優劣距離:
定義方案 \(i\) 在各指標下得到的正向單位化的得分構成指標向量 \(D_i\) ,那么
優距離 \(D_i^+\):
劣距離 \(D_i^-\):
於是我們就得到了方案 \(i\) 的優劣性:
方案 | 優劣性 |
---|---|
1 | \(S_1\) |
2 | \(S_2\) |
... | ... |
\(m\) | \(S_m\) |
然后將其歸一化:
得分 \(S^{'}\) 最高的方案最優
帶權優劣距離
在前面的數學模型中,我們預先假定了所有指標的權重相同,然而事實是不同指標的權重不盡相同,比如描述綜合成績優劣的指標中,“語文、數學、外語” 的權重比 “體育、美術、音樂” 高。
帶權優劣距離模型
假設我們取得了這些指標的權重 \(w_i\) ,\(\sum{w_i} = 1\),那么,只需要修正優劣距離公式即可:
將取得的權重組成行向量 \(W\),我們將每個元素取平方根得到 \(W^{'}\)
於是,帶權最優距離為
帶權最劣距離為
指標權重可以通過層次分析法確定