数模学习(一)--AHP层次结构法

数模学习(一)—层次分析法

概要:

AHP常用于评价类模型,根据专家经验或者自己意见(通常是自己的awa)对不同的指标评分,再利用一致性检验的方法来判断这类评价是否合理,如果合理,我们就可以通过指标一开始的不同权重,按照从大到小的顺序清楚哪一类的指标最为重要,依据这个顺序你就可以找到影响方案的最重要因素有哪些啦。

使用流程:

1.确定解决问题的层次结构
确定好我们的目标层(Objective),准则层(Criterion)和方案层(Plan),在这个地方论文写作需要标注好箭头,箭头的顺序是目标层—>准则层—>方案层,画出一个类似这样的图:数模学习(一)--AHP层次结构法
画好这样的图的前提,需要了解的是:

  • 我们想要达到的目标是什么
  • 如果想要达到这个目标,我们需要考虑的因素有哪些
  • 目标实现的结果呈现有哪几种(即方案有哪些
    通过这些问题,来构造出你一开始基于问题的AHP结构雏形

2.准则层的判断矩阵
现在我们的三个层次我们都已经清楚了(这里先不介绍多层次的情况,后续遇到再更新),我们第二步需要做的就到了纠结的打分环节,这里你可以选择在网上找一些专家的评分(通常找不到),最推荐的节省时间的方式是根据队伍的头脑风暴+搜索有关资料的理解来进行打分,那么如何打分呢?
为了能让编程队友更容易的上手编程,我们这里打分的步骤可以按照这样的流程:
先将准则层的几个准则依据这样的表格进行评价打分,目前假设我们确定的准则层有:景色、花费、居住、饮食和交通,打分表格如下:数模学习(一)--AHP层次结构法
这个判断矩阵就是根据不同准则的重要性进行两两对比得到的结果,然后用整数或者分数来表示,这个矩阵有几个特点:

  1. 主对角线全部为1
  2. 根据主对角线对称的两个值aijajia_{ij}、a_{ji},一定有aijaji=1a_{ij}·a_{ji} = 1

根据这两个特点来填写、检查我们的判断矩阵
3. 一个准则下对所有方案层进行比较
这一步里我们这里是将方案层的所有元素依据同一准则下的重要性不同来进行比较,打分形式与第二步一样,需要得到的也是这么一个表格:
数模学习(一)--AHP层次结构法

  1. 根据第2、3步的判断矩阵,得到最后的一个总的判断矩阵
    不赘述啦,总结得到的图是这样的:
    数模学习(一)--AHP层次结构法
    你可能会有些疑问,我的这些指标权重怎么求呢,我们刚刚得到的只是一个有着整数和小数的矩阵,这里我们根本得不到最后需要的权重指数啊,接下来讲解的就是在使用AHP中最重要的部分了:
    • 算术平均法求权重(以下均以景色准则为例):数模学习(一)--AHP层次结构法
      一共有三列,在这三列中各个方案的权重指标计算为(以第一列为例):
      11+12+15=0.5882121+12+15=0.2941151+12+15=0.1177 苏杭:\frac{1}{1+\frac{1}{2} +\frac{1}{5}}=0.5882\\北戴河:\frac{\frac{1}{2}}{1+\frac{1}{2}+\frac{1}{5}}=0.2941\\桂林:\frac{\frac{1}{5}}{1+\frac{1}{2}+\frac{1}{5}}=0.1177后面两列也按照这种方式来计算,最后根据同一方案下不同列数求出来的权重根据算术平均法算得为:0.5882+0.5714+0.62503=0.59490.2941+0.2857+0.25003=0.27660.1177+0.1429+0.12503=0.1285 苏杭:\frac{0.5882+0.5714+0.6250}{3}=0.5949\\ 北戴河:\frac{0.2941+0.2857+0.2500}{3}=0.2766\\桂林:\frac{0.1177+0.1429+0.1250}{3}=0.1285
      总的来说,算术平均法求权重的步骤可以总结为:

      • 将判断矩阵的每一列进行归一化
      • 将每一列不同方案归一化后的结果相加,得到不同列下的权值和
      • 将得到的权值和除方案层总数得到最终权重
    • 几何平均法
      步骤可以分为三步:

      • 将矩阵的元素按照行相乘得到一个新的列向量
      • 将新得到的向量开n次方
      • 对经过开n次方的向量再归一化处理得到最终的权重向量

      经过几何平均法得到的权重向量的各个元素可以表示为:
      ωi=aij1n(akji)\omega_{i}=\frac{\prod{a_{ij}}^{\frac{1}{n}}}{(\sum\prod{a_{kj}}^i)}
      最后得到的值为:数模学习(一)--AHP层次结构法
      权重和应该为1,这里由于四舍五入的原因所以可以忽略这些误差

    • 特征值法(强烈推荐)
      特征值是最为常用的方法, 也是国赛论文中最常见的关于AHP的方法,这里我们还需要引入两个概念:

      • 一致矩阵:即正互反矩阵满足aijaji=aika_{ij}·a_{ji}=a_{ik},在这里我们可以视为都等于主对角线11,并且其只有一个特征值nn,其余都为0,各行之间成比例;所以当判断矩阵为一致矩阵时,λmax=n\lambda_{max}=n,如果不是则有λmax>n\lambda_{max}>n,如果判断矩阵和一致矩阵越不一致,则会有更大的差距
      • 一致性检验:
        原理: 观察判断矩阵和一致矩阵之间是否有太大的差别
        步骤:
        ①:计算一致性指标CICI:CI=λmax1n1CI = \frac{\lambda_{max}-1}{n-1}
        ②:查找对应的平均随机性指标RI:
        数模学习(一)--AHP层次结构法
        实际使用中,n很少大于10,如果大于10,则可以考虑建立二级指标模糊综合评价模型
        ③:计算一致性指标CR:
        CR=CIRICR=\frac{CI}{RI}
        注意:如果CR<0.1,说明这个判断矩阵可以接收;如果不是,则降低各行的比例尽量往一致矩阵上靠,就可以降低CR了,因为一致矩阵的CR为0,所以努力往那边靠会有惊喜

      通过计算我们得到了特征值nn和对应的CR,如果CR符合要求,则可以选择将特征值代入矩阵得到对应的特征向量后进行归一化处理,最后得到的就是我们的权重向量啦~

5. 算方案层的最终得分,得分最高者即为目标层的最佳方案
根据上述方法求得的权重和各指标之间的对比关系,我们可以得到最后的这张图:数模学习(一)--AHP层次结构法
然后对应行对应单元格相乘就可以了,计算步骤可以表示为,苏杭:0.26360.5954+....+0.10870.1667=0.299.0.2636*0.5954+....+0.1087*0.1667 = 0.299.

以上就是我们这节的全部内容了,在这里还需要注意两个地方:

  • 一致矩阵不需要进行一致性检验,只有非一致性矩阵需要
  • 论文写作中,应该先进行一致性检验,通过检验后再计算对应权重,不然很亏(惨痛教训经历者)