开发者

层次分析法在matlab上的实现方式

开发者 https://www.devze.com 2022-11-30 09:18 出处:网络 作者: 阳望
目录计算步骤案例(1)建立层次结构模型(2)构造判断矩阵(3)判断矩阵的一致性检验(4)层次总排序及决策优缺点(一)优点(二)缺点注意事项四层AHP总结层次分析法(Theanalytichier...
目录
  • 计算步骤
  • 案例
    • (1)建立层次结构模型
    • (2)构造判断矩阵
    • (3)判断矩阵的一致性检验
    • (4) 层次总排序及决策
  • 优缺点
    • (一)优点
    • (二)缺点
  • 注意事项
    • 四层AHP
      • 总结

        层次分析法(The analytic hierarchy process)简称AHP,在20世纪70年代中期由美国运筹学家托马斯.塞蒂(T.L.saaty)正式提出。

        它是一种定性和定量相结合的、系统化、层次化的分析方法。由于它在处理复杂的决策问题上的实用性和有效性,很快在世界范围得到重视。

        它的应用已遍及经济计划和管理、能源政策和分配、行为科学、军事指挥、运输、农业、教育、人才、医疗和环境等领域。

        计算步骤

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

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

        3、计算权向量并做一致性检验。对于每一个成开发者_Go学习对比较阵计算最大特征根及对应特征向量,利用一致性指标、随机一致性指标和一致性比率做一致性检验。若检验通过,特征向量(归一化后)即为权向量:若不通过,需重新构造成对比较阵。

        4、计算组合权向量并做组合一致性检验。计算最下层对目标的组合权向量,并根据公式做组合一致性检验,若检验通过,则可按照组合权向量表示的结果进行决策,否则需要重新考虑模型或重新构造那些一致性比率较大的成对比较阵。

        案例

        (1)建立层次结构模型

        层次分析法的基本思路与人对一个复杂的决策问题的思维、判断过程大体上是一样的。

        不妨用选拔干部为例:对三个干部候选人y1、y2 、y3,按选拔干部的五个标准:品德、才能、资历、年龄和群众关系,构成如下层次分析模型: 假设有三个干部候选人y1、y2 、y3,按选拔干部的五个标准:品德,才能,资历,年龄和群众关系,构成如下层次分析模型

        层次分析法在matlab上的实现方式

        (2)构造判断矩阵

        在确定各层次各因素之间的权重时,如果只是定性的结果,则常常不容易被别人接受,因而Saaty等人提出:一致矩阵法,即:不把所有因素放在一起比较,而是两两相互比较。

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

        比较第 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 www.devze.com= 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的最大特征值的平均值

        n123456789
        RI000.580.901.121.241.321.411.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 的不一致程度是可接受的。

        android

        此时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.4570.2630.0510.1030.126总得分
        Y10.0820.6060.4290.6360.1670.305
        Y20.2440.2650.4290.1850.1670.243
        Y30.6740.1290.1430.1790.6670.452

        即排名:Y3 > Y1 > Y2

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

        优缺点

        (一)优点

        1. 系统性的分析方法:

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

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

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

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

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

        (二)缺点

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

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

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

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

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

        当我们希望能解决较普遍的问题时,指标的选取数量很可能也就随之增加。

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

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

        注意事项

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

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

        • 1、分解简化问题时把握主要因素,不漏不多;
        • 2、注意相比较元素之间的强度关系,相差太悬殊的要素不能在同一层次比较。

        四层AHP

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

        层次分析法在matlab上的实现方式

        总结

        以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

        0

        精彩评论

        暂无评论...
        验证码 换一张
        取 消

        关注公众号