層次分析模型(AHP)及其MATLAB實現


   今天用將近一天的時間學習了層次分析模型(AHP),主要參考了一份pdf,這個網站,和暨南大學章老師的課件,現寫出一些自己總結的要點。  

  一、層次分析法的基本步驟:

角度一:

實際問題——分解——>多個因素——建立——>層次結構—

—確定——>諸因素的相對重要性——計算——>權向量—

—判斷——>綜合決策

 

角度二:

建立層次結構模型——>構造判斷矩陣——>層次單排序——>一致性檢驗——>層次總排序。

  二、幾個理解的重點

1.正反矩陣

若矩陣A=(aij)mxn滿足以下特征:
(1) aij>0
(2)aij=1/aji
則稱矩陣A 為正互反矩陣。
2.一致陣
定義:滿足a(ij)·a(jk)=a(ik), i,j,k=1,2,··,n的正互反陣A稱 一致陣。
性質:A的秩為1,A的唯一非0特征根為n;
   A的任一列向量是對應於n的特征向量;
   A的歸一化特征向量可作為權向量。

注意:

這里想了下,用最大特征根的特征向量替代A,可能是為了最大限度的保存原始數據(A)的信息量(不確定。。。)

3.一致性檢驗

 

 一致性檢驗,具體還要涉及組合一致性檢驗。

 

   三、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)); %特征向量標准化
    end
    Q                              %輸出權重向量
else
    disp('對比矩陣A未通過一致性檢驗,需對對比矩陣A重新構造');
end

 

  這里是對AHP的一個初步的認識,之后還要深入學習,到時候再繼續總結。

  #############2016-10-11補更#######################

  今天交流群有人問起AHP的一個問題,不太會,就回來再次復習一下,又學到一點知識。看看之前寫的,感覺好亂。。。也不刪除了,就當個預備知識和。。娛樂吧。

  這里主要寫下一些要點和細節。

  一、AHP流程

 

  1.建立層次結構模型

  2.構建Z-C判斷矩陣,設為A。

  這里我們要確定准則層C中,各個因素的權重,為此我們要計算判斷矩陣A的最大的特征值及其特征向量。

此時,我們要對A進行一致性檢驗,只有A為一致陣(關於一致陣,前文有說明)或者其不一致程度在一個特定范圍內時,才能將其特征根對應的特征向量作為被比較因素的權量。

一般情況下,矩陣A是不一致的,所以我們此時要進行一致性檢驗(具體在前文也有說明)。

  通過一致性檢驗后,就計算得到A的最大特征值及其對應的特征向量,這個特征向量即為各個准則的權重。

  3.構建C-P矩陣,層次單排序。

  對應的特征向量矩陣如下:

  

  這個矩陣的每一行代表一個候選人的在健康,知識業務等六個方面的權重大小。

  4.構建Z-P矩陣,層次總排序,決策。

 

   總的來說AHP還是那句,先分解再綜合。拿上面的例子來說,我要從三人中選一名領導,那么我通過6個不同的角度來為這三人打分,首先確定這6個角度在你心目中的比重大小(Z-C),之后再通過對比看三人分別在這6個角度的得分(C-P)。最后再和對應角度的權重相乘(Z-P),就得到總的分數,排序,作出決策。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM