層次分析法原理
層次分析法(Analytic Hierarchy Process,AHP)是一種多準(zhǔn)則決策分析方法,可用于輔助決策者在多個(gè)指標(biāo)或因素中進(jìn)行排序或比較。該方法可以通過(guò)對(duì)多個(gè)因素進(jìn)行兩兩比較獲得權(quán)重,從而建立一個(gè)層次結(jié)構(gòu),進(jìn)而進(jìn)行綜合評(píng)價(jià)和排名。
下面是一些詳解層次分析算法的步驟:
明確決策目標(biāo),確定需要評(píng)估的準(zhǔn)則和子準(zhǔn)則:首先明確決策目標(biāo),然后考慮需要評(píng)價(jià)的準(zhǔn)則和子準(zhǔn)則。這些準(zhǔn)則和子準(zhǔn)則應(yīng)該盡可能具體、完整,以便進(jìn)行比較。
建立層次結(jié)構(gòu):將目標(biāo)、準(zhǔn)則和子準(zhǔn)則構(gòu)成一個(gè)層次結(jié)構(gòu),其中目標(biāo)位于最頂層,準(zhǔn)則和子準(zhǔn)則逐層展開(kāi),直到最底層。
對(duì)每個(gè)準(zhǔn)則和子準(zhǔn)則進(jìn)行兩兩比較,得出權(quán)重:對(duì)于每個(gè)準(zhǔn)則和子準(zhǔn)則,根據(jù)它們對(duì)上一級(jí)準(zhǔn)則或目標(biāo)的相對(duì)重要性進(jìn)行兩兩比較,生成判斷矩陣,并計(jì)算出每個(gè)準(zhǔn)則和子準(zhǔn)則相對(duì)于上一級(jí)準(zhǔn)則或目標(biāo)的權(quán)重。
計(jì)算一致性比率(CR):在計(jì)算權(quán)重時(shí),需要考慮判斷矩陣的一致性。通過(guò)計(jì)算一致性指標(biāo)和隨機(jī)一致性指標(biāo),可以得出一致性比率,并判斷結(jié)果是否可行。
綜合評(píng)價(jià):根據(jù)各個(gè)準(zhǔn)則和子準(zhǔn)則的權(quán)重,可以得出每個(gè)方案的綜合評(píng)價(jià)。
層次分析法是一種較為常用的決策分析方法,應(yīng)用廣泛。但是,在實(shí)際應(yīng)用中需要注意判斷矩陣的構(gòu)造和一致性比率的計(jì)算,以確保評(píng)價(jià)結(jié)果的可靠性。
層次分析法數(shù)學(xué)模型
層次分析法 (Analytic Hierarchy Process, AHP) 包含的數(shù)學(xué)公式如下:
相對(duì)重要性矩陣
將兩兩比較得出的判斷矩陣記為 ,。其中, 表示因素 相對(duì)于因素 的相對(duì)重要度。
加權(quán)矩陣
將相對(duì)重要性矩陣 與準(zhǔn)則/子準(zhǔn)則的權(quán)重向量 相乘,得到加權(quán)矩陣 :
一致性指標(biāo)
通過(guò)計(jì)算加權(quán)矩陣 的列和,得到一致性指標(biāo) :
其中, 是與 相關(guān)的最大特征根。
隨機(jī)一致性指標(biāo)
在 的范圍內(nèi),預(yù)先計(jì)算一組隨機(jī)一致性指標(biāo) ,然后計(jì)算隨機(jī)一致性比例 :
其中,CI 是一致性指標(biāo)。
最終權(quán)重向量
當(dāng) 時(shí),可將 當(dāng)作最終權(quán)重向量。最終權(quán)重向量 可以通過(guò)歸一化加權(quán)矩陣得到:
以上就是層次分析法中的主要數(shù)學(xué)公式。在具體應(yīng)用中,需要進(jìn)行矩陣運(yùn)算、特征根分解等數(shù)學(xué)操作。
MATLAB代碼實(shí)現(xiàn)
在 MATLAB 中實(shí)現(xiàn)層次分析法可以參考以下步驟:
構(gòu)造相對(duì)重要性矩陣
通過(guò)兩兩比較,構(gòu)造相對(duì)重要性矩陣 。在 MATLAB 中,可以使用 inputdlg() 函數(shù)獲取用戶(hù)輸入的相對(duì)權(quán)重值,再根據(jù)這些值構(gòu)造相對(duì)重要性矩陣。
例如,假設(shè)需要評(píng)估三個(gè)因素 A、B 和 C 的相對(duì)重要性,可以使用如下代碼創(chuàng)建相對(duì)重要性矩陣:
%獲取用戶(hù)輸入的相對(duì)權(quán)重值 prompt={'A相對(duì)于B的重要性:','A相對(duì)于C的重要性:','B相對(duì)于C的重要性:'}; name='輸入相對(duì)重要性'; numlines=1; defaultans={'','',''}; answer=inputdlg(prompt,name,numlines,defaultans); %構(gòu)造相對(duì)重要性矩陣 A=[1str2double(answer{1})str2double(answer{2}); 1/str2double(answer{1})1str2double(answer{3}); 1/str2double(answer{2})1/str2double(answer{3})1];
計(jì)算權(quán)重向量
計(jì)算準(zhǔn)則/子準(zhǔn)則的權(quán)重向量 ,可以用 eig() 函數(shù)計(jì)算相對(duì)重要性矩陣 的特征向量和特征值,再將特征向量進(jìn)行歸一化。
例如,使用如下代碼計(jì)算權(quán)重向量:
%計(jì)算特征向量和特征值 [eigvec,eigval]=eig(A); %獲取最大特征值的索引 [~,max_eigval_index]=max(diag(eigval)); %獲取對(duì)應(yīng)的特征向量,并進(jìn)行歸一化 w=eigvec(:,max_eigval_index); w=w/sum(w);
檢驗(yàn)一致性
計(jì)算一致性指標(biāo) 和隨機(jī)一致性比例 ,判斷評(píng)價(jià)結(jié)果的可靠性。通常,當(dāng) 時(shí),可以認(rèn)為評(píng)價(jià)結(jié)果可靠。
例如,使用如下代碼進(jìn)行一致性檢驗(yàn):
%計(jì)算一致性指標(biāo) CI=(max(diag(eigval))-3)/(n-1); %預(yù)先計(jì)算隨機(jī)一致性比例 RI=[000.580.91.121.241.321.411.451.51]; %計(jì)算隨機(jī)一致性比例 CR=CI/RI(n);
輸出結(jié)果
輸出準(zhǔn)則/子準(zhǔn)則的權(quán)重向量和一致性檢驗(yàn)結(jié)果。例如,使用如下代碼輸出結(jié)果:
%輸出權(quán)重向量 fori=1:n fprintf('%s的權(quán)重:%.4f ',criteria{i},w(i)); end %輸出一致性檢驗(yàn)結(jié)果 fprintf('一致性指標(biāo)CI=%.4f,隨機(jī)一致性比例CR=%.4f ',CI,CR); ifCR<=?0.1 ????fprintf('一致性檢驗(yàn)通過(guò),評(píng)價(jià)結(jié)果可靠。 '); else ????fprintf('一致性檢驗(yàn)未通過(guò),評(píng)價(jià)結(jié)果不可靠。 '); end
以上就是在 MATLAB 中實(shí)現(xiàn)層次分析法的主要步驟。需要注意的是,層次分析法的實(shí)現(xiàn)過(guò)程中需要進(jìn)行矩陣運(yùn)算和特征值計(jì)算等較為復(fù)雜的操作,建議使用函數(shù)封裝實(shí)現(xiàn)。
責(zé)任編輯:彭菁
-
matlab
+關(guān)注
關(guān)注
188文章
2995瀏覽量
233149 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4367瀏覽量
64120
原文標(biāo)題:層次分析法(原理+數(shù)學(xué)模型+代碼實(shí)現(xiàn))
文章出處:【微信號(hào):嵌入式職場(chǎng),微信公眾號(hào):嵌入式職場(chǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
基于灰色層次分析法的戰(zhàn)場(chǎng)電磁環(huán)境效應(yīng)評(píng)估
基于matlab對(duì)在軸承故障聲學(xué)檢測(cè)小波分析法代碼
層次分析法是什么
層次分析法及其在電力系統(tǒng)中的應(yīng)用
層次分析法的改進(jìn)及應(yīng)用

算法大全_層次分析法
基于層次分析法的電網(wǎng)應(yīng)急演練管理系統(tǒng)研究與實(shí)現(xiàn)

基于模糊層次分析法的安全態(tài)勢(shì)評(píng)估中

評(píng)論