【数学建模】第一讲-层次分析法
??????
目錄
??????一、簡(jiǎn)介及前言(層次分析法解決評(píng)價(jià)類問(wèn)題)
二、構(gòu)造判斷矩陣(準(zhǔn)則層、方案層)
三、一致性檢驗(yàn)(CR=CI/RI)
四、計(jì)算權(quán)重(算數(shù)平均、幾何平均、特征值)
五、計(jì)算得分(Excel)
六、論文寫(xiě)作(SmartArt、畫(huà)圖)
七、代碼實(shí)現(xiàn)(MATLAB)
一、簡(jiǎn)介及前言
層次分析法(Analytic Hierarchy Process,簡(jiǎn)稱AHP),是指將與?決策有關(guān)的元素分解成目標(biāo)、準(zhǔn)則、方案等層次,在此基礎(chǔ)之上進(jìn)行定性和定量分析的決策方法。
層次分析法是將決策問(wèn)題按總目標(biāo)、各層子目標(biāo)、評(píng)價(jià)準(zhǔn)則直至具體的備投方案的順序分解為不同的層次結(jié)構(gòu),然后用求解判斷矩陣特征向量的辦法,求得每一層次的各元素對(duì)上一層次某元素的優(yōu)先權(quán)重,最后再加權(quán)和的方法遞階歸并各備擇方案對(duì)總目標(biāo)的最終權(quán)重,此最終權(quán)重最大者即為最優(yōu)方案。
層次分析法比較適合于具有分層交錯(cuò)評(píng)價(jià)指標(biāo)的目標(biāo)系統(tǒng),而且目標(biāo)值又難于定量描述的決策問(wèn)題。
層次分析法是建模比賽中最常用的模型,主要用于解決評(píng)價(jià)類問(wèn)題。評(píng)價(jià)類問(wèn)題可用打分解決。
如果直接打分問(wèn)權(quán)重:
?
?
?關(guān)鍵在于如何確定這些權(quán)重
?
二、構(gòu)造判斷矩陣
??
采用指標(biāo)兩兩比較的方法確定最終權(quán)重
??
?aij與列指標(biāo)相比,行指標(biāo)的重要程度(行是列的幾倍)
滿足主對(duì)角線全為1,aij*aji=1,則稱正互反矩陣,也就是層次分析法中的判斷矩陣。
??
準(zhǔn)則層各個(gè)指標(biāo)構(gòu)造一次得出權(quán)重。
方案層針對(duì)準(zhǔn)則層每個(gè)指標(biāo)構(gòu)造判斷矩陣得出各個(gè)權(quán)重。
三、一致性檢驗(yàn)
??
?? ? ? ? ? ? ? ? ? ??
列與列成比例,比值為?ajk。? ? ? ? ?行與行成比例,比值為aij
?
?一致性檢驗(yàn):檢驗(yàn)我們構(gòu)造的判斷矩陣與一致矩陣的差距大小
?
?
四、計(jì)算權(quán)重
?五、計(jì)算得分
六、論文寫(xiě)作
七、代碼實(shí)現(xiàn)
clear;clc %第一步:輸入判斷矩陣 A=input('請(qǐng)輸入判斷矩陣'); %A = [1,2,4;1/2,1,2;1/4,1/2,1];%第二步:一致性檢驗(yàn)(求CI、RI、CR) E = eig(A);%得到一個(gè)所有特征值構(gòu)成的列向量 lambda_max = max(E);%最大特征值 n = size(A,1);%指標(biāo)數(shù)即行列數(shù) CI = (lambda_max-n)/(n-1); RI = [0 0.0001 0.52 0.89 1.12 1.26 1.36 1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59]; %注意哦,這里的RI最多支持 n = 15 CR = CI/RI(n); disp(['一致性比例CR為' num2str(CR)]); if CR<0.1disp('一致性檢驗(yàn)通過(guò)。') elsedisp('一致性檢驗(yàn)不通過(guò)。') end%第三步:判斷矩陣求權(quán)重 [n,n] = size(A); %--------算數(shù)平均法--------% sum_A = repmat(sum(A),n,1);%按列求和得到行向量,行向量向下復(fù)制成r行 average_A = A./sum_A;%按列歸一化 average_A1 = sum(average_A,2)./n;%按行求和再除以指標(biāo)數(shù)n disp('算數(shù)平均法得出的權(quán)重:'); disp(average_A1); %--------幾何平均法--------% product_A = prod(A,2).^(1/n);%按行求幾何平均值得到列向量(和算數(shù)平均有區(qū)別!!) product_A1 = product_A./sum(product_A);%歸一化 disp('幾何平均法得出的權(quán)重:'); disp(product_A1); %--------特征值法--------% [V,D] = eig(A);%V:一列列特征向量構(gòu)成的矩陣D:特征值對(duì)角陣 eig_max = max(max(D));%最大特征值 [r,c] = find(D==eig_max,1);%最大特征值所在列find(logic,1)只找第一個(gè)不為0的 eig_vetor_max = V(:,c);%最大特征值對(duì)應(yīng)的特征向量 eig_vetor_max1 = eig_vetor_max./sum(eig_vetor_max);%歸一化 disp('特征值法得出的權(quán)重:'); disp(eig_vetor_max1);總結(jié)
以上是生活随笔為你收集整理的【数学建模】第一讲-层次分析法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 进程的创建——fork函数
- 下一篇: 谷歌地球离线地图包_水经注全国离线地图都