層次分析法(AHP) matlab實現

2021-06-26 09:41:47 字數 1012 閱讀 1059

層次分析法是一種主觀的決策方法,可以用來確定一些指標權重,輔助決策依據的一種定性分析方法,層次分析法運用前需要構造層次模型:決策層,中間層(指標層),底層(選擇層);形成等級層次;然後構造兩兩對比矩陣,通過9分位數來進行構造;對對比矩陣進行求最大特徵值和特徵向量,進行一致性檢驗;最後得到權重向量。具體實現過程如下matlab程式:

clc;

clear;

a=[1 1.2 1.5 1.5;

0.833  1 1.2 1.2;

0.667  0.833  1 1.2;

0.667  0.833  0.833  1]; 

%因素對比矩陣a,只需要改變矩陣a

[m,n]=size(a); 

%獲取指標個數

ri=[0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51];

r=rank(a); 

%求判斷矩陣的秩

[v,d]=eig(a); 

%求判斷矩陣的特徵值和特徵向量,v特徵值,d特徵向量;

tz=max(d);

b=max(tz); 

%最大特徵值

[row, col]=find(d==b); 

%最大特徵值所在位置

c=v(:,col); 

%對應特徵向量

ci=(b-n)/(n-1); 

%計算一致性檢驗指標ci

cr=ci/ri(1,n); 

if cr<0.10

disp('ci=');disp(ci);

disp('cr=');disp(cr);

disp('對比矩陣a通過一致性檢驗,各向量權重向量q為:');

q=zeros(n,1);

for i=1:n

q(i,1)=c(i,1)/sum(c(:,1)); %特徵向量標準化

endq  %輸出權重向量

else

disp('對比矩陣a未通過一致性檢驗,需對對比矩陣a重新構造');

end

層次分析法

ahp分析方法,其基本步驟可歸納為 1 建立遞階層次結構 建立遞階層次結構是ahp法中關鍵一步,如圖所示。首先,把複雜問題中所包含的因素分解為不同層次。同一層次的因素作為準則對下一層次的某些因素起支配作用,同時,它又受上乙個層次因素的支配。這種從上到下的支配關係形成了乙個遞階層次結構,處於最上層的是...

層次分析法

此方法的步驟 1.建立有目標層 準則層 方案層等構成的層次結構 2.構造下層各元素對上層每一元素的成對比較矩陣 3.計算各個成對比較矩陣的特徵根和特徵向量,做一致性檢驗,通過後將特徵向量取做權向量 4.用分層加權和法計算最下層元素對最上層元素的權重 即逐層矩陣相乘 關於一致性檢驗,n階成對比較矩陣的...

層次分析法

層次分析法是對難以完全定量的複雜系統作出決策的模型和方法。層次分析法的結構如下。建立層次結構模型 構造判別矩陣 正反交矩陣 層次單排序及其一致性檢驗 層次總排序及其一致性檢驗 這裡使用乙個例子,比如我們的目標是選出學校附近最好的餐館,這裡我們就會考慮每個餐館的衛生 口味 服務這個幾個方面,而候選的餐...