基于Matlab GUI層次分析法的實(shí)現和應用
1.層次分析法基本原理
本文引用地址:http://dyxdggzs.com/article/226777.htm層次分析法(Analytic HierarchyProcess簡(jiǎn)稱(chēng)AHP)是將與決策總是有關(guān)的元素分解成目標、準則、方案等層次,在此基礎之上進(jìn)行定性和定量分析的決策方法。
層次分析法的主要流程分為四步:一是建立層次分析結構模型,二是構造成對比矩陣并計算權向量,三是做一致性檢驗,四是計算組合權向量(作組合一致性檢驗)。
層次分析法的基本思想是把復雜問(wèn)題分解為若干層次,在最底層次通過(guò)兩兩對比得出各因素權重,通過(guò)由低到高的層層分析計算,最后計算出各方案對總目標的權數,權數最大的方案即為最優(yōu)方案。
決策的實(shí)質(zhì)是進(jìn)行比較,通過(guò)比較做出選擇,但是對于缺乏公度性的多目標決策問(wèn)題來(lái)說(shuō),由于無(wú)法用統一尺度去衡量比較各個(gè)不同目標,因此,唯一可行的辦法是進(jìn)行兩兩比較。通過(guò)將兩兩比較后的結果填入判斷矩陣的特征和特征向量,然后確定各目標重要性的加權值。
層次分析方法的基本假設是層次之間存在遞進(jìn)結構,即從高到低或從低到高遞進(jìn)。當復雜系統中某一層次既可直接地影響其他層次,同時(shí)又直接及間接受其他層次影響時(shí),就不屬于層次分析范圍,需要用網(wǎng)絡(luò )模型來(lái)描述。
層次分析的基本方法是建立層次結構模型。建立層次模型,首先要對所解決問(wèn)題有明確的認識,弄清它涉及哪些因素,如目標、分目標、部門(mén)、約束、可能情況和方案等,以及因素相互之間的關(guān)系。其次,將決策問(wèn)題層次化。將決策問(wèn)題劃分為若干個(gè)層次,第一層是總目標層,即要想達到的目標;中間層常稱(chēng)為分目標層、標準層、部門(mén)層、約束層、準則層等;最底層一般是解決問(wèn)題的方案或者與問(wèn)題有關(guān)的可能情況,常稱(chēng)為方案層或者措施層。
建立層次模型之后,可以在各層元素中進(jìn)行兩兩比較,構造出判斷矩陣。判斷矩陣是定性過(guò)渡到定量的重要環(huán)節,再通過(guò)求解判斷矩陣的特征向量,并對判斷矩陣的一致性進(jìn)行檢驗,檢查決策者在構造判斷矩陣時(shí)判斷思維是否具有一致性。
通過(guò)一致性檢驗后,便可按歸一化處理已經(jīng)處理過(guò)的特征向量作為某一層次的加權值,然后從高層次到低層次逐層計算排序加權值,得出層次總排序。
最后是對總排序的一致性檢驗,通過(guò)檢驗,則其結果可以用于決策;否則,就需要重新調整判別矩陣。
雖然利用Matlab的程序語(yǔ)句命令也能實(shí)現層次分析法,但是不夠簡(jiǎn)潔直觀(guān)。結合Matlab GUI設計。編寫(xiě)應用程序,并設計相應的用戶(hù)界面來(lái)實(shí)現層次分析法,可以使使用者更加方便快捷的應用層次分析法。
2.1 軟件算法流程軟件算法流程:開(kāi)始→輸入層數N→輸入判別矩陣→一致性檢驗→(通過(guò))輸入準則層與方案層的關(guān)聯(lián)→計算組合權向量→根據組合權向量決策→結束注:若一致性檢驗不通過(guò),則直接結束。
2.2 關(guān)鍵編程要點(diǎn)
2.2.1 寫(xiě)入txt文件
由于層次分析法需要處理很多矩陣,如果一個(gè)個(gè)輸入會(huì )相對比較麻煩,我們采取單獨的txt文件形式進(jìn)行保存。將所有結果保存為txt文件。
關(guān)鍵代碼如下:

2.2.2 寫(xiě)入數據
寫(xiě)入所有操作的數據,以便層次分析法操作。
關(guān)鍵代碼如下:

2.2.3 輸入矩陣
由于層次分析法需要處理很多矩陣,當矩陣階數小于7時(shí),可以手動(dòng)輸入矩陣;當矩陣階數大于7時(shí),可以導入excel文件。
關(guān)鍵代碼如下:

評論