层次分析法
对着课件手打,非自我总结,但属学习笔记。
-
层次分析法:AHP,建模比赛种最基础的模型之一,主要用于解决评价类问题。
-
解决评价类问题的三问:
1、我们评价的目标是什么?
2、我们为了达到这个目标有哪些可选的方案?
3、评价的准则或者说指标是什么?(题目常常没有相关的数据和指标,因此需要我们根据背景材料、常识、网上收集到的参考资料进行综合分析确定最合适的指标。)
- 优先级:
- 谷歌/百度
- 微信搜索
- 知乎搜索
- 优先级:
-
对于各项指标的权重,因为受到很多影响因子的干扰,因此采用分而治之的思想,通过两两指标之间的比较来推算出权重。
-
但是矩阵种常常出现不一致的现象
-
当矩阵为正互反矩阵且各行各列之间成倍数关系时,矩阵为一致矩阵。
-
在层次分析法中,所构造的矩阵均为正互反矩阵,但是不一定为一致矩阵。因此使用判断矩阵求权重之前,必须要对判断矩阵进行一致性检验。
-
对于一致矩阵,有一个特征值tr(A)为n,其余特征值为0,且秩为1,当特征值为n时。特征向量为k[(frac{1}{a~11~}),(frac{1}{a~12~}),……,(frac{1}{a~1n~})]T(k$ eq$0)。
-
当n阶正互反矩阵A为一致矩阵时当且仅当最大特征值λmax=n,且当正互反矩阵A非一致时,一定满足λmax>n。
-
一致性检验的步骤:
-
第一步:计算一致性指标CI=(frac{λ~max~—n}{n—1})
-
第二步:查找对应的平均随机一致性指标RI
-
第三步:计算一致性比例CR=(frac{CI}{RI}),如果CR<0.1,则可认为判断矩阵的一致性可以接受;否则需要对判断矩阵进行修改。
CI = (Max_eig - n) / (n-1); 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 % 这里n=2时,一定是一致矩阵,所以CI = 0,我们为了避免分母为0,将这里的第二个元素改为了很接近0的正数 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,因此该判断矩阵A需要进行修改!'); end
-
-
算术平均法求权重:
-
第一步:将判断矩阵按照列归一化(每一个元素除以其所在列的和)
-
第二步:将归一化的各列相加(按行求和)
-
第三步:将相加后得到的向量中的每个元素除以n得到权重向量。
-
假设判断矩阵A=(left[egin{matrix}a~11~&a~12~&cdots&a~1n~\a~21~&a~22~&cdots&a~2n~\vdots&vdots&ddots&vdots\a~n1~&a~n2~&cdots&a~nn~end{matrix} ight])
那么算术平均法求得的权重向量wi=(frac{1}{n})(sum_{j=1}^n frac{a~ij~}{sum_{k=1}^na~kj~})(i=1,2,……,n)
-
-
[n,n]=size(A) Sum_A=sum(A); SUM_A=repmat(Sum_A,n,1); Stand_A=A./SUM_A; disp('算术平均法求权重的结果为:'); disp(sum(Stand_A,2)./n)
-
-
几何平均法求权重:
-
第一步:将A的元素按照行相乘得到一个新的列向量。
-
第二步:将新的向量的每个分量开n次方。
-
第三步:对该列向量进行归一化即可得到权重向量。
-
假设判断矩阵A=(left[egin{matrix}a~11~&a~12~&cdots&a~1n~\a~21~&a~22~&cdots&a~2n~\vdots&vdots&ddots&vdots\a~n1~&a~n2~&cdots&a~nn~end{matrix} ight])
那么几何平均法求得的权重向量(这个实在是写不出来)。
-
[n,n]=size(A); Prduct_A = prod(A,2); Prduct_n_A = Prduct_A .^ (1/n); disp('几何平均法求权重的结果为:'); disp(Prduct_n_A ./ sum(Prduct_n_A))
-
-
特征值法求权重:
- 第一步:求出矩阵A的最大特征值以及其对应的特征向量。
- 第二步:对求出的特征向量进行归一化即可得到我们的权重。
[V,D] = eig(A);
Max_eig = max(max(D));
[r,c]=find(D == Max_eig , 1);
disp('特征值法求权重的结果为:');
disp( V(:,c) ./ sum(V(:,c)) )
-
善于利用EXCEL来减轻工作量
-
层次分析法:是在充分研究了人类思维过程的基础上提出来的,它较合理地解决了定性问题定量化的处理过程。AHP的主要特点是通过建立递阶层次结构,把人类的判断转化到若干因素两两之间重要度的比较上,从而把难于量化的定性判断转化为可操作的重要度的比较上面。在许多情况下,决策者可以直接使用AHP进行决策,极大地提高了决策的有效性、可靠性和可行性,但其本质是一种思维方式,它把复杂问题分解成多个组成因素,又将这些因素按支配关系分别形成递阶层次结构,通过两两比较的方法确定决策方案相对重要度的总排序。整个过程体现了人类决策思维的基本特征,即分解、判断、综合,克服了其他方法回避决策者主观判断的缺点。
总结:
-
层次分析法的第一步:分析系统中各因素之间的关系,建立系统的递阶层次结构。
-
层次分析法第二步:两两比较构造判断矩阵。
-
层次分析法第三步:由判断矩阵计算被比较元素对于该准则的相对权重,并进行一致性检验(检验通过权重才能用)。
-
清风建议:强烈建议大家在比赛时三种方法都使用:以往的论文利用层次分析法解决实际问题时,都是采用其中某一种方法求权重,而不同的计算方法可能会导致结果有所偏差。为了保证结果的稳健性,本文采用了三种方法分别求出了权重后计算平均值,再根据得到的权重矩阵计算各方案的得分,并进行排序和综合分析,这样避免了采用单一方法所产生的偏差,得出的结论将更全面、更有效。
注:(1)一致矩阵不需要进行一致性检验,只有非一致矩阵的判断矩阵才需要进行一致性检验;
(2)在论文写作中,应该先进行一致性检验,通过检验后再计算
权重,视频中讲解的只是为了顺应计算过程。
-
-
层次分析法第四步:根据权重矩阵计算的分,进行排序。
-
层次分析法的局限性:
-
评价的决策层不能太多,太多的话n会很大,判断矩阵和一致矩阵差异可能会很大。
n 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 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表的1,2项进行修改。
-