Matlab求解层次分析法程序代码求解步骤+代码.docx
《Matlab求解层次分析法程序代码求解步骤+代码.docx》由会员分享,可在线阅读,更多相关《Matlab求解层次分析法程序代码求解步骤+代码.docx(13页珍藏版)》请在冰点文库上搜索。
Matlab求解层次分析法程序代码求解步骤+代码
Matlab求解层次分析法程序代码【求解步骤+代码】
层次分析法
1)建立层次结构模型:
决策目标
准则C1准则C2准则C3准则C4
P1P2P3P4P5P6
(2)构造判断矩阵
aAa,判断矩阵应为正互反矩阵,而且的判断如下(1~9尺度法):
,,ijij
标度含义aij
相同与的影响1CCij
稍强比的影响3CCij
强比的影响5CCij
明显的强比的影响7CCij
绝对的强比的影响9CCij
之比在上述两个相邻的等与的影响CCij2,4,6,8
级之间
11之比为上面的复反数与的影响,......CCaijij29
(3)单层排序及一致性检验
1、单层排序
A,求解判断矩阵的最大特征值,再由最大特征值求出对应的特征向量max
,并将标准化,即为同一层相对于上一层某一因素的权重,根据此,,A,,,,,,max
权重的大小,便可确定该层因素的排序。
2、一致性检验
,nmaxACI,取一致性指标,(为的阶数)nn1,
RI取随机性指标如下:
n123456789……
000.580.91.121.241.321.411.45……RI
CIACR,CR,0.1令,若,则认为具有一致性。
RI
A否则,需要对进行调整,直到具有满意的一致性为止。
(4)层次总排序及一致性检验
PCCC,,,aaa,,,假定准则层排序完成,其权重分别为,方案层包含个方m12n12n
PPPP,,,案:
。
其相对于上一层的对方案层中的个方案进行单mCjn,1,2,,,,12mj
Pbbb,,,Pi层排序,其排序权重记为,则方案层中第i个方案的总jn,1,2,,,,12jjmj
n
排序权重为,见下表:
ab,jijj,1
CCC层次C12n
P层总排序权重
aaa层次P12n
n
abPbbb,jj1111121nj1,
n
abPbbb,jj2221222nj,1
n
abPbbb,jmjnm1m2mnj,1
P从而确定层的排序。
例:
纯文本文件txt3.txt中的数据格式如下:
111411/2
112411/2
11/21531/2
1/41/41/511/31/3
111/3311
222331
11/41/2
413
21/31
11/41/5
411/2
521
131/3
1/311/7
371
11/35
317
1/51/71
117
117
1/71/71
179
1/711
1/911
matlab程序:
>>fid=fopen('txt3.txt','r');n1=6;n2=3;
a=[];
fori=1:
n1
tmp=str2num(fgetl(fid));a=[a;tmp];%读准则层判断矩阵
end
fori=1:
n1
str1=char(['b',int2str(i),'=[];']);
str2=char(['b',int2str(i),'=[b',int2str(i),';tmp];']);
eval(str1);
forj=1:
n2
tmp=str2num(fgetl(fid));eval(str2);%读方案层的判断矩阵
end
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)fori=1:
n1
[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
层次分析法
层次分析法
层次分析法
层次分析法
层次分析法
层次分析法
层次分析法
层次分析法
层次分析法
层次分析法
层次分析法
层次分析法
层次分析法
层次分析法
层次分析法
层次分析法
层次分析法
层次分析法
层次分析法实例与步骤
结合一个具体例子,说明层次分析法的基本步骤和要点。
【案例分析】市政工程项目建设决策:
层次分析法问题提出
市政部门管理人员需要对修建一项市政工程项目进行决策~可选择的方案是修建通往旅游区的高速路,简称建高速路,或修建城区地铁,简称建地铁,。
除了考虑经济效益外~还要考虑社会效益、环境效益等因素~即是多准则决策问题~考虑运用层次分析法解决。
1.建立递阶层次结构
应用AHP解决实际问题,首先明确要分析决策的问题,并把它条理化、层次化,理出递阶层次结构。
AHP要求的递阶层次结构一般由以下三个层次组成:
目标层(最高层):
指问题的预定目标;
准则层(中间层):
指影响目标实现的准则;
措施层(最低层):
指促使目标实现的措施;
通过对复杂问题的分析,首先明确决策的目标,将该目标作为目标层(最高层)的元素,这个目标要求是唯一的,即目标层只有一个元素。
然后找出影响目标实现的准则,作为目标层下的准则层因素,在复杂问题中,影响目标实现的准则可能有很多,这时要详细分析各准则因素间的相互关系,即有些是主要的准则,有些是隶属于主要准则的次准则,然后根据这些关系将准则元素分成不同的层次和组,不同层次元素间一般存在隶属关系,即上一层元素由下一层元素构成并对下一层元素起支配作用,同一层元素形成若干组,同组元素性质相近,一般隶属于同一个上一层元素(受上一层元素支配),不同组元素性质不同,一般隶属于不同的上一层元素。
在关系复杂的递阶层次结构中,有时组的关系不明显,即上一层的若干元素同时对下一层的若干元素起支配作用,形成相互交叉的层次关系,但无论怎样,上下层的隶属关系应该是明显的。
最后分析为了解决决策问题(实现决策目标)、在上述准则下,有哪些最终解决方案(措施),并将它们作为措施层因素,放在递阶层次结构的最下面(最低层)。
明确各个层次的因素及其位置,并将它们之间的关系用连线连接起来,就构成了递阶层次结构。
【案例分析】市政工程项目进行决策:
建立递阶层次结构
在市政工程项目决策问题中~市政管理人员希望通过选择不同的市政工程项目~使综合效益最高~即决策目标是“合理建设市政工程~使综合效益最高”。
为了实现这一目标~需要考虑的主要准则有三个~即经济效益、社会效益和环境效益。
但问题绝不这么简单。
通过深入思考~决策人员认为还必须考虑直接经济效益、间接经济效益、方便日常出行、方便假日出行、减少环境污染、改善城市面貌等因素,准则,~从相互关系上分析~这些因素隶属于主要准则~因此放在下一层次考虑~并且分属于不同准则。
假设本问题只考虑这些准则~接下来需要明确为了实现决策目标、在上述准则下可以有哪些方案。
根据题中所述~本问题有两个解决方案~即建高速路或建地铁~这两个因素作为措施层元素放在递阶层次结构的最下层。
很明显~这两个方案于所有准则都相关。
将各个层次的因素按其上下关系摆放好位置~并将它们之间的关系用连线连接起来。
同时~为了方便后面的定量表示~一般从上到下用A、B、C、D。
。
。
代表不同层次~同一层次从左到右用1、2、3、4。
。
。
代表不同因素。
这样构成的递阶层次结构如下图。
目标层A
合理建设市政工程,使综合效益最高(A)
准则层B经济效益(B1)社会效益(B2)环境效益(B3)
直接经间接带方便日方便假减少环改善城准则层C
济效益动效益常出行日出行境污染市面貌(C1)(C2)(C3)(C4)(C5)(C6)
措施层D
建高速路(D1)建地铁(D2)
图1递阶层次结构示意图
2.构造判断矩阵并赋值
根据递阶层次结构就能很容易地构造判断矩阵。
构造判断矩阵的方法是:
每一个具有向下隶属关系的元素(被称作准则)作为判断矩阵的第一个元素(位于左上角),隶属于它的各个元素依次排列在其后的第一行和第一列。
重要的是填写判断矩阵。
填写判断矩阵的方法有:
大多采取的方法是:
向填写人(专家)反复询问:
针对判断矩阵的准则,其中两个元素两两比较哪个重要,重要多少,对重要性程度按1-9赋值(重要性标度值见下表)。
表1重要性标度含义表
重要性标度含义
1表示两个元素相比,具有同等重要性
3表示两个元素相比,前者比后者稍重要
5表示两个元素相比,前者比后者明显重要
7表示两个元素相比,前者比后者强烈重要
9表示两个元素相比,前者比后者极端重要
2,4,6,8表示上述判断的中间值
倒数若元素I与元素j的重要性之比为a,则元素j与元素Iij
的重要性之比为a=1/ajiij
设填写后的判断矩阵为A=(a),判断矩阵具有如下性质:
ijn×n
(1)a〉0ij
(2)a=1/ajiji
(3)a=1ii
根据上面性质,判断矩阵具有对称性,因此在填写时,通常先填写a=1部分,然后ii再仅需判断及填写上三角形或下三角形的n(n-1)/2个元素就可以了。
在特殊情况下,判断矩阵可以具有传递性,即满足等式:
a*a=aijjkik
当上式对判断矩阵所有元素都成立时,则称该判断矩阵为一致性矩阵。
【案例分析】市政工程项目建设决策:
构造判断矩阵并请专家填写
接前例~征求专家意见~填写后的判断矩阵如下:
表2判断矩阵表
AB1B2B3B1C1C2B2C3C4B3C5C6
B111/31/3C111C313C513
B211C21C41C61
B31
C1D1D2C2D1D2C3D1D2C4D1D2
D115D113D111/5D117
D21D21D21D21
C5D1D2C6D1D2
D111/5D111/3
D21D21
3.层次单排序(计算权向量)与检验
对于专家填写后的判断矩阵,利用一定数学方法进行层次排序。
层次单排序是指每一个判断矩阵各因素针对其准则的相对权重,所以本质上是计算权向量。
计算权向量有特征根法、和法、根法、幂法等,这里简要介绍和法。
和法的原理是,对于一致性判断矩阵,每一列归一化后就是相应的权重。
对于非一致性判断矩阵,每一列归一化后近似其相应的权重,在对这n个列向量求取算术平均值作为最后的权重。
具体的公式是:
na1ijW,i,nn,1jakl,,1k
需要注意的是,在层层排序中,要对判断矩阵进行一致性检验。
在特殊情况下,判断矩阵可以具有传递性和一致性。
一般情况下,并不要求判断矩阵严格满足这一性质。
但从人类认识规律看,一个正确的判断矩阵重要性排序是有一定逻辑规律的,例如若A比B重要,B又比C重要,则从逻辑上讲,A应该比C明显重要,若两两比较时出现A比C重要的结果,则该判断矩阵违反了一致性准则,在逻辑上是不合理的。
因此在实际中要求判断矩阵满足大体上的一致性,需进行一致性检验。
只有通过检验,才能说明判断矩阵在逻辑上是合理的,才能继续对结果进行分析。
一致性检验的步骤如下。
第一步,计算一致性指标C.I.(consistencyindex)
max,nC.I.,n,1
第二步,查表确定相应的平均随机一致性指标R.I.(randomindex)
据判断矩阵不同阶数查下表,得到平均随机一致性指标R.I.。
例如,对于5阶的判
断矩阵,查表得到R.I.=1.12
表3平均随机一致性指标R.I.表(1000次正互反矩阵计算结果)
矩阵阶数12345678
R.I.000.520.891.121.261.361.41
矩阵阶数9101112131415
R.I.1.461.491.521.541.561.581.59
第三步,计算一致性比例C.R.(consistencyratio)并进行判断
C.I.C.R.,R.I.
当C.R.<0.1时,认为判断矩阵的一致性是可以接受的,C.R.>0.1时,认为判断矩阵不符合一致性要求,需要对该判断矩阵进行重新修正。
【案例分析】市政工程项目建设决策:
计算权向量及检验
上例计算所得的权向量及检验结果见下:
表4层次计算权向量及检验结果表
A单(总)排序权值B1单排序权值B2单排序权值B3单排序权值B10.1429C10.5000C30.7500C50.7500B20.4286C20.5000C40.2500C60.2500B30.4286CR0.0000CR0.0000CR0.0000CR0.0000
C1单排序权值C2单排序权值C3单排序权值C4单排序权值D10.8333D10.7500D10.1667D10.8750D20.1667D20.2500D20.8333D20.1250CR0.0000CR0.0000CR0.0000CR0.0000
C5单排序权值C6单排序权值D10.1667D10.2500D20.8333D20.7500CR0.0000CR0.0000可以看出~所有单排序的C.R.<0.1~认为每个判断矩阵的一致性都是可以接受的。
4.层次总排序与检验
总排序是指每一个判断矩阵各因素针对目标层(最上层)的相对权重。
这一权重的计算采用从上而下的方法,逐层合成。
很明显,第二层的单排序结果就是总排序结果。
假定已经算出第k-1层m个元素相对
(k-1)T(k-1)(k-1)(k-1)于总目标的权重w=(w,w,…,w),第k层n个元素对于上一层(第k层)第j12mT(k)(k)(k)(k)个元素的单排序权重是p=(p,p,…,p),其中不受j支配的元素的权重为零。
令j1j2jnj(k)(k)(k)(k)P=(p,p,…,p),表示第k层元素对第k-1层个元素的排序,则第k层元素对于总目12n
标的总排序为:
(k)T(k)(k-1)(k)(k)(k)w=(w,w,…,w)=pw12n
m(k)(k)(k,1)或I=1,2,…,nwi,pijwj,,1j
同样,也需要对总排序结果进行一致性检验。
(k)(k)(k)假定已经算出针对第k-1层第j个元素为准则的C.I.、R.I.和C.R.,jjjj=1,2,…,m,则第k层的综合检验指标
(k-1)(k)(k)(k)(k)C.I.=(C.I.,C.I.,…,C.I.)w12mj(k)(k)(k)(k)(k-1)R.I.=(R.I.,R.I.,…,R.I.)wj12m
(k)C.I.(k)C.R.,(k)R.I.
(k)当C.R.<0.1时,认为判断矩阵的整体一致性是可以接受的。
【案例分析】市政工程项目建设决策:
层次总排序及检验
上例层次总排序及检验结果见下:
表5C层次总排序(CR=0.0000)表
C1C2C3C4C5C6
0.07140.07140.32140.10710.32140.1071
表6D层次总排序(CR=0.0000)
D1D2
0.34080.6592
可以看出~总排序的C.R.<0.1~认为判断矩阵的整体一致性是可以接受的
5.结果分析
通过对排序结果的分析,得出最后的决策方案。
【案例分析】市政工程项目建设决策:
结果分析
从方案层总排序的结果看~建地铁,D2,的权重,0.6592,远远大于建高速路,D1,的权重,0.3408,~因此~最终的决策方案是建地铁。
根据层次排序过程分析决策思路。
对于准则层B的3个因子~直接经济效益,B1,的权重最低,0.1429,~社会效益,B2,和环境效益,B3,的权重都比较高,皆为0.4286,~说明在决策中比较看重社会效益和环境效益。
对于不看重的经济效益~其影响的两个因子直接经济效益,C1,、间接带动效益,C2,单排序权重都是建高速路远远大于建地铁~对于比较看重的社会效益和环境效益~其影响的四个因子中有三个因子的单排序权重都是建地铁远远大于建高速路~由此可以推出~建地铁方案由于社会效益和环境效益较为突出~权重也会相对突出。
从准则层C总排序结果也可以看出~方便日常出行,C3,、减少环境污染,C5,是权重值较大的~而如果单独考虑这两个因素~方案排序都是建地铁远远大于建高速路。
由此我们可以分析出决策思路~即决策比较看重的是社会效益和环境效益~不太看重经济效益~因此对于具体因子~方便日常出行和减少环境污染成为主要考虑因素~对于这两个因素~都是建地铁方案更佳~由此~最终的方案选择建地铁也就顺理成章了。