层次分析法(AHP)原理应用及代码
层次分析法是将 定性问题定量化处理的一种方法。
层次分析法简称AHP,其主要特点是通过建立递阶层次结构,把人的主观判断转化为对若干两两因素重要程度的判断上,从而把难以操作的定性判断量化为可操作的重要性程度判断上
1.AHP算法步骤
第一步:分析系统各因素之间的关系,建立递阶层次结构
第二步:对于同一层次的各要素,针对上一准则层的某一准则的重要性进行两两比较,构造两两比较矩阵(判断矩阵)
第三步:根据判断矩阵得到各元素针对于某一准则的相对权重,并进行一致性检验(通过一致性检验的才可使用)
第四步:根据权重矩阵计算得分,并进行排序
2.算法举例
小明同学要出去旅游,事先确定了三个地方,分别是北戴河、苏杭、桂林,但最终无法从这三个地方中选定,希望你通过层次分析法来帮助小明进行判断。
根本目的就是为了填完下面的这张表。用*指标权重*乘以每个地方的得分,然后做和就可以得到这个地方的分数,最后根据分数判断即可
第一步:建立递阶层次图
第二步:建立判断矩阵
因为我们一次性比较五个指标很困难,两两指标进行比较,根据比较的结果确定权重,我们有如下的标准
计算五个指标的判断矩阵
%% 判断矩阵一般交给专家填写,但建模比赛中一般自己判断
(1) a ( i , j ) a_(i,j) a(i,j)表示的意义是,与指标𝑗相比,𝑖的重要程度。
(2)当𝑖 = 𝑗时,两个指标相同,因此同等重要记为1,这就解释了主对角线元素为1。
(3) a ( i , j ) a_(i,j) a(i,j)> 0且满足 a ( i , j ) ∗ a ( j , i ) a_(i,j)*a_(j,i) a(i,j)∗a(j,i)=1 (我们称满足这一条件的矩阵为正互反矩阵)
实际上,上面这个矩阵就是层次分析法中的判断矩阵。
*上面第一行解释为:与花费相比,景色没有花费重要;与居住相比,景色更重要一点;与饮食相比,景色稍微重要。*其他以此类推
计算三个方案相对于某一指标的权重
计算苏杭、北戴河、桂林在景色方面所占的权重(得分)
矩阵里的数据可以解释为:苏杭的景色与北戴河相比要好一点,要比桂林好很多
相对于其他指标的判断矩阵以此类推,如下图所示
第三步:进行一致性检验
首先要明确:
- 如果正互反矩阵满足 a ( i , j ) ∗ a ( j , k ) = 1 a_(i,j)*a_(j,k)=1 a(i,j)∗a