怎么做代購彩票網(wǎng)站嗎百度seo快速排名優(yōu)化服務
目錄
前言
一、評價類問題概述
二、AHP建模流程
1、過程描述
2、層次分析法—Matlab代碼
三、權重計算
1、算術平均法
2、幾何平均法
3、特征值法
目錄
文章目錄
前言
一、評價類問題概述
二、AHP建模流程
1、過程描述
2、層次分析法—Matlab代碼
三、權重計算
算術平均法
前言
本文將講解解決評價類問題的第一種模型層次分析法(AHP法),首先我們會具體講解評價類問題解答的具體流程再對AHP方法進行講解
一、評價類問題概述
評價指標本身的數(shù)學量化,評價指標之間的數(shù)學綜合
基本流程:明確主體—>指標明確—>權重計算—>方案評價
明確主體:明確哪里可以用到評價,比如:2012對《葡萄酒的評價》這里葡萄球的等級就是可以用到評價的地方
指標確定:可以通過一個思維導圖的方式來畫出這個指標系統(tǒng)。先確定方向(通過查找文獻和頭腦風暴),然后再向下細化
權重計算:使用主觀權重法和客觀權重法,每個指標都要進行歸一化
方案評價:得到權重后,再對結果進行進一步分析
二、AHP建模流程
1、過程描述
1、建立層次結構模型:
目標層(決策的目標,如:選出微博之星)
準測層C={C1,C2,···,Cn}(考慮的因素,實質上就是評價指標)
方案層P={P1,P2,···Pm}(決策對象,如:微博之星又A,B,C三個人可選擇)
2、構造判斷矩陣
對于準則層中的每個元素Ci(i=1,2,···,n),構造一個關于方案層P中各個元素兩兩比較的判斷矩陣Ai(mxm),其中元素aij表示因素Pj相對于因素Pi的重要性程度。通常使用1-9的比例標度來表示這種重要性程度。易得aij*aji=1,所以在寫判斷矩陣時可以只寫一邊矩陣再對應填另一邊
注意:這個地方常常會出現(xiàn)嵌套分層,也就是說可能每個Ci可能會單獨對應某些Pi,這個時候要再構造一次判斷矩陣,本質上就是先聚類(將單個指標因素按照關聯(lián)度和相似度分為互不影響的幾大類)再使用層次分析法
例如:下面我們將問題分成了三層,其中,我們將指標首先分為互不影響的三大類:通行能力,安全性,便捷度,首先對這三類構造判斷矩陣,進行一致性檢驗,算出這三大類的權重;然后又討論影響這三大類的因素,在每一大類中,對其中的影響因素再構造相應的判斷矩陣,并且檢驗其一致性,再算出每個因素的權重,最后再計算出每個具體因素的總權重,進行評價分析。?
3、層次單排序及一致性檢驗
- 對于每個判斷矩陣Ai,計算其最大特征根λmax和對應的特征向量Wi,對特征向量Wi進行歸一化處理(其實就是特征向量/n)
- 得到準則層Ci下各因素的權重向量wi = (wi1, wi2, ..., wim)。
- 計算一致性指標CI 和隨機一致性指標RI(可在網(wǎng)上查到),進而計算一致性比例CR = CI / RI。
- 如果CR < 0.1,(這里只有CI越小CR才能越小,故當λmax—>n時,我們認為矩陣Ai越接近一致矩陣)?則認為判斷矩陣Ai具有滿意的一致性


2、層次分析法—Matlab代碼
%層次分析法-一致性檢驗
A = input('判斷矩陣A=');%輸入判斷矩陣
[n,n]=size(A); %獲取A的行和列%求出最大特征值以及對應的特征向量
[V,D]=eig(A); %V是特征向量 D是特征值構成的對角矩陣
Max_eig = max(max(D)); %先求出每一行的最大值,再求出最大值中的最大值,即為最大特征值CI = (Max_eig - n)/(n-1);%求出一致性檢驗指標%網(wǎng)上查表可得
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('一致性指標CI=');disp(CI);
disp('一致性比例CR=');disp(CR);if CR<0.1disp('因為CR<0.01,所以該判斷矩陣A的一致性可以接受!');
elsedisp('注意:CR>=0.10,因此該判斷舉證A要進行修改!');
end
三、權重計算
1、算術平均法
%1.算術平均法計算權重
%輸入樣例,將前面的判斷矩陣輸入即可,此處省略
Asum=sum(A,1);%將A的每列求和賦值到Asum中
Ar = repmat(Asum,n,1);%復制Asum n行1列為Ar矩陣,使得Ar又變回了n行n列的矩陣
stand_A=A./Ar;%歸一化處理,./表示對應的元素相除
ASumr = sum(stand_A,2);%再對歸一化處理后的矩陣的每列加到同一行
disp(ASumr/n);%相加后的每個元素/n得到權重向量(nx1)
2、幾何平均法
A = input('判斷矩陣A='); %輸入判斷矩陣
[n,n] = size(A); %獲取A的行和列
prod_A = prod(A,2); %將A中每一行元素相乘得到
一列向量
prod_n_A = prod_A.^(1/n); %將新的向量的每個分量開n
次方等價求1/n次方
re_prod_A = prod_n_A./sum(prod_n_A);%歸一化處理
disp(re_prod_A); %展示權重結果
3、特征值法
A = input('判斷矩陣A='); %輸入判斷矩陣
[n,n] = size(A); %獲取A的行和列
%求出最大特征值以及對應的特征向量
[V,D] = eig(A); %V是特征向量 D是特征值構
成的對角矩陣
Max_eig = max(max(D)); %先求出每一列的最大值,
再求最大值中的最大值
[r,c] = find(Max_eig == D,1);%使用find()函數(shù)找出最大
特征值對應的特征向量的位置(索引)
%對特征向量進行歸一化得到所需權重
disp(V(:,c)./sum(V(:,c)));