- 相關(guān)推薦
試論基于Matlab的層次分析法與運(yùn)用
摘要:本文通過使用Matlab軟件進(jìn)行編程,在滿足同一層次中各指標(biāo)對(duì)所有的下級(jí)指標(biāo)均產(chǎn)生影響的假定條件下,實(shí)現(xiàn)了層次分析法的分析運(yùn)算。本程序允許用戶自由設(shè)定指標(biāo)層次結(jié)構(gòu)內(nèi)的層次數(shù)以及各層次內(nèi)的指標(biāo)數(shù),通過程序的循環(huán),用戶只需輸入判斷矩陣的部分?jǐn)?shù)據(jù),程序可依據(jù)層次分析法的計(jì)算流程進(jìn)行計(jì)算并作出判斷。本程序可以方便地處理層次分析法下較大的運(yùn)算量,解決層次分析法的效率問題,提高計(jì)算機(jī)輔助決策的時(shí)效性。
關(guān)鍵詞:Matlab層次分析法 判斷矩陣 決策
在當(dāng)前信息化、全球化的大背景下,傳統(tǒng)的手工計(jì)算已不能滿足人們高效率、高準(zhǔn)確度的決策需求。因此計(jì)算機(jī)輔助決策當(dāng)仁不讓地成為了管理決策的新工具、新方法。基于此,本文在充分發(fā)揮計(jì)算機(jī)強(qiáng)大運(yùn)算功能的基礎(chǔ)上,選用美國MathWorks公司的集成數(shù)學(xué)建模環(huán)境Matlab R2009a作為開發(fā)平臺(tái),使用M語言進(jìn)行編程,對(duì)計(jì)算機(jī)輔助決策在層次分析法中的運(yùn)用進(jìn)行討論。試圖通過程序?qū)崿F(xiàn)層次分析法在計(jì)算機(jī)系統(tǒng)上的運(yùn)用,為管理決策探索出新的道路職稱論文。
1 層次分析法的計(jì)算流程
根據(jù)層次分析法的相關(guān)理論,層次分析法的基本思想是將復(fù)雜的決策問題進(jìn)行分解,得到若干個(gè)下層指標(biāo),再對(duì)下層指標(biāo)進(jìn)行分解,得到若干個(gè)再下層指標(biāo),如此建立層次結(jié)構(gòu)模型,然后根據(jù)結(jié)構(gòu)模型構(gòu)造判斷矩陣,進(jìn)行單排序,最后,求出各指標(biāo)對(duì)應(yīng)的權(quán)重系數(shù),進(jìn)行層次總排序。
1.1 構(gòu)造層次結(jié)構(gòu)模型 在進(jìn)行層次分析法的分析時(shí),最主要的步驟是建立指標(biāo)的層次結(jié)構(gòu)模型,根據(jù)結(jié)構(gòu)模型構(gòu)造判斷矩陣,只有判斷矩陣通過了一致性檢驗(yàn)后,方可進(jìn)行分析和計(jì)算。其中,結(jié)構(gòu)模型可以設(shè)計(jì)成三個(gè)層次,最高層為目標(biāo)層,是決策的目的和要解決的問題,中間層為決策需考慮的因素,是決策的準(zhǔn)則,最低層則是決策時(shí)的備選方案。一般來講,準(zhǔn)則層中各個(gè)指標(biāo)的下級(jí)指標(biāo)數(shù)沒有限制,但在本文中設(shè)計(jì)的程序尚且只能在各指標(biāo)具有相同數(shù)量的下級(jí)指標(biāo)的假定下,完成層次分析法的分析,故本文后文選取的案例也滿足這一假定。
1.2 建立判斷矩陣 判斷矩陣是表示本層所有因素針對(duì)上一層某一個(gè)因素的相對(duì)重要性的比較給判斷矩陣的要素賦值時(shí),常采用九級(jí)標(biāo)度法(即用數(shù)字1到9及其倒數(shù)表示指標(biāo)間的相對(duì)重要程度),具體標(biāo)度方法如表1所示。
1.3 檢驗(yàn)判斷矩陣的一致性 由于多階判斷的復(fù)雜性,往往使得判斷矩陣中某些數(shù)值具有前后矛盾的可能性,即各判斷矩陣并不能保證完全協(xié)調(diào)一致。當(dāng)判斷矩陣不能保證具有完全一致性時(shí),相應(yīng)判斷矩陣的特征根也將發(fā)生變化,于是就可以用判斷矩陣特征根的變化來檢驗(yàn)判斷的一致性程度。在層次分析法中,令判斷矩陣最大的特征值為λmax,階數(shù)為 n,則判斷矩陣的一致性檢驗(yàn)的指標(biāo)記為:
、
CI的值越大,判斷矩陣的一致性越差。當(dāng)階數(shù)大于2時(shí),判斷矩陣的一致性指標(biāo)CI與同階平均隨機(jī)一致性指標(biāo)RI之比稱為隨機(jī)一致性比率,其中RI的值由表2確定,CR的計(jì)算公式為:
、
當(dāng)CR0.1時(shí),即可認(rèn)為判斷矩陣具有滿意的一致性。然而由于在為各指標(biāo)間相互重要性程度大小的判定過程中存在人為主觀因素,因此在判斷矩陣不能通過一致性檢驗(yàn)時(shí),需要對(duì)各指標(biāo)間相互重要性程度重新進(jìn)行賦值,直至其通過矩陣一致性檢驗(yàn)。其最大特征值對(duì)應(yīng)的特征向量即為該指標(biāo)相對(duì)于上一級(jí)指標(biāo)的重要性排序。
1.4 進(jìn)行層次總排序 在通過層次單排序得出各指標(biāo)相對(duì)上一級(jí)指標(biāo)的重要性排序向量后,沿遞階層次結(jié)構(gòu)逐級(jí)依次由下往上進(jìn)行矩陣計(jì)算,則可得到各底層指標(biāo)對(duì)最高層的相對(duì)重要性權(quán)重,從而可對(duì)各底層指標(biāo)的優(yōu)先次序進(jìn)行排序,找出重點(diǎn)指標(biāo)并予以特別關(guān)注。
2 Matlab層次分析法程序設(shè)計(jì)思路
Matlab是矩陣實(shí)驗(yàn)室(Matrix Laboratory)的簡稱,是美國MathWorks公司出品的數(shù)學(xué)軟件,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級(jí)技術(shù)計(jì)算語言和交互式環(huán)境。Matlab可以進(jìn)行矩陣運(yùn)算、繪制函數(shù)和數(shù)據(jù)圖像、設(shè)計(jì)算法、創(chuàng)建用戶界面、連接用其他編程語言編寫的程序等。Matlab以矩陣為計(jì)算單位, 采用M語言作為程序語言,與C語言有諸多相似之處,并可方便地與C/C++、Microsoft Excel等工具和軟件進(jìn)行結(jié)合并進(jìn)行代碼共享和數(shù)據(jù)交換,可以方便地進(jìn)行數(shù)值分析、圖像處理等功能,配合功能強(qiáng)大的統(tǒng)計(jì)和金融工具箱,Matlab已經(jīng)可以在概率統(tǒng)計(jì)、經(jīng)濟(jì)管理等方面發(fā)揮強(qiáng)大的作用。
筆者所編程序即是運(yùn)用Matlab豐富的函數(shù)、矩陣運(yùn)算和程序控制功能,探索其在層次分析法分析中的運(yùn)用。程序通過三層循環(huán)結(jié)構(gòu),按照表1所示的方法和規(guī)則,實(shí)現(xiàn)多個(gè)層次上各個(gè)判斷矩陣的輸入和生成,并可以通過計(jì)算它們的特征值,按照上述公式 ⑴、公式⑵和表2所示的方法進(jìn)行矩陣的一致性檢驗(yàn)。當(dāng)所有的判斷矩陣一致性檢驗(yàn)均通過后,程序?qū)?duì)各層次從下往上依次計(jì)算,最終得出各底層指標(biāo)相對(duì)于準(zhǔn)則層的權(quán)重系數(shù),從而有助于選擇最優(yōu)方案,程序流程如圖1所示,其中的平行四邊形表示輸入數(shù)據(jù),菱形表示判斷,根據(jù)判斷結(jié)果的不同出現(xiàn)2個(gè)分支。
程序中,用于生成判斷矩陣的部分程序如下:
for a=1:mp
for b=1:mp
A(b,b)=1;
if a fprintf(‘Line %i, Row %i“n‘,[a;b]);
A(a,b)=input(‘Please input the value: ‘);
A(b,a)=1/A(a,b);
end
end
生成層次總排序權(quán)重矩陣的部分程序如下:
for r=p-1:1
v=[‘vect=vect*vector‘ int2str(r)];
evalc(v)
end
fprintf(‘The final judging vector is:‘)
fprintf(‘“n%.4f‘,vect)
[m,maxpl]=max(vect);
fprintf(‘“n“nThe Scheme %i is the best solution.“n“n‘,maxpl)
其中,mp為該層內(nèi)的指標(biāo)數(shù),p為指標(biāo)的層數(shù),均在程序開始時(shí)由用戶指定;vect初始被賦值為空矩陣,經(jīng)循環(huán)后生成第一指標(biāo)層的判斷向量;m為vect向量的最大值,maxpl記錄該最大值所處的位置。
由于本程序結(jié)構(gòu)上的限制,本程序尚且只能在同一層次各個(gè)指標(biāo)均對(duì)所有下一層次指標(biāo)產(chǎn)生影響時(shí)處理層次分析法的問題,故本文舉例亦遵照該假定進(jìn)行。
3 應(yīng)用舉例
某市一十字路口常常因行人過街擁擠,存在安全隱患,市政部門欲對(duì)該路口進(jìn)行改造,現(xiàn)提出了3套改造方案:
方案1(S1):建地下通道;
方案2(S2):建人行天橋;
方案3(S3):拆除周圍的舊建筑,拓寬街面。
市政部門認(rèn)為,該改造工程需考慮如下幾個(gè)方面的指標(biāo):
指標(biāo)1(P1):通車能力的大小;
指標(biāo)2(P2):交通安全系數(shù)的高低;
指標(biāo)3(P3):建筑費(fèi)用的高低;
指標(biāo)4(P4):群眾出行方便度的大小;
指標(biāo)5(P5):市容整潔程度的高低。
現(xiàn)在需要就以上問題進(jìn)行決策,需決定在三套方案(S1~S3)中選用最優(yōu)方案。其主要步驟及操作如下所示。
第1步:根據(jù)題目建立層次結(jié)構(gòu)模型
由于題目要求對(duì)3套方案均需考慮5個(gè)指標(biāo),故可畫出如圖2所示的指標(biāo)體系結(jié)構(gòu)圖。
第2步:形成判斷矩陣
形成判斷矩陣,需要對(duì)各指標(biāo)相互的重要性進(jìn)行標(biāo)度,矩陣的上三角部分與下三角部分以對(duì)角線為分界,對(duì)稱呈倒數(shù)排列,對(duì)角線上元素均為1,因?yàn)楦髦笜?biāo)與自身的重要性為“同等重要”,不同的指標(biāo)A1對(duì)A2的重要性與A2對(duì)A1的重要性互為倒數(shù)。根據(jù)經(jīng)驗(yàn)對(duì)圖2中各指標(biāo)相互的重要性進(jìn)行標(biāo)度后,可得如下幾個(gè)矩陣:
第3步:將以上各矩陣輸入程序,進(jìn)行計(jì)算
在Matlab的命令窗口依次按提示輸入表 3~表 8所示矩陣后,程序輸出結(jié)果經(jīng)整理如下表:
接著,程序?qū)Ω骶仃囉?jì)算所得的最大特征值對(duì)應(yīng)的特征向量按下式進(jìn)行標(biāo)準(zhǔn)化:
再給出各指標(biāo)的特征向量組成的矩陣:
進(jìn)而得出三套方案相對(duì)于目標(biāo)的權(quán)重向量為:
程序經(jīng)比較,發(fā)現(xiàn)方案1權(quán)重系數(shù)最大,進(jìn)而得出最終結(jié)論:方案1(地下通道)占優(yōu)。
4 總結(jié)及分析
本程序在運(yùn)行開始時(shí),會(huì)要求用戶輸入指標(biāo)的層數(shù)和第一層的指標(biāo)數(shù),在每一個(gè)層次的矩陣元素輸入完成后,程序會(huì)要求用戶輸入下一個(gè)層次中的指標(biāo)數(shù),因此本程序可進(jìn)行無限個(gè)層次的迭代運(yùn)算。當(dāng)然,程序只能替代層次分析法的運(yùn)算部分,由于對(duì)判斷矩陣賦值具有主觀性,常常需要通過其他的方法進(jìn)行確定,如 Delphi方法等。在把設(shè)定好的判斷矩陣輸入程序進(jìn)行運(yùn)算時(shí),程序可以保證矩陣運(yùn)算的精度和效率,在對(duì)代碼進(jìn)行優(yōu)化和擴(kuò)展后,還可以將過程與結(jié)果數(shù)據(jù)導(dǎo)出到Excel和Eviews,以方便進(jìn)行后續(xù)的數(shù)據(jù)整理和計(jì)量分析。
另外,如前所述,本程序存在一個(gè)局限,即需要在滿足同一層次內(nèi)各指標(biāo)對(duì)所有下一層次指標(biāo)均產(chǎn)生影響的假定時(shí)才能正確運(yùn)行。筆者將在今后對(duì)程序進(jìn)行進(jìn)一步的完善,提升其功能和易用性,使其能滿足不同類型、不同條件下的層次分析法分析,在日常生活的計(jì)算機(jī)輔助決策領(lǐng)域發(fā)揮更大的作用。
參考文獻(xiàn):
[1]凌澤華.層次分析法在企業(yè)核心員工界定中的運(yùn)用[J].經(jīng)營管理者, 2010,(2).
劉文琦,熊惠珍.層次分析法在財(cái)務(wù)指標(biāo)分析中的應(yīng)用[J].審計(jì)與理財(cái),2010,(1).
王翼,王歆明.MATLAB基礎(chǔ)及在經(jīng)濟(jì)學(xué)與管理科學(xué)中的應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2009,7.
【試論基于Matlab的層次分析法與運(yùn)用】相關(guān)文章:
試論基于民商法視域下的信用卡若干法律問題05-28
藝術(shù)試論08-23
MATLAB正交振幅調(diào)制解調(diào)仿真分析(一)05-11
試論誠信及其價(jià)值06-01
分析法律與道德的關(guān)系問題論文(精選5篇)05-11
閱讀理解的三個(gè)層次03-17
試論言語行為理論05-02
試論人的生態(tài)化問題08-09
自學(xué)考試論文致謝09-29
試論音樂在舞蹈教學(xué)中的作用04-24