zoukankan      html  css  js  c++  java
  • 一道题理解层次分析法【转】

    一道题理解层次分析法

        层次分析法(Analytic Hierarchy Process,简称AHP)是对一些较为复杂、较为模糊的问题作出决策的简易方法,它特别适用于那些难于完全定量分析的问题。

        运用层次分析法建模,大体上可按下面四个步骤进行:
    (i)建立递阶层次结构模型;
    (ii)构造出各层次中的所有判断矩阵;
    (iii)层次单排序及一致性检验;
    (iv)层次总排序及一致性检验。

        递阶层次结构的建立与特点:

    (i)最高层:这一层次中只有一个元素,一般它是分析问题的预定目标或理想结果,因此也称为目标层。
    (ii)中间层:这一层次中包含了为实现目标所涉及的中间环节,它可以由若干个层次组成,包括所需考虑的准则、子准则,因此也称为准则层。
    (iii)最底层:这一层次包括了为实现目标可供选择的各种措施、决策方案等,此也称为措施层或方案层。

    每一层次中各元素所支配的元素一般不要超过9 个。这是因为支配的元素过多会给两两比较判断带来困难。

    一、构造判断矩阵:

    [学习笔记]一道题理解层次分析法
    二、层次单排序及一致性检验

    [学习笔记]一道题理解层次分析法
    判断矩阵的一致性检验的步骤:

    [学习笔记]一道题理解层次分析法
    三、层次总排序及一致性检验

    [学习笔记]一道题理解层次分析法
    四、例子:

        你已经去过几家主要的摩托车商店,基本确定将从三种车型中选购一种,你选择的标准主要有:价格、耗油量大小、舒适程度和外观美观情况。经反复思考比较,构造了它们之间的成对比较判断矩阵。

    [学习笔记]一道题理解层次分析法

    三种车型(记为a,b,c)关于价格、耗油量、舒适程度和外表美观情况的成对比较判断矩阵为:

    [学习笔记]一道题理解层次分析法

    (1)根据上述矩阵可以看出四项标准在你心目中的比重是不同的,请按由重到轻顺序将它们排出。
    (2)哪辆车最便宜、哪辆车最省油、哪辆车最舒适、哪辆车最漂亮?
    (3)用层次分析法确定你对这三种车型的喜欢程度(用百分比表示)。
    本问题的目标层O:选择一种车型;准则层C:价格、耗油量、舒适程度和外表美观情况;方案层:a、b、c三种车型。

    matlab:

    clear;
    clc;
    n1=4;%准则层的判断矩阵阶数
    n2=3;%方案层的判断矩阵阶数
    A=[1 3 7 8;1/3 1 5 5;1/7 1/5 1 3;1/8 1/5 1/3 1];%准则层的判断矩阵
    Price=[1 2 3;1/2 1 2;1/3 1/2 1];
    Consumption=[1 1/5 1/2;5 1 7;2 1/7 1];
    Comfort=[1 3 5;1/3 1 4;1/5 1/4 1];
    Appearance=[1 1/5 3;5 1 7;1/3 1/7 1];
    RI=[0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45];%平均随机一致性指标RI
    ri=[0,0,0.58,0.90,1.12,1.24,1.32,1.41,1.45]; %一致性指标
    %%%%%%%%

    [x,y]=eig(A);
    lamda=max(diag(y));
    num=find(diag(y)==lamda);
    w0=x(:,num)/sum(x(:,num));
    cr0=(lamda-n1)/(n1-1)/RI(n1);

    #########

    [x,y]=eig(Price);
    lamda=max(diag(y));
    num=find(diag(y)==lamda);
    w1(:,1)=x(:,num)/sum(x(:,num));
    cr1(1)=(lamda-n2)/(n2-1)/ri(n2);

    %%%%%%%%%

    [x,y]=eig(Consumption);
    lamda=max(diag(y));
    num=find(diag(y)==lamda);
    w1(:,2)=x(:,num)/sum(x(:,num));
    cr1(2)=(lamda-n2)/(n2-1)/ri(n2);

    %%%%%%%%%

    [x,y]=eig(Comfort);
    lamda=max(diag(y));
    num=find(diag(y)==lamda);
    w1(:,3)=x(:,num)/sum(x(:,num));
    cr1(3)=(lamda-n2)/(n2-1)/ri(n2);

    %%%%%%%%%

    [x,y]=eig(Appearance);
    lamda=max(diag(y));
    num=find(diag(y)==lamda);
    w1(:,4)=x(:,num)/sum(x(:,num));
    cr1(4)=(lamda-n2)/(n2-1)/ri(n2);

    %%%%%%%%%

    cr0,cr1, w0,w1,ts=w1*w0, cr=cr1*w0

    求得:

    (1)准则层的判断矩阵的一致性比例:cr0 = 0.0734<0.1,认为准则层判断矩阵的一致性是可以接受的;

    (2)方案层中的价格、耗油量、舒适程度和外表美观情况判断矩阵cr1 = 0.0079,0.1025,0.0739,0.0559,除0.1025(约等于0.1)稍大于0.1外,其他均小于0.1,认为方案层判断矩阵的一致性是可以接受的。
    (3)总排序随机一致性比例cr= 0.0426<0.1, 认为层次总排序结果具有较满意的一致性并接受该分析结果。

    (4)对价格、耗油量、舒适程度和外表美观情况的看重程度由w0得出,可以看出对价格最看重,比例为58.2%,耗油量次之,外表最不看重。

    w0 =

        0.5820
        0.2786
        0.0899
        0.0495

    (5)对三种车型的价格、耗油量、舒适程度和外表美观情况的满意程度由w1得出,对第一种车型的舒适程度最满意,为0.6267;对第二种车型的耗油量最满意,为0.7445;对第三种车型的价格最满意,为0.1634;

    w1 =

        0.5396    0.1056    0.6267    0.1884
        0.2970    0.7445    0.2797    0.7306
        0.1634    0.1499    0.0936    0.0810

    (6)对三种车型的总体满意度为第二种车型最高,为0.4416.
    ts =

        0.4091
        0.4416
        0.1493

  • 相关阅读:
    用DecimalFormat格式化十进制数字的实际应用
    ETL测试小结
    浅谈DB2的四个隔离级别
    POI处理Excel中各种日期格式问题
    如何将Object类型转换成String类型
    ArrayList和LinkedList
    DB2 编目并访问远程数据库
    EXCEL解析之终极方法WorkbookFactory
    DB2中coalesce函数的应用
    【Linux学习】Linux用户管理2—用户配置文件
  • 原文地址:https://www.cnblogs.com/jojo123/p/6519840.html
Copyright © 2011-2022 走看看