新聞中心

EEPW首頁(yè) > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 基于Matlab GUI層次分析法的實(shí)現(xiàn)和應(yīng)用

基于Matlab GUI層次分析法的實(shí)現(xiàn)和應(yīng)用

作者: 時(shí)間:2014-01-19 來(lái)源:網(wǎng)絡(luò) 收藏

1.層次分析法基本原理

本文引用地址:http://butianyuan.cn/article/226777.htm

層次分析法(Analytic HierarchyProcess簡(jiǎn)稱AHP)是將與決策總是有關(guān)的元素分解成目標(biāo)、準(zhǔn)則、方案等層次,在此基礎(chǔ)之上進(jìn)行定性和定量分析的決策方法。

層次分析法的主要流程分為四步:一是建立層次分析結(jié)構(gòu)模型,二是構(gòu)造成對(duì)比矩陣并計(jì)算權(quán)向量,三是做一致性檢驗(yàn),四是計(jì)算組合權(quán)向量(作組合一致性檢驗(yàn))。

層次分析法的基本思想是把復(fù)雜問(wèn)題分解為若干層次,在最底層次通過(guò)兩兩對(duì)比得出各因素權(quán)重,通過(guò)由低到高的層層分析計(jì)算,最后計(jì)算出各方案對(duì)總目標(biāo)的權(quán)數(shù),權(quán)數(shù)最大的方案即為最優(yōu)方案。

決策的實(shí)質(zhì)是進(jìn)行比較,通過(guò)比較做出選擇,但是對(duì)于缺乏公度性的多目標(biāo)決策問(wèn)題來(lái)說(shuō),由于無(wú)法用統(tǒng)一尺度去衡量比較各個(gè)不同目標(biāo),因此,唯一可行的辦法是進(jìn)行兩兩比較。通過(guò)將兩兩比較后的結(jié)果填入判斷矩陣的特征和特征向量,然后確定各目標(biāo)重要性的加權(quán)值。

層次分析方法的基本假設(shè)是層次之間存在遞進(jìn)結(jié)構(gòu),即從高到低或從低到高遞進(jìn)。當(dāng)復(fù)雜系統(tǒng)中某一層次既可直接地影響其他層次,同時(shí)又直接及間接受其他層次影響時(shí),就不屬于層次分析范圍,需要用網(wǎng)絡(luò)模型來(lái)描述。

層次分析的基本方法是建立層次結(jié)構(gòu)模型。建立層次模型,首先要對(duì)所解決問(wèn)題有明確的認(rèn)識(shí),弄清它涉及哪些因素,如目標(biāo)、分目標(biāo)、部門、約束、可能情況和方案等,以及因素相互之間的關(guān)系。其次,將決策問(wèn)題層次化。將決策問(wèn)題劃分為若干個(gè)層次,第一層是總目標(biāo)層,即要想達(dá)到的目標(biāo);中間層常稱為分目標(biāo)層、標(biāo)準(zhǔn)層、部門層、約束層、準(zhǔn)則層等;最底層一般是解決問(wèn)題的方案或者與問(wèn)題有關(guān)的可能情況,常稱為方案層或者措施層。

建立層次模型之后,可以在各層元素中進(jìn)行兩兩比較,構(gòu)造出判斷矩陣。判斷矩陣是定性過(guò)渡到定量的重要環(huán)節(jié),再通過(guò)求解判斷矩陣的特征向量,并對(duì)判斷矩陣的一致性進(jìn)行檢驗(yàn),檢查決策者在構(gòu)造判斷矩陣時(shí)判斷思維是否具有一致性。

通過(guò)一致性檢驗(yàn)后,便可按歸一化處理已經(jīng)處理過(guò)的特征向量作為某一層次的加權(quán)值,然后從高層次到低層次逐層計(jì)算排序加權(quán)值,得出層次總排序。

最后是對(duì)總排序的一致性檢驗(yàn),通過(guò)檢驗(yàn),則其結(jié)果可以用于決策;否則,就需要重新調(diào)整判別矩陣。

2. 分析法軟件包實(shí)現(xiàn)

雖然利用的程序語(yǔ)句命令也能實(shí)現(xiàn)層次分析法,但是不夠簡(jiǎn)潔直觀。結(jié)合 GUI設(shè)計(jì)。編寫應(yīng)用程序,并設(shè)計(jì)相應(yīng)的用戶界面來(lái)實(shí)現(xiàn)層次分析法,可以使使用者更加方便快捷的應(yīng)用層次分析法。

2.1 軟件算法流程軟件算法流程:開(kāi)始→輸入層數(shù)N→輸入判別矩陣→一致性檢驗(yàn)→(通過(guò))輸入準(zhǔn)則層與方案層的關(guān)聯(lián)→計(jì)算組合權(quán)向量→根據(jù)組合權(quán)向量決策→結(jié)束注:若一致性檢驗(yàn)不通過(guò),則直接結(jié)束。

2.2 關(guān)鍵編程要點(diǎn)

2.2.1 寫入txt文件

由于層次分析法需要處理很多矩陣,如果一個(gè)個(gè)輸入會(huì)相對(duì)比較麻煩,我們采取單獨(dú)的txt文件形式進(jìn)行保存。將所有結(jié)果保存為txt文件。

關(guān)鍵代碼如下:

基于Matlab GUI層次分析法的實(shí)現(xiàn)和應(yīng)用

2.2.2 寫入數(shù)據(jù)

寫入所有操作的數(shù)據(jù),以便層次分析法操作。

關(guān)鍵代碼如下:

基于Matlab GUI層次分析法的實(shí)現(xiàn)和應(yīng)用

2.2.3 輸入矩陣

由于層次分析法需要處理很多矩陣,當(dāng)矩陣階數(shù)小于7時(shí),可以手動(dòng)輸入矩陣;當(dāng)矩陣階數(shù)大于7時(shí),可以導(dǎo)入excel文件。

關(guān)鍵代碼如下:

基于Matlab GUI層次分析法的實(shí)現(xiàn)和應(yīng)用

基于Matlab <a class=GUI層次分析法的實(shí)現(xiàn)和應(yīng)用" src="/uploadfile/dygl//201401/20
上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: Matlab GUI層次

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉