您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页层次分析法及其Matlab实现

层次分析法及其Matlab实现

来源:筏尚旅游网
第八章 层次分析法

层次分析法(Analytic Hierarchy Process,简称AHP)是对一些较为复杂、较为模糊的问题作出决策的简易方法,它特别适用于那些难于完全定量分析的问题。它是美国运筹学家T. L. Saaty 教授于70年代初期提出的一种简便、灵活而又实用的多准则决策方法。

§1 层次分析法的基本原理与步骤

人们在进行社会的、经济的以及科学管理领域问题的系统分析中,面临的常常是一个由相互关联、相互制约的众多因素构成的复杂而往往缺少定量数据的系统。层次分析法为这类问题的决策和排序提供了一种新的、简洁而实用的建模方法。

运用层次分析法建模,大体上可按下面四个步骤进行: (i)建立递阶层次结构模型;

(ii)构造出各层次中的所有判断矩阵; (iii)层次单排序及一致性检验; (iv)层次总排序及一致性检验。

下面分别说明这四个步骤的实现过程。 1.1 递阶层次结构的建立与特点

应用AHP分析决策问题时,首先要把问题条理化、层次化,构造出一个有层次的结构模型。在这个模型下,复杂问题被分解为元素的组成部分。这些元素又按其属性及关系形成若干层次。上一层次的元素作为准则对下一层次有关元素起支配作用。这些层次可以分为三类:

(i)最高层:这一层次中只有一个元素,一般它是分析问题的预定目标或理想结果,因此也称为目标层。

(ii)中间层:这一层次中包含了为实现目标所涉及的中间环节,它可以由若干个层次组成,包括所需考虑的准则、子准则,因此也称为准则层。

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

递阶层次结构中的层次数与问题的复杂程度及需要分析的详尽程度有关,一般地层次数不受。每一层次中各元素所支配的元素一般不要超过9个。这是因为支配的元素过多会给两两比较判断带来困难。

下面结合一个实例来说明递阶层次结构的建立。

例1 假期旅游有P1、P2、P3 3个旅游胜地供你选择,试确定一个最佳地点。 在此问题中,你会根据诸如景色、费用、居住、饮食和旅途条件等一些准则去反复比较3个侯选地点。可以建立如下的层次结构模型。

目标层O 选择旅游地

准则层C 景色 费用 居住 饮食 旅途

措施层P P1 P2 P3

--

1.2 构造判断矩阵

层次结构反映了因素之间的关系,但准则层中的各准则在目标衡量中所占的比重并不一定相同,在决策者的心目中,它们各占有一定的比例。

在确定影响某因素的诸因子在该因素中所占的比重时,遇到的主要困难是这些比重常常不易定量化。此外,当影响某因素的因子较多时,直接考虑各因子对该因素有多大程度的影响时,常常会因考虑不周全、顾此失彼而使决策者提出与他实际认为的重要性程度不相一致的数据,甚至有可能提出一组隐含矛盾的数据。为看清这一点,可作如下假设:将一块重为1千克的石块砸成n小块,你可以精确称出它们的重量,设为w1,,wn,现在,请人估计这n小块的重量占总重量的比例(不能让他知道各小石块的重量),此人不仅很难给出精确的比值,而且完全可能因顾此失彼而提供彼此矛盾的数据。

设现在要比较n个因子X{x1,,xn}对某因素Z的影响大小,怎样比较才能提供可信的数据呢?Saaty等人建议可以采取对因子进行两两比较建立成对比较矩阵的办法。即每次取两个因子xi和xj,以aij表示xi和xj对Z的影响大小之比,全部比较结果用矩阵A(aij)nn表示,称A为ZX之间的成对比较判断矩阵(简称判断矩阵)。容易看出,若xi与xj对Z的影响之比为aij,则xj与xi对Z的影响之比应为

aji1。 aij1(i,j1,2,,n) aij定义1 若矩阵A(aij)nn满足 (i)aij0,(ii)aji则称之为正互反矩阵(易见aii1,i1,,n)。

关于如何确定aij的值,Saaty等建议引用数字1~9及其倒数作为标度。下表列出了1~9标度的含义: 标度 含 义 1 表示两个因素相比,具有相同重要性 3 表示两个因素相比,前者比后者稍重要 5 表示两个因素相比,前者比后者明显重要 7 表示两个因素相比,前者比后者强烈重要 9 表示两个因素相比,前者比后者极端重要 2,4,6,8 表示上述相邻判断的中间值 倒数 若因素i与因素j的重要性之比为aij,那么因素j与因素i重要性之比为aji 从心理学观点来看,分级太多会超越人们的判断能力,既增加了作判断的难度,又容易因此而提供虚假数据。Saaty等人还用实验方法比较了在各种不同标度下人们判断结果的正确性,实验结果也表明,采用1~9标度最为合适。

-90-

1。 aij最后,应该指出,一般地作

n(n1)次两两判断是必要的。有人认为把所有元素2都和某个元素比较,即只作n1个比较就可以了。这种作法的弊病在于,任何一个判断的失误均可导致不合理的排序,而个别判断的失误对于难以定量的系统往往是难以避免的。进行

n(n1)次比较可以提供更多的信息,通过各种不同角度的反复比较,2从而导出一个合理的排序。

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

判断矩阵A对应于最大特征值max的特征向量W,经归一化后即为同一层次相应因素对于上一层次某因素相对重要性的排序权值,这一过程称为层次单排序。

上述构造成对比较判断矩阵的办法虽能减少其它因素的干扰,较客观地反映出一对因子影响力的差别。但综合全部比较结果时,其中难免包含一定程度的非一致性。如果比较结果是前后完全一致的,则矩阵A的元素还应当满足:

aijajkaik, i,j,k1,2,,n (1)定义2 满足关系式(1)的正互反矩阵称为一致矩阵。

需要检验构造出来的(正互反)判断矩阵A是否严重地非一致,以便确定是否接受A。

定理1 正互反矩阵A的最大特征根max必为正实数,其对应特征向量的所有分量均为正实数。A的其余特征值的模均严格小于max。

定理2 若A为一致矩阵,则 (i)A必为正互反矩阵。

(ii)A的转置矩阵A也是一致矩阵。

(iii)A的任意两行成比例,比例因子大于零,从而rank(A)1(同样,A的任意两列也成比例)。

(iv)A的最大特征值maxn,其中n为矩阵A的阶。A的其余特征根均为零。

T(v)若A的最大特征值max对应的特征向量为W(w1,,wn),则aijTwi,wji,j1,2,,n,即

w1w1w1wwwn12www222Aw1w2wn

wnwnwnwww2n1定理3 n阶正互反矩阵A为一致矩阵当且仅当其最大特征根maxn,且当正

互反矩阵A非一致时,必有maxn。

根据定理3,我们可以由max是否等于n来检验判断矩阵A是否为一致矩阵。由

-91-

于特征根连续地依赖于aij,故max比n大得越多,A的非一致性程度也就越严重,

max对应的标准化特征向量也就越不能真实地反映出X{x1,,xn} 在对因素Z

的影响中所占的比重。因此,对决策者提供的判断矩阵有必要作一次一致性检验,以决定是否能接受它。

对判断矩阵的一致性检验的步骤如下: (i)计算一致性指标CI

CImaxnn1

(ii)查找相应的平均随机一致性指标RI。对n1,,9,Saaty给出了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个样本矩阵:随机地从1~9及其倒数中抽取数字构造正互反矩阵,求得最大特征根的平均值'max,并定义

n1(ⅲ)计算一致性比例CR

CI CR

RI当CR0.10时,认为判断矩阵的一致性是可以接受的,否则应对判断矩阵作适当修

正。

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

上面我们得到的是一组元素对其上一层中某元素的权重向量。我们最终要得到各元素,特别是最低层中各方案对于目标的排序权重,从而进行方案选择。总排序权重要自上而下地将单准则下的权重进行合成。

设上一层次(A层)包含A1,,Am共m个因素,它们的层次总排序权重分别为

RI'maxn。

a1,,am。又设其后的下一层次(B层)包含n个因素B1,,Bn,它们关于Aj的层

次单排序权重分别为b1j,,bnj(当Bi与Aj无关联时,bij0)。现求B层中各因素关于总目标的权重,即求B层各因素的层次总排序权重b1,,bn,计算按下表所示方式进行,即bimbaijj1j,i1,,n。

-92-

对层次总排序也需作一致性检验,检验仍象层次总排序那样由高层到低层逐层进行。这是因为虽然各层次均已经过层次单排序的一致性检验,各成对比较判断矩阵都已具有较为满意的一致性。但当综合考察时,各层次的非一致性仍有可能积累起来,引起最终分析结果较严重的非一致性。

设B层中与Aj相关的因素的成对比较判断矩阵在单排序中经一致性检验,求得单排序一致性指标为CI(j),(j1,,m),相应的平均随机一致性指标为RI(j)(CI(j)、RI(j)已在层次单排序时求得),则B层总排序随机一致性比例为

mCI(j)aCRjRI(j)aj1j1m

j当CR0.10时,认为层次总排序结果具有较满意的一致性并接受该分析结果。

§2 层次分析法的应用

在应用层次分析法研究问题时,遇到的主要困难有两个:(i)如何根据实际情况抽象出较为贴切的层次结构;(ii)如何将某些定性的量作比较接近实际定量化处理。层次分析法对人们的思维过程进行了加工整理,提出了一套系统分析问题的方法,为科学管理和决策提供了较有说服力的依据。但层次分析法也有其局限性,主要表现在:(i)它在很大程度上依赖于人们的经验,主观因素的影响很大,它至多只能排除思维过程中的严重非一致性,却无法排除决策者个人可能存在的严重片面性。(ii)比较、判断过程较为粗糙,不能用于精度要求较高的决策问题。AHP至多只能算是一种半定量(或定性与定量结合)的方法。

AHP 方法经过几十年的发展,许多学者针对AHP的缺点进行了改进和完善,形成了一些新理论和新方法,像群组决策、模糊决策和反馈系统理论近几年成为该领域的一个新热点。

在应用层次分析法时,建立层次结构模型是十分关键的一步。现再分析一个实例,以便说明如何从实际问题中抽象出相应的层次结构。

例2 挑选合适的工作。经双方恳谈,已有三个单位表示愿意录用某毕业生。该生根据已有信息建立了一个层次结构模型,如下图所示。

-93-

A B1 B2 B3 B4 B5 B6

B1 1 1 1 4 1 1/2 B2 1 1 2 4 1 1/2 B3 1 1/2 1 5 3 1/2

B4 1/4 1/4 1/5 1 1/3 1/3 B5 1 1 1/3 3 1 1 B6 2 2 2 3 3 1

(方案层)

B1 C1 C2 C3 B2 C1 C2 C3

C1 1 1/4 1/2 C1 1 1/4 1/5 C2 4 1 3 C2 4 1 1/2 C3 2 1/3 1 C3 5 2 1

B3 C1 C2 C3 B4 C1 C2 C3

C1 1 3 1/3 C1 1 1/3 5 C2 1/3 1 7 C2 3 1 7 C3 3 1/7 1 C3 1/5 1/7 1

B5 C1 C2 C3 B6 C1 C2 C3

C1 1 1 7 C1 1 7 9 C2 1 1 7 C2 1/7 1 1 C3 1/7 1/7 1 C3 1/9 1 1

(层次总排序)如下表所示。 研究 发展 待遇 同事 地理 单位 准则 课题 前途 情况 位置 名气 0.1507 0.1792 0.1886 0.0472 0.14 0.2879 准则层权值 方案层 工作1 0.1365 0.0974 0.2426 0.2790 0.4667 0.7986 单排序 工作2 0.6250 0.3331 0.0879 0.91 0.4667 0.1049 -94-

总排序权值 0.3952 0.2996

权值 工作3 0.2385 0.5695 0.6694 0.0719 0.0667 0.0965 根据层次总排序权值,该生最满意的工作为工作1。 计算程序如下: clc

a=[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];

[x,y]=eig(a);eigenvalue=diag(y);lamda=eigenvalue(1); ci1=(lamda-6)/5;cr1=ci1/1.24 w1=x(:,1)/sum(x(:,1))

b1=[1,1/4,1/2;4,1,3;2,1/3,1];

[x,y]=eig(b1);eigenvalue=diag(y);lamda=eigenvalue(1); ci21=(lamda-3)/2;cr21=ci21/0.58 w21=x(:,1)/sum(x(:,1))

b2=[1 1/4 1/5;4 1 1/2;5 2 1];

[x,y]=eig(b2);eigenvalue=diag(y);lamda=eigenvalue(1); ci22=(lamda-3)/2;cr22=ci22/0.58 w22=x(:,1)/sum(x(:,1))

b3=[1 3 1/3;1/3 1 1/7;3 7 1];

[x,y]=eig(b3);eigenvalue=diag(y);lamda=eigenvalue(1); ci23=(lamda-3)/2;cr23=ci23/0.58 w23=x(:,1)/sum(x(:,1))

b4=[1 1/3 5;3 1 7;1/5 1/7 1];

[x,y]=eig(b4);eigenvalue=diag(y);lamda=eigenvalue(1); ci24=(lamda-3)/2;cr24=ci24/0.58 w24=x(:,1)/sum(x(:,1))

b5=[1 1 7;1 1 7;1/7 1/7 1];

[x,y]=eig(b5);eigenvalue=diag(y);lamda=eigenvalue(2); ci25=(lamda-3)/2;cr25=ci25/0.58 w25=x(:,2)/sum(x(:,2))

b6=[1 7 9;1/7 1 1 ;1/9 1 1];

[x,y]=eig(b6);eigenvalue=diag(y);lamda=eigenvalue(1); ci26=(lamda-3)/2;cr26=ci26/0.58 w26=x(:,1)/sum(x(:,1))

w_sum=[w21,w22,w23,w24,w25,w26]*w1 ci=[ci21,ci22,ci23,ci24,ci25,ci26]; cr=ci*w1/sum(0.58*w1)

0.3052 -95-

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务