多因素决策之层次分析法
多因素决策之层次分析法
层次分析法(AHP)是一种系统化、层次化的决策分析方法,通过将复杂问题分解为多个层次,并对各层次因素进行比较和权重计算,最终得出决策结果。本文详细介绍了层次分析法的基本原理、步骤和应用,包括成对比较矩阵、权向量计算、一致性检验、综合计算方法以及效用函数法等。
层次分析法(Analytic Hierarchy Process,AHP)
层次分析法介绍
层次分析法是由T.L.Saaty等人在20世纪70年代提出的一种定性和定量相结合的、系统化、层次化的分析方法。以基本的3层层次分析法举例,将一个决策问题分解为3个层次,最上层为目标层,中间层为准则层,最下层为方案层。
通过相互比较确定各准则对于目标的权重,及各方案对于每一准则的权重。将方案层对准则层的权重及准则层对目标层的权重进行综合,最终确定方案层对目标层的权重,从而确定出决策结果。在层次分析法中权重是定量的。
层次分析法的基本步骤如下:
建立层次结构模型将实际问题相关的各个因素按照不同属性自上而下地分解成若干层次。同一层的诸因素从属于上一层的因素或对上一层因素有影响,同时又支配下一层的因素或受到下一层因素的作用,而同一层的各因素之间尽量相对独立。最上层为目标层,通常只有一个因素,最下层通常为方案或对象层,中间可以有一个或几个层次,通常为准则层或指标层;
构造成对比较阵从层次结构模型的第2层开始,对于从属于(或影响)上一层每个因素的同一层诸因素,用成对比较法和1-9比较尺度构造成对比较阵,直到最下层。
计算权向量并做一致性检验对于每一个成对比较阵计算最大特征根及对应特征向量,利用一致性指标,随机一致性指标和一致性比率做一致性检验。若检验通过,特征向量(归一化后)即为权向量;若不通过,重新构造成对比较矩阵。
综合计算逐层计算最终得到方案层各方案在决策目标中的占比
成对比较矩阵和权向量
假设要比较某一层的n个因素C1,C2,...,Cn对上层一个因素O的影响,每次取两个因素Ci和Cj,用aij表示因素Ci和Cj对O的影响之比,全部比较结果就构成了成对比较矩阵。
A=(aij)n×n,aij>0,aji=1aij
在这种情况下,A为正互反矩阵。更进一步,如果一个正互反矩阵满足:
aij⋅ajk=aik,i,j,k=1,2,...,n
则称A为一致性矩阵,简称一致阵。n阶一致阵A有下列性质:
A的秩为1,A的唯一非零特征根为n;
A的任一列向量都是对应于特征根的特征向量
例如下面的两个矩阵中,A1,A2矩阵均为正互反矩阵,而只有A1为一致性矩阵:
A1=[124121214121],A2=[124121314131]
如果得到的成对比较矩阵A为一致阵,就取对应于特征根n的、归一化的特征向量(即分量之和为1)表示诸因素C1,C2,...,Cn对上层因素O的权重,这个向量称为权向量。如果得到的成对比较矩阵A不为一致阵,Saaty等人建议用对应于A最大特征根(记作λ)的特征向量(归一化后)作为权向量w,满足公式:
Aw=λw
即通过求成对比较矩阵的特征根得到权向量,但应满足一致性检验的要求。
正互反阵求取最大特征根和特征向量的实用方法
实际运用中,用定义计算矩阵的特征根和特征向量是相当困难的,特别是矩阵阶数较高的时候。另一方面,因为成对比较矩阵是通过定性比较得到的比较粗糙的量化结果,对它作精确计算是不必要的,所以完全可以用简便的近似方法计算其特征根和特征向量,常见的有和法、根法、幂法。
(1)和法
1°将A的每一列向量归一化得ω~ij=aij∑i=1naij,j=1,2,...,n;
2°对ω
ij按行求和得到ωi=∑j=1nω~ij,i=1,2,...,n;3°将ω
i归一化ωi=ωi∑i=1nω~i,即ω=(ω1,ω2,...,ωn)为近似特征向量;4°计算λ=1n∑i=1n(Aω)iωi,作为最大特征根得的近似值。
(2)根法
步骤与和法基本相同,只是将和法步骤2°改为对ωij按行求积并开n次方,即ωi=(∏j=1nω~ij)1/n,i=1,2,...,n。
比较尺度
Saaty等人提出1-9尺度,即aij的取值范围是1,2,…,9及其互反数1,1/2,…,1/9。1-9尺度aij的含义如下:
尺度aij含义
1Ci与Cj影响相同
3Ci比Cj影响稍强
5Ci比Cj影响强
7Ci比Cj影响明显的强
9Ci比Cj影响绝对的强
2,4,6,8Ci与Cj影响之比在上述两个相邻等级之间
1,1/2,…,1/9Ci与Cj影响之比为上面aij的互反数
一致性检验
实际应用场景中,成对比较阵通常不是一致阵,但是为了能用它的对应于特征根λ的特征向量能作为被比较因素的权向量,其不一致程度应在容许范围内。
由于n阶正互反阵A的最大特征根λ≥n,而当λ=n时,A是一致阵。显然,λ比n大的越多,A的不一致程度越严重,Saaty将
CI=λ−nn−1
定义为一致性指标。CI=0时A为一致阵,其值越大A的不一致程度越严重。为了确定A的一致性指标CI的标准,Saaty又引入所谓随机一致性指标RI,通过多次重复实验得到随机一致性指标RI的数值如下:
n1234567891011
RI000.580.901.121.241.321.411.451.491.51
当其一致性比率CR满足如下条件
CR=CIRI<0.1
时认为A的不一致程度在容许范围之内,可用其特征向量作为权向量。
综合计算方法
若第k层的一个因素受到第k+1层n个因素的影响,可以构造出n×n阶的成对比较矩阵,从而求出n×1的权向量,权向量的第i个值就表示出第k+1层第i个因素的影响程度(占比)。若第k层的m个因素均受到第k+1层n个因素的影响,可以构造m个n×n阶的成对比较矩阵,从而求出m个n×1的权向量,将权向量逐列排放得到一个n×m的矩阵,为了后续描述方便,个人简称为”权矩阵“。权矩阵的每i行表示第k层的m个因素在k+1层第i个因素的占比,权矩阵的第j列表示第k+1层的n个因素在k层第j个因素的占比。
以三层层次分析法举例,准测层m个因素对目标层,可以构造出一个m×m的成对比较矩阵,根据它所计算得到的权向量为ϖ21=(w12,w22,...wm2)⊤,表示出每个准则在目标层中的占比;随后计算方案层n个方案对准则层某个因素mi的比重,同样也可以构造出一个n×n的成对比较矩阵,计算其权向量为ϖ32i=(w1i,w2i,...wni)⊤,表示出每个方案在准则mi的占比,以此类推,可以计算出准则层所有因素对n个方案的权向量,最终形成一个n×m的矩阵W32=(ϖ321,ϖ322,...,ϖ32m),不难发现W32的第i行就表示出方案i在各项准则中的占比。最终的各个方案在目标层的权重即为:w=W32ϖ21=(w1,w2,...,wn)⊤。根据w中各个元素的取值就可以决策出哪个方案更好。
推广至N层决策问题,层次分析法的计算方式为:w=WNN−1WN−1N−2...W32ϖ21,该公式需要满足的前提是第i层的每个项会受到第i+1所有因素的影响。若不满足公式前提,如第i+1层的因素只影响第i层某个因素,就不能使用其推广公式了,现举出一个实际例子。给出一个四层的决策问题,从下图中可以看到准测层1的准则1受到了准则层2的k个子准则的影响,而准则层1的其它准则与准则层2的因素不相关。
现给出具体的计算步骤如下:
Step1:先计算出准则层1对目标层的权向量,构造出m×m的成对比较矩阵C21,从而求出m×1的权向量ϖ21;
Step2:求出准则层2的k个因素对于准则层1的准则1的权重占比,构造出k×k的成对比较矩阵C32,从而求出k×1权向量ϖ321;
Step3:求出方案层n个方案对于准则层2中k个子准则的占比,构造出k个n×n的成对比较矩阵,从而得到k个n×1的权向量,最终得到一个n×k的权矩阵W431;
Step4:求出n个方案对于准则层1中准则1的权重占比,得到n×1的权向量w421=W431ϖ321;
Step5:求n个方案在准则层1中剩余m−1个准则的占比,得到m−1个n×n的成对比较矩阵,从而得到m−1个n×1的权向量,最终得到一个n×(m−1)权矩阵W42;
Step6:将权向量w421与权矩阵W42合并,得到一个n×m的权矩阵W42′;
Step7:计算出方案层n个方案在目标层中的权重,w41=W42′ϖ21=(w1,w2,...,wn)⊤,通过比较权向量各元素大小即可作出决策。
效用函数法
若第k层的m个因素受到第k+1层n个因素的影响,可以不用构造m个n×n阶的成对比较矩阵,之后利用它们的特征向量构造出一个n×m的权矩阵。在某些应用场景下,可以直接利用效用函数法直接求得权矩阵。假设Cij表示k+1层第i个因素对于k层第j个因素的实际取值,令Cminj=min1≤i≤n{Cij},Cmaxj=max1≤i≤n{Cij},j=1,...,m。
常见的效用函数有:
(1)μij=CijCmaxj,i=1,2...,m, 这里Cij值越大越好。
(2)μij=1+CminjCmaxj−CijCmaxj,i=1,2...,m, 这里Cij值越小越好。
(3)
μij={CijC∗,Cij∈(Cminj,C∗)1+C∗Cmaxj−CijCmaxj,Cij∈(C∗,Cmaxj)
其中i=1,2...,m,这里Cij越接近C∗越好。
实际取值经过效用函数的转换,转换后的取值在[0,1]范围内。