层次分析法(Analytic Hierarchy Process,AHP)

层次分析法(AHP)是美国运筹学家匹茨堡大学教授萨蒂(T.L.Saaty)于上世纪70年代初,为美国国防部研究“根据各个工业部门对国家福利的贡献大小而进行电力分配”课题时,应用网络系统理论和多目标综合评价方法,提出的一种层次权重决策分析方法。

特点:在对复杂的决策问题的本质、影响因素及其内在关系等进行深入分析的基础上,利用较少的定量信息使决策的思维过程数学化,从而为多目标、多准则或无结构特性的复杂决策问题提供简便的决策方法。

基本原理:层次分析法根据问题的性质和要达到的总目标,将问题分解为不同的组成因素,并按照因素间的相互关联影响以及隶属关系将因素按不同层次聚集组合,形成一个多层次的分析结构模型,从而最终使问题归结为最低层(供决策的方案、措施等)相对于最高层(总目标)的相对重要权值的确定或相对优劣次序的排定。

运用层次分析法构造系统模型时,可分为以下四个步骤,并以决策问题:“在苏杭、北戴河、桂林三处选择一个旅游点。要考虑景点的景色、居住的环境、饮食的特色、交通便利和旅游的费用。”作为案例:

一、建立层次结构模型:

  1. 将决策的目标、考虑的因素(决策准则)和决策对象按它们之间的相互关系分为最高层、中间层和最低层,绘出层次结构图。
  2. 最高层:决策的目的、要解决的问题。
  3. 最低层:决策时的备选方案。
  4. 中间层:考虑的因素、决策的准则。

案例中的层次结构模型示例:

最低层

<方案层>
B1

<苏杭>
B2

<北戴河>
B3

<桂林>
中间层

<准则层>
A1

<景色>
A2

<费用>
A3

<居住>
A4

<饮食>
A5

<旅途>
最高层

<目标层>
Z

<选择旅游地>

二、构造判断(成对比较)矩阵:在确定各层次各因素之间的权重时,如果只是定性的结果,则常常不容易被别人接受,因而 Saaty 等人提出 —— 一致矩阵法:

  1. 不把所有因素放在一起比较,而是两两相互比较。

  2. 对此时采用相对尺度,以尽可能减少性质不同的诸因素相互比较的困难,以提高准确度。

  3. 由上两点可以构造成对比较矩阵,成对比较矩阵是表示本层所有因素针对上一层某一个因素的相对重要性的比较。成对比较矩阵矩阵的元素 用 Saaty 的 1—9 标度方法给出:

    标度含义
    1表示两个因素相比,具有同样重要性
    3表示两个因素相比,一个因素比另一个因素稍微重要
    5表示两个因素相比,一个因素比另一个因素明显重要
    7表示两个因素相比,一个因素比另一个因素强烈重要
    9表示两个因素相比,一个因素比另一个因素极端重要
    2, 4, 6, 8上述两相邻判断的中值
    倒数因素 比较的判断 ,则因素 比较的判断

    案例中准则层的所有因素(A1 ~ A5)对目标层因素 Z 的成对比较矩阵示例:

    因素A1A2A3A4A5
    A111/2433
    A221755
    A31/41/711/21/3
    A41/31/5211
    A51/31/5311

    根据上表可得到成对比较矩阵:

    稍加分析可以发现该成对比较矩阵出现了不一致的情况:由 以及 可知 ,但实际表中设置为 ,此时为成对比较矩阵不一致的情况,该情况允许出现,但要确定不一致的允许范围,由第 3 步:层次单排序及一致性检验中给出。

    同理,可以给出方案层(B1 ~ B3)的所有因素针对准则层各个因素(A1 ~ A5)的成对比较矩阵示例:

三、层次单排序及其一致性检验:

  1. 对应于判断矩阵最大特征根 的特征向量,经归一化后记为 ,该向量表示同一层因素对于上一层某个因素相对重要性的排序权值,这一过程称为层次单排序。由之前的六个成对比较矩阵,可计算出六个权重及对应特征值:

    • A1 ~ A5 对 Z 的权重及特征值:
    • B1, B2, B3 对 A1 的权重及特征值:
    • B1, B2, B3 对 A2 的权重及特征值:
    • B1, B2, B3 对 A3 的权重及特征值:
    • B1, B2, B3 对 A4 的权重及特征值:
    • B1, B2, B3 对 A5 的权重及特征值:
  1. 由于矩阵会出现不一致的情况,在确认层次单排序后还需进行一致性检验,即对矩阵确定不一致的允许范围。

    • 定理: 阶一致阵的唯一非零特征根为
    • 定理: 阶正互反阵 的最大特征根 ,当且仅当 为一致阵。

    由于 连续的依赖于 ,则 大的越多, 的不一致性越严重,用最大特征值对应的特征向量作为被比较因素对上层某因素影响程度的权向量,其不一致程度越大,引起的判断误差越大。因而可以用 数值的大小来衡量 的不一致程度,定义一致性指标 ,那么有:

    • 则有完全一致性;
    • 接近于 0 ,有满意的一致性;
    • 越大,不一致越严重。

    为衡量 的大小,引入随机一致性指标

    n123456789101112131415
    0.000.000.520.891.121.261.361.411.461.491.521.541.561.581.59

    定义一致性比率: ,一般认为 时,矩阵 的不一致程度在容许范围内,即通过一致性检验。若不在容许范围内,则需要重新构造成对比较矩阵 ,然后再进行一致性检验。由前面求得的特征值,对案例中的六个矩阵进行一致性检验:

四、层次总排序及其一致性检验:

  1. 计算某一层次所有因素对于最高层(总目标)相对重要性的权值,称为层次总排序。根据权重的传导性,可以得到 B1, B2, B3 对 Z 的权重:

  2. 同样,这里也需要进行一致性检验。设本层所有因素对上层某个因素 的层次单排序一致性指标为 ,随机一致性指标为 ,且权重 那么层次总排序的一致性比率为:

    根据该公式对方案层(B1, B2, B3)总排序进行一致性检验:

    由于所有的一致性检验全部通过,故方案层(B1, B2, B3)对目标层(Z)的权重结果 是可以接受,再由权重结果关系 可知方案关系为 B3 > B1 > B2,即可得出最终决策为:桂林(B3)。

以上案例的 python 实现代码可参考目录 code 下的源代码 AHP.PY

参考资料:百度文库:层次分析法如何确定权重