zoukankan      html  css  js  c++  java
  • 层次分析法

    作用:用于解决生活中,学习中等遇到的决策问题,决策就是指在面临多种选择方案时,依照一定的标准选择某一种方案。

    例如:

    在苏杭、北戴河、桂林选择一个旅游点。要考虑到景点的景色、居住的环境、饮食的特色、交通的便利和旅游的费用。

     层次分析法原理:层次分析法根据问题的性质和要达到的总目标,讲问题分解为不同的组成因素,并按照因素间的相互关联的影响以及隶属关系将因素按不同层次聚集组合,形成一个多层次的分析结构模型,从而最终使问题归结为最底层(供决策的方案、措施等)相对于最高层(总目标)的相对重要权值的确定或相对优劣次序的排定。

    运用层次分析法构造系统模型时,大题可以分为以下四个步骤:

    1. 建立层次结构模型
    2. 构造判断(成对比较)矩阵
    3. 层次单排序及其一致性检验
    4. 层次总排序及其一致性检验

    构建:

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

    成对比较矩阵:在确定各层次各因素之间的权重时,如果只是定性的结果,则常常不容易被别人接收,因而Santy等人提出一致矩阵法:

    1.不把所有因素放在一起比较,而是两两相互比较

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

    成对比较矩阵是表示本层所有因素针对上一层某一个因素的相对重要性的比较。成对比较矩阵的元素aij用Santy的1-9标度方法给出。

     

     

    已知成对比较矩阵即可用一下程序求解:

    disp('请输入判断矩阵A(n阶)');
    A=input('A=');
    [n,n]=size(A);
    x=ones(n,100);
    y=ones(n,100);
    m=zeros(1,100);
    m(1)=max(x(:,1));
    y(:,1)=x(:,1);
    x(:,2)=A*y(:,1);
    m(2)=max(x(:,2));
    y(:,2)=x(:,2)/m(2);
    p=0.0001;i=2;k=abs(m(2)-m(1));
    while  k>p
      i=i+1;
      x(:,i)=A*y(:,i-1);
      m(i)=max(x(:,i));
      y(:,i)=x(:,i)/m(i);
      k=abs(m(i)-m(i-1));
    end
    a=sum(y(:,i));
    w=y(:,i)/a;
    t=m(i);
    disp(w);
             %以下是一致性检验
    CI=(t-n)/(n-1);RI=[0 0 0.52 0.89 1.12 1.26 1.36 1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59];
    CR=CI/RI(n);
    if CR<0.10
        disp('此矩阵的一致性可以接受!');
        disp('CI=');disp(CI);
        disp('CR=');disp(CR);
    end

    例如:

     

  • 相关阅读:
    并行逻辑回归
    【math】梯度下降法(梯度下降法,牛顿法,高斯牛顿法,Levenberg-Marquardt算法)
    MATLAB 按条件进行加和
    MATLAB 统计不同区间中元素的个数
    MATLAB 统计元素出现的次数
    MATLAB 程序处理结果出现 NAN 问题
    Debug 路漫漫-07
    MATLAB 程序计算结果出现 复数(a+bi)问题
    关于安装 Microsoft Office
    关于推荐系统中的长尾商品
  • 原文地址:https://www.cnblogs.com/dongdong25800/p/10234706.html
Copyright © 2011-2022 走看看