層次分析法是將決策問題按目標層、決策層(可含多個決策層)、方案層的順序分為不同的層次結構,然後用求解判斷矩陣特徵向量的辦法,求得每一層次的各元素對上一層次某元素的優先權重,最後再用加權和的方法,觀察每個方案層對目標層的最終權重,此最終權重最大者即為最優方案
層次分析法特別適用於那些難於完全定量分析的問題,因為它是對一些較為複雜、較為模糊的問題作出決策的簡易方法
舉個例子就明白了
下面這個矩陣就是一致性矩陣
1241
/212
1/41
/21比如 a 的座標是(1,2),元素值為 2
b 的座標是(3,1),元素值為 1/4
那麼它們相乘得 1
/2,而它們平移相交處的座標(3,2)的元素值也是 1
/2,說明這對資料滿足一致性
同理,任意座標(i,j)與(j,k)的元素值乘積 等於 它們相交處的座標(i,k)的元素值
則說明這個矩陣為一致性矩陣
再來舉個反例
下面這個矩陣不是一致性矩陣
1231
/212
1/31
/21比如 a 的座標是(1,3),元素值為 3
b 的座標是(2,1),元素值為 1/2
那麼它們相乘得 3
/2,而它們平移相交處的座標(2,3)的元素值卻是 2,說明這對資料不滿足一致性
那這個矩陣就不是一致性矩陣
舉個例子
下面這個矩陣就是正互反矩陣
1241
/212
1/41
/21下面這個矩陣不是正互反矩陣
1231
/212
1/41
/21因為座標(1,3)乘以座標(3,1)的元素值不為 1
下面這個矩陣也不是正互反矩陣
1241
/212
1/41
/22因為座標(1,3)與座標(3,1)所對應的座標(3,3)的元素值不為 1
結論:當座標(i,j)乘以座標(j,i)的元素值為 1 ,且對應的座標(j,j)的元素值為 1 時,該矩陣為正互反矩陣
if
sum(
sum(a'.
* a ~
=ones
(n))
)>
0disp
('不是正互反矩陣'
從圖中我們看出當 n=
2 時 ri=
0而計算一致性的公式為 cr=ci/
ri(n)
這顯然是錯誤的,修改方法如下:
ri=[
00.00001
0.52
0.89
1.12
1.26
1.36
1.41
1.46
1.49
1.52
1.54
1.56
1.58
1.59];
將 n=
2 時 ri=
0.00001 即可
層次分析法的判斷矩陣中,僅能包含 1 – 9 的整數及其倒數,不能出現類似 0.3、4.5、11 等不符合要求的元素
①先進行一致性檢驗(必須通過)
②再求權重
③最後歸一化
注意:準則層都是關聯性較小的
具體步驟演示可以參考
disp
(' 請輸入判斷矩陣a '
)
a=input
('a='
);
error =0;
[r,c]
=size
(a);
if r ~
= c || r <=
1 error =1;
endif error ==
0[n,n]
=size
(a);
ifsum
(sum
(a <=0)
)>
0 error =2;
endendif error ==
0if n >
15 error =3;
endendif error ==0if
sum(
sum(a' .
* a ~
=ones
(n))
)>
0 error =4;
endendif error ==0%
%%%%
%%%%
%%%%方法1: 算術平均法求權重%%%
%%%%
%%%%
%%sum_a =
sum(a)
; sum_a =
repmat
(sum_a,n,1)
; stand_a = a .
/ sum_a;
disp
('算術平均法求權重的結果為:');
disp
(sum
(stand_a,2)
./n)%%
%%%%
%%%%
%%%方法2: 幾何平均法求權重%%%
%%%%
%%%%
%%prduct_a =
prod
(a,2);
prduct_n_a = prduct_a .^(
1/n)
;disp
('幾何平均法求權重的結果為:');
disp
(prduct_n_a .
/sum
(prduct_n_a))%
%%%%
%%%%
%%%%方法3: 特徵值法求權重%%%
%%%%
%%%%
%%[v,d]
=eig
(a);
max_eig =
max(
max(d));
[r,c]
=find
(d == max_eig ,1)
;disp
('特徵值法求權重的結果為:');
disp(v
(:,c).
/sum(v
(:,c)))%
%%%%
%%%%
%%%%下面是計算一致性比例cr的環節%%%
%%%%
%%%%
%%ci =
(max_eig - n)
/(n-1)
; ri=[0
0.00001
0.52
0.89
1.12
1.26
1.36
1.41
1.46
1.49
1.52
1.54
1.56
1.58
1.59];
% 注意哦,這裡的ri最多支援 n =
15% 這裡 n =
2 時,一定是一致矩陣,所以ci =
0% 我們為了避免分母為 0,將這裡的第二個元素改為了很接近 0 的小數
cr=ci/
ri(n)
;disp
('一致性指標ci=');
disp
(ci)
;disp
('一致性比例cr=');
disp
(cr)
;if cr<
0.10
disp
('因為cr<0.10,所以該判斷矩陣a的一致性可以接受!');
else
disp
('注意:cr >= 0.10,因此該判斷矩陣a需要進行修改!');
endelseif error ==
1disp
('請檢查矩陣a的維數是否不大於1或不是方陣'
)elseif error ==
2disp
('請檢查矩陣a中有元素小於等於0'
)elseif error ==
3disp
('a的維數n超過了15,請減少準則層的數量'
)elseif error ==
4disp
('請檢查矩陣a中存在i、j不滿足a_ij * a_ji = 1'
)% 說明不是正互反矩陣
end
建議三種求權重的方法都用在**上,並且強調一句:為了保證結果的穩健性,本文採用了三種方法分別求出了權重後計算平均值,再根據得到的權重矩陣計算各方案的得分,並進行排序和綜合分析,這樣避免了採用單一方法所產生的偏差,得出的結論將更全面、更有效層次分析法 的優點:層次分析法具有系統性、簡潔實用、所需定量資料資訊較少,這種方法尤其可用於對無結構特性的系統評價以及多目標、多準則、多時期等的系統評價,而且結果簡單明確、可信度較高
層次分析法 的缺點:
在權重的確定方面主觀性太強,因此通過構造出來的判斷矩陣所求出來的權值不一定可靠從而不能客觀的評價目標層的影響指標
同理,層次分析法的評估也要做適當修改避免查重
層次分析法
ahp分析方法,其基本步驟可歸納為 1 建立遞階層次結構 建立遞階層次結構是ahp法中關鍵一步,如圖所示。首先,把複雜問題中所包含的因素分解為不同層次。同一層次的因素作為準則對下一層次的某些因素起支配作用,同時,它又受上乙個層次因素的支配。這種從上到下的支配關係形成了乙個遞階層次結構,處於最上層的是...
層次分析法
此方法的步驟 1.建立有目標層 準則層 方案層等構成的層次結構 2.構造下層各元素對上層每一元素的成對比較矩陣 3.計算各個成對比較矩陣的特徵根和特徵向量,做一致性檢驗,通過後將特徵向量取做權向量 4.用分層加權和法計算最下層元素對最上層元素的權重 即逐層矩陣相乘 關於一致性檢驗,n階成對比較矩陣的...
層次分析法
層次分析法是對難以完全定量的複雜系統作出決策的模型和方法。層次分析法的結構如下。建立層次結構模型 構造判別矩陣 正反交矩陣 層次單排序及其一致性檢驗 層次總排序及其一致性檢驗 這裡使用乙個例子,比如我們的目標是選出學校附近最好的餐館,這裡我們就會考慮每個餐館的衛生 口味 服務這個幾個方面,而候選的餐...