层次分析法(AHP)及matlab程序

层次分析法是一种新的定性分析与定量分析相结合的系统分析方法,是将人的主观判断用数量形式表达和处理的方法,简称AHP(The Analytic Hierarchy Process)法。近年来,层次分析法在草地农业生态系统的系统分析、设计与决策中日益受到重视。

1层次分析法的基本方法和步骤

层次分析法是把复杂问题分解成各个组成因素,又将这些因素按支配关系分组形成递阶层次结构。通过两两比较的方式确定各个因素相对重要性,然后综合决策者的判断,确定决策方案相对重要性的总排序。运用层次分析法进行系统分析、设计、决策时,可分为4个步骤进行;

(1)分析系统中各因素之间的关系,建立系统的递阶层次结构;

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

(3)由判断矩阵计算被比较元素对于该准则的相对权重;

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

2递阶层次结构的建立

首先把系统问题条理化、层次化,构造出一个层次分析的结构模型。在模型中,复杂问题被分解,分解后各组成部分称为元素,这些元素又按属性分成若干组,形成不同层次。同一层次的元素作为准则对下一层的某些元素起支配作用,同时它又受上面层次元素的支配。层次可分为三类;

(1)最高层:这一层次中只有一个元素,它是问题的预定目标或理想结果,因此也叫目标层;

(2)中间层:这一层次包括要实现目标所涉及的中间环节中需要考虑的准则。该层可由若干层次组成,因而有准则和子准则之分,这一层也叫准则层;

(3)最底层:这一层次包括为实现目标可供选择的各种措施、决策方案等,因此也称为措施层或方案层。

上层元素对下层元素的支配关系所形成的层次结构被称为递阶层次结构。当然,上一层元素可以支配下层的所有元素,但也可只支配其中部分元素。递阶层次结构中的层次数与问题的复杂程度及需要分析的详尽程度有关,可不受限制。每一层次中各元素所支配的元素一般不要超过9个,因为支配的元素过多会给两两比较判断带来困难。层次结构的好坏对于解决问题极为重要,当然,层次结构建立得好坏与决策者对问题的认识是否全面、深刻有很大关系。

3构造两两比较判断矩阵

在递阶层次结构中,设上一层元素C为准则,所支配的下一层元素为u1,u2,…,un对于准则C相对重要性即权重。这通常可分两种情况:

(1)如果u1,u2,…,un对C的重要性可定量(如可以使用货币、重量等),其权重可直接确定。

(2)如果问题复杂,u1,u2,…,un对于C的重要性无法直接定量,而只能定性,那么确定权重用两两比较方法。其方法是:对于准则C,元素ui和uj哪一个更重要,重要的程度如何,通常按1~9比例标度对重要性程度赋值,下表中列出了1~9标度的含义。

表1 标度的含义

标度含义1表示两个元素相比,具有同样重要性3表示两个元素相比,前者比后者稍重要5表示两个元素相比,前者比后者明显重要7表示两个元素相比,前者比后者强烈重要9表示两个元素相比,前者比后者极端重要2,4,6,8表示上述相邻判断的中间值倒数若元素与的重要性之比为,那么元素与元素重

要性之比为

对于准则C,n个元素之间相对重要性的比较得到一个两两比较判断矩阵

其中就是元素和相对于C的重要性的比例标度。判断矩阵A具有下列性质:,,

由判断矩阵所具有的性质知,一个n个元素的判断矩阵只需要给出其上(或下)三角的n(n-1)/2个元素就可以了,即只需做n(n-1)/2个比较判断即可。

若判断矩阵A的所有元素满足,则称A为一致性矩阵。

不是所有的判断矩阵都满足一致性条件,也没有必要这样要求,只是在特殊情况下才有可能满足一致性条件。

4单一准则下元素相对权重的计算以及判断矩阵的一致性检验

已知n个元素u1,u2,…,un对于准则C的判断矩阵为A,求u1,u2,…,un对于准则C的相对权重写成向量形式即为

(1)权重计算方法。

①和法。将判断矩阵A的n个行向量归一化后的算术平均值,近似作为权重向量,即

计算步骤如下:

第一步:A的元素按行归一化;

第二步:将归一化后的各行相加;

第三步:将相加后的向量除以n,即得权重向量。

类似的还有列和归一化方法计算,即

②根法(即几何平均法)。将A的各个行向量进行几何平均,然后归一化,得到的行向量就是权重向量。其公式为

计算步骤如下:

第一步:A的元素按列相乘得一新向量;

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

第三步:将所得向量归一化后即为权重向量。

③特征根法(简记EM)。解判断矩阵A的特征根问题

式中,是A的最大特征根,W是相应的特征向量,所得到的W经归一化后就可

matlab中ahp方法,AHP及matlab程序.doc相关推荐

  1. m 文件 dll matlab 中调用_如何在matlab中调用python程序

    现在python很火,很多代码都是python写的,如果你和我一样,习惯了使用matlab,还想在matlab中调用Python的代码,应该怎么办呢?其中一条思路:首先在matlab中调用系统脚本命令 ...

  2. matlab 好玩的程序,MATLAB中几个比较有用的程序

    MATLAB中几个比较有用的程序 程序一%function 画x(n)=K*exp(a+b*j)*n j 虚指数 % Edit time 2012/3/13 % Editor 何飞 a=input(' ...

  3. matlab中的timer模块,[转载]Matlab中Timer的使用

    Matlab中Timer的使用 鉴于Matlab中缺乏多线程机制,使用Timer无疑是一个很重要的工具,Matlab中Timer是一个Java对象. (1)Timer 的定义 t=timer(); 设 ...

  4. matlab中m文件是什么,MATLAB中M文件的使用

    运行方法: 使用matlab的时候,可以在"Command Window"内直接书写matlab代码,也可以将代码保存到M文件中,然后运行该文件.使用matlab主界面菜单&quo ...

  5. 在MATLAB中使用数学符号,在matlab中怎么输入特殊符号 function在MATLAB中怎么用

    导航:网站首页 > 在matlab中怎么输入特殊符号 function在MATLAB中怎么用 在matlab中怎么输入特殊符号 function在MATLAB中怎么用 相关问题: 匿名网友: 一 ...

  6. 为什么SpringBoot中main方法执行完毕后程序不会直接退出呢

    科普:为什么SpringBoot中main方法执行完毕后程序不会直接退出呢 [转载]https://cloud.tencent.com/developer/article/1590215 针对这个问题 ...

  7. matlab 如何axis,在matlab中axis是什么意思,matlab中axis的用法

    在matlab中axis是什么意思轴在matlab中是什么意思,matlab中的Axis是指在绘图中通常使用axis函数来设置坐标值的范围,在matlab的命令窗口中输入doc轴或help轴即可获得该 ...

  8. 将C/C++程序的变量数据导入到MATLAB中的方法

    2016-5-21日:我发现自己真是傻,既然对象是图像,那何必把像素值导出来呢?直接将图像输出,然后MATLAB再读入图像不就可以了? 这篇博文随接上一篇博文: 将MATLAB的变量数据导入到VC中的 ...

  9. matlab中函数的公式计算,MATLAB怎样定义函数(入门) 有一函数 f(x,y)=x^2+sinxy+2y , 写一程序, 输入自变量的值,输出函数值....

    (x,y)=x+y(x>=0&y>=0)f(x,y)=x+y*y(x>= 由热心网友提供的答案1: 对于函数Sa(t)=sin(x)/x,其中x∈[-10π,10π],mat ...

  10. 如何将excel表格导入matlab,将Excel数据导入MATLAB中的方法

    在使用MATLAB对矩阵进行数据处理时,为了方便编辑与修改,常常需要先将数据录入到Excel中,然后再将其导入到MATLAB中参与矩阵运算.那么下面小编教你怎么将Excel数据导入MATLAB中. 将 ...

最新文章

  1. Git的工作区与暂存区
  2. 为什么我们要放弃win10 去使用deepinv20和ous呢
  3. pytorch ctcloss 参数详解
  4. 每日一皮:CPU的新用途,要不要试试?
  5. python入门自学-Python自学规划:一个月从入门到精通,每天做什么?
  6. C#面试题整理(不带答案)
  7. Python学习-将list列表写入文件并读取方法汇总
  8. 心理学博士做了阿里巴巴首席技术官并且给马云赚了5000亿
  9. Scala之集合Collection
  10. 行人重识别论文阅读8-FastReID京东快速行人重识别
  11. 4244. 【五校联考6day2】yi (Standard IO)
  12. WAL日志磁盘空间占用大小分析
  13. 做好规划 IT项目不能再独行(zt)
  14. SDUT 2021 Spring Individual Contest(for 20) - 1
  15. iif在mysql能用不_在写SQL语句时,你们会经常用IIF(ISNULL(字段))吗
  16. 1bit 寄存器 coursera
  17. 阿里云虚拟主机项目根目录指向public目录下
  18. C++ string类和常用接口的实现
  19. python3入门指南_Python 3.4入门指南
  20. 用 kali 工具 apache 搭建简易网站 LAMP

热门文章

  1. 【Python】Python库之数据可视化
  2. C#LeetCode刷题之#189-旋转数组(Rotate Array)
  3. 数据的插入、更新、删除
  4. 理解搜索引擎并且善用google
  5. 关于React Router v4的虚张声势指南
  6. 头条白板面试_如何在白板上组织您的想法并粉碎技术面试
  7. 尚学堂java 答案解析 第四章
  8. Django shell保存数据
  9. regexbuddy使用记录
  10. origin对数据进行操作