精华内容
下载资源
问答
  • 2019-01-07 13:01:10

    1. 算法简介

    层次分析法(AHP)是美国运筹学家萨蒂于上世纪70年代初,为美国国防部研究“根据各个工业部门对国家福利的贡献大小而进行电力分配”课题时,应用网络系统理论和多目标综合评价方法,提出的一种层次权重决策分析方法。
    层次分析法是一种解决多目标的复杂问题的定性与定量相结合的决策分析方法。该方法将定量分析与定性分析结合起来,用决策者的经验判断各衡量目标之间能否实现的标准之间的相对重要程度,并合理地给出每个决策方案的每个标准的权数,利用权数求出各方案的优劣次序,比较有效地应用于那些难以用定量方法解决的课题。

    2. 算法基本原理

    例子:
    在这里插入图片描述

    2.1. 解决问题的思路

    层次分析法的基本思路是将所要分析的问题层次化;根据问题的性质和所要达成的总目标,将问题分解为不同的组成因素,并按照这些因素的关联影响及其隶属关系,将因素按不同层次凝聚组合,形成一个多层次分析结构模型;最后,对问题进行优劣比较并排列。

    2.2. 层次分析法的步骤

    1.建立层次结构模型

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

    层次分析法所要解决的问题是关于最低层对最高层的相对权重的问题,按此相对权重可以对最低层中的各种方案、措施进行排序,从而在不同的方案中做出选择或形成选择方案的原则。

    2.构造判断矩阵
    层次分析法中构造判断矩阵的方法是一致矩阵法,即:不把所有因素放在一起比较,而是两两相互比较;对此时采用相对尺度,以尽可能减少性质不同因素相互比较的困难,以提高准确度。

    判断矩阵 a i j a_{ij} aij的标度方法

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

    3.层次单排序及其一致性检验
    对应于判断矩阵最大特征根 λ m a x \lambda max λmax的特征向量,经归一化(使向量中各元素之和为1)后记为 W W W W W W的元素为同一层次元素对于上一层因素某因素相对重要性的排序权值,这一过程称为层次单排序

    定义一致性指标 C I = λ − n n − 1 CI=\frac {\lambda-n}{n-1} CI=n1λn
    C I = 0 CI=0 CI=0,有完全的一致性;
    C I CI CI接近于0,有满意的一致性;
    C I CI CI越大,不一致越严重。

    为了衡量 C I CI CI的大小,引入随机一致性指标 R I RI RI

    随机一致性指标 RI
    n1234567891011
    RI000.580.901.121.241.321.411.451.491.51

    定义一致性比率: C R = C I R I CR=\frac{CI}{RI} CR=RICI,一般认为一致性比率 C R < 0.1 CR<0.1 CR<0.1时,认为A的不一致程度在容许范围之内,有满意的一致性,通过一致性检验。可用其归一化特征向量作为权向量,否则要重新构造成对比较矩阵A,对 a i j a_{ij} aij加以调整。

    示例:
    在这里插入图片描述在这里插入图片描述

    4.层次总排序及其一致性检验

    • 计算某一层次所有因素对于最高层(总目标)相对重要性的权值,称为层次总排序。
    • 这一过程是从最高层次到最低层次依次进行的。
      在这里插入图片描述
      A层 m m m个因素 A 1 , A 2 , ⋅ ⋅ ⋅ , A m , A_{1},A_{2},···,A_{m}, A1,A2,,Am,对总目标Z的排序为 a 1 , a 2 , ⋅ ⋅ ⋅ , a m a_{1},a_{2},···,a_{m} a1,a2,,am
      B层 n n n个因素对上层A中因素为 A j A_{j} Aj的层次单排序为 b 1 j , b 2 j , ⋅ ⋅ ⋅ , b n j ( j = 1 , 2 , 3 , ⋅ ⋅ ⋅ , m ) b_{1j},b_{2j},···,b_{nj}(j=1,2,3,···,m) b1j,b2j,,bnj(j=1,2,3,,m)

    B层的层次总排序(即B层第 i i i个因素对总目标的权值为: ∑ j = 1 m a j b i j \sum_{j=1}^{m}a_{j}b_{ij} j=1majbij)为:
    B 1 : a 1 b 11 + a 2 b 12 + ⋅ ⋅ ⋅ + a m b 1 m , B_{1}:a_{1}b_{11}+a_{2}b_{12}+···+a_{m}b_{1m}, B1:a1b11+a2b12++amb1m,
    B 2 : a 1 b 21 + a 2 b 22 + ⋅ ⋅ ⋅ + a m b 2 m , B_{2}:a_{1}b_{21}+a_{2}b_{22}+···+a_{m}b_{2m}, B2:a1b21+a2b22++amb2m,
    ⋅ ⋅ ⋅ ···
    B n : a 1 b n 1 + a 2 b n 2 + ⋅ ⋅ ⋅ + a m b n m , B_{n}:a_{1}b_{n1}+a_{2}b_{n2}+···+a_{m}b_{nm}, Bn:a1bn1+a2bn2++ambnm,

    层次总排序的一致性比率为: C R = a 1 C I 1 + a 2 C I 2 + ⋅ ⋅ ⋅ + a m C I m a 1 R I 1 + a 2 R I 2 + ⋅ ⋅ ⋅ + a m R I m CR=\frac{a_{1}CI_{1}+a_{2}CI_{2}+···+a_{m}CI_{m}}{a_{1}RI_{1}+a_{2}RI_{2}+···+a_{m}RI_{m}} CR=a1RI1+a2RI2++amRIma1CI1+a2CI2++amCIm,当 C R < 0.1 CR<0.1 CR<0.1时,认为层次总排序通过一致性检验。
    例子:
    在这里插入图片描述在这里插入图片描述

    3.算法总结

    • 应用领域:经济计划个管理,能源政策和分配,人才选拔和评价,生产决策,交通运输,科研选题,产业结构,教育,医疗,环境,军事等。
    • 处理问题类型:决策、评价、分析、预测等。
    • 建立层次分析结构模型是关键一步,要有主要决策层参与。
    • 构造成对比较矩阵是数量依据,应由经验丰富、判断力强的专家给出。

    4.参考

    1. 层次分析法建模——《百度文库》
    更多相关内容
  • 根据系统评价的方法和原理,论述了建立矿井开拓方案系统评价指标体系应遵循的原则和方法,分析了选择层次分析法作为方案系统评价方法的原因,利用IDEFO方法分析矿井开拓方案系统评价活动的信息流,为解决矿井开拓方案的...
  • 本着可行性、明确性、客观性和多指标性的原则,基于层次分析法对我国通风安全评价体系进行研究,建立了安全评价模型,通过提出合理的隶属度和权重确定方法,结合实例说明通风安全评价模型的具体评价过程。在满足设计原则...
  • 层次分析法

    千次阅读 2021-01-22 18:06:33
    层次分析法(AHP) 层次分析法(The analytic hierarchy process),主要用于解决数学建模中评价类问题。 评价类问题是数学建模中较为常见的一类问题,解决这一类问题的途径有很多,但我认为最简单而又高效的方式是...

    层次分析法(AHP)

    层次分析法(The analytic hierarchy process),主要用于解决数学建模中评价类问题。

    评价类问题是数学建模中较为常见的一类问题,解决这一类问题的途径有很多,但我认为最简单而又高效的方式是以“评分”来解决。

    但是评分的标准是什么呢?又该以怎样的方式评分?这就引申出了这一关键算法——层次分析法。

    层次分析法的步骤:

    Step 1:分析系统中各因素之间的关系,建立系统的“递阶层次结构”

    逻辑图演示
    这里需要说明的是,不同问题中,对于某一方案,对于决定的它的影响因素的个数可能是不一样的

    例如上图,影响方案1的因素有因素1,2,3…,但是影响方案2的因素只有因素1,3…,以此类推。

    但是解决办法的核心思想是一致的,不一样只是最后求“总得分”的方式。

    Step 2:对于同一层次的各元素关于上一层次中某一准则的重要性,进行两两比较,构造“判断矩阵”

    在这一步骤中,我们需要思考,如何确定“对于同一层次的各元素”关于“上一层次中某一准则”的重要性,这里就要引入标度的概念。

    “分而治之”的思想

    问题:一次性考虑N个指标之间的关系,往往考虑不周
    解决方法:每两个指标进行比较,最终根据两两比较的结果推算最终权重
    标度图
    进行全部的比较之后,便可以得到这样一个矩阵:
    判断矩阵
    我们称这样的矩阵为判断矩阵,不难看出,这是一个“n×n”的方阵,记为A,对应元素为aij

    判断矩阵的特点:

    1、aij表示的意义是,与j指标相比,i的重要程度;
    2、当i=j时,两个指标相同,因而一样重要,记为1;
    3、aij>0且满足aij×aji=1。

    Matlab中的代码实现:

    %判断矩阵
    %判断一个矩阵是否为判断矩阵 正互反矩阵
    
    a=0;   %初始化矩阵的行数
    b=0;   %初始化矩阵的列数
    a=input('请输入矩阵的行数:');
    b=input('请输入矩阵的列数:');
    
    if(a ~= b)
            disp('不是判断矩阵!');
    else
            %初始化判断矩阵
            c=zeros(a,b);
            c=input('请依次输入矩阵的元素:');
           
            k=0;
            for i=1:a
                for j=1:a
                    if(c(i,j) ~= c(j,i))
                        k=1;
                    end
                end
            end  
            
            if(k==0)
                disp('是判断矩阵!');
            else
                disp('不是判断矩阵!');
            end   
    end
    

    Step 3:根据判断矩阵计算被比较元素对于该准则的相对权重,并进行一致性检验(一致性检验合格后,所求权重才可使用)

    这里我们先引入一致矩阵的概念:
    若判断矩阵满足aij×ajk=aik,则我们称其为“一致矩阵”

    例如:
    非一致矩阵
    一致矩阵
    可以发现,一致矩阵的每一行(列)的元素成比例
    (在实际的数学建模中,我们往往是以此来判断是否为“一致矩阵”)。

    Matlab中的代码实现:

    %一致矩阵
    %判断一个“判断矩阵”是否为“一致矩阵”
    
    a=0;
    a=input('请输入判断矩阵的阶数:');
    
    b=zeros(a,a);
    b=input('请依次输入判断矩阵的每个元素:');
    
    %判断变量 设定初始值为0
    c=0;
    
    % Step1 a(ij)>0
    for i=1:a
        for j=1:a
            if(b(i,j) <= 0)
                c=1;
            end
        end
    end
    
    % Step2 a(11)=a(22)=...a(nn)=1
    for i=1:a
        if(b(a,a) ~= 1)
            c=1;
        end
    end
    
    % Step3 [a(i1),a(i2)...a(in)]=k[a(11),a(22)...a(nn)]
    for i=1:(a-2)
        d=b(i,1)/b(i+1,1);
        e=b(i+1,1)/b(i+2,1);
        if(d ~= e)
            c=1;
        end
    end
    
    if(c==0)
        disp('该判断矩阵为一致矩阵!');
    else
        disp('该判断矩阵不是一致矩阵!');
    end
    

    一致性检验的步骤:

    一致性检验步骤

    注:

    1、λmax是判断矩阵的最大特征值;

    2、n是判断矩阵的迹;

    Matlab中的代码实现:

    %一致性检验
    %一致矩阵为方阵“ 且r(A)=1” “ A有一个特征值为tr(A)” “ 其余全为0%前提准备
    a=0;
    a=input('请输入判断矩阵的阶数:');
    
    b=zeros(a,a);
    b=input('请输入判断矩阵的各个元素:');
    
    % 计算判断矩阵的最大特征值
    [x,y]=eig(b);
    z=diag(y);
    m=max(z);
    
    %计算矩阵的迹 即tr(A) 函数trace(A)
    t=trace(b);
    
    
    %正式步骤 
    
    %Step1 计算“一致性指标 CI”
    CI=(m-t)/(t-1);
    
    %Step2 查找对应的“平均随机一致性指标RI”
    if t==1
        RI=0;
        
    elseif t==2
        RI=0;
        
    elseif t==3
        RI=0.52;
        
    elseif t==4
        RI=0.89;
        
    elseif t==5
        RI=1.12;
        
    elseif t==6
        RI=1.26;
        
    elseif t==7
        RI=1.36;
        
    elseif t==8
        RI=1.41;
        
    elseif t==9
        RI=1.46;
        
    elseif t==10
        RI=1.49;
        
    elseif t==11
        RI=1.52;
        
    elseif t==12
        RI=1.54;
        
    elseif t==13
        RI=1.56;
        
    elseif t==14
        RI=1.58;
        
    elseif t==15
        RI=1.59;
    end
    
    %Step3 计算一致性比例“CR” CR=CI/RI
    CR=CI/RI;
    
    
    if(CR<0.1)
        disp('一致性比例CR:');
        disp(CR);
        disp('一致性可以接受');
    else
        disp('一致性比例CR:'); 
        disp(CR);
        disp('判断矩阵偏差过大,需要修改!');
    end
    

    如果判断矩阵的CR偏大,该如何修改呢?

    答:根据“一致矩阵”的定义,修改个别数据。

    计算“一致矩阵”中的权重:

    例如:
    一致矩阵中的计算权重
    Matlab中的代码实现:

    %计算一致矩阵的权重
    %进行归一化处理便可实现
    
    a=0;
    a=input('请输入一致矩阵的阶数:');
    
    b=zeros(a,a);
    b=input('请输入一致矩阵的各个元素:');
    
    %原则上任何一行/列都可以实现
    %我这里用第一列
    s=0;
    for i=1:a
        s=s+b(i,1);
    end
    
    for i=1:a
        c(i)=b(i,1)/s;
    end
    
    

    计算“判断矩阵”中的权重:

    这里以这样的一个矩阵为例子:
    判断矩阵

    方法1:算术平均法

    Step1. 将判断矩阵按照列(行)进行归一化(每一个元素除以其所在列(行)的和);

    Step2. 将归一化的各列相加(按行求和);

    Step3. 将相加后得到的向量中每个元素除以n即可以得到权重。

    例如:
    方法1
    Matlab中的代码实现:

    %计算判断矩阵的权重
    
    %第一种方法 “算术平均法求权重”
    
    %分别根据第1-n列/行的权重,求平均值。
    
    a=0;
    a=input('请输入判断矩阵的阶数:');
    
    b=zeros(a,a);
    b=input('请输入判断矩阵的各个元素:');
    
    %Step1 计算每一列的总和
    for i=1:a
        c(i)=0;
        for j=1:a
            c(i)=c(i)+b(j,i);
        end
    end
    
    %Step2 计算每一列的权重
    for i=1:a
        for j=1:a
            d(j,i)=b(j,i)/c(i);
        end
    end
    
    %Step3 计算算术平均权重
    for i=1:a
        e(i)=0;
        for j=1:a
            e(i)=e(i)+d(i,j);
        end
        f(i)=e(i)/a;
    end
    
    方法2:几何平均法

    Step1. 将判断矩阵的元素按照行相乘得到一个新的列向量;

    Step2. 将新的向量每个分量开n次方;

    Step3. 对该列向量进行归一化即可得到权重向量。

    例如:
    方法2
    Matlab中的代码实现:

    %计算判断矩阵的权重
    
    %第二种方法 几何平均法求权重
    
    a=0;
    a=input('请输入判断矩阵的阶数:');
    
    b=zeros(a,a);
    b=input('请输入判断矩阵的各个元素:');
    
    %Step1 将A的元素按照行相乘得到一个新的列向量
    for i=1:a
        c(i)=1;
        for j=1:a
            c(i)=b(i,j)*c(i);
        end
    end
    
    %Step2 将新的列向量的每个分量开n次方 (n为A的阶数)
    for i=1:a
        c(i)=power(c(i),1/a);
    end
    
    %Step3 进行归一化处理
    s=0;
    for i=1:a
        s=c(i)+s;
    end
    
    for i=1:a
        d(i)=c(i)/s;
    end
    
    方法3:特征值法

    Step1. 求出判断矩阵的特征向量;

    Step2. 对求出的特征向量进行归一化处理即可得到权重向量。

    例如:
    方法3
    Matlab中的代码实现:

    %计算判断矩阵的权重
    
    %第三种方法 特征值法求权重(使用最多)
    
    a=0;
    a=input('请输入判断矩阵的阶数:');
    
    b=zeros(a,a);
    b=input('请输入判断矩阵的各个元素:');
    
    %Step1 求出A对应的特征向量
    [x,y]=eig(b);
    %x为对应的特征向量 y为对应的特征值
    
    %Step2 对求出的特征向量进行归一化处理
    s=0;
    for i=1:a
       s=s+x(i);
    end
    
    for i=1:a
        t(i)=x(i)/s;
    end
    
    对比3种方法求得的结果:

    对比结果

    Step 4:计算各层元素元素对系统目标的合成权重,并进行排序

    将最终所得的结果填入表中,然后进行“算分”,便实现了用“层次分析法”实现评价问题。

    例如:
    得分

    层次分析方法的局限性:

    1、评价的决策层不能太多,太多的话,导致n会很大,因而判断矩阵和一致矩阵的差异可能会很大;

    2、如果决策层中指标的数据是已知的,那么便不能用“层次分析法”来评价,需要用TOPSIS法来评价。

    展开全文
  • 利用层次分析法,建立采矿方案综合评价指标体系层次结构模型,确定各因素的权重向量,并利用模糊数学进行综合评价,计算出各方案基于影响因素的综合优越度,进而根据最大隶属原则选出最优采矿方法。实例应用结果表明:该...
  • 本文运用层次分析法对影响高校仪器设备招标评标评标的各种指标分层排序,组成一个有序的递阶层次结构,通过计算确定其权重,将定性和定量相结合提供一种科学的方法,从而减少人为因素的影响,体现"公开、公平、公正"的...
  • 数学建模--层次分析法

    千次阅读 2020-07-19 22:36:09
    层次分析法所要解决的问题是关于最低层对最高层的相对权重的问题,按此相对权重可以对最低层中的各种方案、措施进行排序,从而在不同的方案中做出选择或形成选择方案的原则。 2.列出权重表格 分别由方案、考虑因素、...

    层次分析法的求解步骤

    1.建立层次结构模型

    模型分为三层。分别为最高层(决策问题最终要解决什么,即决策的目的)、中间层(考虑的因素,决策的准则。比如买衣服要考虑价格、尺寸、款式等因素)和最低层(决策时的备选方案,即有几种选择可以选择)。也叫作目标层、准则层、方案层。
    层次分析法所要解决的问题是关于最低层对最高层的相对权重的问题,按此相对权重可以对最低层中的各种方案、措施进行排序,从而在不同的方案中做出选择或形成选择方案的原则。

    2.列出权重表格

    分别由方案、考虑因素、所占权重组成。首先得出准则权重,然后由准则权重确定不同方案的权重。例如:下图旅游选择旅游地点:
    在这里插入图片描述
    图:确定准则权重

    在这里插入图片描述

    图:准则权重确定不同的方案权重(景色)

    3.构造判断矩阵

    直接对权重表格考虑填好,往往会考虑不周,因此分而治之,两个两个指标进行比较,最终由两两比较的结果来推出权重。采用相对尺度,以尽可能减少性质不同因素相互比较的困难,以提高准确度。
    书上给的解释:
    在确定影响某因素的诸因子在该因素中所占的比重时,遇到的主要困难是这些比重常常不易定量化。此外,当影响某因素的因子较多时,直接考虑各因子对该因素有多大程度的影响时,常常会因考虑不周全、顾此失彼而使决策者提出与他实际认为的重要性程度不相一致的数据,甚至有可能提出一组隐含矛盾的数据。
    ——选自司守奎[kuí]老师的《数学建模算法与应用》

    两个元素进行比较时,可用于判断权重的标度,以此来对各个考虑因素确定重要程度。(判断矩阵)

    在这里插入图片描述
    两个元素进行比较时,判断权重标度时表格。
    在这里插入图片描述

    (此图有误,为正互反矩阵,但不是一致矩阵)
    此矩阵为正互反矩阵,即矩阵所有元素均大于0,并且aij*aji=1(i为行,j为列)
    注意:𝑎ij表示的意义是,与指标𝑗相比,𝑖的程度。
    当𝑖 = 𝑗时,两个指标相同,因此同等重要记为1,这就解释了主对角线元素为1。

    元素应该是1-9整数或者其倒数,有的写为诸如4/3是不对的。
    然后重复上述步骤,对准则权重确定不同的方案权重同样列出判断矩阵。如:
    在这里插入图片描述

    4.一致矩阵的判断

    若正互反矩阵满足𝑎ij* 𝑎jk =𝑎ik,则我们称其为一致矩阵。(式中i、j、k都为整数,直接取即可)如果第5条中一致矩阵检验不通过,进行修正,可使矩阵满足各行或者各列之间成倍数关系。下图为修正后的一致矩阵:
    在这里插入图片描述
    引理:n阶正互反矩阵A为一致矩阵时当且仅当最大特征值等于n.并且当正互反矩阵非一致时,一定满足最大特征值大于n.矩阵越不一致时,最大特征值和n相差就越大。

    5.一致性检验

    定义一致性指标CI=(λ−n)/(n−1) CI=0,有完全的一致性;
    CI接近于0,有满意的一致性;CI越大,不一致越严重。
    第一步:计算一致性指标CI CI=(λ−n)/(n−1)
    第二步:查找对应的平均随机一致性指标RI
    在这里插入图片描述

    第三步:计算一致性比例CR
    CR=CI/RI
    如果CR<0.1,则认为判断矩阵的一致性可以接受,否则需要修正。
    注:特征值可用matlab软件进行计算,没学过线性代数的同学也不需要担心。如果特征值中有虚数,则比较的是特征值的模长。

    6.判断矩阵计算权重

    三种方法计算权重:
    (1) 算术平均法(2)几何平均法(3)特征值法
    比赛时尽量三种方法均使用:
    以往的论文利用层次分析法解决实际问题时,都是采用其中某一种方法求权重,而不同的计算方法可能会导致结果有所偏差。为了保证结果的稳健性,本文采用了三种方法分别求出了权重后计算平均值,再根据得到的权重矩阵计算各方案的得分,并进行排序和综合分析,这样避免了采用单一方法所产生的偏差,得出的结论将更全面、更有效。

    1. 算数平均法求权重
      第一步:将判断矩阵按照列归一化(每一个元素除以其所在列的和)
      第二步:将归一化的各列相加(按行求和)
      第三步:将相加后得到的向量中每个元素除以n即可得到权重向量
      就像这样:
      在这里插入图片描述
    2. 几何平均法求权重
      第一步:将A的元素按照行相乘得到一个新的列向量
      第二步:将新的向量的每个分量开n次方
      第三步:对该列向量进行归一化即可得到权重向量
    3. 特征值法求权重
      假如我们的判断矩阵一致性可以接受,那么我们可以仿照一致矩阵权重的求法。
      第一步:求出矩阵A的最大特征值以及其对应的特征向量
      第二步:对求出的特征向量进行归一化即可得到我们的权重
      最后求解得出权重表:
      如:
      在这里插入图片描述
      (景色)
      在这里插入图片描述

    最终得出总表:
    在这里插入图片描述

    由此来分别计算各个方案的得分,做出决策。

    7.层次分析法的一些缺点

    *–和一般的评价过程, 特别是模糊综合评价相比, AHP客观性提高, 但当因素多 (超过9个) 时, 标度工作量太大, 宜引起标度专家反感和判断混乱.
    *–对判断矩阵的一致性讨论得较多, 而对判断矩阵的合理性考虑得不够, 这是因为对标度专家的数量和质量重视不够
    *–没有充分利用已有定量信息.AHP都是研究专门的定性指标评价问题, 对于既有定性指标也有定量指标的问题 (这种问题更普遍) 讨论得不够.事实上, 为使评价客观, 评价过程中应尽量使用定量指标, 实在没有定量指标再用定性判断
    *–判断矩阵中的各个标度的赋值有很大的随意性, 同时, 这种赋值方式对于单人决策是可行的, 对于多人决策, 可能会出现冲突。虽然也可以通过专家决策法将决策意见进行汇总取权重, 但这个过程周期长且比较复杂
    *–判断矩阵的赋值方式有待斟酌, 即矩阵中对称位置权数取倒数关系。该赋值一方面忽视现实决策中的非理性实际,鉴于此, 层次分析法中提出了一致性 检验, 即找出实际决策环境中的随机判断矩阵的最大特征值 λ , 用公式 (λ-n)/ (n-1)来检验矩阵的一致性指标, 但仅仅是检验, 而不能在决策之前就对决策进行指导。
    *–正反矩阵的这种“倒数”赋值 会在后面的计算标准权重和相对权重中 产生“意见放大”现象
    *–不能为决策提供新方案。层次分析法的作用是从备选方案中选择较优者。这个作用正好说明了层次分析法只能从原有方案中进行选取,,而不能为决策者提供解决问题的新方案。
    自己总结

    展开全文
  • 层次分析法在matlab上的实现

    万次阅读 多人点赞 2018-06-12 10:36:17
    层次分析法(The analytic hierarchy process)简称AHP,在20世纪70年代中期由美国运筹学家托马斯.塞蒂(T.L.saaty)正式提出。它是一种定性和定量相结合的、系统化、层次化的分析方法。由于它在处理复杂的决策问题...

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

    计算步骤

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

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

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

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

    案例

    (1)建立层次结构模型

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

    (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 = 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 的不一致程度是可接受的。

      此时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. 简洁实用的决策方法:

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

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

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

    (二)缺点

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

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

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

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

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

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

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

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

    注意事项

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

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

      1、分解简化问题时把握主要因素,不漏不多;

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

    四层AHP

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

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

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

     

    展开全文
  • 层次分析法(AHP)

    千次阅读 2021-11-12 11:50:18
    AHP是AnalyticHierarchyProcess的简称,中文名为:层次分析法,是美国运筹学家、匹兹堡大学T. L. Saaty教授在20世纪70年代初期提出的。AHP是对定性问题进行定量分析的一种简便、灵活而又实用的多准则决策方法。它的...
  • 层次分析法昆明理工大学2013.12.17框架第一节 指标体系的建立第二节 指标权重的确定第三节 层析分析法的思想和原理第四节 层次分析法的模型和步骤第五节 层次分析法的应用第一节 指标体系的建立一.指标体系的建立应...
  • 层次分析法的缺点和改进

    万次阅读 2019-07-04 09:00:43
    一、层次分析法的缺点 和一般的评价过程, 特别是模糊综合评价相比, AHP客观性提高, 但当因素多 (超过9个) 时, 标度工作量太大, 宜引起标度专家反感和判断混乱. 对标度可能取负值的情况考虑不够.标度确实需要负数...
  • MATLAB-层次分析法

    千次阅读 2019-08-23 11:35:47
    AHP (Analytic Hierarchy Process)层次分析法是美国运筹学家T. L. Saaty教授于二十世纪70年代提出的一种实用的多方案或多目标的决策方法,是一种定性与定量相结合的决策分析方法。常被运用于多目标、多准则、多要素...
  • XXX
  • 评价法(四):yaahp软件——层次分析法模块使用

    万次阅读 多人点赞 2020-06-24 17:24:29
    2)重复步骤1,完成中间层要素、备选方案的添加(非破解版中间层要素只能添加3个) 3)连结各个组件:鼠标选中下级指标,连结两个组件蓝色的小点 4)重复步骤,按层次分析法连接所有组件,在这里要注意三个原则 原则...
  • 层次分析法与模糊层次分析法比较出发,根据完整与代表性同一原则、系统与层次性同一原则和科学可行原则,构建了中小工业企业信用评价指标体系,并具体给出了运用模糊层次分析法对中小工业企业的信用评价过程,最后指出...
  • 论文研究-层次分析法的标度研究.pdf, 近年来,由美国著名的运筹学家T.L.Saaty所提出的一种实用的决策方法——层次分析法在我国得到了广泛的应用。但是,在实际...
  • 数学建模(1)--层次分析法

    万次阅读 2020-09-06 03:00:00
    数学建模--层次分析法概括内容介绍实例权重表格判断(成对比较)矩阵 概括 层次分析法(The analytic hierarchy process, 简称AHP),是指将与决策总是有关的元素分解成目标、准则、方案等层次,在此基础之上进行定性和...
  • 数学建模评价类方法02——层次分析法 离谱~建模书上竟然没有这一方法的介绍,那就做个简要的拓展吧! 数学建模数学建模评价类方法02——层次分析法前言一、基本介绍1.1 简单介绍1.2 详细介绍1.3 优劣势1.3.1 优势...
  • 本文运用层次分析法对影响高校仪器设备招标评标评标的各种指标分层排序,组成一个有序的递阶层次结构,通过计算确定其权重,将定性和定量相结合提供一种科学的方法,从而减少人为因素的影响,体现“公开、公平、公正”的...
  • 基于层次分析法的风险响应措施选择模型构建,孔可莹,马丽娜,风险响应措施的选择是在成本效益原则的基础上选择最优的风险应对方案。本文运用层次分析法的基本原理,分别构建风险降低层级结构
  • 模糊层次分析法的基本思想和步骤与AHP的步骤基本一致,但仍有以下两方面的不同点:  (1)建立的判断矩阵不同:在AHP中是通过元素的两两比较建立判断一致矩阵;而在FAHP中通过元素两两比较建立模糊一致判断矩阵...
  • 层次分析法(The analytic hierarchy process)简称AHP,在20世纪70年代中期由美国运筹学家托马斯•塞蒂(T.L.Saaty)正式提出。其基本原理是:将要评价系统的有关替代方案的各种要素分解成若干层次,并以同一层次的...
  • 文末资源:层次分析法常用软件,破解版yaahp软件,中间层个数可达99个,方案层个数可达99个,免费版的中间层、方案层个数只有3个哦,内含教程,永久使用:(浏览器输入/点击网址获取) 层次分析法之yaahp软件,中间...
  • 分析层次化模块化可用性分析方法的误差成因和相关影响,给出了故障相关和维修相关条件下的误差定义,定量研究了误差分布区域及其影响因素,提出了层次化模块化可用性分析方法的适用条件和应用原则,实例分析证明了该...
  • 针对传统模糊综合评价中“权重赋值”、“模糊算子”及“综合评价原则”三个方面的不足,引入组合赋权、相乘相加模糊算子以及置信度准则,提出了一种基于熵权的模糊层次评价。以上海市滴水湖2018年12个月的水质...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 37,392
精华内容 14,956
关键字:

层次分析法的原则