您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > Matlab求解层次分析法程序代码【求解步骤+代码】
层次分析法1)建立层次结构模型:(2)构造判断矩阵判断矩阵ijAa应为正互反矩阵,而且ija的判断如下(1~9尺度法):标度aij含义1的影响与CCji相同3的影响比CCji稍强5的影响比CCji强7的影响比CCji明显的强9的影响比CCji绝对的强2,4,6,8的影响与CCji之比在上述两个相邻的等级之间91,......21的影响与CCji之比为上面aij的复反数(3)单层排序及一致性检验1、单层排序求解判断矩阵A的最大特征值max,再由最大特征值求出对应的特征向量决策目标P1准则C1准则C2准则C3准则C4P2P3P4P5P6maxA,并将标准化,即为同一层相对于上一层某一因素的权重,根据此权重的大小,便可确定该层因素的排序。2、一致性检验取一致性指标max1nCIn,(n为A的阶数)取随机性指标RI如下:n123456789……RI000.580.91.121.241.321.411.45……令CICRRI,若0.1CR,则认为A具有一致性。否则,需要对A进行调整,直到具有满意的一致性为止。(4)层次总排序及一致性检验假定准则层12,,,nCCC排序完成,其权重分别为12,,,naaa,方案层P包含m个方案:12,,,mPPP。其相对于上一层的1,2,,jCjn对方案层P中的m个方案进行单层排序,其排序权重记为12,,,jjmjbbb1,2,,jn,则方案层P中第i个方案Pi的总排序权重为1njijjab,见下表:层次C层次P1C2CnCP层总排序权重1a2ana1P11b12b1nb11njjjab2P21b22b2nb21njjjabnP1mb2mbmnb1njmjjab从而确定P层的排序。例:纯文本文件txt3.txt中的数据格式如下:111411/2112411/211/21531/21/41/41/511/31/3111/331122233111/41/241321/3111/41/5411/2521131/31/311/737111/353171/51/711171171/71/711791/7111/911matlab程序:fid=fopen('txt3.txt','r');n1=6;n2=3;a=[];fori=1:n1tmp=str2num(fgetl(fid));a=[a;tmp];%读准则层判断矩阵endfori=1:n1str1=char(['b',int2str(i),'=[];']);str2=char(['b',int2str(i),'=[b',int2str(i),';tmp];']);eval(str1);forj=1:n2tmp=str2num(fgetl(fid));eval(str2);%读方案层的判断矩阵endendri=[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);endcr1,ts=w1*w0,cr=cr1*w0层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法实例与步骤结合一个具体例子,说明层次分析法的基本步骤和要点。【案例分析】市政工程项目建设决策:层次分析法问题提出市政部门管理人员需要对修建一项市政工程项目进行决策,可选择的方案是修建通往旅游区的高速路(简称建高速路)或修建城区地铁(简称建地铁)。除了考虑经济效益外,还要考虑社会效益、环境效益等因素,即是多准则决策问题,考虑运用层次分析法解决。1.建立递阶层次结构应用AHP解决实际问题,首先明确要分析决策的问题,并把它条理化、层次化,理出递阶层次结构。AHP要求的递阶层次结构一般由以下三个层次组成:目标层(最高层):指问题的预定目标;准则层(中间层):指影响目标实现的准则;措施层(最低层):指促使目标实现的措施;通过对复杂问题的分析,首先明确决策的目标,将该目标作为目标层(最高层)的元素,这个目标要求是唯一的,即目标层只有一个元素。然后找出影响目标实现的准则,作为目标层下的准则层因素,在复杂问题中,影响目标实现的准则可能有很多,这时要详细分析各准则因素间的相互关系,即有些是主要的准则,有些是隶属于主要准则的次准则,然后根据这些关系将准则元素分成不同的层次和组,不同层次元素间一般存在隶属关系,即上一层元素由下一层元素构成并对下一层元素起支配作用,同一层元素形成若干组,同组元素性质相近,一般隶属于同一个上一层元素(受上一层元素支配),不同组元素性质不同,一般隶属于不同的上一层元素。在关系复杂的递阶层次结构中,有时组的关系不明显,即上一层的若干元素同时对下一层的若干元素起支配作用,形成相互交叉的层次关系,但无论怎样,上下层的隶属关系应该是明显的。最后分析为了解决决策问题(实现决策目标)、在上述准则下,有哪些最终解决方案(措施),并将它们作为措施层因素,放在递阶层次结构的最下面(最低层)。明确各个层次的因素及其位置,并将它们之间的关系用连线连接起来,就构成了递阶层次结构。【案例分析】市政工程项目进行决策:建立递阶层次结构在市政工程项目决策问题中,市政管理人员希望通过选择不同的市政工程项目,使综合效益最高,即决策目标是“合理建设市政工程,使综合效益最高”。为了实现这一目标,需要考虑的主要准则有三个,即经济效益、社会效益和环境效益。但问题绝不这么简单。通过深入思考,决策人员认为还必须考虑直接经济效益、间接经济效益、方便日常出行、方便假日出行、减少环境污染、改善城市面貌等因素(准则),从相互关系上分析,这些因素隶属于主要准则,因此放在下一层次考虑,并且分属于不同准则。假设本问题只考虑这些准则,接下来需要明确为了实现决策目标、在上述准则下可以有哪些方案。根据题中所述,本问题有两个解决方案,即建高速路或建地铁,这两个因素作为措施层元素放在递阶层次结构的最下层。很明显,这两个方案于所有准则都相关。将各个层次的因素按其上下关系摆放好位置,并将它们之间的关系用连线连接起来。同时,为了方便后面的定量表示,一般从上到下用A、B、C、D。。。代表不同层次,同一层次从左到右用1、2、3、4。。。代表不同因素。这样构成的递阶层次结构如下图。目标层A准则层B准则层C措施层D图1递阶层次结构示意图2.构造判断矩阵并赋值根据递阶层次结构就能很容易地构造判断矩阵。构造判断矩阵的方法是:每一个具有向下隶属关系的元素(被称作准则)作为判断矩阵的第一个元素(位于左上角),隶属于它的各个元素依次排列在其后的第一行和第一列。重要的是填写判断矩阵。填写判断矩阵的方法有:大多采取的方法是:向填写人(专家)反复询问:针对判断矩阵的准则,其中两个元素两两比较哪个重要,重要多少,对重要性程度按1-9赋值(重要性标度值见下表)。表1重要性标度含义表重要性标度含义1表示两个元素相比,具有同等重要性3表示两个元素相比,前者比后者稍重要5表示两个元素相比,前者比后者明显重要7表示两个元素相比,前者比后者强烈重要9表示两个元素相比,前者比后者极端重要2,4,6,8表示上述判断的中间值倒数若元素I与元素j的重要性之比为aij,则元素j与元素I的重要性之比为aji=1/aij设填写后的判断矩阵为A=(aij)n×n,判断矩阵具有如下性质:合理建设市政工程,使综合效益最高(A)经济效益(B1)社会效益(B2)环境效益(B3)直接经济效益(C1)间接带动效益(C2)方便日常出行(C3)方便假日出行(C4)减少环境污染(C5)改善城市面貌(C6)建高速路(D1)建地铁(D2)(1)aij〉0(2)aji=1/aji(3)aii=1根据上面性质,判断矩阵具有对称性,因此在填写时,通常先填写aii=1部分,然后再仅需判断及填写上三角形或下三角形的n(n-1)/2个元素就可以了。在特殊情况下,判断矩阵可以具有传递性,即满足等式:aij*ajk=aik当上式对判断矩阵所有元素都成立时,则称该判断矩阵为一致性矩阵。【案例分析】市政工程项目建设决策:构造判断矩阵并请专家填写接前例,征求专家意见,填写后的判断矩阵如下:表2判断矩阵表AB1B2B3B1C1C2B2C3C4B3C5C6B111/31/3C111C313C513B211C21C41C61B31C1D1D2C2D1D2C3D1D2C4D1D2D115D113D111/5D117D21D21D21D21C5D1D2C6D1D2D111/5D111/3D21D213.层次单排序(计算权向量)与检验对于专家填写后的判断矩阵,利用一定数学方法进行层次排序。层次单排序是指每一个判断矩阵各因素针对其准则的相对权重,所以本质上是计算权向量。计算权向量有特征根法、和法、根法、幂法等,这里简要介绍和法。和法的原理是,对于一致性判断矩阵,每一列归一化后就是相应的权重。对于非一致性判断矩阵,每一列归一化后近似其相应的权重,在对这n个列向量求取算术平均值作为最后的权重。具体的公式是:njnkklijiaanW111需要注意的是,在层层排序中,要对判断矩阵进行一致性检验。在特殊情况下,判断矩阵可以具有传递性和一致性。一般情况下,并不要求判断矩阵严格满足这一性质。但从人类认识规律看,一个正确的判断矩阵重要性排序是有一定逻辑规律的,例如若A比B重要,B又比C重要,则从逻辑上讲,A应该比C明显重要,若两两比较时出现A比C重要的结果,则该判断矩阵违反了一致性准则,在逻辑上是不合理的。因此在实际中要求判断矩阵满足大体上的一致性,需进行一致性检验。只有通过检验,才能说明判断矩阵在逻辑上是合理的,才能继续对结果进行分析。一致性检验的步骤如下。第一步,计算一致性指标C.I.(consistencyindex)1..maxnnIC第二步,查表确定相应的平均随机一致性指标R.I.(randomindex)据判断矩阵不同阶数查下表,得到平均随机一致性指标R.I.。例如,对于5阶的判断矩阵,查表得到R.I.=1.12表3平均随机一致性指标R.I.表(1000次正互反矩阵计算结果)矩阵阶数12345678R.I.000.520.891.121.261.361.41矩阵阶数9101112131415R.I.1.461.491.521.541.561.581.59第三步,计算一致性比例C.R.(consistencyratio)并进行判断......IRICRC当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.0000C1单排序权值C2单排序权值C3单排序权值C4单排序权值D10.8333D10.7500D10.1667D10.8750D20.1667D20.2500D20.8333D20.1250CR0.0000CR0.0000CR0.
本文标题:Matlab求解层次分析法程序代码【求解步骤+代码】
链接地址:https://www.777doc.com/doc-7228066 .html