層次分析法

2021-10-07 22:05:57 字數 2661 閱讀 9210

層次分析法(the analytic hierarchy process,簡稱ahp)

主要適用問題: 評價類問題

評價類問題需要考慮的三個問題:

權重表當我們想要評價哪乙個方案更好時,我們可以通過填寫一張權重表來判斷。

層次分析法的登場

一致矩陣的特點:各行(各列)之間成倍速關係

一致矩陣計算權重:

權重歸一化: 方案1 = 1 / (1 + 1/a + 1/b + …)

​ 方案2 = (1/a) / (1 + 1/a + 1/b + …)

​ 方案3 = (1/b) / (1 + 1/a + 1/b + …)

一致性檢驗

步驟:ci=

λmax

−nn−

1ci = \frac-n}

ci=n−1

λmax

​−n​

n12345

6789

1011

1213

1415ri0

00.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 cr=

ciri

cr = \frac

cr=ric

i​如果cr < 0.1, 則可認為判斷矩陣的一致性可以接受;否則需要對判斷矩陣進行修正

判斷矩陣計算權重

總結:層次分析法的步驟:

分析系統中各因素之間的關係,建立系統的遞階層次結構

對於同一層次的各元素關於上一層次中某一準則的重要性進行兩兩比較,構造兩兩比較矩陣(判斷矩陣)

由判斷矩陣計算被比較元素對於該準則的相對權重,並進行一致性檢驗(檢驗權重通過才能用)

%% 輸入判斷矩陣

clear;clc

disp('請輸入判斷矩陣a: ')

a = input('請輸入判斷矩陣a=\n')

%% 方法1:算術平均法求權重

% 第一步: 將判斷矩陣按照列歸一化(每一元素除以所在列的和)

sum_a = sum(a)

[n, n] = size(a) % 也可以寫成n = size(a, 1)

% 因為我們的判斷矩陣a是乙個方陣,所以這裡的r和c此相同,我們可以就用同乙個字母n表示

sum_a = repmat(sum_a, n, 1) % repeat matrix 的縮寫

asum_a

stand_a = a ./ sum_a

% 這裡我們直接將兩個矩陣對應的元素相除即可

% 第二步:將歸一化的各列相加(按行求和)

sum(stand_a, 2)

% 第三步:將相加後得到的向量中每個元素除以n即可得到權重向量

disp('算術平均法求權重的結果為:');

disp(sum(stand_a, 2) / n)

%% 方法2:幾何平均法求權重

% 第一步: 將a的元素按照行相乘得到乙個新的列向量

product_a = prod(a, 2)

% prod函式和sum函式類似,乙個用於乘,乙個用於加

% 第二步:將新的向量的每個分類開n次方

product_n_a = product_a .^ (1/n)

% 第三步:將新的變數的每個分量進行歸一化即可得到權重向量

% 將這個列向量中的每乙個元素除以這乙個向量的和即可

disp('幾何平均法求權重的結果為:');

disp(product_a ./ sum(product_n_a));

%% 方法3:特徵值法求權重

% 第一步: 求出矩陣a的最大特徵值以及對應的特徵向量

[v,d] = eig(a) %v是特徵向量,d是由特徵值構成的對角矩陣(處理對角線元素外,其餘位置元素全為0)

max_eig = max(max(d)) %這裡也可以寫成max(d(:))

d == max_eig

[r, c] = find(d == max_eig, 1)

% 第二步:對求出的特徵向量進行歸一化即可得到我們的權重

v(:,c)

disp('特徵向量法求權重的結果為:');

disp(v(:,c) ./ sum(v(:,c)))

% 我們先根據上面找到的最大特徵值的列數c找到對應的特徵向量,然後進行標準化

%% 計算一致性比例cr

ci = (max_eig - n) / (n - 1)

ri = [0 0 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.10

disp('因為cr < 0.10, 所以該判斷矩陣a的一致性可以接受');

else

disp('注意:cr >= 0.10, 因此該判斷矩陣需要進行修改');

end

層次分析法

ahp分析方法,其基本步驟可歸納為 1 建立遞階層次結構 建立遞階層次結構是ahp法中關鍵一步,如圖所示。首先,把複雜問題中所包含的因素分解為不同層次。同一層次的因素作為準則對下一層次的某些因素起支配作用,同時,它又受上乙個層次因素的支配。這種從上到下的支配關係形成了乙個遞階層次結構,處於最上層的是...

層次分析法

此方法的步驟 1.建立有目標層 準則層 方案層等構成的層次結構 2.構造下層各元素對上層每一元素的成對比較矩陣 3.計算各個成對比較矩陣的特徵根和特徵向量,做一致性檢驗,通過後將特徵向量取做權向量 4.用分層加權和法計算最下層元素對最上層元素的權重 即逐層矩陣相乘 關於一致性檢驗,n階成對比較矩陣的...

層次分析法

層次分析法是對難以完全定量的複雜系統作出決策的模型和方法。層次分析法的結構如下。建立層次結構模型 構造判別矩陣 正反交矩陣 層次單排序及其一致性檢驗 層次總排序及其一致性檢驗 這裡使用乙個例子,比如我們的目標是選出學校附近最好的餐館,這裡我們就會考慮每個餐館的衛生 口味 服務這個幾個方面,而候選的餐...