Matlab建模教程层次分析法
- 格式:doc
- 大小:363.50 KB
- 文档页数:7
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中的实现信息系统分析与设计作业层次分析法确定绩效评价权重在matlab中的实现小组成员:孙高茹、王靖、李春梅、郭荣1 程序简要概述编写程序一步实现评价指标特征值lam、特征向量w以及一致性比率CR的求解。
具体的操作步骤是:首先构造评价指标,用专家评定法对指标两两打分,构建比较矩阵,继而运用编写程序实现层次分析法在MATLAB中的应用。
通过编写MATLAB程序一步实现问题求解,可以简化权重计算方法与步骤,减少工作量,从而提高人力资源管理中绩效考核的科学化电算化。
2 程序在matlab中实现的具体步骤function [w,lam,CR] = ccfx(A)%A为成对比较矩阵,返回值w为近似特征向量% lam为近似最大特征值λmax,CR为一致性比率n=length(A(:,1));a=sum(A);B=A %用B代替A做计算for j=1:n %将A的列向量归一化B(:,j)=B(:,j)./a(j);ends=B(:,1);for j=2:ns=s+B(:,j);endc=sum(s);%计算近似最大特征值λmaxw=s./c;d=A*wlam=1/n*sum((d./w));CI=(lam-n)/(n-1);%一致性指标RI=[0,0,0.58,0.90,1.12,1.24,1.32,1.41,1.45,1.49,1.51];%RI为随机一致性指标CR=CI/RI(n);%求一致性比率if CR>0.1disp('没有通过一致性检验');else disp('通过一致性检验');endend3 案例应用我们拟构建公司员工绩效评价分析权重,完整操作步骤如下:3.1构建的评价指标体系我们将影响员工绩效评定的指标因素分为:打卡、业绩、创新、态度与品德。
3.2专家打分,构建两两比较矩阵A =1.0000 0.5000 3.0000 4.00002.0000 1.0000 5.00003.00000.3333 0.2000 1.0000 2.00000.2500 0.3333 0.5000 1.00003.3在MATLAB中运用编写好的程序实现直接在MATLAB命令窗口中输入[w,lam,CR]=ccfx(A)继而直接得出d =1.30352.00000.51450.3926w =0.31020.46910.12420.0966lam =4.1687CR =0.0625,通过一致性检验3.4解读程序结果根据程序求解中得出的特征向量,可以得出打卡、业绩、创新以及态度品德在员工绩效评价中所占的权重分别为:0.3102、0.4691、0.1242、0.0966。
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解决层次分析法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个候选地点.首先,你会确定这些准则在你的心目中各占多大比重,如果你经济宽绰、醉心旅游,自然分别看重景色条件,而平素俭朴或手头拮据的人则会优先考虑费用,中老年旅游者还会对居住、饮食等条件寄以较大关注。
层次分析法建模层次分析法(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 桂林,到底到哪个地方去旅游最好?要作出决策和选择。
用了两周左右的时间,我编写了网络分析法(The Analytic Network Process,ANP)的Matlab源代码(将在下面给出),主要针对王莲芬老师的《网络分析法(ANP)的理论与算法》中的内部依存的递阶层次结构,而且假设N = 4 的情形,所以如果要使用该程序,需要作修改,如果你不想改,我可以帮忙!ANP是美国匹兹堡大学的T.L.Saaty 教授于1996年提出了一种适应非独立的递阶层次结构的决策方法,它是在网络分析法(AHP)基础上发展而形成的一种新的实用决策方法。
其关键步骤有以下几个:1 确定因素,并建立网络层和控制层模型。
2 创建比较矩阵。
3 按照指标类型针对每列进行规范化。
4 求出每个比较矩阵的最大特征值和对应的特征向量。
5 一致性检验。
如果不满足,则调整相应的比较矩阵中的元素。
6 将各个特征向量单位化(归一化),组成判断矩阵。
7 将控制层的判断矩阵和网络层的判断矩阵相乘,得到加权超矩阵。
8 将加权超矩阵单位化(归一化),求其K次幂收敛时的矩阵。
其中第j列就是网络层中各元素对于元素j的极限排序向量。
% 第一个函数% 矩阵归一化(单位化)% Unitize 函数开始function Matrix_Unitize = Unitize(Matrix)[line,colume] = size(Matrix);for j = 1:1:columefa = 0;for i = 1:1:linefa = fa + Matrix(i,j);endsum(j) = fa;endfor j = 1:1:columefor i = 1:1:lineMatrix_Unitize(i,j) = Matrix(i,j) / sum(j);endend% Unitize 函数结束% 第二个函数% 求一个方阵的最大特征值及其对应的特征向量% MAX_EigenV 函数开始function [Max_Eigenvector,Max_Eigenvalue] = Max_EigenV(Matrix)[line,colume] = size(Matrix);if line ~= columemessage = '矩阵不是方阵,无法求解最大特征值及其对应的特征向量';disp(message);return;end[Eigenvector Eigenvalue] = eigs(Matrix);Max_Eigenvalue = Eigenvalue(1);for i=1:1:lineMax_Eigenvector(i) = Eigenvector(i,1);end% MAX_EigenV 函数结束% 第三个函数(此函数我没有用)% 根据给定的指标类型对矩阵的列进行规范化% Standardize 函数开始function Matrix_Standardize = Standardize(Matrix, IndexType)% a 是需要规范化的矩阵% IndexType 是该矩阵各列的指标类型数组% IndexType(j) = 1 a 的第j 列是效益型指标% IndexType(j) = 0 a 的第j 列是成本型指标[m n] = size(Matrix);MAX = max(Matrix);MIN = min(Matrix);d = MAX - MIN;for j=1:1:nfor i=1:1:mif IndexType(j) == 1 % 效益型指标规范化Matrix_Standardize(i,j) = (Matrix(i,j) - MIN(j)) / d(j);elseif IndexType(j) == 0 % 成本型指标规范化Matrix_Standardize(i,j) = (MAX(j) - Matrix(i,j)) / d(j);endendend% Standardize 函数结束% 第四个函数% 读取一个格式化文件中所有矩阵,连接成归一化的判断矩阵% 计算最大特征值对应的特征向量,进行一致性检验,构造判断矩阵.% version 2.0% 矩阵文件的(*.txt)格式要求(共4条)% 1 空格开头的行,回车行,注释行(见第3条)在读取时都会被忽略.%% 2 每个矩阵要有维数(Dimension)和序号(Sequence),其次序可以颠倒,但是不能缺项,% 且关键字及其取值要各占一行(共4行,中间可以有空格行或空行),但关键字行尾不能有空格.%% 3 竖线"|"是注释标记,要独自占一行,但是不要在有效的矩阵元素行之后加竖线.%% 4 矩阵的元素只能用空格分开,每个元素后都可以跟空格,且空格的数量可以是任意多个. % 但是,需要强调的是,每一行第一个元素的前面不能有空格(参照第1条)!% JudgementMatrix 函数开始function [judge_matrix_unitize,flag] = JudgementMatrix(fid)judge_matrix = 0;judge_matrix_unitize = 0;flag = 0; % 判断矩阵构造成功的标志LineData = IgnoreLine(fid); % 跳到第一行有效的数据Count = 0; % 矩阵计数器Flag1 = 0; % 是否读取矩阵序号的开关Flag2 = 0; % 是否读取矩阵列数的开关Flag3 = 0; % 是否读取矩阵行数的开关Sequence = 0; % 矩阵的序号Dimension = 0; % 矩阵的阶DCount = 0; % 同一文件中每个矩阵的阶数下标LastCount = 0; % 同一文件中上一个矩阵的阶数下标while( feof(fid) == 0 )if strcmp(LineData, 'Sequence')LineData = IgnoreLine(fid);if LineData == -1warning('已经到了文件末尾,无数据可读取!');flag = -1;return;endSequence = str2num(LineData);Flag1 = Flag1 + 1;elseif strcmp(LineData, 'Dimension')LineData = IgnoreLine(fid);if LineData == -1warning('已经到了文件末尾,无数据可读取!');flag = -1;return;endDCount = DCount + 1;Dimension(DCount) = str2num(LineData);LastCount = DCount-1;if LastCount > 0 && Dimension(DCount) ~= Dimension(LastCount) flag = -1;warning('矩阵的维数不等,比较矩阵弄错了吧!');endFlag2 = Flag2 + 1;endif ( Flag1 > 1 || Flag2 > 1 )if Flag1 > 1c = num2str(Sequence);c = strcat('第',c);message = strcat(c, '个矩阵的上一个矩阵没有设置维数关键字"Dimension"!');flag = -1;warning(message);return;elseif Flag2 > 1c = num2str(Sequence);c = strcat('第',c);message = strcat(c, '个矩阵的上一个矩阵没有设置序号关键字"Sequence"!');warning(message);flag = -1;return;endelseif ( Flag1 == 0 && Flag2 ==0 )warning('没有发现矩阵的序号或行数或列数关键字!请参考文件格式要求!');flag = -1;return;elseif ( Flag1 == 1 && Flag2 == 1 )Matrix = 0;% 为了读分数矩阵,逐行读取再变为数值类型for i = 1:1:Dimension(DCount)LineData = IgnoreLine(fid);if LineData == -1warning('已经到了文件末尾,无数据可读取!');flag = -1;judge_matrix_unitize = Unitize(Matrix);return;endDoubleLine = str2num(LineData);[line_DoubleLine,colume_DoubleLine] = size(DoubleLine);if colume_DoubleLine ~= Dimension(DCount)flag = -1;endfor j = 1:1:colume_DoubleLineMatrix(i,j) = DoubleLine(j);endendif flag == -1judge_matrix_unitize = Unitize(Matrix);return;endif isreal(Matrix)Count = Count + 1;if Sequence ~= Countc = num2str(Sequence);c = strcat('文件中编号为',c);message = strcat(c,'的矩阵的序号没有按照顺序排列!');warning(message);end% 最大特征值及其对应的特征向量[vector_lmd_max,lmd_max(Count)] = MaxEV(Matrix);for j = 1:1:Dimension(DCount)judge_matrix(Count,j) = vector_lmd_max(j);end% 一致性检验CI(Count) = 0; % 一致性指标% 当矩阵的阶数n < 3 时,判断矩阵永远具有完全一致性。
第八章 层次分析法层次分析法(Analytic Hierarchy Process ,简称AHP )是对一些较为复杂、较为模糊的问题作出决策的简易方法,它特别适用于那些难于完全定量分析的问题。
它是美国运筹学家T. L. Saaty 教授于70年代初期提出的一种简便、灵活而又实用的多准则决策方法。
§1 层次分析法的基本原理与步骤人们在进行社会的、经济的以及科学管理领域问题的系统分析中,面临的常常是一个由相互关联、相互制约的众多因素构成的复杂而往往缺少定量数据的系统。
层次分析法为这类问题的决策和排序提供了一种新的、简洁而实用的建模方法。
运用层次分析法建模,大体上可按下面四个步骤进行:(i )建立递阶层次结构模型;(ii )构造出各层次中的所有判断矩阵;(iii )层次单排序及一致性检验;(iv )层次总排序及一致性检验。
下面分别说明这四个步骤的实现过程。
1.1 递阶层次结构的建立与特点应用AHP 分析决策问题时,首先要把问题条理化、层次化,构造出一个有层次的结构模型。
在这个模型下,复杂问题被分解为元素的组成部分。
这些元素又按其属性及关系形成若干层次。
上一层次的元素作为准则对下一层次有关元素起支配作用。
这些层次可以分为三类:(i )最高层:这一层次中只有一个元素,一般它是分析问题的预定目标或理想结果,因此也称为目标层。
(ii )中间层:这一层次中包含了为实现目标所涉及的中间环节,它可以由若干个层次组成,包括所需考虑的准则、子准则,因此也称为准则层。
(iii )最底层:这一层次包括了为实现目标可供选择的各种措施、决策方案等,因此也称为措施层或方案层。
递阶层次结构中的层次数与问题的复杂程度及需要分析的详尽程度有关,一般地层次数不受限制。
每一层次中各元素所支配的元素一般不要超过9个。
这是因为支配的元素过多会给两两比较判断带来困难。
下面结合一个实例来说明递阶层次结构的建立。
例1 假期旅游有1P 、2P 、3P 3个旅游胜地供你选择,试确定一个最佳地点。
在此问题中,你会根据诸如景色、费用、居住、饮食和旅途条件等一些准则去反复比较3个侯选地点。
可以建立如下的层次结构模型。
目标层O 选择旅游地准则层C 景色 费用 居住 饮食 旅途措施层P 1P 2P 3P1.2 构造判断矩阵层次结构反映了因素之间的关系,但准则层中的各准则在目标衡量中所占的比重并不一定相同,在决策者的心目中,它们各占有一定的比例。
在确定影响某因素的诸因子在该因素中所占的比重时,遇到的主要困难是这些比重常常不易定量化。
此外,当影响某因素的因子较多时,直接考虑各因子对该因素有多大程度的影响时,常常会因考虑不周全、顾此失彼而使决策者提出与他实际认为的重要性程度不相一致的数据,甚至有可能提出一组隐含矛盾的数据。
为看清这一点,可作如下假设:将一块重为1千克的石块砸成n 小块,你可以精确称出它们的重量,设为n w w ,,1 ,现在,请人估计这n 小块的重量占总重量的比例(不能让他知道各小石块的重量),此人不仅很难给出精确的比值,而且完全可能因顾此失彼而提供彼此矛盾的数据。
设现在要比较n 个因子},,{1n x x X =对某因素Z 的影响大小,怎样比较才能提供可信的数据呢?Saaty 等人建议可以采取对因子进行两两比较建立成对比较矩阵的办法。
即每次取两个因子i x 和j x ,以ij a 表示i x 和j x 对Z 的影响大小之比,全部比较结果用矩阵n n ij a A ⨯=)(表示,称A 为X Z -之间的成对比较判断矩阵(简称判断矩阵)。
容易看出,若i x 与j x 对Z 的影响之比为ij a ,则j x 与i x 对Z 的影响之比应为ijji a a 1=。
定义1 若矩阵n n ij a A ⨯=)(满足 (i )0>ij a ,(ii )ij ji a a 1=(n j i ,,2,1, =) 则称之为正互反矩阵(易见1=ii a ,n i ,,1 =)。
关于如何确定ij a 的值,Saaty 等建议引用数字1~9及其倒数作为标度。
下表列出了1~9标度的含义:从心理学观点来看,分级太多会超越人们的判断能力,既增加了作判断的难度,又容易因此而提供虚假数据。
Saaty 等人还用实验方法比较了在各种不同标度下人们判断结果的正确性,实验结果也表明,采用1~9标度最为合适。
最后,应该指出,一般地作2)1(-n n 次两两判断是必要的。
有人认为把所有元素都和某个元素比较,即只作1-n 个比较就可以了。
这种作法的弊病在于,任何一个判断的失误均可导致不合理的排序,而个别判断的失误对于难以定量的系统往往是难以避免的。
进行2)1(-n n 次比较可以提供更多的信息,通过各种不同角度的反复比较,从而导出一个合理的排序。
1.3 层次单排序及一致性检验判断矩阵A 对应于最大特征值m ax λ的特征向量W ,经归一化后即为同一层次相应因素对于上一层次某因素相对重要性的排序权值,这一过程称为层次单排序。
上述构造成对比较判断矩阵的办法虽能减少其它因素的干扰,较客观地反映出一对因子影响力的差别。
但综合全部比较结果时,其中难免包含一定程度的非一致性。
如果比较结果是前后完全一致的,则矩阵A 的元素还应当满足:ik jk ij a a a =,n k j i ,,2,1,, =∀ (1)定义2 满足关系式(1)的正互反矩阵称为一致矩阵。
需要检验构造出来的(正互反)判断矩阵A 是否严重地非一致,以便确定是否接受A 。
定理1 正互反矩阵A 的最大特征根m ax λ必为正实数,其对应特征向量的所有分量均为正实数。
A 的其余特征值的模均严格小于m ax λ。
定理2 若A 为一致矩阵,则(i )A 必为正互反矩阵。
(ii )A 的转置矩阵T A 也是一致矩阵。
(iii )A 的任意两行成比例,比例因子大于零,从而1)(rank =A (同样,A 的任意两列也成比例)。
(iv )A 的最大特征值n =max λ,其中n 为矩阵A 的阶。
A 的其余特征根均为零。
(v )若A 的最大特征值m ax λ对应的特征向量为T n w w W ),,(1 =,则ji ij w w a =,n j i ,,2,1, =∀,即⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎣⎡=n n n n n n w w w w w w w w w w w w w w w w w w A 212221212111定理3 n 阶正互反矩阵A 为一致矩阵当且仅当其最大特征根n =max λ,且当正互反矩阵A 非一致时,必有n >max λ。
根据定理3,我们可以由m ax λ是否等于n 来检验判断矩阵A 是否为一致矩阵。
由于特征根连续地依赖于ij a ,故m ax λ比n 大得越多,A 的非一致性程度也就越严重,m ax λ对应的标准化特征向量也就越不能真实地反映出},,{1n x x X = 在对因素Z 的影响中所占的比重。
因此,对决策者提供的判断矩阵有必要作一次一致性检验,以决定是否能接受它。
对判断矩阵的一致性检验的步骤如下:(i )计算一致性指标CI1m a x --=n nCI λ(ii )查找相应的平均随机一致性指标RI 。
对9,,1 =n ,Saaty 给出了RI 的值,RI 的值是这样得到的,用随机方法构造500个样本矩阵:随机地从1~9及其倒数中抽取数字构造正互反矩阵,求得最大特征根的平均值max 'λ,并定义1'max --=n n RI λ。
(ⅲ)计算一致性比例CRRICI CR = 当10.0<CR 时,认为判断矩阵的一致性是可以接受的,否则应对判断矩阵作适当修正。
1.4 层次总排序及一致性检验上面我们得到的是一组元素对其上一层中某元素的权重向量。
我们最终要得到各元素,特别是最低层中各方案对于目标的排序权重,从而进行方案选择。
总排序权重要自上而下地将单准则下的权重进行合成。
设上一层次(A 层)包含m A A ,,1 共m 个因素,它们的层次总排序权重分别为m a a ,,1 。
又设其后的下一层次(B 层)包含n 个因素n B B ,,1 ,它们关于j A 的层次单排序权重分别为nj j b b ,,1 (当i B 与j A 无关联时,0=ij b )。
现求B 层中各因素关于总目标的权重,即求B 层各因素的层次总排序权重n b b ,,1 ,计算按下表所示方式进行,即∑==m j j iji a b b 1,n i ,,1 =。
对层次总排序也需作一致性检验,检验仍象层次总排序那样由高层到低层逐层进行。
这是因为虽然各层次均已经过层次单排序的一致性检验,各成对比较判断矩阵都已具有较为满意的一致性。
但当综合考察时,各层次的非一致性仍有可能积累起来,引起最终分析结果较严重的非一致性。
设B 层中与j A 相关的因素的成对比较判断矩阵在单排序中经一致性检验,求得单排序一致性指标为)(j CI ,(m j ,,1 =),相应的平均随机一致性指标为)(j RI ()()(j RI j CI 、已在层次单排序时求得),则B 层总排序随机一致性比例为∑∑===m j jm j jaj RI aj CI CR 11)()( 当10.0<CR 时,认为层次总排序结果具有较满意的一致性并接受该分析结果。
§2 层次分析法的应用在应用层次分析法研究问题时,遇到的主要困难有两个:(i )如何根据实际情况抽象出较为贴切的层次结构;(ii )如何将某些定性的量作比较接近实际定量化处理。
层次分析法对人们的思维过程进行了加工整理,提出了一套系统分析问题的方法,为科学管理和决策提供了较有说服力的依据。
但层次分析法也有其局限性,主要表现在:(i )它在很大程度上依赖于人们的经验,主观因素的影响很大,它至多只能排除思维过程中的严重非一致性,却无法排除决策者个人可能存在的严重片面性。
(ii )比较、判断过程较为粗糙,不能用于精度要求较高的决策问题。
AHP 至多只能算是一种半定量(或定性与定量结合)的方法。
AHP 方法经过几十年的发展,许多学者针对AHP 的缺点进行了改进和完善,形成了一些新理论和新方法,像群组决策、模糊决策和反馈系统理论近几年成为该领域的一个新热点。
在应用层次分析法时,建立层次结构模型是十分关键的一步。
现再分析一个实例,以便说明如何从实际问题中抽象出相应的层次结构。
例2 挑选合适的工作。
经双方恳谈,已有三个单位表示愿意录用某毕业生。
该生根据已有信息建立了一个层次结构模型,如下图所示。
A 1B 2B 3B 4B 5B 6B1B 1 1 1 4 1 1/22B 1 1 2 4 1 1/23B 1 1/2 1 5 3 1/24B 1/4 1/4 1/5 1 1/3 1/35B 1 1 1/3 3 1 16B 2 2 2 3 3 1(方案层)1B 1C 2C 3C 2B 1C 2C 3C1C 1 1/4 1/2 1C 1 1/4 1/52C 4 1 3 2C 4 1 1/23C 2 1/3 1 3C 5 2 13B 1C 2C 3C 4B 1C 2C 3C1C 1 3 1/3 1C 1 1/3 52C 1/3 1 7 2C 3 1 73C 3 1/7 1 3C 1/5 1/7 15B 1C 2C 3C 6B 1C 2C 3C1C 1 1 7 1C 1 7 92C 1 1 7 2C 1/7 1 13C 1/7 1/7 1 3C 1/9 1 1根据层次总排序权值,该生最满意的工作为工作1。