1、 -167- 第八章 层次分析法 层次分析法( Analytic Hierarchy Process,简称 AHP)是对一些较为复杂、较为模糊的问题作出决策的简易方法,它特别适用于那些难于完全定量分析的问题。它是美国运筹学家 T. L. Saaty 教授于上世纪 70 年代初期提出的一种简便、灵活而又实用的多准则决策方法。 1 层次分析法的基本原理与步骤 人们在进行社会的、经济的以及科学管理领域问题的系统分析中,面临的常常是一个由相互关联、相互制约的众多因素构成的复杂而往往缺少定量数据的系统。层次分析法为这类问题的决策和排序提供了一种新的、简洁而实用的建模方法。 运用层次分析法建模,大体上可按
2、下面四个步骤进行: ( i)建立递阶层次结构模型; ( ii)构造出各层次中的所有判断矩阵; ( iii)层次单排序及一致性检验; ( iv)层次总排序及一致性检验。 下面分别说明这四个步骤的实现过程。 1.1 递阶层次结构的建立与特点 应用 AHP 分析决策问题时,首先要把问题条理化、层次化,构造出一个有层次的结构模型。在这个模型下,复杂问题被分解为元素的组成部分。这些元素又按其属性及关系形成若干层次。上一层次的元素作为准则对下一层次有关元素起支配作用。这些层次可以分为三类: ( i)最高层:这一层次中只有一个元素,一般它是分析问题的预定目标或理想结果,因此也称为目标层。 ( ii)中间层:
3、这一层次中包含了为实现目标所涉及的中间环节,它可以由若干个层次组成,包括所需考虑的准则、子准则,因此也称为准则层。 ( iii)最底层:这一层次包括了为实现目标可供选择的各种措施、决策方案等,因此也称为措施层或方案层。 递阶层次结构中的层次数与问题的复杂程度及需要分析的详尽程度有关,一般地层次数不受限制。每一层次中各元素所支配的元素一般不要超过 9 个。这是因为支配的元素过多会给两两比较判断带来困难。 下面结合一个实例来说明递阶层次结构的建立。 例 1 假期旅游有1P 、2P 、3P 3个旅游胜地供你选择,试确定一个最佳地点。 在此问题中,你会根据诸如景色、费用、居住、饮食和旅途条件等一些准则
4、去反复比较 3 个侯选地点。可以建立如图 1 的层次结构模型。 图 1 层次结构模型 -168- 1.2 构造判断矩阵 层次结构反映了因素之间的关系,但准则层中的各准则在目标衡量中所占的比重并不一定相同,在决策者的心目中,它们各占有一定的比例。 在确定影响某因素的诸因子在该因素中所占的比重时,遇到的主要困难是这些比重常常不易定量化。此外,当影响某因素的因子较多时,直接考虑各因子对该因素有多大程度的影响时,常常会因考虑不周全、顾此失彼而使决策者提出与他实际认为的重要性程度不相一致的数据,甚至有可能提出一组隐含矛盾的数据。为看清这一点,可作如下假设:将一块重为 1 千克的石块砸成 n 小块,你可以
5、精确称出它们的重量,设为nww ,1L,现在,请人估计这 n 小块的重量占总重量的比例(不能让他知道各小石块的重量) ,此人不仅很难给出精确的比值,而且完全可能因顾此失彼而提供彼此矛盾的数据。 设现在要比较 n 个因子 ,1 nxxXL= 对某因素 Z 的影响大小, 怎样比较才能提供可信的数据呢? Saaty 等人建议可以采取对因子进行两两比较建立成对比较矩阵的办法。即每次取两个因子ix 和jx ,以ija 表示ix 和jx 对 Z 的影响大小之比,全部比较结果用矩阵nnijaA= )( 表示,称 A 为 XZ 之间的成对比较判断矩阵(简称判断矩阵) 。容易看出,若ix 与jx 对 Z 的影响
6、之比为ija ,则jx 与ix 对 Z 的影响之比应为ijjiaa1= 。 定义 1 若矩阵nnijaA= )( 满足 ( i) 0ija , ( ii)ijjiaa1= ( nji ,2,1,L= ) 则称之为正互反矩阵 (易见 1=iia , ni ,1L= )。 关于如何确定ija 的值, Saaty 等建议引用数字 19 及其倒数作为标度。表 1 列出了 19 标度的含义: 表 1 标度的含义 标度 含 义 1 3 5 7 9 2,4,6,8 倒数 表示两个因素相比,具有相同重要性 表示两个因素相比,前者比后者稍重要 表示两个因素相比,前者比后者明显重要 表示两个因素相比,前者比后者强
7、烈重要 表示两个因素相比,前者比后者极端重要 表示上述相邻判断的中间值 若因素 i 与因素 j 的重要性之比为ija ,那么因素 j 与因素 i 重要性之比为ijjiaa /1= 。 从心理学观点来看,分级太多会超越人们的判断能力,既增加了作判断的难度,又容易因此而提供虚假数据。 Saaty 等人还用实验方法比较了在各种不同标度下人们判断结果的正确性,实验结果也表明,采用 19 标度最为合适。 -169- 最后,应该指出,一般地作2)1( nn次两两判断是必要的。有人认为把所有元素都和某个元素比较,即只作 1n 次比较就可以了。这种作法的弊病在于,任何一个判断的失误均可导致不合理的排序,而个别
8、判断的失误对于难以定量的系统往往是难以避免的。进行2)1( nn次比较可以提供更多的信息,通过各种不同角度的反复比较,从而导出一个合理的排序。 1.3 层次单排序及一致性检验 判断矩阵 A 对应于最大特征值max 的特征向量 W ,经归一化后即为同一层次相应因素对于上一层次某因素相对重要性的排序权值,这一过程称为层次单排序。 上述构造成对比较判断矩阵的办法虽能减少其它因素的干扰,较客观地反映出一对因子影响力的差别。但综合全部比较结果时,其中难免包含一定程度的非一致性。如果比较结果是前后完全一致的,则矩阵 A 的元素还应当满足: nkjiaaaikjkijL,2,1, = ( 1) 定义 2 满
9、足关系式( 1)的正互反矩阵称为一致矩阵。 需要检验构造出来的(正互反)判断矩阵 A 是否严重地非一致,以便确定是否接受 A 。 定理 1 正互反矩阵 A 的最大特征根max 必为正实数,其对应特征向量的所有分量均为正实数。 A 的其余特征值的模均严格小于max 。 定理 2 若 A 为一致矩阵,则 ( i) A 必为正互反矩阵。 ( ii) A 的转置矩阵TA 也是一致矩阵。 ( iii) A 的任意两行成比例,比例因子大于零,从而 1)(rank =A (同样, A 的任意两列也成比例) 。 ( iv) A 的最大特征值 n=max , 其中 n 为矩阵 A 的阶。 A 的其余特征根均为零
10、。 ( v) 若 A 的最大特征值max 对应的特征向量为TnwwW ),(1L= , 则jiijwwa = ,nji ,2,1,L= ,即 =nnnnnnwwwwwwwwwwwwwwwwwwALLLLLLL212221212111定理 3 n 阶正互反矩阵 A 为一致矩阵当且仅当其最大特征根 n=max ,且当正互反矩阵 A 非一致时,必有 nmax 。 根据定理 3,我们可以由max 是否等于 n 来检验判断矩阵 A 是否为一致矩阵。由-170- 于特征根连续地依赖于ija ,故max 比 n 大得越多, A 的非一致性程度也就越严重,max 对应的标准化特征向量也就越不能真实地反映出 ,
11、1 nxxXL= 在对因素 Z的影响中所占的比重。因此,对决策者提供的判断矩阵有必要作一次一致性检验,以决定是否能接受它。 对判断矩阵的一致性检验的步骤如下: ( i)计算一致性指标 CI 1max=nnCI( ii)查找相应的平均随机一致性指标 RI 。对 9,1L=n , Saaty 给出了 RI 的值,如表 2 所示。 表 2 RI的值 n 1 2 3 4 5 6 7 8 9 RI 0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 RI 的值是这样得到的,用随机方法构造 500 个样本矩阵:随机地从 19 及其倒数中抽取数字构造正互反矩阵,求得最大特征根的平均
12、值max ,并定义 1max=nnRI。 ()计算一致性比例 CR RICICR = 当 10.0CR 时,认为判断矩阵的一致性是可以接受的,否则应对判断矩阵作适当修正。 1.4 层次总排序及一致性检验 上面我们得到的是一组元素对其上一层中某元素的权重向量。我们最终要得到各元素,特别是最低层中各方案对于目标的排序权重,从而进行方案选择。总排序权重要自上而下地将单准则下的权重进行合成。 表 3 层次总排序合成表 设上一层次( A 层)包含mAA ,1L共 m 个因素,它们的层次总排序权重分别为maa ,1L。又设其后的下一层次( B 层)包含 n 个因素nBB ,1L,它们关于jA 的层-171
13、- 次单排序权重分别为njjbb ,1L(当iB 与jA 无关联时, 0=ijb ) 。现求 B 层中各因素关于总目标的权重,即求 B 层各因素的层次总排序权重nbb ,1L,计算按表 3 所示方式进行,即=mjjijiabb1, ni ,1L= 。 对层次总排序也需作一致性检验,检验仍象层次总排序那样由高层到低层逐层进行。这是因为虽然各层次均已经过层次单排序的一致性检验,各成对比较判断矩阵都已具有较为满意的一致性。但当综合考察时,各层次的非一致性仍有可能积累起来,引起最终分析结果较严重的非一致性。 设 B 层中与jA 相关的因素的成对比较判断矩阵在单排序中经一致性检验,求得单排序一致性指标为
14、 )( jCI , ( mj ,1L= ) ,相应的平均随机一致性指标为 )( jRI( )()( jRIjCI 、 已在层次单排序时求得) ,则 B 层总排序随机一致性比例为 =mjjmjjajRIajCICR11)()(当 10.0CR 时,认为层次总排序结果具有较满意的一致性并接受该分析结果。 2 层次分析法的应用 在应用层次分析法研究问题时,遇到的主要困难有两个: ( i)如何根据实际情况抽象出较为贴切的层次结构; ( ii)如何将某些定性的量作比较接近实际定量化处理。层次分析法对人们的思维过程进行了加工整理,提出了一套系统分析问题的方法,为科学管理和决策提供了较有说服力的依据。 但层
15、次分析法也有其局限性, 主要表现在:( i)它在很大程度上依赖于人们的经验,主观因素的影响很大,它至多只能排除思维过程中的严重非一致性,却无法排除决策者个人可能存在的严重片面性。 ( ii)比较、判断过程较为粗糙,不能用于精度要求较高的决策问题。 AHP 至多只能算是一种半定量(或定性与定量结合)的方法。 在应用层次分析法时, 建立层次结构模型是十分关键的一步。 现再分析一个实例,以便说明如何从实际问题中抽象出相应的层次结构。 例 2 挑选合适的工作。经双方恳谈,已有三个单位表示愿意录用某毕业生。该生根据已有信息建立了一个层次结构模型,如图 2 所示。 图 2 层次结构模型 -172- 准则层
16、的判断矩阵如表 4 所示。 表 4 准则层的判断矩阵 A B1 B2 B3 B4 B5 B6 B11 1 1 4 1 1/2 B21 1 2 4 1 1/2 B31 1/2 1 5 3 1/2 B41/4 1/4 1/5 1 1/3 1/3 B51 1 1/3 3 1 1 B62 2 2 3 3 1 方案层的判断矩阵如表 5 所示。 表 5 方案层的判断矩阵 B1C1 C2 C3 B2C1 C2 C3 B3C1 C2 C3 C11 1/4 1/2 C11 1/4 1/5 C11 3 1/3 C24 1 3 C24 1 1/2 C21/3 1 1/7 C32 1/3 1 C35 2 1 C33
17、1 1 B4C1 C2 C3 B5C1 C2 C3 B6C1 C2 C3 C11 1/3 5 C11 1 7 C11 7 9 C23 1 7 C21 1 7 C21/7 1 1 C31/5 1/7 1 C31/7 1/7 1 C31/9 1 1 层次总排序的结果如表 6 所示。 表 6 层次总排序 准则 研究 发展 待遇 同事 地理 单位 课题 前途 情况 位置 名气 准则层权值 0.1507 0.1792 0.1886 0.0472 0.1464 0.2879 总排序权值 方案层 单排序 权值 工作 1 工作 2 工作 3 0.1365 0.0974 0.2426 0.2790 0.4667
18、 0.7986 0.6250 0.3331 0.0879 0.6491 0.4667 0.1049 0.2385 0.5695 0.6694 0.0719 0.0667 0.0965 0.3952 0.2996 0.3052 根据层次总排序权值,该生最满意的工作为工作 1。 计算的 Matlab 程序如下: clc,clear fid=fopen(txt3.txt,r); n1=6;n2=3; a=; for i=1:n1 tmp=str2num(fgetl(fid); a=a;tmp; %读准则层判断矩阵 end for i=1:n1 str1=char(b,int2str(i),=;);
19、str2=char(b,int2str(i),=b,int2str(i),;tmp;); eval(str1); for j=1:n2 tmp=str2num(fgetl(fid); eval(str2); %读方案层的判断矩阵 end -173- end 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) for i=1:n1
20、 x,y=eig(eval(char(b,int2str(i); lamda=max(diag(y); num=find(diag(y)=lamda); w1(:,i)=x(:,num)/sum(x(:,num); cr1(i)=(lamda-n2)/(n2-1)/ri(n2); end cr1, ts=w1*w0, cr=cr1*w0 纯文本文件 txt3.txt中的数据格式如下: 1 1 1 4 1 1/2 1 1 2 4 1 1/2 1 1/2 1 5 3 1/2 1/4 1/4 1/5 1 1/3 1/3 1 1 1/3 3 1 1 2 2 2 3 3 1 1 1/4 1/2 4 1
21、3 2 1/3 1 1 1/4 1/5 4 1 1/2 5 2 1 1 3 1/3 1/3 1 1/7 3 7 1 1 1/3 5 3 1 7 1/5 1/7 1 1 1 7 1 1 7 1/7 1/7 1 1 7 9 1/7 1 1 1/9 1 1 习 题 八 1. 若发现一成对比较判断矩阵 A 的非一致性较为严重,应如何寻找引起非一致性的元素?例如,设已构造了成对比较判断矩阵 =161316153511A ( 1)对 A 作一致性检验。 -174- ( 2)如 A 的非一致性较严重,应如何作修正。 2. 你已经去过几家主要的摩托车商店,基本确定将从三种车型中选购一种,你选择的标准主要有:价
22、格、耗油量大小、舒适程度和外观美观情况。经反复思考比较,构造了它们之间的成对比较判断矩阵。 =13/15/18/1315/17/15513/18731A 三种车型(记为 cba , )关于价格、耗油量、舒适程度和外表美观情况的成对比较判断矩阵为 (价格) (耗油量) 12/13/1212/1321cbacba17/127152/15/11cbacba(舒适程度) (外表) 14/15/1413/1531cbacba17/13/171535/11cbacba( 1)根据上述矩阵可以看出四项标准在你 心目中的比重是不同的,请按由重到轻顺序将它们排出。 ( 2)哪辆车最便宜、哪辆车最省油、哪辆车最舒适、哪辆车最漂亮? ( 3)用层次分析法确定你对这三种车型的喜欢程度(用百分比表示) 。