而李永、胡向红、乔箭(2005)改进的模糊层次分析法(Improved FAHP)步骤如下:
①用三标度法 建立互补型的模糊判断矩阵,F=(fij)n×n为优先判断矩阵;
②求行和ri= ,然后用rij= +0.5将模糊判断矩阵改造成模糊一致判断矩阵R=(rij)n×n;
③采用和行归一法W(0)=(w1, w2, …, wn)T = ,求得排序向量;
④根据转换公式eij=rij/rji将模糊一致判断矩阵R变为互反型矩阵E=(eij)n×n;
⑤以V0=(w1,w2,…,wn)T为迭代初始值,利用迭代公式Vk+1=E*Vk求特征向量Vk+1,并求Vk+1的无穷范数||Vk+1||∞;
⑥以Vk=Vk+1/||Vk+1||∞作为新初始值,进行迭代,直至||Vk+1||∞-||Vk||∞<ε,则停止迭代,将Vk+1进行归一化处理后,所得向量即为方案排序向量。
改进的模糊层次分析法优点有:既解决了判断矩阵的一致性问题,又解决了解的收敛速度及精度问题,以此求得与实际相符的排序向量.
结论改进传统的层次分析法较传统的层次分析法更加完善和行之有效,并符合人们的思维逻辑,形式简单,准确,且易建立.
另外,由优先判断矩阵改造而成的模糊一致性矩阵满足一致性条件,无需再进行一致性检验,同时也可大大减少叠代次数,提高收敛速度,满足计算精度的要求,从而为多目标决策提供了较为可靠的决策方法.
根据该原理利用stata中的mata编制一个小程序可以非常方便地求出各层次指标的权重。
代码
- *改进的模糊层次分析法求指标权重的矩阵程序
- set more off
- mata
- mata clear
- A = (0.5,0.5,1\0.5,0.5,1\0,0,0.5)
- B = rowsum(A)
- R = J(rows(A),cols(A),.)
- for (i=1; i<=rows(A); i++) {
- for (j=1; j<=rows(A); j++) R[i,j]=(B[i,1]-B[j,1])/(2*rows(A))+0.5
- }
- R
- E = J(rows(R),cols(A),.)
- for (i=1; i<=rows(R);i++){
- for (j=1; j<=rows(R); j++) E[i,j]=R[i,j]/R[j,i]
- }
- E
- C = J(rows(A), cols(A),.)
- for (i=1; i<=rows(A); i++) {
- for (j=1; j<=rows(A); j++) C[i,j]=R[i,j]/sum(R[.,j])
- }
- C
- W = rowsum(C)/rows(C)
- W
- a = 0
- do{
- V0 = W
- v1 = colmax(V0)
- v1
- U=V0:/v1
- W = E*U
- v2 = colmax(W)
- v2
- eps = v2 - v1
- eps
- a = a+1
- } while (abs(eps)>= 1e-6)
- V2=W:/colsum(W)
- a
- V2
- end