【数模算法】层次分析法
【数模算法】层次分析法
Sarzn层次分析法的具象理解
简单的解释一下层次分析法:
层次分析法就是将一个你需要解决的问题拆解, 拆解成一些决定性因素, 通过这种方式选择解决问题的方案
- 你要购买手机
- 你将购买手机这个目标拆解为一些准则, 比如性能跑分, 拍照像素, 充电速度, 电池续航这些便可以看成是决定性因素
- 通过这些准则来判断你到底要采取什么方案, 比如你是采取买小米的方案, 买华为的方案还是买苹果的方案
这就是下面这个图

层次分析法与数学
为了通过科学的方法去做决定, 我们可以运用到矩阵
一些概念:
判断矩阵:
判断矩阵就是通过个人的主观判断决定两个因素的重要性的比值来组成的矩阵
注意使用上面那个参考标度
- 比如我觉得手机的性能跑分比拍照像素明显重要,
那么根据标度:
所以绿色的框 2 就是填 5 , 框 3 就是填1/5 - 性能跑分和性能跑分自己比较, 红色的框 1 就是填 1
根据上面的详细解释我们可以知道判断矩阵具有的一些性质:
- aij = 1
聪明的你发现这个判断矩阵会有一个问题, 比如: 像素 : 拍照 = 5, 拍照 : 充电 = 2 那么按理来说 拍照 : 充电 = 10 但是表格中拍照 : 充电 = 2 发生了矛盾, 这就说明我们不能通过两个变量的关系来推断第三个变量, 这就是判断矩阵的不足之处, 因为它是由我们主观判断的产生的所以并不具有数学上的严谨性 于是我们引出了一致性矩阵
一致性矩阵:
能够进行数学推导的判断矩阵
一致性矩阵不是由个人主观评价得出的矩阵,
而是通过数学计算得出的, 所以他能够进行推导,
所以你会发现一致性矩阵相比判断矩阵多了第三条性质aij = aik * akj
具体来说说这个性质3:a23 = a24 * a43
即
矩阵的特征值(与特征向量):
我们在实际中可以直接用这个网址去得到矩阵的特征值的最大值λmax: 特征值计算器
如果你对这个特征值如何计算的感到好奇可以继续看下面这段内容或者自己了解, 但是实际中我们计算还是通过上述的计算器直接得到
如果是一致性矩阵, 矩阵的秩 r(A)=1, 那么 A 有一个特征值是矩阵的迹 tr(A)其余特征值为 0 那么最大特征值λmax = tr(A)
归一化:
把判断矩阵每个元素除以它所在列的总和,得到归一化后的矩阵

进行的流程:
例题:
第一步: 对题目进行分层
根据题目理解画出层次图
第二步: 得到归一化矩阵
因为各个准则的数据是不一样的, 比如小米的性能跑分是
81, 电池是 9 如果进行归一化的话 81 和 9 去比较也太不公平
所以我们将数据归一化:
由此我们得到归一化后的矩阵
第三步: 画出判断(一致性)矩阵
首先通过题目给的数据列出一致性矩阵,
如果没有给数据我们就采用主观的判断矩阵(就是自己决定数据)
由于题目中没有数据我们就自己主观赋一些数据上去,
得到如下的判断矩阵
第四步: 一致性检验
虽然我们自己主观的写出了判断矩阵, 但是我们也不能随意的主观, 写出来的判断矩阵需要通过一致性检验
我们最好使用一致性矩阵, 但是有时我们难免遇到题目没有数据需要我们写判断矩阵的情况, 那么我们写一个比较像一致性矩阵的判断矩阵来代替一致性矩阵
那么我们如何科学的说他是”比较像的”? - 通过一致性检验的就是”比较像”
我们计算一致性比例 (CR) 如果 CR < 0.1那么通过一致性检验
λmax是最大特征值,
用上文提到的计算器计算
如果我们写出的判断矩阵没有通过一致性检验, 解决方法是:
- 找到没有分数的某一行(或一列)
- 根据比值大小将重要程度排序 这里是性能 > 电池 > 充电 > 拍照
- 检查绿色三角形中的每个数据是不是符合上面这个规律如果不符合:
改成符合的数值, 对称的另一边也需要改这里是
- 再次进行一致性检验 这里检验通过
最终得到通过一致性检验的判断矩阵
第五步: 计算权重
有三种方法, 算数平均法, 几何平均法, 特征值法
算数平均法:
按列求归一化, 按行求均值
几何平均法:
按行相乘后开 n 次根号, 再按列归一化
特征值法:
是我们使用最多的一个方法
刚计算出来的最大特征值λmax所对应的特征向量, 归一化之后就是所要求的权重

对比发现其实他们最后计算出来的权重都相差不大
第六步: 计算得分
- 归一化整个判断矩阵得到归一化表格
- 将每个方案的各个评价对象与他们的权重相乘再相加, 得到每个方案的得分
- 比较各个方案的得分, 发现小米方案的得分最高, 所以我们选择买小米手机!
参考习题
暑假想和朋友一起出去旅游,暂定计划有丽江、厦门、青岛、张家界,需要考虑交通便利性、旅游资源丰富程度、旅途开销、安全和卫生情况,请自行构建 方案层、准则层.再构建判断矩阵,建立综合评价模型进行评价
可以将最后答案写在评论区哦!















