数模之层次分析法
前言
层次分析法通过将决策分成目标、准则、方案等多个层次,来进行定性和定向的分析。
这个算法通常用于多指标的综合评价问题,一般有两个用途:
1.为指标定制权重
2.量化方案的选择
算法实现过程
首先我们将一个事件分为三部分:
1.目标层(决策问题)
2.准则层(影响因素)
3.方案层(可供选择的方案)
然后分别按照实际因素,构造准则矩阵和方案矩阵,相乘得出得分。
即可得出评价。
举例

其中,
目标层:最优旅游地选择
准则层:C1~C5
方案层:P1~P4
构造准则矩阵:
假设C1~C5的重要程度分别为:
C1重要程度是C2的3倍;
C1重要程度是C3的6倍;
C1重要程度是C4的2倍;
C1重要程度是C5的6倍;
那么准则矩阵C第一行为:
逐次对每行进行如此判断构造,得出最终矩阵:
\[
C = \begin{bmatrix}
1 & 3 & 6 & 2 & 6\\
1/3 & 1 & 2 & 2/3 & 2\\
1/6 & 1/2 & 1 & 1/3 & 1\\
1/2 & 2/3 & 3 & 1 & 3\\
1/6& 1/2 & 1 & 1/3 &1
\end{bmatrix}
\]
尽管这里我构造的矩阵每行的比例一致,但是在实际状况下,人的主观感受会导致每行的重要程度比例不同。
所以我们需要使用两次标准化来将主观评价量客观化,这里有两种方法:
1.使用乘积的方法:
对于每一行:
\[C_i = \sqrt[m]{\prod_{j=1}^{m} C_{ij}}
\]
然后对得出的列向量C' 进行标准化:
\[W_i = \frac{C_i}{\sum_{i=1}^{n}C_i}
\]
得出最终可以用于评分的准则矩阵W = [w1,w2…wn]
2.使用两次标准化的方式:
对于每一列进行一次标准化,得出标准化后的矩阵,然后再对每一行求算数平均值。
如图所示:

求得矩阵W后,我们需要对我们构造的矩阵进行一致性检验,判断其是否具有逻辑性错误:
首先,我们需要计算一个最大特征根:

其中,AW为一开始构造的矩阵C与标准化后的矩阵W相乘后的按行累加值。
得出 λ 后,求出两个不用管是什么意义的值:
CI值:CI = (λ-n)/ (n-1)
再根据查表得出RI的值:

最终得出CR:
CR = CI/RI
当CR<0.1时,我们可以认为我们构造的矩阵的一致性程度在可以接受的范围内。我们进进行下一步。
开始构造方案层矩阵。
方案层矩阵需要构造多个,每一个矩阵都是针对每一个影响因素而设计的,例如,针对景色这一影响因素构造矩阵:
仍旧按照之前构造准则矩阵的方式构造这一矩阵,首先我们针对景点1的景色相对于景点2来进行评分,如此重复得出整个矩阵。
对于每个构造出的矩阵,我们都需要进行标准化和一致性的检验。
最后,根据每个因素,计算加权得分,最终判断我们的决策。

浙公网安备 33010602011771号