基于MATLAB的AHP實現(xiàn)(大學本科畢業(yè)論文)(共30頁)_第1頁
基于MATLAB的AHP實現(xiàn)(大學本科畢業(yè)論文)(共30頁)_第2頁
基于MATLAB的AHP實現(xiàn)(大學本科畢業(yè)論文)(共30頁)_第3頁
基于MATLAB的AHP實現(xiàn)(大學本科畢業(yè)論文)(共30頁)_第4頁
基于MATLAB的AHP實現(xiàn)(大學本科畢業(yè)論文)(共30頁)_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、PAGE 湖南人文科技(kj)學院本科生畢業(yè)設計(b y sh j)題目(tm)(中文): 基于MATLAB的AHP實現(xiàn) (英文): Implementation of the AHP Based on MATLAB 學生姓名: 趙美云 學號 06415135 系 部: 數(shù)學與應用數(shù)學系 專業(yè)年級: 06級信息與計算科學 指導教師: 楊滌塵 職 稱: 副教授 湖南人文科技學院教務處制湖南人文(rnwn)科技學院本科畢業(yè)設計誠信聲明本人鄭重聲明:所呈交的本科畢業(yè)設計,是本人在指導老師的指導下,獨立進行研究工作所取得的成果,成果不存在知識產權爭議,除文中已經注明引用的內容外,本設計不含任何其他個人

2、或集體已經發(fā)表或撰寫(zhun xi)過的作品成果。對本文的研究做出重要貢獻的個人和集體均已在文中以明確方式標明。本人完全意識到本聲明的法律結果由本人承擔。 作者(zuzh)簽名: 二 年 月 日目 錄 TOC o 1-3 h z u HYPERLINK l _Toc261870081 摘 要 PAGEREF _Toc261870081 h 1 HYPERLINK l _Toc261870082 關鍵詞 PAGEREF _Toc261870082 h 1 HYPERLINK l _Toc261870083 Abstract PAGEREF _Toc261870083 h 1 HYPERLINK

3、 l _Toc261870084 Keywords PAGEREF _Toc261870084 h 1 HYPERLINK l _Toc261870085 1 層次(cngc)分析法 PAGEREF _Toc261870085 h 2 HYPERLINK l _Toc261870086 11 概述(i sh) PAGEREF _Toc261870086 h 2 HYPERLINK l _Toc261870087 12 AHP的基本原理和步驟(bzhu) PAGEREF _Toc261870087 h 2 HYPERLINK l _Toc261870088 1.2.1 遞階層次結構原理 PAGE

4、REF _Toc261870088 h 2 HYPERLINK l _Toc261870089 1.2.2 標度原理 PAGEREF _Toc261870089 h 3 HYPERLINK l _Toc261870090 1.2.3 排序原理 PAGEREF _Toc261870090 h 3 HYPERLINK l _Toc261870091 1.3 AHP的層次總排序及其一致性檢驗 PAGEREF _Toc261870091 h 5 HYPERLINK l _Toc261870092 1.3.1 層次總排序 PAGEREF _Toc261870092 h 5 HYPERLINK l _To

5、c261870093 1.3.2 AHP的一致性檢驗 PAGEREF _Toc261870093 h 6 HYPERLINK l _Toc261870094 2MATLAB的基本內容 PAGEREF _Toc261870094 h 6 HYPERLINK l _Toc261870095 2.1 MATLAB矩陣 PAGEREF _Toc261870095 h 7 HYPERLINK l _Toc261870096 2.1.1 MATLAB矩陣的建立 PAGEREF _Toc261870096 h 7 HYPERLINK l _Toc261870097 2.1.2 矩陣的特征值與特征向量 PAG

6、EREF _Toc261870097 h 7 HYPERLINK l _Toc261870098 2.2 MATLAB的M文件 PAGEREF _Toc261870098 h 8 HYPERLINK l _Toc261870099 3基于MATLAB的AHP實現(xiàn) PAGEREF _Toc261870099 h 9 HYPERLINK l _Toc261870100 31 AHP的MATLAB的計算流程框圖 PAGEREF _Toc261870100 h 9 HYPERLINK l _Toc261870101 32 平均隨機一致性指標的MATLAB實現(xiàn) PAGEREF _Toc261870101

7、 h 9 HYPERLINK l _Toc261870102 33 AHP各環(huán)節(jié)的 MATLAB實現(xiàn) PAGEREF _Toc261870102 h 11 HYPERLINK l _Toc261870103 3.3.1 特征向量及其歸一化的MATLAB實現(xiàn) PAGEREF _Toc261870103 h 11 HYPERLINK l _Toc261870104 3.3.2 一致性檢驗及單排序的MATLAB實現(xiàn) PAGEREF _Toc261870104 h 12 HYPERLINK l _Toc261870105 3.3.3 一致性檢驗及總排序的MATLAB實現(xiàn) PAGEREF _Toc261

8、870105 h 13 HYPERLINK l _Toc261870106 3.3.4 選擇最優(yōu)排序 PAGEREF _Toc261870106 h 14 HYPERLINK l _Toc261870107 4基于MATLAB的AHP應用 PAGEREF _Toc261870107 h 15 HYPERLINK l _Toc261870108 41 挑選合適工作問題 PAGEREF _Toc261870108 h 15 HYPERLINK l _Toc261870109 5結束語 PAGEREF _Toc261870109 h 25 HYPERLINK l _Toc261870110 參考文獻

9、 PAGEREF _Toc261870110 h 26 HYPERLINK l _Toc261870111 致謝 PAGEREF _Toc261870111 h 27湖南人文科技學院畢業(yè)論文(設計)PAGE 36第 頁 基于(jy)MATLAB的AHP實現(xiàn)(shxin)摘 要:在實際統(tǒng)計分析工作中,常會遇到多指標的綜合評價(pngji)和多目標決策的問題.層次分析法是解決這類問題的最在效的方法.但是,受計算條件的限制,常常不能及時給出結果,從而影響現(xiàn)場決策.本文利用MATLAB的強大數(shù)值處理功能,對層次分析法的判斷、分析和計算等過程的各個環(huán)節(jié)實行了MATLAB程序實現(xiàn),決策者只要在MATLAB

10、程序文件中導入相應的數(shù)據(jù)信息和兩兩對比判斷矩陣,就能迅速得出分析的結果,為解決實際問題提供一個快捷的方法,從而提高人們的決策效率.關鍵詞:AHP 層次分析法 MATLAB 應用Implementation of the AHP Based on MATLABAbstract: In the practical work of statistical analysis, we often meet the question of multi-index comprehensive evaluation and multi-objective decision-making.The Analyti

11、c Hierarchy Process is an effect method to solve this kind of problem . However, due to the calculation conditions, the results can not be given at time,thus affecting the Scene decision-making. This article uses the powerful numerical processing functions of MATLAB to conduct an implementation of t

12、he processing of The Analytic Hierarchy Processs judgment, analysis and computational,the decision maker only need to import his own hierarchical structure plan and pairwise comparison judgment matrix in the MATLAB, then it can obtain the corresponding result rapidly and provides a quick method to s

13、olve actual problems, thus raises peoples decision-making efficiency.Keywords: AHP MATLAB Applications1 層次(cngc)分析法11 概述(i sh)在市場競爭日益激烈的今天,企業(yè)或個人經常面臨復雜的決策問題,不僅需要快速作出決策,而且(r qi)需要解決決策問題中多種不確定性所帶來的困難.決策分析問題中的重要組成部分是多屬性決策,雖然多屬性決策問題的背景不同,但它們通常具有下列共同特點:1(1)屬性之間通常是相互沖突和不可公度的(屬性量綱不同);(2)在屬性集中,可能同時存在定性屬性和定量屬

14、性;(3)屬性經常構成一個層次結構;(4)決策信息有時是不完全的,決策者只能提供決策參數(shù)的不完全信息;決策者的判斷可能是不確定的,即沒有100%的把握做出主觀判斷.美國著名運籌學家T.L.Saaty教授于70年代中期創(chuàng)立了一種實用的多準則決策法層次分析法(The Analytic Hierarchy Process,簡稱AHP)2.是一種實用的多準則決策方法,是處理那些完全用定量方法來解決復雜問題的有效手段,也是定量分析和定性分析相結合的決策方法.更是在多目標、多準則的條件下,對多種方案進行選擇與判斷的一種簡潔而有力的工具.眾多的工作表明,AHP的應用范圍十分廣泛,其應用已涉及到能源政策和資源

15、規(guī)劃,企業(yè)管理與生產決策,管理信息系統(tǒng)3,經濟分析和計劃,政治和沖突分析4,行為和社會學5,科技發(fā)展和評價,軍事指揮,農業(yè)氣候區(qū)劃,大氣和水環(huán)境質量評價,湖泊富營養(yǎng)化評價等領域,可以預料,隨著對AHP理論的深入研究,它的應用范圍必將進一步拓廣.正因為如此,人們自然地要求了解和掌握AHP的應用技巧.本文旨在基于層次分析法的基礎上,在MATLAB中編制對層次分析法的判斷、分析和計算過程的程序,決策者只要輸入層次結構方案和判斷矩陣,就能迅速得出相應的結果,為決策者解決問題提供一種快速的、具有較強實用價值的方法.12 AHP的基本原理和步驟6AHP的內容和決策方法是由它的基本原理確定的.AHP的原理包

16、括遞階層次結構原理、標度原理、排序原理.71.2.1 遞階層次結構原理一個復雜的問題可分解為它的目標、約束準則和方案等因素,按照不同屬性把這些因素分組形成互不相交的層次,上一層的因素對相鄰下一層次的全部或部分因素起著支配作用,形成按層次自上而下的逐層支配關系,而每一層都要通過兩兩比較,導出它們包含的因素的相對重要性排序權值,具有這種性質的層次稱為遞階層次結構.這種遞階層次的分解與綜合的研究思想在自然科學和社會科學中已被廣泛采用.人們的決策思維中的分解與綜合,人們的邏輯判斷也常常具有遞階層次原則的特點.采用的遞階層次結構會使面臨的問題在一定程度上反映了系統(tǒng)的有序性,它提供了一種深入認識和處理系統(tǒng)

17、的方式,把看來雜亂無章的各種復雜的決策因素統(tǒng)一起來,按系統(tǒng)的功能與行為進行深入研究.因此,以遞階層次思想作為決策思維的一種方式,是AHP的核心.1.2.2 標度(bio d)原理不同標度可能產生不同的方案排序,從而直接(zhji)或間接地影響著人們的決策.因此,對各種標度進行分析研究(ynji)與比較評價,無論是對AHP的理論發(fā)展和實際應用都是有意義的.文獻8采用判斷矩陣的一致性指標評價標度選擇的合理性,以具有最小一致性比例指標的標度方案作為最終評價結果.文獻9提出了評價標度的兩個準則,即實用性和客觀性,但沒有系統(tǒng)、全面地研究標度評價的指標體系.此外,標度評價研究缺少在實例中進行驗證,均沒有充

18、足的說服力.AHP規(guī)定了測度方式是通過兩兩比較判斷給出的比較的依據(jù)為標度,這種標度用的是19整數(shù)及其倒數(shù)來表示,叫比例標度.其中T.L.Saaty的九級標度法及其含義如表1-1所示10.表 1-1 Saaty九級標度法及其含義標度定義(比較因素i與j)1因素i與j同樣重要3因素i與j稍微重要5因素i與j較強重要7因素i與j強烈重要9因素i與j絕對重要2, 4, 6, 8上述兩相鄰判斷的中間值1 9的倒數(shù)表示因素i與因素j比較的標度值等于因素j與因素i比較的標度值的倒數(shù)1.2.3 排序原理AHP單一準則下的排序問題實質上是由一組元素兩兩比較得到重要性測度組成的判斷矩陣 ,它具有正值、互反性和基本

19、一致性.并且和排序測度W之間具有關系.在一致性情況下,比較測度A與排序測度W之間可以轉化為對方程組.求解未知的,從矩陣代數(shù)Perron-Frobineus理論知,正矩陣的實特征根所對應的歸一化特征向量是唯一的,而最大的特征根max,可通過求解得到.因此(ync),把上式看成(kn chn)比較測度A與導出測度(c du)W的關系,從而單一準則下的排序問題化為對上式的求解.這種特征根法是解決從比較測度求出排序權值的一種方法.通過層次分析法的基本原理,我們知運用AHP解決問題,大體可以把步驟總結如下:111、定義問題,確定要完成的目標.2、從最高層(目標),通過中間層(準則)到最低層(方案)構成一

20、個層次結構模型.如圖1所示:圖1 層次結構模型圖3、構造一系列下層各因素對上一層準則的兩兩比較判斷矩陣.如,針對圖中準則層1,作方案1與方案2,方案1與方案3,,方案1與方案n,方案2與方案3,,方案n-1與方案n等比較,從而得到判斷矩陣B,其形式如表1-2所示.表 1-2 判斷矩陣BC1C2CnC1b11b12b1nC2b21b22b2nCnbn1bn2bnn4、在第3步里建立判斷矩陣所需要的個判斷.5、完成所有的兩兩比較,輸入數(shù)據(jù),計算最大正特征值,計算一致性指標CR.6、對各層次完成第3、4、5步的計算.7、層次合成計算.8、如整個層次綜合一致性不通過,要對某些判斷作適當?shù)母纳疲缧薷?/p>

21、作成對比較判斷時所提的問題.如一定要修改問題的結構,則就要回到第2步,不過只要對層次結構中有問題的部分作相應修改即可. 1.3 AHP的層次總排序(pi x)及其一致性檢驗1.3.1 層次(cngc)總排序根據(jù)判斷矩陣計算本層次指標與上一層次指標之間的重要性程度的相對值(即權重值)的過程(guchng),稱為層次單排序.采用的方法為求判斷矩陣最大特征值及對應的特征向量并將其歸一化.層次總排序是計算同層次所有元素對最高層次的相對重要性權值.也就是利用上一層次單排序結果計算更高層的排隊順序.例如,在已經得到方案層對準則層、準則層對目標層的單排序后,把尋求方案因素對目標層的優(yōu)劣順序稱為方案總排序.假

22、設最高層A包含m個因素A1,A2,Am,對目標層總的排序權值為,;下一層包含n個因素Fl,F(xiàn)2,F(xiàn)n,它們對因素A1,A2,Am.的層次單排序權值為計算中取Fk與Aj無關則Wij=0,相關則Wij=l,形成相關矩陣(具體形式見表1-3).計算得到F層的總排序權值(見表1-3).最后得到F層總的排序的隨機一致性比率為:當CR0.1時,認為層次總排序結果具有滿意的一致性,否則還需重新調整判斷矩陣的元素值.表1-3 F層總排序表及相關矩陣表A1A2AmF層總排序權值F1W11W12W1mF2W21W22W2mFnWn1Wn2Wnm本文(bnwn)第三章將介紹運用MATLAB求矩陣最大特征值、相應特征

23、向量及層次(cngc)總排序權值的復雜運算.1.3.2 AHP的一致性檢驗(jinyn)AHP是對人們的主觀判斷加以形式化地表達和處理,逐步剔除主觀性,從而盡可能地轉化成客觀性.其正確與成功,取決于客觀成分能否達到足夠合理的地步.由于客觀事物的復雜性及決策者認識的主觀性,實際問題的兩兩判斷矩陣不可能做到嚴格一致性.一致性檢驗按照以下三個步驟進行12:1)計算一致性指標;2)找出相應的平均隨機一致性指標RI ;3)計算一致性比例;雖然CI值能反映出判斷矩陣A的非一致性的嚴重程度,但未能指明該非一致性是否可以接受.因而在具體分析時,我們引入了另一個度量的標準,即所謂隨機一致性指標,下表是龔木森、許

24、樹柏(1986)得出的115階的平均隨機一致性指標RI的取值,如表1-4所示 13.表1-4 平均隨機一致性指標N12345678RI000.520.891.121.261.361.41N9101112131415RI1.461.491.521.521.561.581.592MATLAB的基本內容MATLAB(MATrix LABoratory,矩陣實驗室的縮寫)是一種特殊用途的計算機程序優(yōu)化執(zhí)行工程和科學計算.它開始為旨在執(zhí)行矩陣數(shù)學程式的生活,但多年來它已發(fā)展成為一個靈活的計算系統(tǒng)基本上能夠解決任何技術問題.MATLAB具有編程語言的基本特征,使用MATLAB也可以使用像BASIC、FOR

25、TRAN、C等傳統(tǒng)編程語言一樣,進行程序設計,而且簡單易學、編程效率高.正因為MATLAB的強大的功能,使得它在許多領域得到廣泛應用.在科研與工程應用領域,MATLAB已被廣泛地用于科學研究和解決各種具體的實際問題.許多科技工作者選用MATLAB做為計算工具,避免了繁瑣的底層編程,從而可以把主要精力和時間花在科學研究和解決實際問題是上,提高了工作效率.2.1 MATLAB矩陣(j zhn)矩陣(j zhn)是MATLAB的基本處理對象,因此根據(jù)本文所需,簡單(jindn)介紹所涉及MATLAB矩陣內容.2.1.1 MATLAB矩陣的建立1、直接輸入法最簡單的建立矩陣的方法是從鍵盤直接輸入矩陣的

26、元素.例如:A=1 2 3;4 5 6;7 8 9A = 1 2 3 4 5 6 7 8 9也可以用回車鍵代替分號,按下列方式輸入:A=1 2 3 4 5 6 7 8 9 2、利用M文件建立矩陣比較大且復雜的矩陣,可以為它專門建立一個M文件,如同下例.利用M文件建立矩陣.啟動有關編輯程序或MATLAB文本編輯器,并輸入待建矩陣:MYMAT= 111 ,112,113,114,115,116,117,118,119; 211,212,213,214,215,216,217,218,219;把輸入的內容以純文本方式存盤(設文件名為mymatrix.m).在MATLAB命令窗口中輸入mymatrix

27、,即運行該M文件,就會自動建立一個名為MYMAT的矩陣,可供以后使用.2.1.2 矩陣的特征值與特征向量特征值和特征向量在科學研究和工程計算中都有非常廣泛地應用.在MATLAB中,計算矩陣A的特征值和特征向量的函數(shù)是eig(A),常用的調用格式有3種14:E = eig( A ) :求矩陣A的全部特征值,構成向量E.V,D=eig(A):求矩陣A的全部特征值,構成對角矩陣D,并求A得特征向量構成V的列向量.V,D=eig(A,nobablance):與第2種格式中先對A作相似變換后求矩陣A的特征值和特征向量,而格式3直接求矩陣A的特征值和特征向量.例如:A=1,1,0.5;1,1,0.25;0

28、.5,0.25,2; V,D=eig(A)V = 0.7212 0.4443 0.5315 -0.6863 0.5621 0.4615 -0.0937 -0.6976 0.7103D = -0.0166 0 0 0 1.4801 0 0 0 2.5365求得的3個特征值是-0.0166、1.4801和2.5365,各特征值對應(duyng)的特征向量為V的各列構成的向量.2.2 MATLAB的M文件(wnjin)用MATLAB語言編寫的程序稱為(chn wi)M文件.M文件是由若干MATLAB命令組成在一起構成的,它可以完成某些操作,也可以實現(xiàn)某種算法.M文件可以根據(jù)調用方式的不同分為兩類:命

29、令文件(Script File)和函數(shù)文件(Function File).它們的擴展名均為.m.函數(shù)文件由function語句引導,其基本結構為:function 輸出形參表=函數(shù)名(輸入形參表)注釋說明部分函數(shù)體語句我們通過舉例說明如下:例2-2 分別建立命令文件和函數(shù)文件,將求矩陣的一致性指標CI:CI=(max-n)/(n-1)程序1 建立命令文件并以文件名CI.m存盤:max=input(please input max:);n=input(please input n:);CI=(max-n)/(n-1)然后在MATLAB的命令窗口中輸入CI即可.程序 2 建立函數(shù)文件CI.m.fu

30、nction c=CI(max,n)c=(max-n)/(n-1)然后在MATLAB的命令窗口調用該函數(shù)文件.max=input(please input max:);n=input(please input n:);c=CI(max,n)3基于(jy)MATLAB的AHP實現(xiàn)31 AHP的MATLAB的計算(j sun)流程框圖根據(jù)層次分析法的一般步驟我們得到(d do)在MATLAB工具上實現(xiàn)的計算程序流程框圖,如圖2所示16輸入準則層層數(shù)輸入準則層對目標層判斷矩陣元素判斷矩陣歸一化計算CR0.1輸入準則層第j個準則包含的方案數(shù)量n判斷矩陣歸一化計算輸入方案層第j個準則層的判斷矩陣元素bi

31、jCR0.1另m=1;n=1輸入方案層第m個準則層的相關矩陣元素計算權值矩陣權值的計算總CR計算開始結束CR0 (2) = l (3) =l按照事物邏輯要求,該矩陣(j zhn)還應具備一致性,即滿足:=前面已經給出由于客觀事物的復雜性與決策者的認識的多樣性,實際(shj)問題的成對比較矩陣不可能做到嚴格上的一致性,因而,借助平均隨機一致性指標RI來相對判定其一致性程度.其中(qzhng)表1-4是已經計算好的115階矩陣的RI值表,但未給出其實現(xiàn)過程,且各文獻的RI值表不完全相同.究其原因除沒有太大必要介紹外,真正去實現(xiàn)它卻有如下三個難度:(1)隨機兩兩判斷矩陣中的元素要求是19和它們對應的

32、倒數(shù)共17個整數(shù)與小數(shù)的均勻分布很難處理.(2)一般高級編程語言實現(xiàn)成對比較矩陣及相關計算,非常復雜,且占用內存巨大,耗時多.(3) 隨機種子源不能控制.本文使用數(shù)學軟件包MATLAB對其進行計算.其設計解決思路為:先用軟件包中隨機函數(shù)產生數(shù)117的均勻分布的n階矩陣,然后在軟件包中采用不同技巧將它轉化為成對比較矩陣,最后用循環(huán)語句計算出RI值.結果如表3-1所示:表3-1 計算的RI值階數(shù)123456789RI000.54400.89801.13131.25151.34951.41901.4542以n=4為例,過程詳見如下程序清單,其中隨機成對比較矩陣的實現(xiàn)見相應注釋部分.15MATLAB的

33、程序M文件:function ri %計算RI值的命令文件n=4; ri=0; m=100;rand(seed,21) %控制隨機發(fā)生器for i=1:m a=ceil (17*rand(n); %產生n階l17的隨機陣 a(find(a=8)=8.1; %消除0為分母 b=1./(a-8); %產生一個輔助陣 a(find(a9)=b(find(a9); %借助b,將917分別轉化為 a(find(a=8.1)=8; e=eye(n); %產生一個4階單位陣 c=1./a; %將a中每個元素換成相應倒數(shù) c=c; %將c轉置 c=tril(c,-1); %抽取c的下三角(不含主對角線) a=

34、triu(a,1); %抽取a的上三角(不含主對角線) a=a+c+e; %實現(xiàn)隨機成對比較陣a k=size(a,1); %計算a的行維數(shù) ri=ri+(max(abs(eig(a)-k)/(k-1); %計算100次RI值endri/m %計算(j sun)平均RI值33 AHP各環(huán)節(jié)(hunji)的 MATLAB實現(xiàn)(shxin)以目標矩陣A=,準則層矩陣為P1=, P2=,P3=為例,運用MATLAB進行數(shù)據(jù)處理.3.3.1 特征向量及其歸一化的MATLAB實現(xiàn)MATLAB中求矩陣特征值和特征向量的函數(shù)是eig,其調用的格式為V,D=eig(A),其中,V為特征向量矩陣,D為特征值矩陣

35、.層次分析法中需要求得是最大特征值及對應的歸一化特征向量,而且考慮到eig函數(shù)在求得的特征值中可能會存在復數(shù).因此,運用直接輸入程序代碼會產生一定的誤差.在此需要對求得的V、D進行適當選擇,定義一個M-file maxeigvalvec.m來實現(xiàn).functionmaxeigval,w=maxeigvalvec(A) %求最大特征值及對應的歸一化特征向量 %A為判斷矩陣eigvec,eigval=eig(A);eigval=diag(eigval); %特征向量eigvalmag=imag(eigval);realind=find(eigvalmag=0.10 disp(input(矩陣沒通過

36、一致性檢驗,請重新調整判斷矩陣)else disp(input(矩陣(j zhn)通過一致性檢驗);end在MATLAB中鍵入(jin r)如下指令:RIA,CIA= sglsortexamine(max(1),A);RIP1,CIP1= sglsortexamine(max(2),P1);RIP2,CIP2= sglsortexamine(max(3),P2);RIP3,CIP3= sglsortexamine(max(4),P3);運行(ynxng)結果如下:矩陣通過一致性檢驗矩陣通過一致性檢驗矩陣通過一致性檢驗矩陣通過一致性檢驗3.3.3 一致性檢驗及總排序的MATLAB實現(xiàn)通過層次單排

37、序(權重)計算后,進行層次合成計算,在此本文定義tolsortvec.m函數(shù)計算層次總排序的權重并進行一致性檢驗.function tw=tolsortvec(utw,dw,CIC,RIC)% 求層次總排序權重并進行一致性檢驗% utw為上一層因素的總排序權重行向量% dw為下一層因素相對于上一層各因素的層次單排序權重矩陣% CIC為一致性指標列向量% RIC為隨機一致性指標列向量tw=dw*utwCR=utw*CIC/(utw*RIC);if CR=0.10 disp(input(層次總排序沒通過一致性檢驗,請重新調整判斷矩陣);else disp(input(層次總排序通過一致性檢驗);e

38、nd在MATLAB中輸入如下指令:dw=zeros(7,3);dw=(1:2,1)=wP1; dw=(3:5,2)=Wp2; dw=(6:7,3)=wP3; CIC=CIP1;CIP2;CIP3;RIC=RIP1;RIP2;RIP3;tw= tolsortvec(wA,dw,CIC,RIC);運行結果如下:tw=0.42470.21230.06670.16460.02700.06980.0349層次(cngc)總排序通過一致性檢驗其中(qzhng)tw 是層次總排序結果.因此(ync),根據(jù)數(shù)據(jù)建立如表3-2的層次總排序表.表3-2 層次總排序表(權重)APA層次P的總排序結果注0.6370

39、0.25830.1047P10.6667000.42470.3333000.2123P200.258300.066700.637000.164600.104700.0270P3000.66670.0698000.33330.0349注:按概率乘法,P層次總排序指標的權重值為NP層次指標的權重與相應上一層次指標AN層權重的積,且總排序權重值的和為1.3.3.4 選擇最優(yōu)排序計算出層次總排序后,為了使決策者能迅速得出結果,本文對層次總排序進行最優(yōu)排序.運用MATLAB鍵入如下指令:n=length(tw);for i=1:nt=max(tw);b(i)=t;m n=find(a=t);tw(n)=

40、;endb運行結果如下: b=0.42470.21230.16460.06980.06670.03490.0276利用(lyng)MATLAB大大縮短了計算復雜(fz)矩陣的時間,為決策者節(jié)省了寶貴的時間,從而有更多的精力投入其他事務.4基于(jy)MATLAB的AHP應用41 挑選合適工作問題某畢業(yè)生選擇工作,經雙方懇談,假設已有三個單位C1,C2,C3表示愿意錄用他.該生對三個單位進行了解后,選取了一些中間指標進行考察,例如單位的研究課題,發(fā)展前途,待遇,同事情況,地理位置,單位名氣等.根據(jù)層次分析法,試求該生工作優(yōu)先排序(給出權值、計算程序),并給出最終選擇決策.現(xiàn)以A、B、C表示選擇工

41、作的三個層次,建立如圖3所示的結構模型:圖3 選擇單位層次結構圖根據(jù)成對比較法,得到相應判斷矩陣表4-14-7所示:表4-1 A-B判斷矩陣B1B2B3B4B5B6B1111411/2B2112411/2B311/21531/2B41/41/41/511/31/3B5111/3311B6222331表4-2 B1C判斷(pndun)矩陣11/41/241321/31表4-3 B2C判斷(pndun)矩陣C1C2C3C111/41/5C2411/2C3521表4-4 B3C判斷(pndun)矩陣C1C2C3C1131/3C21/311/7C3371表4-5 B4C判斷矩陣C1C2C3C111/3

42、5C2317C31/51/71表4-6 B5C判斷(pndun)矩陣C1C2C3C1117C2117C31/71/71表4-7 B6C判斷(pndun)矩陣C1C2C3C1179C21/711C31/911現(xiàn)在(xinzi)在MATLAB中分別用直接輸入程序法和M文件方法求解.1)、直接輸入代碼法:在MATLAB中輸入如下程序:A = 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; B1 = 1,1/4,1/2;4,1,3;2,1/3,1; B2

43、= 1,1/4,1/5;4,1,1/2;5,2,1; B3 = 1,3,1/3;1/3,1,1/7;3,7,1; B4 = 1,1/3,5;3,1,7;1/5,1/7,1; B5 = 1,1,7;1,1,7;1/7,1/7,1; B6 = 1,7,9;1/7,1,1;1/9,1,1; BS = B1,B2,B3,B4,B5,B6; m = length(B1);n = length(A); %隨機一致性指標RI RI = 0,0,0.58,0.90,1.12,1.24,1.32,1.41,1.45,1.49,1.51; Wa,LA = eig (A) %求A的特征向量WA和特征根LAMaxn=

44、input(please input largest eigenvalue:); %輸入最大特征根 CIn = (Maxn- n) / (n - 1); CRn = CIn / RI(n); %A的一致性比率CRnWA=Wa(:,1)/sum(Wa(:,1); %特征向量歸一化 if CRn 0.10 fprintf(A 的CR %f 通過(tnggu)一致性檢驗!n,CRn); %控制(kngzh)文本格式 else fprintf(A 的CR %f 未通過(tnggu)一致性檢驗!n,CRn); end for k = 1:n %求B的特征向量WK和特征根LK WB,LK = eig( B

45、S(1:3,(k-1)*m+1:(k-1)*m+3) )Max(k)=input(please input largest eigenvalue:); CIm(k) = (Max(k)- m) / (m - 1);RIm(k) = RI(m); CRm(k) = CIm(k) / RIm(k); %B的一致性比率CRm WK(:,k)= WB(:,1)/sum(WB(:,1); end for k = 1:n if CRm(k) 0.10 fprintf(B%d的CR %f 通過一致性檢驗!n,k,CRm(1,k); %控制文本格式 else fprintf(B%d的CR %f 未通過一致性檢

46、驗!n,k,CRm(1,k); end enddisp(準則層對目標層權向量); disp(WA);disp(方案層對準則層權向量); disp(WK);E = WK * WAdisp(方案層組合權向量);disp(E);CI = CIm * WA;RI = RIm * WA;CR = CI / RI; %組合一致性比率CR if CR 0.10 fprintf(組合一致性比率CR %f 通過一致性檢驗!n,CRn); else fprintf(組合一致性比率CR %f 未通過一致性檢驗!n,CRn); endMAX,CHOICE = max(E); %最佳選擇CHOICEMATLAB運行結果

47、如下:Wa = -0.3396 -0.1255 - 0.0563i -0.1255 + 0.0563i 0.7354 -0.1896 + 0.3838i -0.1896 - 0.3838i -0.4038 -0.1884 - 0.5736i -0.1884 + 0.5736i -0.6464 -0.4476 - 0.2693i -0.4476 + 0.2693i -0.4249 0.6724 0.6724 0.0834 0.3884 - 0.0605i 0.3884 + 0.0605i -0.1063 -0.0138 + 0.0429i -0.0138 - 0.0429i -0.0405 -0

48、.0592 - 0.0922i -0.0592 + 0.0922i -0.3298 -0.1384 + 0.3417i -0.1384 - 0.3417i -0.1217 0.0035 + 0.1640i 0.0035 - 0.1640i -0.6488 -0.1467 - 0.0710i -0.1467 + 0.0710i 0.1337 0.5920 0.5920 LA =6.6178 0 0 0 0 0 0 -0.1557 + 1.2808i 0 0 0 0 0 0 -0.1557 - 1.2808i 0 0 0 0 0 0 -0.0603 0 0 0 0 0 0 -0.1230 + 0.

49、5461i 0 0 0 0 0 0 -0.1230 - 0.5461i please input largest eigenvalue:6.6178A 的CR 0.099645 通過(tnggu)一致性檢驗!WB = 0.1999 0.1000 + 0.1731i 0.1000 - 0.1731i 0.9154 -0.9154 -0.9154 0.3493 0.1747 - 0.3025i 0.1747 + 0.3025iLK = 3.0183 0 0 0 -0.0091 + 0.2348i 0 0 0 -0.0091 - 0.2348iplease input largest eigenva

50、lue: 0.1999 WB = 0.1460 0.0730 + 0.1265i 0.0730 - 0.1265i 0.4994 0.2497 - 0.4325i 0.2497 + 0.4325i 0.8540 -0.8540 -0.8540 LK = 3.0246 0 0 0 -0.0123 + 0.2725i 0 0 0 -0.0123 - 0.2725iplease input largest eigenvalue:3.0246WB = 0.3382 -0.1691 + 0.2929i -0.1691 - 0.2929i 0.1226 -0.0613 - 0.1062i -0.0613

51、+ 0.1062i 0.9331 0.9331 0.9331 LK = 3.0070 0 0 0 -0.0035 + 0.1453i 0 0 0 -0.0035 - 0.1453iplease input largest eigenvalue: 3.0070 WB = 0.3928 -0.1964 + 0.3402i -0.1964 - 0.3402i 0.9140 0.9140 0.9140 0.1013 -0.0506 - 0.0877i -0.0506 + 0.0877iLK = 3.0649 0 0 0 -0.0324 + 0.4448i 0 0 0 -0.0324 - 0.4448i

52、please input largest eigenvalue:3.0649 WB = -0.7035 -0.3392 0.6619 -0.7035 -0.9233 -0.7495 -0.1005 0.1804 0.0125LK = 3.0000 0 0 0 0.0000 0 0 0 -0.0000please input largest eigenvalue: 3.0000 WB = -0.9844 0.9844 0.9844 -0.1293 -0.0647 - 0.1120i -0.0647 + 0.1120i -0.1189 -0.0595 + 0.1030i -0.0595 - 0.1

53、030iLK = 3.0070 0 0 0 -0.0035 + 0.1453i 0 0 0 -0.0035 - 0.1453iplease input largest eigenvalue: 3.0070 B1的CR -2.413879 通過(tnggu)一致性檢驗!B2的CR 0.021207 通過(tnggu)一致性檢驗!B3的CR 0.006034 通過(tnggu)一致性檢驗!B4的CR 0.055948 通過(tnggu)一致性檢驗!B5的CR 0.000000 通過(tnggu)一致性檢驗!B6的CR 0.006034 通過一致性檢驗!準則層對目標層權向量 0.1507 0.179

54、2 0.1886 0.0472 0.1464 0.2879方案層對準則層權向量 0.1365 0.0974 0.2426 0.2790 0.4667 0.7986 0.6250 0.3331 0.0879 0.6491 0.4667 0.1049 0.2385 0.5695 0.6694 0.0719 0.0667 0.0965E = 0.3952 0.2996 0.3052方案層組合權向量 0.3952 0.2996 0.3052組合一致性比率CR 0.099645 通過一致性檢驗!CHOICE = 12)、M文件法:根據(jù)第三章節(jié)的層次分析法各環(huán)節(jié)的MATLAB實現(xiàn)定義如下三個函數(shù):定義ma

55、xeigvalvec.m來實現(xiàn)最大特征根及對應的歸一化特征向量.functionmaxeigval,w=maxeigvalvec(A) %求最大特征值及對應的歸一化特征向量 %A為判斷矩陣eigvec,eigval=eig(A);eigval=diag(eigval); %特征向量eigvalmag=imag(eigval);realind=find(eigvalmag=0.10 disp(input(矩陣沒通過一致性檢驗,請重新調整判斷矩陣)else disp(input(矩陣通過一致性檢驗);end(3)定義tolsortvec.m函數(shù)計算層次總排序的權重并進行一致性檢驗.function

56、 tw=tolsortvec(utw,dw,CIC,RIC)% 求層次總排序權重并進行一致性檢驗% utw為上一層因素的總排序權重行向量% dw為下一層因素相對于上一層各因素的層次單排序權重矩陣% CIC為一致性指標列向量% RIC為隨機一致性指標列向量tw=dw*utw;CR=utw*CIC/(utw*RIC);if CR=0.10 disp(input(層次總排序沒通過一致性檢驗,請重新調整判斷矩陣);else disp(input(層次總排序通過一致性檢驗);end%main.m主程序clear;A = 1,1,1,4,1,1/2;1,1,2,4,1,1/2;1,1/2,1,5,3,1/

57、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;B1 = 1,1/4,1/2;4,1,3;2,1/3,1;B2 = 1,1/4,1/5;4,1,1/2;5,2,1;B3 = 1,3,1/3;1/3,1,1/7;3,7,1;B4 = 1,1/3,5;3,1,7;1/5,1/7,1;B5 = 1,1,7;1,1,7;1/7,1/7,1;B6 = 1,7,9;1/7,1,1;1/9,1,1;max(1),wA=maxeigvalvec(A);max(2),wB1=maxeigvalvec(B1);max(3),wB2=maxeigvalvec(B2

58、);max(4),wB4=maxeigvalvec(B4);max(5),wB3=maxeigvalvec(B3);max(6),wB5=maxeigvalvec(B5);max(7),wB6=maxeigvalvec(B6);RIA,CIA=sglsortexamine(max(1),A);RIB1,CIB1=sglsortexamine(max(2),B1);RIB2,CIB2=sglsortexamine(max(3),B2);RIB3,CIB3=sglsortexamine(max(4),B3);RIB4,CIB4=sglsortexamine(max(5),B4);RIB5,CIB5

59、=sglsortexamine(max(6),B5);RIB6,CIB6=sglsortexamine(max(7),B6);dw=zeros(18,6);dw(1:3,1)=wB1;dw(4:6,2)=wB2;dw(7:9,3)=wB3;dw(10:12,4)=wB4;dw(13:15,5)=wB5;dw(16:18,6)=wB6;CIC=CIB1;CIB2;CIB3;CIB4;CIB5;CIB6;RIC=RIB1;RIB2;RIB3;RIB4;RIB5;RIB6;tw=tolsortvec(wA,dw,CIC,RIC);n=length(A);MAX,CHOICE = max(n); %最

60、佳(zu ji)選擇CHOICEMATLAB運行(ynxng)結果如下:maxeigval = 6.6178w = 0.1507 0.1792 0.1886 0.0472 0.1464 0.2879maxeigval = 3.0183w = 0.1365 0.6250 0.2385maxeigval = 3.0246w = 0.0974 0.3331 0.5695maxeigval = 3.0649w = 0.2790 0.6491 0.0719maxeigval = 3.0070w = 0.2426 0.0879 0.6694maxeigval = 3.0000w = 0.4667 0.46

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論