精华内容
下载资源
问答
  • 数学建模:层次分析法一直性检验MATLAB代码
  • 模糊层次综评模型及应用实例 摘要介绍了模糊层次法评价水环境质量的基本原理和方法步骤建立了水环 境质量综合评价模型利用?该评价?方法就?...水质综合评价的基本思路是 用层次分析法确定各指标的权重在
  • // ConsoleApplication3... cout 符合一致性检验";  }  else  {  if (cr)  {  cout 符合一致性" ;;  }  else  {  cout 不符合一致性应修改" ;  }  }  system("pause");  return 0; }

    // ConsoleApplication3.cpp : 定义控制台应用程序的入口点。
    //

    #include "stdafx.h"
    #include<iostream>
    #include<math.h>
    #include<vector>
    using namespace std;


    int main()
    {
        cout << "请输入行或列的长度" << endl;
        int row;
        cin >> row;
        cout << "请输入数字" << endl;
        vector<double> a;
        for (size_t i = 0; i < row*row; i++)
        {
            double x;
            cin >> x;
            a.push_back(x);
        }
        vector<double> w;
        double fenmu = 0, wzhi = 0;
        for (int i = 0; i < row; i++)
        {
            for (size_t j = 0; j < row; j++)
            {
                for (size_t k = 0; k < row; k++)
                {

                    fenmu += a[k*row+j];
                }
                wzhi += a[i*row+j] / fenmu;
                fenmu = 0;
            }
            w.push_back(wzhi / row);
            wzhi = 0;
        }
        //以上为计算W值、
        vector<double> lanmude;
        double lanmudazhi = 0;
        for (size_t i = 0; i < row; i++)
        {
            for (size_t j = 0; j < row; j++)
            {
                lanmudazhi += a[i*row+j] * w[j];
            }
            lanmude.push_back(lanmudazhi);
            lanmudazhi = 0;
        }
        //以上是求lanmuda值
        vector<double> lmax;
        for (size_t i = 0; i < row; i++)
        {
            lmax.push_back(lanmude[i] / w[i]);
        }
        double max = 0;
        for (size_t i = 0; i < row; i++)
        {
            max += lmax[i];
        }
        max /= row;
        //以上是求max值
        double  ci = (max - row) / (row - 1);
        double  ri[5] = { 0,0,0.58,0.9,1.12 };
        double cr = ci / ri[row-1];
        //以上是求cr值
        cout << cr << endl;
        if (ci==0)
        {
            cout << "符合一致性检验";
        }
        else
        {
            if (cr<0.1)
            {
                cout << "符合一致性" << endl;;
            }
            else
            {
                cout << "不符合一致性应修改" << endl;

            }
        }
        system("pause");
        return 0;
    }

    展开全文
  • 层次分析一致性检验

    千次阅读 2020-12-20 17:19:25
    目录1、层次分析法的基本步骤1.1、建立层次结构模型1.2、构造判断(成对比较)矩阵1.3、层次单排序及一致性检验1.4、 层次总排序及其一致性检验2、总结:层次分析法...:去哪儿旅游5、为什么层次分析法要进行一致性检验...

    1、层次分析法的基本步骤

    参考:https://zhuanlan.zhihu.com/p/38207837

    1.1、建立层次结构模型

    将决策的目标、考虑的因素(决策准则)和决策对象按他们之间的相互关系分成最高层、中间层和最低层,绘制层次结构图。

    • 最高层(目标层):决策的目的、要解决的问题;
    • 中间层(准则层或指标层):考虑的因素、决策的准则;
    • 最低层(方案层):决策时的备选方案;

    下面以选择旅游地为例进行分析:
    在这里插入图片描述

    1.2、构造判断(成对比较)矩阵

    那在确定各层次各因素之间的权重时,如果只是定性的结果(就是我认为景色占80%,费用10%等等),则常常不容易被别人接受,因此Santy等人提出:一致矩阵法

    即:

    • 不把所有因素放在一起比较,而是两两比较;
    • 对此时采用相对尺度,以尽可能减少性质不同的诸因素相互比较的困难,以提高准去性;

    成对比较矩阵是表示本层所有因素针对上一层某一个因素(准侧或目标)的相对重要性的比较。成对比较矩阵的元素 aij表示的是第i个因素相对于第j个因素的比较结果,这个值使用的是Santy的1-9标度方法给出。
    在这里插入图片描述那比如,举上面的旅游的例子,在旅游问题中第二层A的各个因素对目标层Z的影响两两比较的结果如下图:
    第二层个因素对第一层的影响的对比矩阵
    比如 a14=3 则表示的是景色因素比居住因素对于选择旅游地来说稍微重要。

    那两两进行比较以后,怎么才能知道,下层各因素对上层某因素的影响程度的排序结果呢?

    1.3、层次单排序及一致性检验

    层次单排序:W的元素为同一层次因素对于上一层次因素某因素相对重要性的排序权值,这一过程称为层次单排序,那能否确认层次单排序,需要进行一致性检验,所谓一致性检验是指对成对比较矩阵确定不一致的允许范围。

    一致性的直观显示如下图:在这里插入图片描述在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述如果成对比较矩阵属于可接受的一致性或者是一致性矩阵,那么就可以使用这种方式来近似的计算层次单排序权重,也就是同一层次的每个因素对于上一层次因素某因素相对重要性的排序权值。

    比如对于"一致性检验以及求得权重"这个图,权向量中有5个元素,那每一个元素代表的是每一个因素对上一层的因素的权重,比如说第一个值为0.263,那这代表的含义就是景色对于选择旅游地的重要性为0.263。

    1.4、 层次总排序及其一致性检验

    计算某一层次所有因素对于最高层(总目标)相对重要性的权值,称为层次总排序。

    这一过程是从最高层到最低层次依次进行的。
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

    2、总结:层次分析法的4步

    1. 建立层次结构模型:该结构图包括目标层,准则层,方案层;

    2. 构造成对比较矩阵:从第二层开始用成对比较矩阵和1~9尺度;

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

    4. 计算总排序权向量并做一致性检验:计算最下层对最上层总排序的权向量。
      利用总排序一致性比率
      在这里插入图片描述
      进行检验,若通过,则可按照总排序权向量表示的结果进行决策,否则需要重新考虑模型或重新构造那些一致性比率CR较大的成对比较矩阵。

    3、实例:去哪儿旅游

    在这里插入图片描述
    在这里插入图片描述
    计算单排序权向量:
    在这里插入图片描述
    计算总排序权向量以及进行一致性检验:
    在这里插入图片描述选择最终的决策方案:
    在这里插入图片描述

    5、为什么层次分析法要进行一致性检验?

    防止矛盾:例如A比B重要,B比C重要,但是C又比A重要,这就形成一个“闭合环”,是矛盾的!

    在这里插入图片描述参考:https://www.zhihu.com/question/325242753/answer/689833040,

    展开全文
  • 常用的评估方法:较基础的层次分析法(AHP)的一致性检验matlab程序!
  • 层次分析法(The Analytic Hierarchy Process即 AHP)是由美国运筹学家、 匹兹堡大学教授T . L. Saaty于20世纪70年代创立的一种系统分析与决策的综合 评价方法,是在充分研究了人类思维过程的基础上提出来的,它较...

    以下内容整理来自B站UP主:数学建模学习交流

    层次分析法(The Analytic Hierarchy ProcessAHP)是由美国运筹学家、 匹兹堡大学教授T . L. Saaty于20世纪70年代创立的一种系统分析与决策的综合 评价方法,是在充分研究了人类思维过程的基础上提出来的,它较合理地解决了定性问题定量化的处理过程。

    AHP的主要特点是通过建立递阶层次结构,把人类的判断转化到若干因素两两之间重要度的比较上,从而把难于量化的定性判断转化为可操作的重要度的比较上面。在许多情况下,决策者可以直接使用AHP进行决策,极大地提高了决策的有效性、可靠性和可行性,但其本质是一种思维方式,它把复杂问题分解成多个组成因素,又将这些因素按支配关系分别形成递阶层次结构,通过两两比较的方法确定决策方案相对重要度的总排序。整个过程体 现了人类决策思维的基本特征,即分解、判断、综合,克服了其他方法回避决策者主观判断的缺点。

    具体代码实现部分请见博客评价类模型——层次分析法,一致性检验学习笔记,matlab代码实现(二) 

    层次分析法:建模比赛中最基础的模型之一,其主要用于解决 评价类问题(例如:选择哪种方案最好、哪位运

    动员或者员工表现的更优秀)

    评价类问题可用打分方法解决:

    例题1:华中科技大学和武汉大学哪所学校好,考虑学习氛围、就业前景、男女比例、校园景色等因素。每个因素所占比例以及待比较的内容所占比例分配假设如下,则两所学校的评分计算方式为

    使用打分法解决评价问题,只需要我们补充完成下面这张表格即可:

    例题2:小明同学想出去旅游,他选择苏杭、北戴河和桂林三地之一作为目标景点。请确定评价指标、形成评价体系为其选择最合适的方案。

    第一步:

    第二步:构建权重表格

     根据第一步的分析内容构建如下的权重表格,其中同色的之和为1,

     如何填写上面的某种颜色的各项内容呢?例如蓝色对应的指标权重?

    问题:

    一次性考虑这五个指标之间的关系,往往考虑不周。

    解决方法:

    两个两个指标进行比较,最终根据两两比较的结果来推算出权重。

    已知重要度表如下:

    1、假设构建的指标权重的重要度比较矩阵如下:

    假设苏杭、北戴河、桂林在景色、花费、居住、饮食、交通方面的判断矩阵分别为:

    2、计算判断矩阵权重

    总共三种方法计算权重:算数平均法、几何平均法、特征值法

    1)、用算数平均法解决指标景色上的判断矩阵

    第一步:将判断矩阵按照列归一化 (每一个元素除以其所在列的和)

    第二步:将归一化的各列相加(按行求和)

    第三步:将相加后得到的向量中每个元素除以n即可得到权重向量

    公式描述如下:

    求解过程如下:

    2)、用几何平均法解决指标景色上的判断矩阵

    几何平均法求权重也有三步:

    第一步:将A的元素按照行相乘得到一个新的列向量

    第二步:将新的向量的每个分量开n次方

    第三步:对该列向量进行归一化即可得到权重向量

    3)、用特征值法解决指标景色上的判断矩阵

    三种方法计算出来的结果差别较小,在此选用特征值法得到的结果填入对应的判断矩阵中

    按照上述方法同理计算出其他色块对应的权重,得到使用特征值法求得的权重矩阵如下,根据此矩阵, 计算出每个旅游景点的得分。

    第三步:计算每个方案得分

    类似的,我们可以得到北戴河得分为0.245, 桂林得分为0.455. 因此最佳的旅游景点是桂林。

    注意的问题:在第二步构造判断矩阵后要对其进行一致性检验,检验构造的矩阵是否与一致性矩阵有太大差别,接下来介绍一致性矩阵

     一致性检验

    1.一致矩阵

     下图中左侧是构造的判断矩阵,右侧是其对应的一致矩阵,如果构造的判断矩阵与一致矩阵差别太大的话则不可以使用,要重新构建判断矩阵,直至通过一致性检验为止

    2.一致性检验的步骤

    1)、计算判断矩阵最大特征值、一致性指标CI

    n是矩阵的维数,一致矩阵的最大特征值为n,当判断矩阵的最大特征值为n时,此判断矩阵为一致矩阵。

    2)、根据n的大小,按照下表查找平均随机一致性指标RI

    3)、计算一致性比例CR

    如果CR < 0.1, 则可认为判断矩阵的一致性可以接受;否则需要对判断矩阵进行修正。修正的方法是往一致矩阵上调整,(一致矩阵各行成倍数关系)

    展开全文
  • 一致性分析对照表 基本信息 学 科 语文 年 级 六年级 教 师 吴朝华 教材版本 人教版 课标要点 题型 题号 题目 分值 难易度 了解有较强的独立识字能力累计认识常用汉字3000个其中2500个左右会写 读拼音写词语 一 读...
  • 一致性分析对照表模板 基本信息 学 科 语文 年 级 三年级 教 师 冯金平 教材版本 人教版 课标要点 题型 题号 题目 分值 难易度 掌握汉语拼音 写词语题 一 我会写 4 较易 掌握汉字 组词 二 我会比一比再组词 4 较易 ...
  • 层次分析法理论部分评价类模型——层次分析法一致性检验学习笔记(一) 层次分析法方法总结: 第一步:分析系统中各因素之间的关系,建立系统的递阶层次结构 第二步:对于同一层次的各元素关于上一层次中某...

    前一篇讲述了层次分析的原理,例题讲解,接下来是matlab代码实现

    层次分析法理论部分评价类模型——层次分析法,一致性检验学习笔记(一)

    层次分析法方法总结:

    第一步:分析系统中各因素之间的关系,建立系统的递阶层次结构

    第二步:对于同一层次的各元素关于上一层次中某一准则的重要性进行两两比较,构造两两比较矩阵(判断矩阵)。

    1.构建准则层判断矩阵

    2.准则层—方案层的判断矩阵

    第三步: 由判断矩阵计算被比较元素对于该准则的相对权重, 并进行一致性检验(检验通过权重才能用)

    三种方法计算权重:

    1)算术平均法(2)几何平均法(3)特征值法

    第四步:计算各层元素对系统目标的合成权重,并进行排序。

     

    代码:

    以解决景色、花费、居住、饮食、交通为例的判断矩阵的权重为例子:

    新建一个后缀名为.m文件,将代码复制进去,在工作区新建变量并命名为A,填写如下信息

    当然也可以通过键盘输入,参考注释语句。

    具体实现代码如下 

    %%输入判断矩阵
    % clear;
    % clc;
    %A=input('请输入判断矩阵:')
    [n,n]=size(A);%取矩阵列数n
    %%
    %判断矩阵一致性检验
    clc;
    [V,D]=eig(A);%求特征值和特征向量,V存放特征向量,D存放特征值
    Max_eig=max(max(D));%取D中最大特征值
    CI=(Max_eig-n)/(n-1);%计算一致性指标CI
    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);%计算一致比例
    % 如果CR < 0.1, 则可认为判断矩阵的一致性可以接受;否则需要对判断矩阵进行修正。
    disp('一致性指标CI=');disp(CI);
    disp('一致性比例CR=');disp(CR);
    if CR<0.10
        disp('因为CR < 0.10,所以该判断矩阵A的一致性可以接受!');
    else
        disp('注意:CR >= 0.10,因此该判断矩阵A需要进行修改!');
    end
    %%
    %方法1:算术平均法求权重
    sum_A=sum(A);%对矩阵所在列作和
    SUM_A=repmat(sum_A,n,1);%将sum_A看做一个整体,重复n*1块
    stand_A=A./SUM_A;%A和SUM_A矩阵对应行相除;即将判断矩阵按照列归一化
    disp('算术平均法求权重的结果为:');
    disp(sum(stand_A,2) / n)
    %%
    %方法2:几何平均法求权重
    Prduct_A = prod(A,2);%将A的元素按照行相乘得到一个新的列向量
    % prod函数和sum函数类似,一个用于乘,一个用于加  dim = 2 维度是行
    Prduct_n_A = Prduct_A .^ (1/n);% 这里对每个元素进行乘方操作,这里是开n次方,所以我们等价求1/n次方
    disp('几何平均法求权重的结果为:');
    disp(Prduct_n_A ./ sum(Prduct_n_A))
    %%
    %方法3:特征值法求权重
    [r,c] = find(D == Max_eig , 1);% 找到D中第一个与最大特征值相等的元素的位置,记录它的行和列。
    disp('特征值法求权重的结果为:');
    disp( V(:,c) ./ sum(V(:,c)) )%对求出的特征向量进行归一化即可得到我们的权重

    实验结果

    存储完矩阵A后,点击运行输出结果为:

     

    清除工作区间后,输入其他的判断矩阵。你学会了吗。

    展开全文
  • 基本信息 学 科 ?语文 年 级 ?五年级 教 师 叶尚增 教材版本 ?人教版 课标要点 题型 题号 题目 分值 难易度 有较强的独立识字能力累计认识常用汉字3000个其中2500个左右会写 一看拼音写出相应的字词 1 j p lng hn do...
  • 层次分析法、T检验

    2021-05-09 17:38:43
    记此表为A方阵,即层次分析法中的判断矩阵,也叫正互反矩阵 一致矩阵:各行(各列)间成倍数关系 由判断矩阵可求权重 注意:由判断矩阵求权重前,要对其进行一致性检验 一致性经验:检验判断矩阵与一致矩阵间...
  • 这是我在数学建模大赛培训时编的程序,有注解,方便大家看的明白,希望对其他参赛选手有所帮助
  • 层次分析法中判断矩阵的填写方法、一致性检验的步骤、以及根据判断矩阵计算权重的方法
  • 层次分析法

    2018-11-22 21:32:33
    层次分析法中在检验方法的时候进行的一致性检验,检验矩阵的逻辑关系
  • 步骤 1. 建立层次结构模型 分为最高层、中间层(可以有多层)和最底层。...3. 层次单排序及其一致性检验 单排序,对应于中间层对最高层的判断矩阵(1个) 排序:见程序 一致性检验: (n为判断矩阵的维
  • 分析了AHP(层次分析法)中现有检验指标存在的问题和应用的局限,设计了一个通用的检验指标,采用该指标,用统计学的知识进行一致性和相容性检验.该方法比通常方法使用面广、...
  • 第一讲:层次分析法 模型介绍 评价类问题可用打分解决 根据权重表格计算得分 一个小小的总结 一道引出层次分析法的例题 还记得这张权重表格吗? 直接问权重的弊端 分而治之的思想 层次分析...
  • 层次分析法原理简单,matlab实现起来也较容易。 对于matlab新手而言,主要在判断矩阵未通过一致性检验的时候,需要重新输入,重新计算。 clc; clear;% 清除所有命令窗口,清除所有变量 while true %无条件进入循环 A...
  • %% 因此大家自己写论文中如果用到了层次分析法,一定要先对判断矩阵进行一致性检验。 %% 而且要说明的是,只有非一致矩阵的判断矩阵才需要进行一致性检验。 %% 如果你的判断矩阵本身就是一个一致矩阵,那么就没有...

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 275
精华内容 110
关键字:

层次分析法一致性检验