多因素决策之层次分析法

层次分析法(Analytic Hierarchy Process,AHP)


  最近需要用到多因素决策的方法,于是翻了翻书,找到了层次分析法,总结一下学习成果❤
​  层次分析法是由T.L.Saaty等人在20世纪70年代提出的一种定性和定量相结合的、系统化、层次化的分析方法。以基本的3层层次分析法举例,将一个决策问题分解为3个层次,最上层为目标层,中间层为准则层,最下层为方案层。

在这里插入图片描述

  通过相互比较确定各准则对于目标的权重,及各方案对于每一准则的权重。将方案层对准则层的权重准则层对目标层的权重进行综合,最终确定方案层对目标层的权重,从而确定出决策结果。在层次分析法中权重是定量的。

​ 层次分析法的基本步骤如下:

  • 建立层次结构模型 将实际问题相关的各个因素按照不同属性自上而下地分解成若干层次。同一层的诸因素从属于上一层的因素或对上层因素有影响,同时又支配下一层的因素或受到下层因素的作用,而同一层的各因素之间尽量相对独立。最上层为目标层,通常只有一个因素,最下层通常为方案或对象层,中间可以有一个或几个层次,通常为准则层或指标层;
  • 构造成对比较阵 从层次结构模型的第2层开始,对于从属于(或影响)上一层每个因素的同一层诸因素,用成对比较法和1-9比较尺度构造成对比较阵,直到最下层。
  • 计算权向量并做一致性检验 对于每一个成对比较阵计算最大特征根及对应特征向量,利用一致性指标,随机一致性指标和一致性比率做一致性检验。若检验通过,特征向量(归一化后)即为权向量;若不通过,重新构造成对比较矩阵。
  • 综合计算 逐层计算最终得到方案层各方案在决策目标中的占比

成对比较矩阵和权向量

  假设要比较某一层的 n n n个因素 C 1 , C 2 , . . . , C n C_{1},C_{2},...,C_{n} C1,C2,...,Cn对上层一个因素 O O O的影响,每次取两个因素 C i C_{i} Ci C j C_{j} Cj,用 a i j a_{ij} aij表示因素 C i C_{i} Ci C j C_{j} Cj O O O的影响之比,全部比较结果就构成了成对比较矩阵。
A = ( a i j ) n × n , a i j > 0 , a j i = 1 a i j A=(a_{ij})_{n\times n},a_{ij}>0,a_{ji}=\frac{1}{a_{ij}} A=(aij)n×n,aij>0,aji=aij1
在这种情况下, A A A正互反矩阵。更进一步,如果一个正互反矩阵满足:
a i j ⋅ a j k = a i k , i , j , k = 1 , 2 , . . . , n a_{ij} \cdot a_{jk}=a_{ik},i,j,k=1,2,...,n aijajk=aik,i,j,k=1,2,...,n
则称A为一致性矩阵,简称一致阵。n阶一致阵A有下列性质:

  • A的秩为1,A的唯一非零特征根为n;
  • A的任一列向量都是对应于特征根的特征向量

例如下面的两个矩阵中, A 1 , A 2 A_1,A_2 A1,A2矩阵均为正互反矩阵,而只有 A 1 A_1 A1为一致性矩阵:
A 1 = [ 1 2 4 1 2 1 2 1 4 1 2 1 ] , A 2 = [ 1 2 4 1 2 1 3 1 4 1 3 1 ] A_1=\begin{bmatrix} 1&2 & 4\\ \frac{1}{2} &1 &2 \\ \frac{1}{4} &\frac{1}{2} &1 \end{bmatrix},A_2=\begin{bmatrix} 1&2 & 4\\ \frac{1}{2} &1 &3 \\ \frac{1}{4} &\frac{1}{3} &1 \end{bmatrix} A1= 121412121421 ,A2= 121412131431
  如果得到的成对比较矩阵 A A A为一致阵,就取对应于特征根 n n n的、归一化的特征向量(即分量之和为1)表示诸因素 C 1 , C 2 , . . . , C n C_{1},C_{2},...,C_{n} C1,C2,...,Cn对上层因素 O O O的权重,这个向量称为权向量。如果得到的成对比较矩阵 A A A不为一致阵,Saaty等人建议用对应于A最大特征根(记作 λ \lambda λ)的特征向量(归一化后)作为权向量 w w w,满足公式:
A w = λ w Aw=\lambda w Aw=λw
即通过求成对比较矩阵的特征根得到权向量,但应满足一致性检验的要求。

正互反阵求取最大特征根和特征向量的实用方法

  实际运用中,用定义计算矩阵的特征根和特征向量是相当困难的,特别是矩阵阶数较高的时候。另一方面,因为成对比较矩阵是通过定性比较得到的比较粗糙的量化结果,对它作精确计算是不必要的,所以完全可以用简便的近似方法计算其特征根和特征向量,常见的有和法、根法、幂法。

(1)和法

  • 1°将 A A A的每一列向量归一化得 ω ~ i j = a i j ∑ i = 1 n a i j , j = 1 , 2 , . . . , n \tilde{\omega} _{ij}=\frac{a_{ij}}{\sum_{i=1}^{n}a_{ij}},j=1,2,...,n ω~ij=i=1naijaij,j=1,2,...,n;
  • 2°对 ω ~ i j \tilde{\omega} _{ij} ω~ij按行求和得到 ω ~ i = ∑ j = 1 n ω ~ i j , i = 1 , 2 , . . . , n \tilde{\omega} _{i} = \sum_{j=1}^{n}\tilde{\omega} _{ij},i=1,2,...,n ω~i=j=1nω~ij,i=1,2,...,n;
  • 3°将 ω ~ i \tilde{\omega} _{i} ω~i归一化 ω i = ω ~ i ∑ i = 1 n ω ~ i {\omega} _{i} =\frac{\tilde{\omega} _{i}}{\sum_{i=1}^{n}\tilde{\omega} _{i}} ωi=i=1nω~iω~i,即 ω = ( ω 1 , ω 2 , . . . , ω n ) {\omega}=({\omega} _{1},{\omega} _{2},...,{\omega} _{n}) ω=(ω1,ω2,...,ωn)为近似特征向量;
  • 4°计算 λ = 1 n ∑ i = 1 n ( A ω ) i ω i \lambda =\frac{1}{n}\sum_{i=1}^{n}\frac{(A\omega)_i}{\omega_i} λ=n1i=1nωi(Aω)i,作为最大特征根得的近似值。

(2)根法

  步骤与和法基本相同,只是将和法步骤2°改为对 ω ~ i j \tilde{\omega}_{ij} ω~ij按行求积并开 n n n次方,即 ω ~ i = ( ∏ j = 1 n ω ~ i j ) 1 / n , i = 1 , 2 , . . . , n \tilde{\omega}_{i}=(\prod_{j=1}^{n} \tilde{\omega}_{ij})^{1/n},i=1,2,...,n ω~i=(j=1nω~ij)1/n,i=1,2,...,n

比较尺度

  Saaty等人提出1-9尺度,即 a i j a_{ij} aij的取值范围是1,2,…,9及其互反数1,1/2,…,1/9。1-9尺度 a i j a_{ij} aij的含义如下:

尺度 a i j a_{ij} aij含义
1 C i C_i Ci C j C_j Cj影响相同
3 C i C_i Ci C j C_j Cj影响稍强
5 C i C_i Ci C j C_j Cj影响强
7 C i C_i Ci C j C_j Cj影响明显的强
9 C i C_i Ci C j C_j Cj影响绝对的强
2,4,6,8 C i C_i Ci C j C_j Cj影响之比在上述两个相邻等级之间
1,1/2,…,1/9 C i C_i Ci C j C_j Cj影响之比为上面 a i j a_{ij} aij的互反数

一致性检验

  实际应用场景中,成对比较阵通常不是一致阵,但是为了能用它的对应于特征根 λ \lambda λ的特征向量能作为被比较因素的权向量,其不一致程度应在容许范围内。

  由于 n n n阶正互反阵 A A A的最大特征根 λ ≥ n \lambda \ge n λn,而当 λ = n \lambda = n λ=n时, A A A是一致阵。显然, λ \lambda λ n n n大的越多, A A A的不一致程度越严重,Saaty将
C I = λ − n n − 1 CI=\frac{\lambda -n}{n-1} CI=n1λn
定义为一致性指标。 C I = 0 CI=0 CI=0 A A A为一致阵,其值越大 A A A的不一致程度越严重。为了确定 A A A的不一致程度的容许范围,需要找出衡量 A A A的一致性指标 C I CI CI的标准。Saaty又引入所谓随机一致性指标 R I RI RI,通过多次重复实验得到随机一致性指标 R I RI RI的数值如下:

n n n1234567891011
R I RI RI000.580.901.121.241.321.411.451.491.51

当其一致性比率 C R CR CR满足如下条件
C R = C I R I < 0.1 CR=\frac{CI}{RI}<0.1 CR=RICI<0.1
时认为 A A A的不一致程度在容许范围之内,可用其特征向量作为权向量。

综合计算方法

​   若第 k k k层的一个因素受到第 k + 1 k+1 k+1 n n n个因素的影响,可以构造出 n × n n×n n×n阶的成对比较矩阵,从而求出 n × 1 n×1 n×1的权向量,权向量的第 i i i个值就表示出第 k + 1 k+1 k+1层第 i i i个因素的影响程度(占比)。若第 k k k层的 m m m个因素均受到第 k + 1 k+1 k+1 n n n个因素的影响,可以构造 m m m n × n n×n n×n阶的成对比较矩阵,从而求出 m m m n × 1 n×1 n×1的权向量,将权向量逐列排放得到一个 n × m n×m n×m的矩阵,为了后续描述方便,个人简称为”权矩阵“。权矩阵的每 i i i行表示第 k k k层的 m m m个因素在 k + 1 k+1 k+1层第 i i i个因素的占比,权矩阵的第 j j j列表示第 k + 1 k+1 k+1层的 n n n个因素在 k k k层第 j j j个因素的占比。

​   以三层层次分析法举例,准测层 m m m个因素对目标层,可以构造出一个 m × m m×m m×m的成对比较矩阵,根据它所计算得到的权向量为 ϖ 21 = ( w 1 2 , w 2 2 , . . . w m 2 ) ⊤ \varpi_{21}=(w_{1}^{2},w_{2}^{2},...w_{m}^{2})^{\top} ϖ21=(w12,w22,...wm2),表示出每个准则在目标层中的占比;随后计算方案层 n n n个方案对准则层某个因素 m i m_i mi的比重,同样也可以构造出一个 n × n n×n n×n的成对比较矩阵,计算其权向量为 ϖ 32 i = ( w 1 i , w 2 i , . . . w n i ) ⊤ \varpi_{32}^{i}=(w_{1}^{i},w_{2}^{i},...w_{n}^{i})^{\top} ϖ32i=(w1i,w2i,...wni),表示出每个方案在准则 m i m_i mi的占比,以此类推,可以计算出准则层所有因素对n个方案的权向量,最终形成一个 n × m n×m n×m的矩阵 W 32 = ( ϖ 32 1 , ϖ 32 2 , . . . , ϖ 32 m ) W_{32}=(\varpi_{32}^{1},\varpi_{32}^{2},...,\varpi_{32}^{m}) W32=(ϖ321,ϖ322,...,ϖ32m),不难发现 W 32 W_{32} W32 i i i行就表示出方案 i i i在各项准则中的占比。最终的各个方案在目标层的权重即为: w = W 32 ϖ 21 = ( w 1 , w 2 , . . . , w n ) ⊤ w=W_{32}\varpi_{21}=(w_1,w_2,...,w_n)^{\top } w=W32ϖ21=(w1,w2,...,wn)。根据 w w w中各个元素的取值就可以决策出哪个方案更好。

​   推广至N层决策问题,层次分析法的计算方式为: w = W N N − 1 W N − 1 N − 2 . . . W 32 ϖ 21 w=W_{NN-1}W_{N-1N-2}...W_{32}\varpi_{21} w=WNN1WN1N2...W32ϖ21,该公式需要满足的前提是第 i i i层的每个项会受到第 i + 1 i+1 i+1所有因素的影响。若不满足公式前提,如第 i + 1 i+1 i+1层的因素只影响第 i i i层某个因素,就不能使用其推广公式了,现举出一个实际例子。给出一个四层的决策问题,从下图中可以看到准测层1的准则1受到了准则层2的 k k k个子准则的影响,而准则层1的其它准则与准则层2的因素不相关。

在这里插入图片描述

现给出具体的计算步骤如下:

  • Step1:先计算出准则层1对目标层的权向量,构造出 m × m m×m m×m的成对比较矩阵 C 21 C_{21} C21,从而求出 m × 1 m×1 m×1的权向量 ϖ 21 \varpi_{21} ϖ21;
  • Step2:求出准则层2的 k k k个因素对于准则层1的准则1的权重占比,构造出 k × k k×k k×k的成对比较矩阵 C 32 C_{32} C32,从而求出 k × 1 k×1 k×1权向量 ϖ 32 1 \varpi_{32}^{1} ϖ321;
  • Step3:求出方案层 n n n个方案对于准则层2中 k k k个子准则的占比,构造出 k k k n × n n×n n×n的成对比较矩阵,从而得到 k k k n × 1 n×1 n×1的权向量,最终得到一个 n × k n×k n×k的权矩阵 W 43 1 W_{43}^{1} W431;
  • Step4:求出n个方案对于准则层1中准则1的权重占比,得到 n × 1 n×1 n×1的权向量 w 42 1 = W 43 1 ϖ 32 1 w_{42}^{1}=W_{43}^{1}\varpi_{32}^{1} w421=W431ϖ321;
  • Step5:求n个方案在准则层1中剩余 m − 1 m-1 m1个准则的占比,得到 m − 1 m-1 m1 n × n n×n n×n的成对比较矩阵,从而得到 m − 1 m-1 m1 n × 1 n×1 n×1的权向量,最终得到一个 n × ( m − 1 ) n×(m-1) n×(m1)权矩阵 W 42 W_{42} W42;
  • Step6:将权向量 w 42 1 w_{42}^{1} w421与权矩阵 W 42 W_{42} W42合并,得到一个 n × m n×m n×m的权矩阵 W 42 ′ W_{42}^{'} W42;
  • Step7:计算出方案层 n n n个方案在目标层中的权重, w 41 = W 42 ′ ϖ 21 = ( w 1 , w 2 , . . . , w n ) ⊤ w_{41}=W_{42}^{'}\varpi_{21}=(w_1,w_2,...,w_n)^{\top } w41=W42ϖ21=(w1,w2,...,wn),通过比较权向量各元素大小即可作出决策。

效用函数法

​   若第 k k k层的 m m m个因素受到第 k + 1 k+1 k+1 n n n个因素的影响,可以不用构造 m m m n × n n×n n×n阶的成对比较矩阵,之后利用它们的特征向量构造出一个 n × m n×m n×m的权矩阵。在某些应用场景下,可以直接利用效用函数法直接求得权矩阵。假设 C i j C_{ij} Cij表示 k + 1 k+1 k+1层第 i i i个因素对于 k k k层第 j j j个因素的实际取值,令 C m i n j = m i n 1 ≤ i ≤ n { C i j } , C m a x j = m a x 1 ≤ i ≤ n { C i j } , j = 1 , . . . , m C_{min}^{j}=min_{1\le i \le n}\left \{ C_{ij} \right \},C_{max}^{j}=max_{1\le i \le n}\left \{ C_{ij} \right \} ,j=1,...,m Cminj=min1in{Cij},Cmaxj=max1in{Cij},j=1,...,m

常见的效用函数有:

(1) μ i j = C i j C m a x j , i = 1 , 2... , m \mu _{ij}=\frac{C_{ij} }{C_{max}^{j}},i=1,2...,m μij=CmaxjCij,i=1,2...,m, 这里 C i j C_{ij} Cij值越大越好。

(2) μ i j = 1 + C m i n j C m a x j − C i j C m a x j , i = 1 , 2... , m \mu _{ij}=1+\frac{C_{min}^{j}}{C_{max}^{j}}- \frac{C_{ij} }{C_{max}^{j}},i=1,2...,m μij=1+CmaxjCminjCmaxjCij,i=1,2...,m, 这里 C i j C_{ij} Cij值越小越好。

(3)
μ i j = { C i j C ∗ , C i j ∈ ( C m i n j , C ∗ ) 1 + C ∗ C m a x j − C i j C m a x j , C i j ∈ ( C ∗ , C m a x j ) \mu _{ij}=\begin{cases}\frac{C_{ij} }{C^{*} } ,C_{ij}\in (C_{min}^{j},C^{*}) \\1+\frac{C^{*}}{C_{max}^{j}}- \frac{C_{ij} }{C_{max}^{j}},C_{ij}\in (C^{*},C_{max}^{j}) \end{cases} μij={CCij,Cij(Cminj,C)1+CmaxjCCmaxjCij,Cij(C,Cmaxj)
其中 i = 1 , 2... , m i=1,2...,m i=1,2...,m,这里 C i j C_{ij} Cij越接近 C ∗ C^{*} C越好。

实际取值经过效用函数的转换,转换后的取值在[0,1]范围内。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值