[摘要]層次分析法(Analytic Hierarchy Process,簡稱AHP)是對一些較為復(fù)雜、較為模糊的問題作出決策的簡易方法,它特別適用于那些難于完全定量分析的問題。它是美國運(yùn)籌學(xué)家T. L. Saaty教授于上世紀(jì)70 年代初期提出的一種簡便、靈活而又實用的多準(zhǔn)則決策方法。運(yùn)用層次分析法建模,大體上可按下面四個步驟進(jìn)行:1、建立遞階層次結(jié)構(gòu)模型;2、構(gòu)造出各層次中的所有判斷矩陣;3、層次單排序及一致性檢驗;4、層次總排序及一致性檢驗。在實踐運(yùn)用中,由于要對判斷矩陣進(jìn)行求解最大特征值對應(yīng)的特征向量,同時對向量進(jìn)行一致性檢驗,方法的第2-4步驟計算起來較為繁瑣和困難,尤其是遇到一致性檢驗不通過地情況,需反復(fù)計算特征值、特征向量及一致性檢驗,使得AHP方法運(yùn)用較為困難。本文利用VBA在EXCEL中編程實現(xiàn)AHP方法的復(fù)雜計算,降低AHP方法的使用難度。
[關(guān)鍵詞]VBA;層次分析法;EXCEL
一、實現(xiàn)環(huán)境
Visual Basic for Applications(VBA)是Visual Basic的一種宏語言,主要可以用來擴(kuò)展Windows應(yīng)用程序的功能,尤其是對Office系列軟件功能的擴(kuò)展,是一種應(yīng)用程序視覺化地腳本程序。VBA可以規(guī)范用戶的操作,控制用戶的操作行為,多個手工操作的通過代碼迅速實現(xiàn)。本文的VBA開發(fā)環(huán)境為Microsoft office 2007內(nèi)置VB6.5版本,使用該版本的EXCEL通用性較好,交互性較強(qiáng)。
二、實現(xiàn)原理及運(yùn)算步驟
本文充分利用EXCEL的函數(shù)計算、單元格快速引用,和VBA的流程控制功能,實現(xiàn)AHP方法的判斷矩陣特征值及向量的求解,并對其進(jìn)行一致性檢驗,對檢驗不通過地判斷矩陣進(jìn)行提示修正,達(dá)到了快速應(yīng)用AHP方法的目的。
VBA運(yùn)算步驟首先構(gòu)造判斷矩陣,其次用和積法計算判斷矩陣的特征向量,即可得到層次單排序值,最后計算最大特征值及一致性指標(biāo)CI,將相關(guān)結(jié)果存儲在EXCEL中,并對一致性檢驗不合格的值進(jìn)行標(biāo)示。
程序的核心是計算判斷矩陣特征值、向量及一致性檢驗值,從數(shù)學(xué)方面說本文利用和積法計算特征向量及值的近似值;從問題求解方面說本文是利用VBA在EXCEL中求解未知維數(shù)矩陣的特征值及特征向量,并進(jìn)行一致性檢驗。其算法為:
Step1:獲取判斷矩陣的維數(shù)n;
Step2:選擇判斷矩陣每列最后一個元素的下一個單元格存儲該列的和,形成列和行;
Step3:計算該矩陣的歸一化標(biāo)準(zhǔn)矩陣;
Step4:計算歸一化矩陣的行和;
Step5:計算行和列的每個元素與矩陣維度的比值,得到近似最大特征向量;
Step6:計算原矩陣與特征向量的積得到變換矩陣1;
Step7:用變換矩陣1的每個元素除以特征矩陣每個元素與矩陣維數(shù)的積,得到變換矩陣2;
Step8:計算變換矩陣2的列和,得到近似最大特征值;
Step9:計算進(jìn)行一致性檢驗。
程序運(yùn)行后進(jìn)入層次輸入和各比較元素輸入界面,此處以購買摩托車,考察價格、油耗量大小、舒適程度、外觀四個因素為例,如圖1所示。
輸入完畢后點擊下一步即可得到特征值、向量及一致性檢驗值,加粗部分依次為特征向量、特征值、一致性檢驗值,在判斷矩陣外的數(shù)值為計算過程值,可作為參考,以便核對,如圖2。
三、結(jié)語
層次分析法在實際運(yùn)用的困難之處在于對各層次比較元素數(shù)值化之后的矩陣計算出的特征向量是否滿足一致性檢驗值。特征向量的精確計算在實際中往往需要求解高階方程,計算量非常大,基于層次分析法的特點利用和積法計算特征向量在數(shù)學(xué)上方法簡單,但計算量任然很大,手工計算非常復(fù)雜且容易出錯,本文利用VBA在EXCEL中進(jìn)行編程固化了計算過程,使使用者可以方便快捷的得到特征向量及一致性檢驗值,極大的降低了層次分析法的應(yīng)用門檻,可以使層次分析法在審計、決策等領(lǐng)域得到推廣。
參考文獻(xiàn)
[1]張峋.Excel VBA入門與典型實例[M].2013.
[2]百度文庫.層次分析法[M].2014.
作者簡介
華洲(1983-),男,新疆伊犁人,職稱:工程師,學(xué)歷:碩士,主要研究方向:金融信息化。