Matlab笔记——层次分析法

合集下载

层次分析法(详解)

层次分析法(详解)

第六章层次分析法决策是人们选择或进行判断的一种思维活动,在人们的实践活动中,常常要对某些系统的重要性作出恰当的评价,以便列出它们的轻重缓急,从而集中解决重要的问题。

有些决策是简单易断的,而有些决策则是复杂困难的,因此常常先把复杂问题分解成因素,然后把这些因素按支配关系分组形成有序的递阶层次结构,并衡量各方面的影响,最后综合人的判断,以决定决策诸因素相对重要性的先后优劣次序,这就是层次分析法的基本思路。

层次分析法的(Analytic Hierarchy Process 简记为AHP)是美国著名的运筹学家T.L.Saaty 教授于70年代初首先提出的一种定性与定量分析相结合的多准则决策方法。

该方法是社会、经济系统决策的有效工具,目前在工程计划、资源分配、方案排序、政策制定、冲突问题、性能评价等方面都有广泛的应用。

6.1 层次分析法的基本原理层次分析法的核心问题是排序,包括递阶层次结构原理、测度原理和排序原理。

下面分别予以介绍。

1.递阶层次结构原理。

一个复杂的结构问题可分解为它的组成部分或因素,即目标、准则、方案等。

每一个因素称为元素。

按照属性的不同把这些元素分组形成互不相交的层次,上一层次的元素对相邻的下一层次的全部或部分元素起支配作用,形成按层次自上而下的逐层支配关系。

具有这种性质的层次称为递阶层次。

例如,选拔队员参加数学建模比赛的层次结构如下图6.1所示:图6.1 队员参赛的层次结构图其中Y1:接受能力;Y2:反映能力;Y3:自愿程度;Y4:计算机应用能力;Y5:写作能力;Y11:掌握新知识的能力;Y12:建模能力;Y21:想象能力;Y22:洞察能力;Y31:建模兴趣;Y32:主动程度;Y33:对建模的认识Y41:使用数学软件的能力;Y41:计算机语言编程能力;Y51:中文写作能力;Y52:英文表达能力至于复杂系统的层次结构图,请参看有关的文献。

2.测度原理。

决策就是要从一组已知方案中选择理想的方案,而理想方案一般是在一定的准则下通过使效用函数极大化而产生的。

MatLab层次分析法代码

MatLab层次分析法代码
>>A=[12564724;1/21242712;1/51/215151/22;1/61/41/511/331/21/4;1/41/2131512;1/71/71/51/31/511/71/5;1/21221712;1/41/21/241/251/21];
>>d=eig(A)%求全部特征值所组成的向量
e=max(eig(A));%最大特征值
v=null(A-e*eye(length(A)));%e对应特征向量
>>e
>>A=[13365957;1/31134746;1/31134746;1/61/31/311/241/22;1/51/41/421412;1/91/71/71/41/411/31/2;1/51/41/421312;1/71/61/61/21/221/21];
e=max(eig(A));%最大特征值
v=null(A-e*eye(length(A)));%e对应特征向量
>>e
e=
8.4243
>>v
v=
-0.7427
-0.3893
-0.2579
-0.0985
-0.2588
-0.0519
-0.3352
-0.1966
>>A=[13365957;1/31134746;1/31134746;1/61/31/311/241/22;1/51/41/421412;1/91/71/71/41/411/31/2;1/51/41/421312;1/71/61/61/21/221/21];
0.2579-0.0614+0.3195i-0.0614-0.3195i-0.0739-0.0916i-0.0739+0.0916i-0.1506-0.0176i-0.1506+0.0176i

层次分析法判断矩阵求权值以及一致性检验程序

层次分析法判断矩阵求权值以及一致性检验程序

function [w,CR]=mycom(A,m,RI)[x,lumda]=eig(A);r=abs(sum(lumda));n=find(r==max(r));max_lumda_A=lumda(n,n);max_x_A=x(:,n);w=A/sum(A);CR=(max_lumda_A-m)/(m-1)/RI;end本matlab程序用于层次分析法中计算判断矩阵给出的权值已经进行一致性检验。

其中A为判断矩阵,不同的标度和评定A将不同。

m为A的维数RI为判断矩阵的平均随机一致性指标:根据m的不同值不同。

当CR<0.1时符合一致性检验,判断矩阵构造合理。

下面是层次分析法的简介,以及判断矩阵构造方法。

一.层次分析法的含义层次分析法(The analytic hierarchy process)简称AHP,在20世纪70年代中期由美国运筹学家托马斯·塞蒂(T.L.Saaty)正式提出。

它是一种定性和定量相结合的、系统化、层次化的分析方法。

由于它在处理复杂的决策问题上的实用性和有效性,很快在世界范围得到重视。

它的应用已遍及经济计划和管理、能源政策和分配、行为科学、军事指挥、运输、农业、教育、人才、医疗和环境等领域。

二.层次分析法的基本思路与人对一个复杂的决策问题的思维、判断过程大体上是一样的。

(1)层次分析法的原理层次分析法是将决策问题按总目标、各层子目标、评价准则直至具体的备投方案的顺序分解为不同的层次结构,然后得用求解判断矩阵特征向量的办法,求得每一层次的各元素对上一层次某元素的优先权重,最后再加权和的方法递阶归并各备择方案对总目标的最终权重,此最终权重最大者即为最优方案。

这里所谓“优先权重”是一种相对的量度,它表明各备择方案在某一特点的评价准则或子目标,标下优越程度的相对量度,以及各子目标对上一层目标而言重要程度的相对量度。

层次分析法比较适合于具有分层交错评价指标的目标系统,而且目标值又难于定量描述的决策问题。

层次分析法判断矩阵求权值以及一致性检验程序

层次分析法判断矩阵求权值以及一致性检验程序

function [w,CR]=mycom(A,m,RI)[x,lumda]=eig(A);r=abs(sum(lumda));n=find(r==max(r));max_lumda_A=lumda(n,n);max_x_A=x(:,n);w=A/sum(A);CR=(max_lumda_A-m)/(m-1)/RI;end本matlab程序用于层次分析法中计算判断矩阵给出的权值已经进行一致性检验。

其中A为判断矩阵,不同的标度和评定A将不同。

m为A的维数RI为判断矩阵的平均随机一致性指标:根据m的不同值不同。

当CR<0.1时符合一致性检验,判断矩阵构造合理。

下面是层次分析法的简介,以及判断矩阵构造方法。

一.层次分析法的含义层次分析法(The analytic hierarchy process)简称AHP,在20世纪70年代中期由美国运筹学家托马斯·塞蒂(T.L.Saaty)正式提出。

它是一种定性和定量相结合的、系统化、层次化的分析方法。

由于它在处理复杂的决策问题上的实用性和有效性,很快在世界范围得到重视。

它的应用已遍及经济计划和管理、能源政策和分配、行为科学、军事指挥、运输、农业、教育、人才、医疗和环境等领域。

二.层次分析法的基本思路与人对一个复杂的决策问题的思维、判断过程大体上是一样的。

(1)层次分析法的原理层次分析法是将决策问题按总目标、各层子目标、评价准则直至具体的备投方案的顺序分解为不同的层次结构,然后得用求解判断矩阵特征向量的办法,求得每一层次的各元素对上一层次某元素的优先权重,最后再加权和的方法递阶归并各备择方案对总目标的最终权重,此最终权重最大者即为最优方案。

这里所谓“优先权重”是一种相对的量度,它表明各备择方案在某一特点的评价准则或子目标,标下优越程度的相对量度,以及各子目标对上一层目标而言重要程度的相对量度。

层次分析法比较适合于具有分层交错评价指标的目标系统,而且目标值又难于定量描述的决策问题。

matlab计算AHP层次分析法

matlab计算AHP层次分析法

matlab计算AHP层次分析法第一篇:matlab计算AHP层次分析法用matlab解决层次分析法AHP1、求矩阵最大特征值及特征向量用matlab求:输入:A=[1 1/2 2 1/4;2 1 1 1/3;1/2 1 1 1/3;4 3 3 1][x,y]=eig(A)得出:特征向量x=[0.2688 0.3334 0.2373 0.8720]最大特征值λmax=4.19642、一致性检验CI=(λmax-n)/(n-1)=(4.1964-4)/(4-1)=0.0655 CR=CI/RI=0.0655/0.9=0.0727(注:维数为4时,RI=0.9)CR=0.0727<0.1,矩阵一致性通过检验3、对最大特征值进行归一化处理,即可得到各指标权重(归一化:分项/分项之和)W=[0.157 0.195 0.139 0.510]第二篇:AHP层次分析法层次分析法层次分析法(The analytic hierarchy process,简称AHP),也称层级分析法什么是层次分析法层次分析法(The analytic hierarchy process)简称AHP,在20世纪70年代中期由美国运筹学家托马斯·塞蒂(T.L.Saaty)正式提出。

它是一种定性和定量相结合的、系统化、层次化的分析方法。

由于它在处理复杂的决策问题上的实用性和有效性,很快在世界范围得到重视。

它的应用已遍及经济计划和管理、能源政策和分配、行为科学、军事指挥、运输、农业、教育、人才、医疗和环境等领域。

层次分析法的基本思路与人对一个复杂的决策问题的思维、判断过程大体上是一样的。

不妨用假期旅游为例:假如有3个旅游胜地A、B、C供你选择,你会根据诸如景色、费用和居住、饮食、旅途条件等一些准则去反复比较这3个候选地点.首先,你会确定这些准则在你的心目中各占多大比重,如果你经济宽绰、醉心旅游,自然分别看重景色条件,而平素俭朴或手头拮据的人则会优先考虑费用,中老年旅游者还会对居住、饮食等条件寄以较大关注。

使用Matlab程序实现层次分析法(AHP)的简捷算法

使用Matlab程序实现层次分析法(AHP)的简捷算法

使用Matlab程序实现层次分析法(AHP)的简捷算法作者:于晶来源:《科技风》2016年第16期摘要:层次分析法简便易懂,可操作性和实用性强,但是构造判断矩阵往往不容易,计算判断矩阵的特征值特别繁琐且易出错,得到的一致性检验不易调整,这些都给使用层次分析法带来困难,以往使用办公软件电子表格(Excel)的方法计算单层次排序和总层次排序,这种方法使得计算和一致性检验变得容易,文本使用Matlab程序使得计算变得更容易,也使得层次分析法在多个领域得到推广和应用。

关键词:层次分析法;Excel;matlab1 层次分析法(AHP法)的原理和解决思路层次分析法是对定性问题进行定量分析的一种简便、灵活而又实用的多准则决策方法。

它的原理是模拟人的决策过程,具有思路清晰、方法简便、适用面广、系统性强等特点。

是解决多目标、多准则、多层次复杂问题决策或者大型工程风险分析的有力工具。

层次分析法解决问题的思路就是用下一次因素的相对排序求得上一次因素的相对排序。

按照因素之间的相互影响和隶属关系将各层次因素聚类组合,形成一个递进有序的层次结构模型。

2 层次分析法的应用难点2.1合适的判断矩阵构造不易模型确定后,按照模型层次结构和模型的各因素的相对重要性,综合专家群体咨询意见,采用标度法[ 1 ],从数字1/9一9中选取恰当值,构造各层的判断矩阵,并使之尽量符合一致性检验,这一步成为问题的关键。

但实际上系统越复杂,判定矩阵的阶数就会越高,计算就会越困难。

2.2计算量大,步骤繁琐层次分析法首先要求的就是判断矩阵的最大特征值?姿max,及其正规化的特征向量w,向量w的分量wi是相应因素的单层次权值,这部分计算理论上基于线性代数知识,不用计算机也可以将其计算出来。

但实际上,当矩阵的阶数高于4阶时,人工计算就变得相当困难且易出错,如使用计算机计算,就容易得多,常用的方法有Basic语言,电子表格Excel等方法。

但计算量都有待改进。

层次分析法及matlab程序

层次分析法及matlab程序

层次分析法建模层次分析法(AHP-Analytic Hierachy process)---- 多目标决策方法70 年代由美国运筹学家T·L·Satty提出的,是一种定性与定量分析相结合的多目标决策分析方法论.吸收利用行为科学的特点,是将决策者的经验判断给予量化,对目标(因素)结构复杂而且缺乏必要的数据情况下,採用此方法较为实用,是一种系统科学中,常用的一种系统分析方法,因而成为系统分析的数学工具之一。

传统的常用的研究自然科学和社会科学的方法有:机理分析方法:利用经典的数学工具分析观察的因果关系;统计分析方法:利用大量观测数据寻求统计规律,用随机数学方法描述(自然现象、社会现象)现象的规律。

基本内容:(1)多目标决策问题举例AHP建模方法(2)AHP建模方法基本步骤(3)AHP建模方法基本算法(3)AHP建模方法理论算法应用的若干问题。

参考书:1、姜启源,数学模型(第二版,第9章;第三版,第8章),高等教育出版社2、程理民等, 运筹学模型与方法教程,(第10章),清华大学出版社3、《运筹学》编写组,运筹学(修订版),第11章,第7节,清华大学出版社一、问题举例:A.大学毕业生就业选择问题获得大学毕业学位的毕业生,“双向选择”时,用人单位与毕业生都有各自的选择标准和要求。

就毕业生来说选择单位的标准和要求是多方面的,例如:①能发挥自己的才干为国家作出较好贡献(即工作岗位适合发挥专长);②工作收入较好(待遇好);③生活环境好(大城市、气候等工作条件等);④单位名声好(声誉—Reputation);⑤工作环境好(人际关系和谐等)⑥发展晋升(promote,promotion)机会多(如新单位或单位发展有后劲)等。

问题:现在有多个用人单位可供他选择,因此,他面临多种选择和决策,问题是他将如何作出决策和选择?——或者说他将用什么方法将可供选择的工作单位排序?工作选择贡献收入发展声誉工作环境生活环境B.假期旅游地点选择暑假有3个旅游胜地可供选择.例如:1P :苏州杭州,2P 北戴河,3P 桂林,到底到哪个地方去旅游最好?要作出决策和选择。

层次分析法

层次分析法

层次分析法(AnalCtic HierarchC Process, AHP )数学用于研究自然与社会现象的方法主要有:● 机理分析——用经典的数学工具分析现象的因果关系;● 统计分析——以随机数学为工具,通过大量观测数据寻求统计规律.近年来发展起来的第三种方法称为系统分析,层次分析是系统分析的工具之一,它是美国运筹学教授Saaty 于70年代初期提出来的. 它把人的思维过程层次化、数量化,并用数学方法为分析、决策、预报或控制提供定量的依据. 这是一种定性与定量相结合的方法. 步骤:1) 将问题条理化、层次化,构造出一个有层次的结构模型. 层次分为三层:目标层、准则层和方案层.………… …2) 比较同一层次元素对上一层次同一目标的影响,从而确定题目在目标中所占的比重. 采用两两比较的方法,求出它们对于同一个目标的重要性的比例标度,标度等级为1, 2, …, 9, 1/2, 1/3, …, 1/9. 得到两两比较判断矩阵. 1—9标度的含义为:1—两个元素同等重要(相等) 3—前者稍重要(较强) 5—前者明显重要(强) 7—前者强烈重要(很强) 9—前者极端重要(绝对强) 2,4,6,8为上述判断的中间值.3) 确定各准则对于目标的权重,及各方案对于每一准则的权重. (在单一准则下计算元素相对排序权重,以及判断矩阵一致性检验.) 4) 计算方案层中元素对于目标层的总排序权重,从而确定首选方案.(将方案层对准则层的权重及准则层对目标层的权重进行综合,最终确定方案层对目标层的权重.)成对比较法,正互反阵和一致阵设要比较的n 个因素C ={C 1, …, C n }对目标O 的影响,确定它们在O 中的比重. 每次取两个因素C i 和C j ,用a ij 表示对C i 和C j 对O 的影响之比:a ij >0, a ji =1ija (i , j =1, 2, …, n ) (1) A=(a ij )称为成对比较阵或判断矩阵. 满足(1)的矩阵称为正互反阵. 成对比较阵是正互反阵.例如:考虑旅游问题. 设有三个地点供选择:桂林P 1、黄山P 2、北戴河P 3. 问如何在三个目的地中按照:费用C 1,景色C 2,居住C 3,饮食C 4,交通C 5这五个因素进行选择.设某人用成对比较法得到的成对比较阵为127551/214331/71/411/21/31/51/32111/51/3311A ⎛⎫⎪⎪⎪ ⎪⎪ ⎪⎝⎭= (2)其中a 12表示费用C 1与景色C 2对选择旅游地这个目标O 的重要性之比为2:1, a 13表示费用C 1与居住条件C 3之比为7:1, a 23表示景色C 2与居住条件C 3之比为4:1,可以看出此人在选择旅游地时,费用因素最重,景色次之,居住条件再次. 怎样由成对比较阵确定诸因素C 1,C 2,…,C n 对上层因素O 的权重呢? 分析:(2)式给出的成对比较阵A 中,C 1与C 2之比为2:1, C 2与居住条件C 3之比为4:1,那么C 1与C 3之比应为8:1, 但C 1与C 3之比为7:1,这种情况称为这三个因素成对比较不一致. (即a 12·a 23=2·4≠7= a 13)全部一致的要求太苛刻,因此Saaty 等人给出了在成对比较不一致的情况下计算各因素C 1,C 2,…,C n 对上层因素O 的权重的方法.设想把一块单位重量的大石头O 砸成n 块小石头C 1,C 2,…,C n ,如果精确地称出它们的重量为12,,,n w w w ,在作成对比较时有a ij =ijw w ,则得到111122221212n n n n n n w w w w w w w w w A w w w w w w ⎛⎫⎪ ⎪ ⎪⎪ ⎪ ⎪⎪⎪⎪⎝⎭= (3) 这些比较显然是一致的. n 块小石头对大石头的权重(即在大石头中的重量之比)可用向量12(,,,)Tn w w w =w 表示,且11ni i w ==∑. 显然A 的各个列向量与w 仅相差一个比例因子.一致阵:如果一个正互反阵A 满足a ij ·a jk =a ik (i , j , k =1, 2, …, n ) (4)则称A 为一致阵.例如矩阵1261/2131/61/31A ⎛⎫⎪⎪ ⎪⎝⎭= (5) 是一致阵.可以验证:若A 为n 阶一致矩阵,则有 A n =w wn 阶一致阵A 有下列性质: (1)A 的秩为1;(2)A 的最大特征根为max n λ=,其余特征根均为零 (3)n 阶正互反阵是一致阵⇔max n λ=.例如 (5)中矩阵为一致阵,则max 3λ=.权向量:max λ的标准化特征向量: (1) 一致阵的权向量:例如(5)中矩阵1261/2131/61/31A ⎛⎫⎪⎪ ⎪⎝⎭=为一致矩阵,则max 3λ=,权向量为max λ的标准化特征向量:(0.6,0.3,0.1)T =w(2) 不一致阵的权向量:例如 1261/2141/61/41A ⎛⎫⎪⎪ ⎪⎝⎭=,max 3.01λ=,(0.588,0.322,0.09)T =w max λ比n 大得越多,A 不一致的程度就越严重,用w 表示C 1,C 2,…,C n 在O 中所占比重时的偏差就越大.附:求特征值特征向量的matlab 程序 >>A=[1 2 6; 1/2 1 4; 1/6 1/4 1];>>[x,D]=eig(A) %x 为特征向量,D 的主对角线元素为特征值一致性指标衡量不一致程度的数量指标叫做一致性指标. Saaty 将他定义为max 1n CI n λ-=-对于一致阵,一致性指标CI =0.CI 越大,A 的不一致性程度越严重.为了找出衡量一致性指标CI 的标准,Saaty 提出一种方法. 对固定的n ,随机地构造正互反阵A ,其中ij a ()i j <随机地从1/9,,1/2,1,2,,9 当中取出一数,由于其随机性,这样的A是非常不一致的,它的CI 相当大. 如此构造相当多的A,用它们的CI 的平均值作为随机一致性指标. Saaty 对于不同的n ,用100~500个样本A算出最大特征值的平均值max λ ,定义随机性指标为 max 1n RI n λ-=- 得到RI 的数值如下表所示表:随机性指标RI 的值(计算RI 的过程:对于固定的n ,随机的构造正互反矩阵A ’(它的元素a ij ’(i<j )从1~9,1~1/9中随机取值),然后计算A ’ 的一致性指标CI . 可以想到,A ’是非常不一致的,它的CI 相当大. 如此构造相当多的A ’,用它们的CI 的平均值作为随机一致性指标. Saaty 对于不同的n ,用100~500个样本A ’ 算出的随机一致性指标RI 的数值如上表所示)当C I <0.1RI时,认为A 的不一致性仍可接受. 称 CICR RI=为一致性比率指标,当CR <0.1时,认为判断矩阵的一致性是可以接受的.下面介绍计算最大特征值max λ和特征向量w 的一种近似方法(和法),步骤如下:a. 将A 的各个列向量归一化得1ˆijijij ni a a w==∑;b. 对ˆij w按行求和得1ˆˆni ij i w w ==∑; c. 将ˆi w 归一化1ˆˆii i ni ww w ==∑,12(,,,)T n w w w w = 即为近似特征向量;d. 计算1max ˆ()1ˆˆn i i iA n λ==∑w w,作为最大特征根的近似值.这个方法实际上是将A 的列向量归一化后取平均值,作为A 的特征向量. 因为当A 为一致阵时它的每一列向量都是特征向量,所以若A 的不一致性不严重,则取A 的列向量(归一化后)的平均值作为近似特征向量是合理的.例如:1261/2141/61/41A ⎛⎫⎪⎪ ⎪⎝⎭= 列向量归一化0.60.6150.5450.30.3080.3640.10.0770.091⎛⎫ ⎪⎪ ⎪ ⎪⎝⎭按行求和1.7600.9720.268⎛⎫ ⎪⎪ ⎪⎝⎭ 归一化0.5870.3240.089w ⎛⎫ ⎪ ⎪ ⎪⎝⎭=,Aw =1.7690.9740.268⎛⎫⎪⎪ ⎪⎝⎭max 11.7690.9740.268 3.00930.5870.3240.089ˆλ⎛⎫ ⎪ ⎪⎝⎭=++= 精确计算给出()0.5880.3220.090Tw =, 3.010λ=. 二者相比相差甚微.max 3.00930.00450.10.582ˆ1n CI n λ-==<⨯-=-3n =时,RI =0.58,0.1CIRI< ∴ 认为A 的不一致性是可以接受的. 课堂练习:判断矩阵W=136115311165⎛⎫ ⎪ ⎪⎪ ⎪ ⎪ ⎪⎝⎭的一致性是否可以接受. 回到旅游问题(1)先确定准则层关于目标层的比重 准则层关于目标层的成对比较阵为127551/214331/71/411/21/31/51/32111/51/3311A ⎛⎫⎪⎪ ⎪ ⎪⎪ ⎪⎝⎭=列向量归一化0.48950.51060.41180.47620.48390.24480.25530.23530.28570.29030.06990.06380.05880.04760.03230.09790.08510.11760.09520.09680.09790.08520.17650.09530.0967A ⎛⎫⎪⎪ ⎪ ⎪⎪ ⎪⎝⎭=按行求和 2.37201.31140.27240.49260.5516⎛⎫⎪⎪⎪ ⎪⎪⎪⎝⎭ 归一化0.47440.26230.05450.09850.1103⎛⎫ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪⎝⎭=ˆw ˆ(2.4245,1.3439,0.2739,0.5001,0.5546)T A =wm a x ˆλ1 2.42451.34390.27390.50010.5546() 5.072950.47440.26230.05450.09850.1103=++++= m a x 0.07290.01824ˆ1n CI n λ==-=- 5n =时,RI =1.12,0.1CIRI<故A 的不一致性可以接受A .()C w =ˆw =0.47440.26230.05450.09850.1103⎛⎫ ⎪ ⎪⎪ ⎪ ⎪ ⎪ ⎪⎝⎭代表C 1,C 2,C 3,C 4,C 5在O 中分别所占比重,即准则层关于目标层的比重已确定.(2)再确定方案层关于准则层的比重设123{,,}P P P P =对i C 的成对比较阵为:1111381313831B ⎛⎫ ⎪ ⎪ ⎪ ⎪ ⎪⎪ ⎪⎝⎭= 212511211152B ⎛⎫⎪ ⎪⎪⎪ ⎪ ⎪ ⎪⎝⎭= 113113311133B ⎛⎫ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪⎝⎭= 413411131114B ⎛⎫⎪ ⎪⎪ ⎪ ⎪⎪ ⎪⎝⎭= 511141114441B ⎛⎫ ⎪ ⎪ ⎪ ⎪⎪ ⎪ ⎪⎝⎭=由于3n =, 0.58RI =,故()/0.1i RI CI <(1,2,...,5)i =,所以51B B 的不一致性都可以接受.最终目的是要得到123,,P P P 在O 中所占的比重. (3)确定方案层关于目标层的比重123()((),(),())P w P w P w P =w11()()()C C P P =w w w0.0820.460.5950.260.4=⨯+⨯+⨯ 0.6330.10.1660.13+⨯+⨯0.299= 22()()()0.245C C P P ==w w w 33()()()0.456C C P P ==w w w()(0.299,0.2450.456),T P =w3P 为第一选择.总结:AHP 的计算步骤1) 建立系统的层次结构,一般分为三层:目标层、准则层和方案层 2) 给出方案之间、准则之间的两两比较矩阵; 3) 计算每个矩阵的特征向量; 4) 计算每个矩阵的最大特征值; 5) 一致性检验; 6) 方案的总排序.附录方阵的特征值与特征向量定义1 设A 是n 阶方阵,如果存在λ和n 维非零列向量x ,使得λ=Ax x ,则称数λ为的A 特征值,并称非零列向量x 为A 的属于λ的特征向量.例如:对1221A ⎛⎫ ⎪ ⎪⎝⎭=,有λ=3及向量11x ⎛⎫ ⎪ ⎪⎝⎭=,使得1221⎛⎫ ⎪ ⎪⎝⎭31111⎛⎫⎛⎫= ⎪ ⎪ ⎪ ⎪⎝⎭⎝⎭,这说明λ=3是A 的特征值,11x ⎛⎫ ⎪ ⎪⎝⎭=是A 对应于λ=3的特征向量. 对于这个定义我们应注意到:特征向量≠0x . 否则由于对任何数λ,都有λ=00A ,从而任何数都是A 的特征值,这样的定义显然是不合理的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、概述层次分析法(Analytic Hierarchy Process, AHD)是将要决策的问题及其有关因素分解成目标、准则、方案等层次,进而进行定性和定量分析的决策方法。

它的特征是合理地将定性与定量决策结合起来,按照思维、心理的规律把决策过程细致化(层次化、数量化)。

层次分析法广泛地应用到处理复杂的决策问题,而决策是基于该方法计算出的权重,所以也常用来确定指标的权重。

层次分析法的基本思路与人们对一个决策问题的思维、判断过程大体上是一样的。

例如,选购一台笔记本电脑,假设有三种不同品牌款式的笔记本电脑A、B、C供选择。

我们一般会根据价格、外观、重量、用途、功耗、品牌等一些准则去反复比较这个三个候选。

首先,会确定这些准则在自己心目中各占多大比重,不同的人这种比重会有很大差异(喜欢玩游戏的人看重硬件性能和散热、预算有限的人看重价格等)。

其次,还会就每一个准则将A、B、C进行对比,比如A最便宜,B次之;C性能最好,B次之;C的品牌最知名等。

最后,将这两个层次的比较判断进行综合,在A、B、C中确定一台作为最符合自己需求的电脑。

二、算法步骤1. 将问题条理化、层次化,建立层次结构模型1)最高层(目标层)——只有一个元素:决策目标;2)中间层(准则层)——考虑的因素,决策的准则、子准则;3)最底层(方案层)——决策时的备选方案、措施。

层次分析法要解决的问题是,求出最底层对最高层的相对权重,以此对最底层的方案、措施进行排序,选择最优方案。

注1:为了避免两两比较判断过于复杂,每层次中各元素所支配的元素一般不要超过9个,否则应划分为若干子层;注2:层次分析法只考虑相邻两个层次间自上向下的支配作用,认为同一层次的元素间相互独立,若考虑进来需要网络分析法(ANP )。

例如前文提到的选购笔记本电脑的决策模型,可以建立如下的层次结构:2. 构造判断矩阵(成对比较矩阵)构造好层次模型后,针对某一层来讲,在比较第i 个元素与第j 个元素相对于上一层某个因素的重要性时,使用数量化的相对权重a ij 来表示,假设共有n 个元素参与比较,则矩阵1111()n ij n n n nn a a A a a a ⨯⎛⎫ ⎪== ⎪ ⎪⎝⎭LM OM L 称为判断矩阵(或成对比较矩阵)。

Saaty 根据绝大多数人认知事物的心理习惯,建议用1~9及其倒数作为标度来确定a ij 的值。

其中,2, 4, 6, 8分别介于1, 3, 5, 7, 9对应的重要程度之间。

显然,A 中的元素满足:i) a ij > 0; ii) a ji = 1/a ij ; iii) a ii =1称为正互反矩阵。

例如,选购笔记本电脑模型中,可以根据实际三台电脑的重量得到电脑对准则层B 3的判断矩阵(a ij 可以取笔记本电脑j 与i 的重量之比,重量越轻越好):311/31/5313/555/31B C A -⎛⎫ ⎪= ⎪ ⎪⎝⎭3. 层次单排序及判断矩阵的一致性检验通常用特征根法从判断矩阵导出,单一准则下元素相对排序权重。

定义若n 阶正互反矩阵 (a ij )n ×n 满足a ik a kj = a ij(对应a ij =w i /w j , 故需要a ik a kj =(w i /w k )/(w k /w j ) = a ij ),则称(a ij )n ×n 为一致性矩阵。

特征根法的基本思想是,当正互反矩阵 (a ij )n ×n 为一致性矩阵时,对应于判断矩阵的最大特征根λmax 的特征向量,经归一化后(使向量中各元素之和等于1)即为排序权向量,记为w , w 的元素为同一层次因素对于上一层次某因素相对重要性的排序权值,这一过程称为层次单排序。

能否进行层次单排序,就看判断矩阵是否为一致性矩阵,有如下定理:定理n 阶正互反矩阵A 为一致性矩阵的充要条件是,A 的最大特征值λmax = n .在实际操作中,由于客观事物的复杂性以及人们对事物判断比较时的模糊性,很难构造出完全一致的判断矩阵。

因此,Satty 在构造层次分析法时,提出了一致性检验,所谓一致性检验是指判断矩阵允许有一定不一致的范围。

一致性检验步骤如下:1)计算判断矩阵A 的最大特征值λmax ;2)求出一致性指标(Consistencey Index ):max C.I.1nn λ-=-.=0表示完全一致,.越大越不一致;3)用随机模拟取平均的方法,求相应的平均随机一致性指标., 或者直接用Satty 模拟1000次得到的.表:4)计算一致性比率:C.I.C.R.=R.I.5)判断,当.<时,认为判断矩阵A 有满意的一致性;若.≥, 应考虑修正判断矩阵A.4. 计算各元素对目标层的合成权重(层次总排序)为了实现层次分析法的最终目的,需要从上而下逐层进行各层元素对目标合成权重的计算。

设已计算出第k-1层n k -1个元素相对于目标的合成权重为:1(1)11112(,,,)k k k k k T n w w w w -----=L再设第k 层的n k 个元素关于第k-1层第j 个元素(j=1,…,n k -1)的单一准则排序权重向量为:()()()12(,,,)k kk k k T j j j n j u u u u =L 上式对k 层的n k 个元素是完全的,若某些元素不受k-1层第j 个元素支配,相应位置用0补充,于是得到n k ×n k -1阶矩阵:111()()()11121()()()21222()()()()12k k k k k k k k k n k k k n k k k k n n n n u u u u u u U u u u ---⎛⎫ ⎪ ⎪= ⎪ ⎪ ⎪⎝⎭L L M M OM L 从而可以得到第k 层的n k 个元素关于目标层的合成权重向量:()()(1)k k k w U w -=按递归展开得()()(1)(3)(2)k k k w U U U w -=L写成分量形式为1()()(1)1, 1,,k n k k k i ij j k j w u w i n --===∑L各层元素对目标层的合成排序权重向量是否可以满意接受,与单一准则下的排序问题一样,需要进行综合一致性检验:当.(k)< 时,则认为层次结构在第k 层以上的判断具有整体满意的一致性。

注:实际应用中,整体一致性检验常不予进行。

主要原因是,整体考虑十分困难;其次若每个单一准则下的判断矩阵具有满意的一致性,而整体达不到满意的一致性时,调整起来非常困难。

另外,整体一致性的背景也不如单一准则下的背景清晰,它的必要性有待进一步研究。

三、Matlab实现实现层次分析法的Matlab函数:function [W,ahpResult] = ahp(C)%层次分析法%C为n×1的元胞数组,存储整个层次模型结构:第2层对第1层、第3层对第2层、...第n+1层对第n层%假设第k层有m_k个元素,从左到右依次编号1,...,m_k%C{k}也是元胞数组, k=1,...,n%C{k}{1,j}存储受第j元素支配的第k+1层各元素的判断矩阵(j=1,2,...,m_k)%C{k}{2,j}存储第k+1层各元素是否受第k层第j元素支配的(m_k+1)*1的逻辑数组,1表示支配,0表示不受支配%W返回方案层对目标层的最终权重向量%ahpResult为n×1的元胞数组, 存储层次分析过程各层的结果信息, ahpResult{k}也是元胞数组%ahpResult{k}{1,j}返回第k+1层所有元素相对第k层j元素的权重向量, 第k+1层元素不受第k层j元素支配的权重为0%ahpResult{k}{2,j}返回第k+1层所有元素相对于第k层第j元素的判断矩阵的最大特征值%ahpResult{k}{3,j}返回第k+1层所有元素相对于第k层第j元素的判断矩阵的一致性比率.RI=[0 0 ]; % 平均随机一致性指标n = length(C); %得到C的长度n, 于是知道模型总层数为n+1ahpResult = cell(n,1); % ′存储各层结果信息for k = 1:nm_k = size(C{k},2); % k层的元素个数ahpResult{k} = cell(m_k,1);for kk = 1:m_k%求第k+1层各元素对第k层kk元素的成对比较矩阵的特征值和特征向量[V,D] = eig(C{k}{1,kk});[maxD,ind] = max(diag(D)); % 求最大特征值和其位置%为存储第k+1层所有元素相对k层kk元素的权重预留出空间,长度应等于C{k}{2,kk}的长度ahpResult{k}{1,kk} = zeros(length(C{k}{2,kk}),1);%将相应正互反矩阵属于最大特征值的特征向量归一化后赋给ahpResult{k}{1,kk}中相应位置%这些位置由逻辑数组C{k}{2,kk}决定ahpResult{k}{1,kk}(C{k}{2,kk}) = V(:,ind)/sum(V(:,ind));ahpResult{k}{2,kk} = maxD; % C{k}{1,kk}正互反矩阵的最大特征值nn = size(C{k}{1,kk},1); % C{k}{1,kk}的阶数ahpResult{k}{3,kk} = (maxD-nn)/(nn-1)/RI(nn); % 相应的一致性比率.endendW = ahpResult{1}{1,1};for k = 2:n% cat(2,ahpResult{k}{1,:})把k+1层所有元素相对k层各个元素的权重向量横向排在一起生成权重矩阵U^(k)W = cat(2,ahpResult{k}{1,:})*W;end用该函数实现层次分析法的关键是,把整个层次结构存入嵌套元胞数组C中(见程序注释):C{k}——存储第k+1层与第k层的结构(k=1,…,n);设第k层有m k个元素,其中第j元素与第k+1层的结构关系存储到C{k}{…, j}中(j=1,…,m k),需要存储的信息有:①受第j元素支配的第k+1层各元素的判断矩阵②第k+1层各元素是否受第k层第j元素支配(即有没有连线)所以需要两个位置,即C{k}{1, j}和C{k}{2, j}.例1某工厂有一笔企业留成利润,需要决定如何分配使用。

已经决定有三种用途:奖金、集体福利措施、引进技术设备。

考察准则也有三个:是否能调动职工的积极性、是否有利于提高技术水平、考虑改善职工生活条件。

建立如下层次模型:经过工厂决策人员讨论,得到如下判断矩阵:1. 第2层对第1层三个元素C1, C2, C3都受A支配,判断矩阵C{1}{1,1}为相应的逻辑数组C{1}{2,1}为[true truetrue].2. 第3层对第2层(1) 第3层对第2层第1个元素C1受C1支配的只有两个元素P1和P2,判断矩阵C{2}{1,1}为相应的逻辑数组C{2}{2,1}为[true truefalse].(2) 第3层对第2层第2个元素C2受C2支配的只有两个元素P2和P3,判断矩阵C{2}{1,2}为相应的逻辑数组C{2}{2,2}为[false true true].(3) 第3层对第2层第3个元素C3受C3支配的只有两个元素P1和P2,判断矩阵C{2}{1,3}为相应的逻辑数组C{2}{2,3}为[true truefalse].3. 有了上面的分析,层次模型的元胞数组表示C已经确定,调用函数即可C = cell(2,1);%共n+1=3层, 故n=2C{1}{1,1} = [1 1/5 1/3;5 1 3;3 1/3 1];%第2层(C层)关于第1层(目标层A)的判断矩阵C{1}{2,1} = [true truetrue];%相应的逻辑数组C{2}{1,1} = [1 1/3;3 1];%第3层(P层)关于第2层第1元素C1的判断矩阵C{2}{2,1} = [true truefalse];%相应的逻辑数组C{2}{1,2} = [1 1/5;5 1];%第3层(P层)关于第2层第2元素C2的判断矩阵C{2}{2,2} = [false true true];%相应的逻辑数组C{2}{1,3} = [1 2;1/2 1];%第3层(P层)关于第2层第3元素C3的判断矩阵C{2}{2,3} = [true truefalse];%相应的逻辑数组[W,ahpResult]=ahp(C);%调用ahp求解W %输出总排序的权重向量运行结果:W =W就是方案层各个方案所占的比重,可见引进技术设备所占比重最大,改善员工福利次之。

相关文档
最新文档