(The analytic hierarchy process ,簡稱AHP)建模比賽中最基礎的模型之一,其主要用于解決評價類問題(例如:選擇哪種方案最好、哪位運動員或者員工更優秀)。
首先給出一個例子(僅作為一個例子來展示,華科武大同學勿噴 ):
比如說小明高考結束了,在糾結于選擇華科還是武大,這個時候我們就可以分别對兩所學校進行打分:
比如說小明是個學霸,并且想脫單,因此他對各項指标做出一個權重分配:
學習氛圍(0.4)
就業前景(0.3)
男女比例(0.2)
校園景色(0.1)
括号裡面的數值表示小明認為的重要性程度(權重),其和為1
最後小明根據上網搜索,内心對華科和武大做了一個打分
指标權重 |
華科 |
武大 | |
學習氛圍 |
0.4 |
0.7 |
0.3 |
就業前景 |
0.3 |
0.5 |
0.5 |
男女比例 |
0.2 |
0.3 |
0.7 |
校園景色 |
0.1 |
0.25 |
0.75 |
計算出華科最終得分:0.515
0.7 * 0.4 0.5 * 0.3 0.3 * 0.2 0.25 * 0.1
武大最終得分:0.485
0.3 * 0.4 0.5 * 0.3 0.7 * 0.2 0.75 * 0.1
最終根據打分結果,小明選擇去了華科。
總結:
使用打分法解決評價問題,我們隻需要補充完整一個表格即可
指标權重 |
方案一 |
方案二 | |
指标一 | |||
指标二 | |||
指标三 | |||
指标四 |
其中指标權重這一列加和為1,方案一與方案二在同指标下橫向加和為1。具體可以見剛剛那個小明選擇學校的例子。
一道例題來引出層次分析法填好志願後,小明想去旅遊,在上網查閱後,暫定蘇杭、北戴河和桂林作為目的地。
現在請你确定評價指标、形成評價體系來為小明同學确定最佳方案。
确定評價指标、形成評價體系這樣的字眼實際上就是評價類問題。
解決評價類問題,大家首先需要想到以下三個問題:
對于這個問題,我們可以很容易地回答,
評價目标就是為小明選擇最佳的旅遊景點;
方案有三種,分别是去蘇杭、北戴河和桂林;
評價指标沒有給出相關數據支撐,需要我們自己查閱資料來确定。
假如我們在查閱了相關資料後選擇了以下五個指标:
此時我們隻需要确定各指标的權重,然後乘積加和就可以了。
但是确定各個指标的權重,卻不是那麼容易的,因為相對于個人的主觀意願來講,指标權重就會片面和非一般化。
此時我們需要一種科學的方法來确各指标的權重,此處引出分而治之的思想。
分而治之求得評價指标權重問題:一次性考慮這五個指标之間的關系,可能考慮不周
解決方法:兩個兩個指标之間繼續比較,此處一共需要比較C_5^210次,最終根據兩兩比較的結果推算出權重。
如果用下表來表示各個指标之間相互比較的重要程度标度,請你通過比較比較結果來确定各項指标的重要性:
标度 |
含義 |
1 |
表示兩個因素相比,同等重要 |
3 |
表示兩個因素相比,一個比一個稍微重要 |
5 |
表示兩個因素相比,一個比一個明顯重要 |
7 |
表示兩個因素相比,一個比一個強烈重要 |
9 |
表示兩個因素相比,一個比一個極端重要 |
2,4,6,8 |
上述兩個判斷的中值,表示介于xx與xx之間 |
倒數 |
A與B相比如果标度為3,那麼B相比于A就是1/3 |
這裡的重要性也可以理解為滿意度。
此時我們就可以根據上述重要性标度表來完善以下的表格:
景色 |
花費 |
居住 |
飲食 |
交通 | |
景色 |
1 | ||||
花費 |
1 | ||||
居住 |
1 | ||||
飲食 |
1 | ||||
交通 |
1 |
可以看到主對角線均為1,表示景色與景色相比,同等重要,如果把每個方格記為,其中i表示橫軸,j表示縱軸,比如 就表示花費相比較于居住條件來說強烈重要。
此處我們還需要注意,這個表格如果主對角線上面是整數,那麼主對角線下面就是分數,且存在關系X_{i,j}與X_{j, i}互為倒數。
假設我們已經得到了填好的表格,并且填寫結果如下:
景色 |
花費 |
居住 |
飲食 |
交通 | |
景色 |
1 |
2 |
4 |
3 |
3 |
花費 |
1/2 |
1 |
7 |
5 |
5 |
居住 |
1/4 |
1/7 |
1 |
2 |
3 |
飲食 |
1/3 |
1/5 |
1/2 |
1 |
1 |
交通 |
1/3 |
1/5 |
1/3 |
1 |
1 |
總結:上面這個表示一個5*5的方陣,我們記為A,對應的元素為a_{ij},這個方陣有如下特點:
實際上,上面這個矩陣即使層次分析法中的判斷矩陣。
有了上面的這個判斷矩陣我們就可以通過三個方法來計算出各項指标的權重,也就是下表中的第二列:
指标 |
權重 |
蘇杭 |
北戴河 |
桂林 |
景色 | ||||
花費 | ||||
居住 | ||||
飲食 | ||||
交通 |
一共有三種方法來計算這個指标權重,我們稍後進行介紹
我們繼續來求第二個判斷矩陣,各個景點相對于景色的判斷矩陣,假設求得的結果如下:
景色 |
蘇杭 |
北戴河 |
桂林 |
蘇杭 |
1 |
2 |
5 |
北戴河 |
1/2 |
1 |
2 |
桂林 |
1/5 |
1/2 |
1 |
同樣的,針對于花費、居住、飲食和居住這四個指标我們依次的求得判斷矩陣:
花費 |
蘇杭 |
北戴河 |
桂林 |
蘇杭 |
1 |
3 |
8 |
北戴河 |
1/3 |
1 |
3 |
桂林 |
1/8 |
1/3 |
1 |
居住 |
蘇杭 |
北戴河 |
桂林 |
蘇杭 |
1 |
1 |
3 |
北戴河 |
1 |
1 |
3 |
桂林 |
1/3 |
1/3 |
1 |
飲食 |
蘇杭 |
北戴河 |
桂林 |
蘇杭 |
1 |
3 |
4 |
北戴河 |
1/3 |
1 |
1 |
桂林 |
1/4 |
1 |
1 |
交通 |
蘇杭 |
北戴河 |
桂林 |
蘇杭 |
1 |
1 |
4 |
北戴河 |
1 |
1 |
4 |
桂林 |
1/4 |
1/4 |
1 |
但是這裡還存在一個問題,我們來看下面一個矩陣:
交通 |
蘇杭 |
北戴河 |
桂林 |
蘇杭 |
1 |
2 |
1 |
北戴河 |
1/2 |
1 |
4 |
桂林 |
1 |
1/4 |
1 |
假設我們記蘇杭為A,北戴河為B,桂林為C。
根據上表我們可以得到蘇杭的交通要好于北戴河,即A>B
蘇杭的交通和桂林的交通一樣好,即A = C
而北戴河的交通又要好于桂林,即B > C
此時,明顯發生了矛盾,此時a_{12}變得更大時,矛盾更加嚴重。
一緻矩陣:
交通 |
蘇杭 |
北戴河 |
桂林 |
蘇杭 |
1 |
2 |
4 |
北戴河 |
1/2 |
1 |
2 |
桂林 |
1/4 |
1/2 |
1 |
像上面這個矩陣一樣,各行各列之間呈倍數關系的矩陣的正互反矩陣稱為一緻矩陣
一緻矩陣:若矩陣中每個元素且,則我們稱矩陣為正互反矩陣
在層次分析法中,我們構造的判斷矩陣均是正互反矩陣
若正互反矩陣滿足,則我們稱其為一緻矩陣
注意:在使用判斷矩陣求權重之前,必須要進行一緻性檢驗
為一緻矩陣的充要條件
引理:A為n階方陣,且r(A) = 1,則A有一個特征值為tr(A),其餘特征值均為0
因為一緻矩陣的各行成比例,所以一緻矩陣的秩一定為1
由引理可知,一緻矩陣有一個特征值為n,其餘的特征值均為0
另外,我們還可以很容易的計算出特征值為n對應的特征向量為,也即是
再來看另一個引理:n階正互反矩陣A為非一緻矩陣時當且僅當最大特征值,且當正互反矩陣A非一緻時,一定滿足。
判斷矩陣越不一緻時,最大特征值與n的相差就越大。
我們對判斷矩陣就像一緻性檢查的時候,完全一緻并不符合實際,因此我們隻需要讓不一緻在一個範圍内就好了。
一緻性檢驗的步驟:step1:計算一緻性指标CI
step2:查找對應的平均一緻性指标RI
n |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
RI |
0 |
0 |
0.52 |
0.89 |
1.12 |
1.26 |
1.36 |
1.41 |
1.46 |
1.49 |
1.52 |
1.54 |
1.56 |
step3:計算一直比例CR:
如果CR<0.1,則可以認為判斷矩陣的一緻性可以接受;否則需要對判斷矩陣進行修正。
通過一緻性檢驗的一緻矩陣計算權重:一、假設有如下一緻矩陣:
景色 |
蘇杭 |
北戴河 |
桂林 |
蘇杭 |
1 |
2 |
4 |
北戴河 |
1/2 |
1 |
2 |
桂林 |
1/4 |
1/2 |
1 |
計算三個景點對于景色的權重,需要進行歸一化處理,這裡因為是一緻矩陣,因此使用哪一列計算出來的結果都是一樣的:
蘇杭 = 1 / (1 0.5 1.25)
北戴河 = 0.5 / (1 0.5 1.25)
桂林 = 0.25 / (1 0.5 1.25)
二、對于一個非一緻矩陣,也就是通過了一緻性檢驗的判斷矩陣:
景色 |
蘇杭 |
北戴河 |
桂林 |
蘇杭 |
1 |
2 |
5 |
北戴河 |
1/2 |
1 |
2 |
桂林 |
1/5 |
1/2 |
1 |
由于是非一緻矩陣,所以肯定每列計算出來的結果并不一緻
第一種方法:算術平均法求權重:首先按照列進行歸一化,這樣就會得到三組權重,将三組權重按照對應的标簽加和求平均即可,比較簡單
那麼算術平均法求得的權重向量
第二種方法:幾何平均法求權重
step1:将A的元素按照行相乘得到一個新的列向量
step2:将新的類向量的每個分量開n次方
step3:對該列向量進行歸一化即可得到權重向量
那麼算術平均法求得的權重向量
算術平均法權重 |
幾何平均法權重 | |
蘇杭 |
0.5949 |
0.5954 |
北戴河 |
0.2766 |
0.2764 |
桂林 |
0.1285 |
0.1283 |
可以看到算術平均和幾何平均求出來的權重差别不是很大,加和不為1,主要是因為四舍五入。
方法3:特征值法求權重
另外,我們很容易得到,特征值為n時,對應的特征向量剛好為,也即是,這一特征向量剛好就是一緻矩陣的第一列。
景色 |
蘇杭 |
北戴河 |
桂林 |
蘇杭 |
1 |
2 |
4 |
北戴河 |
1/2 |
1 |
2 |
桂林 |
1/4 |
1/2 |
1 |
權重一定要進行歸一化處理:
蘇杭 = 1 / (1 0.5 1.25)
北戴河 = 0.5 / (1 0.5 1.25)
桂林 = 0.25 / (1 0.5 1.25)
step1:求出矩陣A的最大特征值對應的特征向量
step2: 對求出的特征向量進行歸一化即可得到我們的權重
景色 |
蘇杭 |
北戴河 |
桂林 |
蘇杭 |
1 |
2 |
5 |
北戴河 |
1/2 |
1 |
2 |
桂林 |
1/5 |
1/2 |
1 |
依然對三個景點的景色求權重:
最大特征值為3.0055,一緻性比例CR=0.0053,對應的特征向量為:[-0.8902,-0.4132,-0.1918],對其進行歸一化:[0.5954,0.2764,0.1283]
算術平均法權重 |
幾何平均法權重 |
特征值法 | |
蘇杭 |
0.5949 |
0.5954 |
0.5954 |
北戴河 |
0.2766 |
0.2764 |
0.2764 |
桂林 |
0.1285 |
0.1283 |
0.1283 |
彙總結果得到權重矩陣
指标 |
指标權重 |
蘇杭 |
北戴河 |
桂林 |
景色 |
0.2636 |
0.5954 |
0.2764 |
0.1283 |
花費 |
0.4758 |
0.0819 |
0.2363 |
0.6817 |
居住 |
0.0538 |
0.4286 |
0.4286 |
0.1429 |
飲食 |
0.0981 |
0.6337 |
0.1919 |
0.1744 |
交通 |
0.1087 |
0.1667 |
0.1667 |
0.6667 |
據此,我們可以對蘇杭、北戴河和桂林進行打分計算方法如下:
蘇杭 = 0.2636 * 0.5954 0.4758 * 0.0819 0.0538 * 0.4286 0.0981 * 0.6337 0.1087 * 0.1667 = 0.299
同理可計算出北戴河得分為0.245,桂林得分為0.455,所以最佳旅遊景點為桂林。
層次分析法使用步驟:第一步:分析系統中各因素之間的關系,建立系統的遞階層次結構
層次結構圖
第二步:對于同一層次的各元素關于上一層次中某一準則的重要性進行兩兩比較,構造兩兩比較矩陣(判斷矩陣)。
關于這個判斷矩陣自己給出就好了。
第三步:對第二步得到的判斷矩陣進行一緻性檢驗,通過一緻性檢驗的判斷矩陣才能用來計算權重。
三個方法計算權重:
建議大家同時使用三種方法來求權重,為了保證結果的穩健性,本文采用三種方法來求權重,再根據得到的權重矩陣計算各方案的得分,并進行排序和綜合分析,避免采用單一的方法所産生的偏差,得出的結論更全面,更有效。
第四步:計算各層元素對系統目标的合成權重,并進行排序
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!