蕭蕭的專(zhuān)欄
本文關(guān)鍵詞:AHP,由筆耕文化傳播整理發(fā)布。
2014年參加數(shù)學(xué)建模美賽, 其中一道題是選出5大優(yōu)秀教練,數(shù)據(jù)來(lái)源要求自行尋找。 在比賽中,我們運(yùn)用了層次分析法(AHPAnalytic Hierarchy Process)進(jìn)行建模,好不容易理解了這一方法的思想,在自己的博客里記錄一下,希望可以幫助初次接觸層次分析法的人,更快地理解這一的整體思想,也利于進(jìn)一步針對(duì)細(xì)節(jié)進(jìn)行學(xué)習(xí)。文章內(nèi)容主要參閱 《matlab數(shù)學(xué)建模算法實(shí)例與分析》,部分圖片來(lái)源于WIKI
文章分為2部分:
1第一部分以通俗的方式簡(jiǎn)述一下層次分析法的基本步驟和思想
2第二部分介紹一下我們隊(duì)伍數(shù)學(xué)建模過(guò)程中,對(duì)層次分析法的應(yīng)用,中間有些地方做了不嚴(yán)謹(jǐn)?shù)耐评,例如關(guān)于一致性的檢驗(yàn),如有人發(fā)現(xiàn)不正確,希望可以指正
第一部分:
層次分析法(Analytic Hierarchy Process ,簡(jiǎn)稱(chēng) AHP )是對(duì)一些較為復(fù)雜、較為模糊的問(wèn)題作出決策的簡(jiǎn)易方法,它特別適用于那些難于完全定量分析的問(wèn)題。它是美國(guó)運(yùn)籌學(xué)家T. L. Saaty 教授于上世紀(jì) 70 年代初期提出的一種簡(jiǎn)便、靈活而又實(shí)用的多準(zhǔn)則決策方法。
人們?cè)谶M(jìn)行社會(huì)的、經(jīng)濟(jì)的以及科學(xué)管理領(lǐng)域問(wèn)題的系統(tǒng)分析中,面臨的常常是一個(gè)由相互關(guān)聯(lián)、相互制約的眾多因素構(gòu)成的復(fù)雜而往往缺少定量數(shù)據(jù)的系統(tǒng)。層次分析法為這類(lèi)問(wèn)題的決策和排序提供了一種新的、簡(jiǎn)潔而實(shí)用的建模方法。
運(yùn)用層次分析法建模,大體上可按下面四個(gè)步驟進(jìn)行:
(i )建立遞階層次結(jié)構(gòu)模型;
(ii )構(gòu)造出各層次中的所有判斷矩陣;
(iii )層次單排序及一致性檢驗(yàn);
(iv )層次總排序及一致性檢驗(yàn)。
這四個(gè)步驟中,前兩個(gè)步驟最容易理解,后兩個(gè)步驟需要一點(diǎn)時(shí)間理解
層次分析法是用來(lái)根據(jù)多種準(zhǔn)則,或是說(shuō)因素從候選方案中選出最優(yōu)的一種數(shù)學(xué)方法
最頂層是我們的目標(biāo),比如說(shuō)選leader,選工作,選旅游目的地
中間層是判斷候選方物或人優(yōu)劣的因素或標(biāo)準(zhǔn)
選工作時(shí)有:發(fā)展前途 ,待遇 ,工作環(huán)境等
選leader時(shí)有:年齡,經(jīng)驗(yàn),教育背景,魅力
在分層以后,為了選出最優(yōu)候選
給目標(biāo)層分配值1.000
然后將這一值作為權(quán)重,分配給不同因素,對(duì)應(yīng)因素的權(quán)重大小代表該因素在整個(gè)選擇過(guò)程中的重要性程度
然后對(duì)于候選方案,每一個(gè)標(biāo)準(zhǔn)再將其權(quán)重值分配給所有的候選方案,每一方案獲得權(quán)重值,來(lái)源于不同因素分得的權(quán)重值的和
如下圖:(alternative1)0.333=0.250/4(criterion1)+0.250/4(criterion2)+0.250/4(criterion3)+0.250/4(criterion4)
最終獲得的各個(gè)方案的的權(quán)重值的和依然為1
例如選工作時(shí),待遇所占的比重為0.8, 有工作1,2,3候選, 如果工作1的待遇最高,工作2的待遇次之,工作3最差,則可將0.8的值按0.4,0.3,0.1分給工作1,2,3,
這不就是一個(gè)簡(jiǎn)單的權(quán)重打分的過(guò)程嗎?為什么還要層次分析呢。這里就有兩個(gè)關(guān)鍵問(wèn)題:
1每個(gè)準(zhǔn)則(因素)權(quán)重具體應(yīng)該分配多少
2每一個(gè)候選方案在每一個(gè)因素下又應(yīng)該獲得多少權(quán)重
首先解決第一個(gè)問(wèn)題:每個(gè)準(zhǔn)則(因素)權(quán)重具體應(yīng)該分配多少?
如果直接要給各個(gè)因素分配權(quán)重比較困難,在不同因素之間兩兩比較其重要程度是相對(duì)容易的
現(xiàn)在將不同因素兩兩作比獲得的值aij 填入到矩陣的 i 行 j 列的位置,則構(gòu)造了所謂的比較矩陣,對(duì)角線上都是1, 因?yàn)槭亲约汉妥约罕?/span>
這個(gè)矩陣容易獲得,我們?nèi)绾螐倪@一矩陣獲得對(duì)應(yīng)的權(quán)重分配呢
這里便出現(xiàn)了一個(gè)比較高級(jí)的概念,正互反矩陣和一致性矩陣
首先正互反矩陣的定義是:
我們目前構(gòu)造出的矩陣很明顯就是正互反矩陣
而一致性矩陣的定義是:
這里我們構(gòu)造出的矩陣就不一定滿足一致性,比如我們做因素1:因素2= 4:1 因素2:因素3=2:1 因素1:因素3=6:1(如果滿足一致性就應(yīng)該是8:1),我們就是因?yàn)殡y以確定各因素比例分配才做兩兩比較的,如果認(rèn)為判斷中就能保證一致性,就直接給出權(quán)重分配了
到了關(guān)鍵部分,一致性矩陣有一個(gè)性質(zhì)可以算出不同因素的比例
這里的w就是我們想要知道的權(quán)重,所以通過(guò) 求比較矩陣的最大特征值所對(duì)應(yīng)的特征向量,就可以獲得不同因素的權(quán)重,歸一化一下(每個(gè)權(quán)重除以權(quán)重和作為自己的值,最終總和為1)就更便于使用了。(實(shí)際上寫(xiě)這篇博客就是因?yàn),重新翻了線代的書(shū)才好不容易理解這里的,就想記錄下來(lái))
這里補(bǔ)充一點(diǎn)線性代數(shù)的知識(shí):
n階矩陣有n個(gè)特征值,每個(gè)特征值對(duì)應(yīng)一個(gè)n維特征列向量,特征值和特征向量的計(jì)算方法這里就省略了,反正書(shū)中的程序是直接用matlab 的eig函數(shù)求的
這里不能忘了,我們給出的比較矩陣一般是不滿足一致性的,但是我們還是把它當(dāng)做一致矩陣來(lái)處理,也可以獲得一組權(quán)重,但是這組權(quán)重能不能被接受,需要進(jìn)一步考量
例如在判斷因素1,2,3重要性時(shí),可以存在一些差異,但是不能太大,1比2重要,2比3 重要,1和3比時(shí)卻成了3比1重要,這顯然不能被接受
一致性的檢驗(yàn)是通過(guò)計(jì)算一致性比例CR 來(lái)進(jìn)行的
當(dāng) 10 . 0 < CR 時(shí),認(rèn)為判斷矩陣的一致性是可以接受的,否則應(yīng)對(duì)判斷矩陣作適當(dāng)修正。
CI的值由判斷矩陣計(jì)算獲得,RI的值查表獲得,具體的計(jì)算公式這里就略去,重點(diǎn)是理解為什么要做一致性檢驗(yàn)
接下來(lái)解決第二個(gè)問(wèn)題:每一個(gè)候選方案在每一個(gè)因素下又應(yīng)該獲得多少權(quán)重
這里則需要將不同候選方案,在不同因素下分別比較,具體的比較方法,還是使用比較矩陣,只不過(guò)之前準(zhǔn)則層的比較矩陣比較的對(duì)象是因素,這里比較的是某一因素下,候選方案的優(yōu)劣, n個(gè)因素則需構(gòu)造出來(lái)n個(gè)比較矩陣
例如在工作環(huán)境的因素下,工作1與工作2相比為 :4:2,工作2與工作3=2:1 工作1:工作3=6:1.,這樣構(gòu)造一個(gè)矩陣,再用之前的一致性矩陣的方法就可以求出一個(gè)權(quán)重,然后相對(duì)應(yīng)因素(這里是工作環(huán)境)所擁有的權(quán)值就可以按這個(gè)權(quán)重比例分配給不同候選物或人。
其他因素同理
至此兩個(gè)問(wèn)題就都得到了解決
最終將每個(gè)候選物、人從不同因素獲得的權(quán)值求和,就可以得到不同候選對(duì)于目標(biāo)層的權(quán)值大小,繼而可以根據(jù)值的大小,來(lái)選出優(yōu)劣
通過(guò)對(duì)層次分析法的基本了解,不難發(fā)現(xiàn)層次分析法對(duì)人們的思維過(guò)程進(jìn)行了加工整理,提出了一套系統(tǒng)分析問(wèn)題的方法,為
科學(xué)管理和決策提供了較有說(shuō)服力的依據(jù),但很明顯的缺點(diǎn)是,整個(gè)分析過(guò)程似乎都是依賴(lài)于人的主觀判斷思維,一來(lái)不夠客觀,二來(lái)兩兩比較全部人為完成,還是非常耗費(fèi)精力的,尤其是當(dāng)候選方案比較多的時(shí)候。
層次分析法的變形應(yīng)用(也可能本來(lái)就是這樣用的,只不過(guò)參考書(shū)上沒(méi)這樣說(shuō),外語(yǔ)
論文沒(méi)細(xì)看)解決最優(yōu)教練選擇問(wèn)題
目標(biāo):選最優(yōu)教練
準(zhǔn)則: 職業(yè)生涯所帶隊(duì)伍的勝率
職業(yè)生涯所帶隊(duì)伍的勝場(chǎng)
從教時(shí)長(zhǎng)(年)
職業(yè)生涯所帶隊(duì)伍獲獎(jiǎng)狀況(化成分?jǐn)?shù))
候選: 眾多教練
準(zhǔn)則層的比較矩陣好構(gòu)造 ,作6次兩兩比較,就可以獲得4*4的比較矩陣
問(wèn)題在于候選層的比較矩陣怎么獲得,有4000個(gè)教練的話,得比4000*3999次,這里就不必人為比較了,引入定量的數(shù)據(jù)用程序控制作比即可
勝率因素下就用勝率兩兩作比構(gòu)造矩陣,從教時(shí)長(zhǎng)因素下就用年長(zhǎng)來(lái)做比
這里又有兩點(diǎn)可以注意:
1.不同因素下數(shù)據(jù)的量綱和性質(zhì)不一樣,直接用數(shù)據(jù)作比來(lái)分配,不一定合適,比如勝率越要接近1越難,0.7比勝率0.5 和勝率0.9比0.7 ,后者比值比前者小,這顯然不合適。建模中我們結(jié)合了冪函數(shù)和對(duì)數(shù)函數(shù)處理。
2.這里的用定量數(shù)據(jù)作比獲得的矩陣顯然滿足一致性要求,不需要做一致性檢驗(yàn)(想做還不好做,,計(jì)算CR的值要有RI,RI的值查表只給出9個(gè),計(jì)算4000個(gè)教練,需要4000個(gè)RI呢)
綜上就對(duì)層次分析法完成了定性定量結(jié)合的應(yīng)用,以及對(duì)多個(gè)候選方案的比較(其實(shí)只是就是用程序控制數(shù)據(jù)作比,我們水平有限,能成功應(yīng)用該方法已經(jīng)不容易了)
很遺憾的是比賽時(shí)編寫(xiě)的代碼存放的優(yōu)盤(pán)不慎丟失, 沒(méi)有辦法把代碼共享出來(lái), 這里只能將書(shū)中的代碼貼出。比賽建模時(shí), 就是在這個(gè)代碼基礎(chǔ)上進(jìn)行修改實(shí)現(xiàn)。 只要理解了下列代碼,編寫(xiě)符合自己需求的程序, 應(yīng)當(dāng)是水到渠成的事。
代碼:
txt3.txt 中的內(nèi)容:
1 1 1 4 1 1/2
1 1 2 4 1 1/2
1 1/2 1 5 3 1/2
1/4 1/4 1/5 1 1/3 1/3
1 1 1/3 3 1 1
2 2 2 3 3 1
1 1/4 1/2
4 1 3
2 1/3 1
1 1/4 1/5
4 1 1/2
5 2 1
1 3 1/3
1/3 1 1/7
3 7 1
1 1/3 5
3 1 7
1/5 1/7 1
1 1 7
1 1 7
1/7 1/7 1
1 7 9
1/7 1 1
1/9 1 1
本文關(guān)鍵詞:AHP,由筆耕文化傳播整理發(fā)布。
本文編號(hào):250105
本文鏈接:http://sikaile.net/jianzhugongchenglunwen/250105.html