层次分析法在matlab上的实现

       层次分析法(The analytic hierarchy process)简称AHP,在20世纪70年代中期由美国运筹学家托马斯.塞蒂(T.L.saaty)正式提出。它是一种定性和定量相结合的、系统化、层次化的分析方法。因为它在处理复杂的决策问题上的实用性和有效性,很快在世界范围获得重视。它的应用已遍布经济计划和管理、能源政策和分配、行为科学、军事指挥、运输、农业、教育、人才、医疗和环境等领域。工具

计算步骤

       一、创建层次结构模型。在深刻分析实际问题的基础上,将有关的各个因素按照不一样属性自上而下地分解成若干层次,同一层的诸因素从属于上一层的因素或对上层因素有影响,同时又支配下一层的因素或受到下层因素的做用。最上层为目标层,一般只有1个因素,最下层一般为方案或对象层,中间能够有一个或几个层次,一般为准则或指标层。当准则过多时(譬如多于9个)应进一步分解出子准则层。3d

  二、构形成对比较阵。从层次结构模型的第2层开始,对于从属于(或影响)上一层每一个因素的同一层诸因素,用成对比较法和1—9比较尺度构形成对比较阵,直到最下层。对象

  三、计算权向量并作一致性检验。对于每个成对比较阵计算最大特征根及对应特征向量,利用一致性指标、随机一致性指标和一致性比率作一致性检验。若检验经过,特征向量(归一化后)即为权向量:若不经过,需从新构形成对比较阵。blog

  四、计算组合权向量并作组合一致性检验。计算最下层对目标的组合权向量,并根据公式作组合一致性检验,若检验经过,则可按照组合权向量表示的结果进行决策,不然须要从新考虑模型或从新构造那些一致性比率较大的成对比较阵。排序

案例

(1)创建层次结构模型get

        层次分析法的基本思路与人对一个复杂的决策问题的思惟、判断过程大致上是同样的。不妨用选拔干部为例:对三个干部候选人y一、y2 、y3,按选拔干部的五个标准:品德、才能、资历、年龄和群众关系,构成以下层次分析模型: 假设有三个干部候选人y一、y2 、y3,按选拔干部的五个标准:品德,才能,资历,年龄和群众关系,构成以下层次分析模型数学

(2)构造判断矩阵table

       在肯定各层次各因素之间的权重时,若是只是定性的结果,则经常不容易被别人接受,于是Saaty等人提出:一致矩阵法,即:不把全部因素放在一块儿比较,而是两两相互比较。对比时采用相对尺度,以尽量减小性质不一样因素相互比较的困难,以提升准确度。class

       比较第 i 个元素与第 j 个元素相对上一层某个因素的重要性时,使用数量化的相对权重aij来描述。设共有 n 个元素参与比较,则A=(a_{ij})_{n\times n}称为成对比较矩阵。基础

  成对比较矩阵中aij的取值可参考 Satty 的提议,按下述标度进行赋值。aij在 1-9 及其倒数中间取值。

  • aij = 1,元素 i 与元素 j 对上一层次因素的重要性相同;
  • aij = 3,元素 i 比元素 j 略重要;
  • aij = 5,元素 i 比元素 j 重要;
  • aij = 7, 元素 i 比元素 j 重要得多;
  • aij = 9,元素 i 比元素 j 的极其重要;
  • aij = 2n,n=1,2,3,4,元素 i 与 j 的重要性介于aij = 2n − 1与aij = 2n + 1之间;
  • a_{ij}=\frac{1}{n},n=1,2,...,9, 当且仅当aji = n

  成对比较矩阵的特色:a_{ij}>0,a_{ij}=1,a_{ij}=\frac{1}{a_{ji}}。(备注:当i=j时候,aij = 1)

       对该例 2, 选拔干部考虑5个条件:品德x1,才能x2,资历x3,年龄x4,群众关系x5。某决策人用成对比较法,获得成对比较阵以下:

  \begin{pmatrix}1&2&7&5&5\\\frac{1}{2}&1&4&3&3\\\frac{1}{7}&\frac{1}{4}&1&\frac{1}{2}&\frac{1}{3}\\\frac{1}{5}&\frac{1}{3}&2&1&1\\\frac{1}{5}&\frac{1}{3}&3&1&1\end{pmatrix}

  a14 = 5 表示品德与年龄重要性之比为 5,即决策人认为品德比年龄重要。

(3)判断矩阵的一致性检验

       所谓一致性是指判断思惟的逻辑一致性。如当甲比丙是强烈重要,而乙比丙是稍微重要时,显然甲必定比乙重要。这就是判断思惟的逻辑一致性,不然判断就会有矛盾。

       从理论上分析获得:若是A是彻底一致的成对比较矩阵,应该有

  a_{ij}a_{jk}=a_{ik},1\le i,j,k\le n.

  但实际上在构形成对比较矩阵时要求知足上述众多等式是不可能的。所以退而要求成对比较矩阵有必定的一致性,便可以容许成对比较矩阵存在必定程度的不一致性。

  由分析可知,对彻底一致的成对比较矩阵,其绝对值最大的特征值等于该矩阵的维数。对成对比较矩阵 的一致性要求,转化为要求: 的绝对值最大的特征值和该矩阵的维数相差不大。

  检验成对比较矩阵A一致性的步骤以下:

  • 计算衡量一个成对比较矩阵 A (n>1 阶方阵)不一致程度的指标CI:

  CI=\frac{\lambda_{max}(A)-n}{n-1}

  RI是这样获得的:对于固定的n,随机构形成对比较阵A, 其中aij是从1,2,…,9,1/2,1/3,…,1/9中随机抽取的. 这样的A是不一致的, 取充分大的子样获得A的最大特征值的平均值

n 1 2 3 4 5 6 7 8 9
RI 0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45

  注解:

  • 从有关资料查出检验成对比较矩阵 A 一致性的标准RI:RI称为平均随机一致性指标,它只与矩阵阶数 n 有关。
  • 按下面公式计算成对比较阵 A 的随机一致性比率 CR:

  CR=\frac{CI}{RI} 。

  • 判断方法以下: 当CR<0.1时,断定成对比较阵 A 具备满意的一致性,或其不一致程度是能够接受的;不然就调整成对比较矩阵 A,直到达到满意的一致性为止。

  例如对例 2 的矩阵

  \begin{pmatrix}1&2&7&5&5\\\frac{1}{2}&1&4&3&3\\\frac{1}{7}&\frac{1}{4}&1&\frac{1}{2}&\frac{1}{3}\\\frac{1}{5}&\frac{1}{3}&2&1&1\\\frac{1}{5}&\frac{1}{3}&3&1&1\end{pmatrix}

  计算获得\lambda_{max}(A)=5.073,CI=\frac{\lambda_{max}(A)-5}{5-1}=0.018,查得RI=1.12,

  CR=\frac{CI}{RI}=\frac{0.018}{1.12}=0.016<0.1

  这说明 A 不是一致阵,但 A 具备满意的一致性,A 的不一致程度是可接受的。

  此时A的最大特征值对应的特征向量为U=(-0.8409,-0.4658,-0.0951,-0.1733,-0.1920)。 这个向量也是问题所须要的。一般要将该向量标准化:使得它的各份量都大于零,各份量之和等于 1。该特征向量标准化后变成U = (0.475,0.263,0.051,0.103,0.126)Z。通过标准化后这个向量称为权向量。这里它反映了决策者选拔干部时,视品德条件最重要,其次是才能,再次是群众关系,年龄因素,最后才是资历。各因素的相对重要性由权向量U的各份量所肯定。

  求A的特征值的方法,能够用 MATLAB 语句求A的特征值:〔Y,D〕=eig(A),D为成对比较阵 的特征值,Y的列为相应特征向量。

  在实践中,可采用下述方法计算对成对比较阵A = (aij)的最大特征值λmax(A)和相应特征向量的近似值。

  定义

  U_k=\frac{\sum_{j=1}^{n}a_{kj}}{\sum_{i=1}^{n}\sum_{j=1}^{n}a_{ij}}U=(u_1,u_2,\ldots,u_n)^z

  能够近似地看做A的对应于最大特征值的特征向量。

  计算

  \lambda=\frac{1}{n}\sum^{n}_{i=1}\frac{(AU)_i}{u_i}=\frac{1}{n}\sum^{n}_{i=1}\frac{\sum^{n}_{i=1}}\frac{\sum^n_{j=1}a_{ij}u_{j}}{u_i}

  能够近似看做A的最大特征值。实践中能够由λ来判断矩阵A的一致性

(4) 层次总排序及决策

       如今来完整地解决例 2 的问题,要从三个候选人y1,y2,y3中选一个整体上最适合上述五个条件的候选人。对此,对三个候选人y = y1,y2,y3分别比较他们的品德(x1),才能(x2),资历(x3),年龄(x4),群众关系(x5)。

  先成对比较三个候选人的品德,得成对比较阵

  B_1=\begin{pmatrix}1&\frac{1}{3}&\frac{1}{8}\\3&1&\frac{1}{3}\\8&3&1\end{pmatrix}

  经计算,B1的权向量

  ωx1(Y) = (0.082,0.236,0.682)z

  \lambda_{max}(B_1)=3.002,CI=0.001,\frac{CI}{RI}=\frac{0.001}{0.58}<0.1

  故B1的不一致程度可接受。ωx1(Y)能够直观地视为各候选人在品德方面的得分。

  相似地,分别比较三个候选人的才能,资历,年龄,群众关系得成对比较阵

  B_2=\begin{pmatrix}1&2&5\\\frac{1}{2}&1&2\\\frac{1}{5}&\frac{1}{2}&1\end{pmatrix}   B_3=\begin{pmatrix}1&1&3\\1&1&3\\\frac{1}{3}&\frac{1}{3}&1\end{pmatrix}

  B_4=\begin{pmatrix}1&3&4\\\frac{1}{3}&1&1\\\frac{1}{4}&1&1\end{pmatrix}

  B_5=\begin{pmatrix}1&4&\frac{1}{4}\\1&1&\frac{1}{4}\\4&1&1\end{pmatrix}

  经过计算知,相应的权向量为

   \omega_{x_2}(Y)=(0.606,0.265,0.129)^z

   \omega_{x_3}(Y)=(0.429,0.429,0.143)^z

   \omega_{x_4}(Y)=(0.636,0.185,0.179)^z

   \omega_{x_5}(Y)=(0.167,0.167,0.667)^z

  它们可分别视为各候选人的才能分,资历分,年龄分和群众关系分。经检验知B2,B3,B4,B5的不一致程度都可接受。

  最后计算各候选人的总得分。y1的总得分

   \omega_z(y_1)=\sum{5}{j=1}u_j\omega_{xj}(y_1)=0.457\times 0.082+0.263\times 0.606+0.051\times 0.429+0.104\times 0.6366+0.162\times 0.1670.306

  从计算公式可知,y1的总得分ω(y1)其实是y1各条件得分ωx1(y1) ,ωx2(y1) ,...,ωx5(y1) ,的加权平均, 权就是各条件的重要性。同理可得y2,Y3 的得分为

  ωz(y2) = 0.243,ωz(y3) = 0.452

  0.457 0.263 0.051 0.103 0.126 总得分
Y1 0.082 0.606 0.429 0.636 0.167 0.305
Y2 0.244 0.265 0.429 0.185 0.167 0.243
Y3 0.674 0.129 0.143 0.179 0.667 0.452

  即排名:Y3 > Y1 > Y2

  比较后可得:候选人y3是第一干部人选。

优缺点

(一)优势

1. 系统性的分析方法:

       层次分析法把研究对象做为一个系统,按照分解、比较判断、综合的思惟方式进行决策,成为继机理分析、统计分析以后发展起来的系统分析的重要工具。

2. 简洁实用的决策方法:

       这种方法既不单纯追求高深数学,又不片面地注重行为、逻辑、推理,而是把定性方法与定量方法有机地结合起来。

3. 所需定量数据信息较少:

层次分析法主要是从评价者对评价问题的本质、要素的理解出发,比通常的定量方法更讲求定性的分析和判断。

(二)缺点

1. 不能为决策提供新方案:

       层次分析法的做用是从备选方案中选择较优者。这个做用正好说明了层次分析法只能从原有方案中进行选取,而不能为决策者提供解决问题的新方案。

2. 定量数据较少,定性成分多,不易使人信服:

       在现在对科学的方法的评价中,通常都认为一门科学须要比较严格的数学论证和完善的定量方法。但现实世界的问题和人脑考虑问题的过程不少时候并非能简单地用数字来讲明一切的。

3. 指标过多时数据统计量大,且权重难以肯定:

       当咱们但愿能解决较广泛的问题时,指标的选取数量极可能也就随之增长。

4. 特征值和特征向量的精确求法比较复杂:

       在求判断矩阵的特征值和特征向量时,所用的方法和咱们多元统计所用的方法是同样的。

注意事项

       若是所选的要素不合理,其含义混淆不清,或要素间的关系不正确,都会下降AHP法的结果质量,甚至致使AHP法决策失败。

  为保证递阶层次结构的合理性,需把握如下原则:

  一、分解简化问题时把握主要因素,不漏很少;

  二、注意相比较元素之间的强度关系,相差太悬殊的要素不能在同一层次比较。

四层AHP

      上面例子是只有目标层、准则层、方案层,下面的结构多了子准则层,而且准则层对应不一样的子准则层

若是对你有帮助,请点下赞,予人玫瑰手有余香!

时时仰望天空,理想就会离现实愈来愈近!