层次分析法的MATLAB实现(20210228092712)
层次分析法及matlab程序
层次分析法建模层次分析法(AHP-Analytic Hierachy process)---- 多目标决策方式70 年代由美国运筹学家T·L·Satty提出的,是一种定性与定量分析相结合的多目标决策分析方式论。
吸收利用行为科学的特点,是将决策者的体会判定给予量化,对目标(因素)结构复杂而且缺乏必要的数据情形下,採用此方式较为有效,是一种系统科学中,经常使用的一种系统分析方式,因此成为系统分析的数学工具之一。
传统的经常使用的研究自然科学和社会科学的方式有:机理分析方式:利用经典的数学工具分析观看的因果关系;统计分析方式:利用大量观测数据寻求统计规律,用随机数学方式描述(自然现象、社会现象)现象的规律。
大体内容:(1)多目标决策问题举例AHP建模方式(2)AHP建模方式大体步骤(3)AHP建模方式大体算法(3)AHP建模方式理论算法应用的假设干问题。
参考书:一、姜启源,数学模型(第二版,第9章;第三版,第8章),高等教育出版社二、程理民等,运筹学模型与方式教程,(第10章),清华大学出版社3、《运筹学》编写组,运筹学(修订版),第11章,第7节,清华大学出版社一、问题举例:A.大学毕业生就业选择问题取得大学毕业学位的毕业生,“双向选择”时,用人单位与毕业生都有各自的选择标准和要求。
就毕业生来讲选择单位的标准和要求是多方面的,例如:①能发挥自己的才华为国家作出较好奉献(即工作职位适合发挥专长);②工作收入较好(待遇好);③生活环境好(大城市、气候等工作条件等);④单位名声好(声誉-Reputation);⑤工作环境好(人际关系和谐等)⑥进展晋升(promote, promotion)机遇多(如新单位或单位进展有后劲)等。
问题:此刻有多个用人单位可供他选择,因此,他面临多种选择和决策,问题是他将如何作出决策和选择?——或说他将用什么方式将可供选择的工作单位排序?工作选择B.假期旅行地址选择暑假有3个旅行胜地可供选择。
(完整版)层次分析法计算权重在matlab中的实现
(完整版)层次分析法计算权重在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。
matlab计算AHP层次分析法
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个候选地点.首先,你会确定这些准则在你的心目中各占多大比重,如果你经济宽绰、醉心旅游,自然分别看重景色条件,而平素俭朴或手头拮据的人则会优先考虑费用,中老年旅游者还会对居住、饮食等条件寄以较大关注。
Matlab求解层次分析法程序代码【求解步骤 代码】
层次分析法1)建立层次结构模型:(2)构造判断矩阵判断矩阵()ij A a =应为正互反矩阵,而且ij a 的判断如下(1~9尺度法):(3)单层排序及一致性检验1、单层排序求解判断矩阵A 的最大特征值max λ,再由最大特征值求出对应的特征向量ω()max A ωλω=,并将ω标准化,即为同一层相对于上一层某一因素的权重,根据此权重的大小,便可确定该层因素的排序。
2、一致性检验取一致性指标max 1nCI n λ-=-,(n 为A 的阶数)令CR RI=,若0.1CR <,则认为A 具有一致性。
否则,需要对A 进行调整,直到具有满意的一致性为止。
(4)层次总排序及一致性检验假定准则层12,,,n C C C 排序完成,其权重分别为12,,,n a a a ,方案层P 包含m 个方案:12,,,m P P P 。
其相对于上一层的()1,2,,j C j n =对方案层P 中的m 个方案进行单层排序,其排序权重记为12,,,j j mj b b b ()1,2,,j n =,则方案层P 中第i 个方案Pi 的总排序权重为1nj ijj a b=∑,见下表:从而确定层的排序。
例:纯文本文件txt3.txt 中的数据格式如下:1 1 1 4 1 1/2 1 1 2 4 1 1/2 1 1/2 1 53 1/2 1/4 1/4 1/5 1 1/3 1/3 1 1 1/3 3 1 12 2 23 3 11 1/4 1/24 1 32 1/3 11 1/4 1/54 1 1/25 2 11 3 1/31/3 1 1/73 7 11 1/3 53 1 71/5 1/7 11 1 71 1 71/7 1/7 11 7 91/7 1 11/9 1 1matlab程序:>> fid=fopen('txt3.txt','r');n1=6;n2=3;a=[];for i=1:n1tmp=str2num(fgetl(fid));a=[a;tmp]; %读准则层判断矩阵endfor i=1:n1str1=char(['b',int2str(i),'=[];']);str2=char(['b',int2str(i),'=[b',int2str(i),';tmp];']); eval(str1);for j=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)for i=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层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法实例与步骤结合一个具体例子,说明层次分析法的基本步骤和要点。
层次分析matlab代码(全)
9.0 8.2 8.0 7.8 9.0 9.5 5;
9.6 9.1 8.1 9.9 8.7 9.7 6;
9.5 9.6 8.3 8.1 9.0 9.3 7;
8.6 8.3 8.2 8.1 9.0 9.0 5;
A=[1 2 3 4 5 6 7;
1/2 1 2 3 4 5 6;
1/3 1/2 1 2 3 4 5;
1/4 1/3 1/2 1 2 3 4;
1/5 1/4 1/3 1/2 1 2 3;
1/6 1/5 1/4 1/3 1/2 1 2;
1/7 1/6 1/5 1/4 1/3 1/2 1;];
Evalues4=diag(Eigenvalues4);
Evalues5=diag(Eigenvalues5);
Evalues6=diag(Eigenvalues6);
Evalues7=diag(Eigenvalues7);
%最大特征值lamdaMax,及其一次性指标ci和一次性检验cr
[maxEvalue1,point1]=max(Evalues1);lamdaMax1=maxEvalue1;
for i=1:20
for j=1:20
p6(i,j)=B(i,6)/B(j,6);
end
end
p6;
for i=1:20
for j=1:20
p7(i,j)=B(i,7)/B(j,7);
end
end
p7;
%特征值矩阵Eigenvalues 特征向量Eigenvector
%判断矩阵阶数 n
n=size(A,1)
MATLAB层次分析法
wn
w2
wn
的正互反阵A称一致阵,如
wn
wn
wn
w1
w2
wn
一致阵 • A的秩为1,A的唯一非零特征根为n 性质 • A的任一列向量是对应于n 的特征向量
• A的归一化特征向量可作为权向量
对于不一致(但在允许范围内)的成对
比较阵A,建议用对应于最大特征根
的特征向量作为权向量w ,即
Aw w
• 心理学家认为成对比较的因素不宜超过9个
• 用1~3,1~5,…,1~17,…,1p~9p (p=2,3,4,5),
d+0.1~d+0.9 (d=1,2,3,4)等27种比较尺度对若干实
例构造成对比较阵,算出权向量,与实际对比发现,
1~9尺度较优。
第5页/共27页
一致性检验 对A确定不一致的允许范围
经济效益 B1
过河的效益 A
社会效益 B2
节 收岸 当 建安 交 自
省 入间 地 筑全 往 豪
时 C 商 商 就可 沟 感
间 2 业 业 业 靠 通 C8
C
C C C C6 C7
1
3
4
5
桥梁 D1
隧道 D2
(1)过河效益层次结构
第14页/共27页
环境效益 B3
舒进 美
适出 化
C
方 便
C1
9
C1
1
0
渡船 D3
深入分析实际问题,将有关因素自上而下分层(目标—准则或指标—方案 或对象),上层受下层影响,而层内各因素基本上相对独立。
2)构造成对比较阵
用成对比较法和1~9尺度,构造各层对上一层每一因素的成对比较阵。
3)计算权向量并作一致性检验
层次分析法的MATLAB实现
第八章 层次分析法层次分析法(Analytic Hierarchy Process ,简称AHP )是对一些较为复杂、较为模糊的问题作出决策的简易方法,它特别适用于那些难于完全定量分析的问题。
它是美国运筹学家T. L. Saaty 教授于70年代初期提出的一种简便、灵活而又实用的多准则决策方法。
MATLAB 教程网 §1 层次分析法的基本原理与步骤人们在进行社会的、经济的以及科学管理领域问题的系统分析中,面临的常常是一个由相互关联、相互制约的众多因素构成的复杂而往往缺少定量数据的系统。
层次分析法为这类问题的决策和排序提供了一种新的、简洁而实用的建模方法。
运用层次分析法建模,大体上可按下面四个步骤进行:(i )建立递阶层次结构模型;(ii )构造出各层次中的所有判断矩阵;(iii )层次单排序及一致性检验;(iv )层次总排序及一致性检验。
下面分别说明这四个步骤的实现过程。
1.1 递阶层次结构的建立与特点应用AHP 分析决策问题时,首先要把问题条理化、层次化,构造出一个有层次的结构模型。
在这个模型下,复杂问题被分解为元素的组成部分。
这些元素又按其属性及关系形成若干层次。
上一层次的元素作为准则对下一层次有关元素起支配作用。
这些层次可以分为三类:(i )最高层:这一层次中只有一个元素,一般它是分析问题的预定目标或理想结果,因此也称为目标层。
(ii )中间层:这一层次中包含了为实现目标所涉及的中间环节,它可以由若干个层次组成,包括所需考虑的准则、子准则,因此也称为准则层。
(iii )最底层:这一层次包括了为实现目标可供选择的各种措施、决策方案等,因此也称为措施层或方案层。
递阶层次结构中的层次数与问题的复杂程度及需要分析的详尽程度有关,一般地层次数不受限制。
每一层次中各元素所支配的元素一般不要超过9个。
这是因为支配的元素过多会给两两比较判断带来困难。
下面结合一个实例来说明递阶层次结构的建立。
例1 假期旅游有1P 、2P 、3P 3个旅游胜地供你选择,试确定一个最佳地点。
Matlab求解层次分析报告法程序代码【求解步骤+代码】
层次分析法1)建立层次结构模型:(2)构造判断矩阵判断矩阵()ij A a =应为正互反矩阵,而且ij a 的判断如下(1~9尺度法):(3)单层排序及一致性检验1、单层排序求解判断矩阵A 的最大特征值max λ,再由最大特征值求出对应的特征向量ω()max A ωλω=,并将ω标准化,即为同一层相对于上一层某一因素的权重,根据此权重的大小,便可确定该层因素的排序。
2、一致性检验取一致性指标max 1nCI n λ-=-,(n 为A 的阶数)令CR RI=,若0.1CR <,则认为A 具有一致性。
否则,需要对A 进行调整,直到具有满意的一致性为止。
(4)层次总排序及一致性检验假定准则层12,,,n C C C 排序完成,其权重分别为12,,,n a a a ,方案层P 包含m 个方案:12,,,m P P P 。
其相对于上一层的()1,2,,j C j n =对方案层P 中的m 个方案进行单层排序,其排序权重记为12,,,j j mj b b b ()1,2,,j n =,则方案层P 中第i 个方案Pi 的总排序权重为1nj ijj a b=∑,见下表:从而确定层的排序。
例:纯文本文件txt3.txt 中的数据格式如下:1 1 1 4 1 1/2 1 1 2 4 1 1/2 1 1/2 1 53 1/2 1/4 1/4 1/5 1 1/3 1/3 1 1 1/3 3 1 12 2 23 3 11 1/4 1/24 1 32 1/3 11 1/4 1/54 1 1/25 2 11 3 1/31/3 1 1/73 7 11 1/3 53 1 71/5 1/7 11 1 71 1 71/7 1/7 11 7 91/7 1 11/9 1 1matlab程序:>> fid=fopen('txt3.txt','r');n1=6;n2=3;a=[];for i=1:n1tmp=str2num(fgetl(fid));a=[a;tmp]; %读准则层判断矩阵endfor i=1:n1str1=char(['b',int2str(i),'=[];']);str2=char(['b',int2str(i),'=[b',int2str(i),';tmp];']); eval(str1);for j=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)for i=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层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法层次分析法实例与步骤结合一个具体例子,说明层次分析法的基本步骤和要点。
层次分析法matlab实现
层次分析法matlab实现disp('请输入判断矩阵A(n阶)');A=input('A=');[n,n]=size(A);x=ones(n,100);y=ones(n,100);m=zeros(1,100);m(1)=max(x(:,1));y(:,1)=x(:,1);x(:,2)=A*y(:,1);m(2)=max(x(:,2));y(:,2)=x(:,2)/m(2);p=0.0001;i=2;k=abs(m(2)-m(1));while k>pi=i+1;x(:,i)=A*y(:,i-1);m(i)=max(x(:,i));y(:,i)=x(:,i)/m(i);k=abs(m(i)-m(i-1));enda=sum(y(:,i));w=y(:,i)/a;t=m(i);disp(w);disp(t);%以下是一致性检验CI=(t-n)/(n-1);RI=[0 0 0.52 0.89 1.12 1.26 1.36 1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59]; CR=CI/RI(n);if CR<0.10disp('此矩阵的一致性可以接受!');disp('CI=');disp(CI);disp('CR=');disp(CR);endfunction AHPInit1(x,y)%层次分析的初始化%默认只有两层x为准则数,y为方案数%CToT为准则对目标生成的比较阵%EigOfCri为准则层的特征向量%EigOfOpt为选项层的特征向量EigOfCri=zeros(x,1);%准则层的特征向量EigOfOpt=zeros(y,x);dim=x;%维度RI=[0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51];%RI标准%生成成对比较阵for i=1:dimCToT(i,:)=input('请输入数据:');endCToT %输出pause,tempmatrix=zeros(x+1);tempmatrix=AHP1(dim,CToT); EigOfCri=tempmatrix(1:x);ci1=tempmatrix(1+x);EigOfCrici1pause,matrix=cell(x);%元胞数组ci=zeros(1,x);dim=y;for k=1:xmatrix{k}=zeros(dim,dim);%生成成对比较阵for i=1:dimmatrix{k}(i,:)=input('请输入数据:'); end%判断该比较阵是不是一致阵tempmatrix=zeros(y+1);tempmatrix=AHP1(dim,matrix{k}); EigOfOpt(:,k)=tempmatrix(1:y);ci(k)=tempmatrix(y+1);EigOfOpt(:,k)ci(k)pause,%下面进行组合一致性检查RI=[0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51]; CR=ci1/RI(x)+ci*EigOfCri/RI(y);CRif CR>0.1disp('组合一致性不通过,请重新评分')returnend%下面根据比较阵的结果进行组合result=EigOfOpt*EigOfCri;resultfunction f=AHP1(dim,CmpMatrix)RI=[0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51]; %判断该比较阵是不是一致阵%判断该比较阵是不是一致阵[V,D]=eig(CmpMatrix);%求得特征向量和特征值%求出最大特征值和它所对应的特征向量tempNum=D(1,1);pos=1;for h=1:dimif D(h,h)>tempNumtempNum=D(h,h);pos=h;endeigVector=V(:,pos);maxeig=D(pos,pos);maxeigdimCI=(maxeig-dim)/(dim-1);CR=CI/RI(dim);if CR>0.1disp('准则对目标影响度评分生成的矩阵不是一致阵,请重新评分') returnendCI%归一化sum=0;for h=1:dimsum=sum+eigVector(h);endsumpause,for h=1:dimeigVector(h)=eigVector(h)/sum;endf=[eigVector;CI];层次分析法的应用在应用层次分析法研究问题时,遇到的主要困难有两个:(i )如何根据实际情况抽象出较为贴切的层次结构;(ii )如何将某些定性的量作比较接近实际定量化处理。
MATLAB层次分析法
C11
C1
0
桥梁 D1
隧道 D2
渡船 D3
(1)过河效益层次结构
例3 横渡江 河、海峡方 案的抉择
经济代价 B1
过河的代价 A
社会代价 B2
环境代价 B3
投 操 冲冲 交 居 汽 对 对
入 作 击击 通 民 车 水 生
资 维 渡生 拥 搬 排 的 态
金 护 船活 挤 迁 放 污 的
C1 C2 业 方 C5 C6 物 染 破
关
献
入
展
誉
系
对外 贸易
位 置
供选择的岗位
例3 横渡江 河、海峡方 案的抉择
经济效益 B1
过河的效益 A
社会效益 B2
节 收岸 当 建安 交 自
省 入间 地 筑全 往 豪
时 C2 商 商 就 可 沟 感
间
业 业 业 靠 通 C8
C1
C3 C4 C5 C6 C7
环境效益 B3
舒进 美
适出 化
C9
方 便
Ci : C j aij
A
(aij )nn , aij
0,
a ji
1 aij
选 择
1 1/ 2 4 3 3
2
1
7
5
5
A~成对比较阵
旅 A 1/ 4 1/ 7
游 地
1/ 3
1/ 5
1/ 3 1/ 5
1 2
1/ 2 1
1/ 3
1
A是正互反阵
3 1 1
要由A确定C1,…, Cn对O的权向量
2
n
min
wi ( i1,,n ) i1
n j1 ln aij
ln wi wj
MATLAB层次分析法
a12 1/ 2 (C1 : C2 )
a13 4 (C1 : C3 )
一致比较
不一致
a23 8 (C2 : C3 )
w1 w 1 w2 A w1 wn w1 w1 w2 w2 w2 wn w2 w1 wn w2 wn wn wn
w1 w 1 w2 w A 1 wn w1
w1 w2 w2 w2 wn w2
w1 wn w2 wn wn wn
• A的秩为1,A的唯一非零特征根为n • A的任一列向量是对应于n 的特征向量 • A的归一化特征向量可作为权向量
一致性检验
对A确定不一致的允许范围
已知:n 阶一致阵的唯一非零特征根为n 可证:n 阶正互反阵最大特征根 n, 且 =n时为一致阵 定义一致性指标: CI
n CI 越大,不一致越严重
n 1
为衡量CI 的大小,引入随机一致性指标 RI——随机模 拟得到aij , 形成A,计算CI ,取平均即得RI。 Saaty的结果如下
层次分析法的基本步骤 成对比较阵 和权向量
元素之间两两对比,对比采用相对尺度
设要比较各准则C1,C2,…, Cn对目标O的重要性
Ci : C j aij
选 择 旅 游 地
1 2 A 1/ 4 1/ 3 1/ 3
1/ 2 1
1 A (aij ) nn , aij 0, a ji aij
n RI 1 2 10 11 0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.51 3 4 5 6 7 8 9
定义一致性比率 CR = CI/RI
层次分析法的matlab程序
层次分析法的matlab程序层次分析法的matlab程序function [r,c]=ahpvector(x)%AHPVECTOR Calculate the AHP ranking or weighting vector from an ...% AHP reciproal matrix.%% R = AHPVECTOR(X) is the ordered AHP ranking based on the AHP matrix X. %% [R,C] = AHPVECTOR(X) returns the ordered AHP ranking R% and the consistency ratio C.% Note that C < 0.1 is considered heuristically acceptable.sztemp=size(x);n=sztemp(1);[v,d]=eig(x);i=1;while d(i,i)<n-0.00001i=i+1;endmyeig=d(i,i)myvec=v(:,i);r=myvec/sum(myvec);ci=(myeig-n)/(n-1);randomci=[1 1 0.52 0.89 1.11 1.25 1.35 1.4 1.45 1.49 1.51];if n>11rci=1.5;elserci=randomci(n);endc=ci/rci;if c > 0.1s=sprintf('Warning: Consistency ratio %.3f > 0.1',c);disp([s]);endmatlab 卡方检验function [p, Q]= chi2test(x)% Usage: [p, Q]= chi2test(x)%% The chi-squared test.%% Given a number of samples this function tests the hypothesis that the samples are% independent. If Q > chi2(p, nu), the hypothesis is rejected.%% Each column represents a variables, each row a sample.%% If you find any errors, please let me know: .%% ARGUMENTS:% x Absolut numbers.% p The prob ability value, calculated from Q.% Q The resulting Q-value.%% EXAMPLE 1% In region A, 324 of 556 cows were red, whereas in region B 98 of 260 were red.% [p, Q]= chi2test([324, 556-324; 98, 260-98])% p=% 4.2073e-08% Q=% 30.0515% With an error risk of about 4e-08, we can claim that the samples are independent.%% EXAMPLE 2% Throw two different dices to see if they have the same probability of 1 (and 2, 3, 4, 5, 6).% We don't check if they are symetrical, only if the both behave in the same way.% [p,Q] = chi2test([15,10; 7,11; 9,7; 20,15; 26,21; 19,16])% p=% 0.8200% Q =% 2.2059% The dices don't significantly behave differently. That is, they seem to behave in the same way.%% HISTORY: v.1.0, first working version, 2007-08-30.%% COPYRIGHT: (c) 2007 Peder Axensten. Use at own risk.% KEYWORDS: chi-squared test, chi-squared, chi2, test %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%% Check the arguments.if(nargin ~= 1), error('One and only one argument required!'); endif(ndims(x) ~= 2), error('The argument (x) must be a 2d matrix!'); endif(any(size(x) == 1)), error('The argument (x) must be a 2d matrix!'); endif(any(~isreal(x))), error('All values of the argument (x) must be real values!'); end% Calculate Q = sum( (a-np*)^2/(np*(1-p*)) )s= size(x, 1);r= size(x, 2);np= sum(x, 2)/sum(sum(x)) * sum(x); % p=sum(x, 2)/sum(sum(x)) and n=sum(x) Q= sum(sum((x-np).^2./(np)));% Calculate cdf of chi-squared to Q. Degrees of freedom, v, is (r-1)*(s-1).p= 1 - gammainc(Q/2, (r-1)*(s-1)/2);end2.6 假设检验与Matlab命令汇总。
(完整版)层次分析法计算权重在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。
层次分析法及matlab程序
层次分析法建模层次分析法(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个旅游胜地可供选择。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB教程网第八章层次分析法层次分析法(Analytic Hierarchy Process,简称AHP )是对一些较为复杂、较为模糊的问题作出决策的简易方法,它特别适用于那些难于完全定量分析的问题。
它是美国运筹学家T. L. Saaty 教授于70年代初期提出的一种简便、灵活而又实用的多准则决策方法。
MATLAB教程网§ 1层次分析法的基本原理与步骤人们在进行社会的、经济的以及科学管理领域问题的系统分析中,面临的常常是一个由相互关联、相互制约的众多因素构成的复杂而往往缺少定量数据的系统。
层次分析法为这类问题的决策和排序提供了一种新的、简洁而实用的建模方法。
运用层次分析法建模,大体上可按下面四个步骤进行:(i)建立递阶层次结构模型;(ii)构造出各层次中的所有判断矩阵;(iii)层次单排序及一致性检验;(iv)层次总排序及一致性检验。
下面分别说明这四个步骤的实现过程。
1.1递阶层次结构的建立与特点应用AHP分析决策问题时,首先要把问题条理化、层次化,构造出一个有层次的结构模型。
在这个模型下,复杂问题被分解为元素的组成部分。
这些元素又按其属性及关系形成若干层次。
上一层次的元素作为准则对下一层次有关元素起支配作用。
这些层次可以分为三类:(i)最高层:这一层次中只有一个元素,一般它是分析问题的预定目标或理想结果,因此也称为目标层。
(ii )中间层:这一层次中包含了为实现目标所涉及的中间环节,它可以由若干个层次组成,包括所需考虑的准则、子准则,因此也称为准则层。
(iii )最底层:这一层次包括了为实现目标可供选择的各种措施、决策方案等,因此也称为措施层或方案层。
递阶层次结构中的层次数与问题的复杂程度及需要分析的详尽程度有关,一般地层次数不受限制。
每一层次中各元素所支配的元素一般不要超过9个。
这是因为支配的元素过多会给两两比较判断带来困难。
下面结合一个实例来说明递阶层次结构的建立。
例1假期旅游有R、F2、F3 3个旅游胜地供你选择,试确定一个最佳地点。
在此问题中,你会根据诸如景色、费用、居住、饮食和旅途条件等一些准则去反复比较3个侯选地点。
可以建立如下的层次结构模型。
目标层0 选择旅游地1.2构造判断矩阵层次结构反映了因素之间的关系,但准则层中的各准则在目标衡量中所占的比重 并不一定相同,在决策者的心目中,它们各占有一定的比例。
在确定影响某因素的诸因子在该因素中所占的比重时,遇到的主要困难是这些比 重常常不易定量化。
此外,当影响某因素的因子较多时,直接考虑各因子对该因素有 多大程度的影响时,常常会因考虑不周全、顾此失彼而使决策者提出与他实际认为的 重要性程度不相一致的数据,甚至有可能提出一组隐含矛盾的数据。
为看清这一点, 可作如下假设:将一块重为 1千克的石块砸成n 小块,你可以精确称出它们的重量,设为,w n ,现在,请人估计这 n 小块的重量占总重量的比例(不能让他知道各 小石块的重量),此人不仅很难给出精确的比值,而且完全可能因顾此失彼而提供彼 此矛盾的数据。
设现在要比较n 个因子X {x i , ,x n }对某因素Z 的影响大小,怎样比较才能提 供可信的数据呢? Saaty 等人建议可以采取对因子进行两两比较建立成对比较矩阵的 办法。
即每次取两个因子 X i 和X j ,以a j 表示X i 和X j 对Z 的影响大小之比, 全部比较 结果用矩阵A (a j )n n 表示,称A 为ZX 之间的成对比较判断矩阵(简称判断矩阵)。
容易看出,若 x i 与X j 对Z 的影响之比为a ij ,则X j 与x i 对Z 的影响之比应为1a ji 。
aij定义1若矩阵A (a j )n n 满足1(i )a ij,(ii )a ji( i, j 1,2, ,n )aij则称之为正互反矩阵(易见a H 1,i 1, ,n )。
关于如何确定a ij 的值,Saaty 等建议引用数字1~9及其倒数作为标度。
下表列出 了 1~9标度的含义:标度含义1 :表示两个因素相比,具有相冋重要性 3 表示两个因素相比,前者比后者稍重要 5 表示两个因素相比,前者比后者明显重要 7 表示两个因素相比,前者比后者强烈重要 9表示两个因素相比,前者比后者极端重要 2,4,6,8表示上述相邻判断的中间值倒数若因素i 与因素j 的重要性之比为a j ,那么因素j 与因素i 重要性准则层C措施层PMATLAB 教程网从心理学观点来看,分级太多会超越人们的判断能力,既增加了作判断的难度, 又容易因此而提供虚假数据。
Saaty 等人还用实验方法比较了在各种不同标度下人们判 断结果的正确性,实验结果也表明,采用1~9标度最为合适。
最后,应该指出,一般地作n (n 1)次两两判断是必要的。
有人认为把所有元素2都和某个元素比较,即只作n 1个比较就可以了。
这种作法的弊病在于,任何一个判 断的失误均可导致不合理的排序,而个别判断的失误对于难以定量的系统往往是难以 避免的。
进行n (n 1)次比较可以提供更多的信息,通过各种不同角度的反复比较,2从而导出一个合理的排序。
1.3层次单排序及一致性检验判断矩阵A 对应于最大特征值max 的特征向量W ,经归一化后即为同一层次相应因素对于上一层次某因素相对重要性的排序权值,这一过程称为层次单排序。
上述构造成对比较判断矩阵的办法虽能减少其它因素的干扰,较客观地反映出一 对因子影响力的差别。
但综合全部比较结果时,其中难免包含一定程度的非一致性。
如果比较结果是前后完全一致的,则矩阵A 的元素还应当满足:a ^a jka ik , i, j,k 1,2, ,n(1)定义2满足关系式(1)的正互反矩阵称为一致矩阵。
需要检验构造出来的(正互反)判断矩阵 A 是否严重地非一致,以便确定是否接受A 。
定理1正互反矩阵 A 的最大特征根 max 必为正实数,其对应特征向量的所有分定理2若A 为一致矩阵,则 (i ) A 必为正互反矩阵。
(ii ) A 的转置矩阵A 也是一致矩阵。
(iii ) A 的任意两行成比例,比例因子大于零,从而rank (A ) 1 (同样,A 的 任意两列也成比例)。
(iv ) A 的最大特征值 maxn ,其中n 为矩阵A 的阶。
A 的其余特征根均为零。
(v )若A 的最大特征值i,j 1,2, ,n ,即之比为a ji1aij量均为正实数。
A 的其余特征值的模均严格小于max °max 对应的特征向量为W (W 1, , W n )T,则a yW i w j于特征根连续地依赖于 a j ,故max 比n 大得越多,A 的非一致性程度也就越严重,max 对应的标准化特征向量也就越不能真实地反映出X {X i , ,X n }在对因素Z的影响中所占的比重。
因此,对决策者提供的判断矩阵有必要作一次一致性检验,以 决定是否能接受它。
对判断矩阵的一致性检验的步骤如下: (i )计算一致性指标 CIRI 的值是这样得到的,用随机方法构造500个样本矩阵:随机地从 1~9及其倒数中抽取数字构造正互反矩阵,求得最大特征根的平均值'max ,并定义(iii )计算一致性比例CRCR CIRI当CR 正。
0.10时,认为判断矩阵的一致性是可以接受的,否则应对判断矩阵作适当修1.4层次总排序及一致性检验上面我们得到的是一组元素对其上一层中某元素的权重向量。
我们最终要得到各 元素,特别是最低层中各方案对于目标的排序权重,从而进行方案选择。
总排序权重 要自上而下地将单准则下的权(ii )查找相应的平均随机一致性指标如下表所示:w 1 w 1 W 1 w 1 w 2 W n w 2 w 2W 2 Aw 1 w 2W n W n W n W n W 1 w 2W nn 阶正互反矩阵 A 为一致矩定理3互反矩阵A 非一致时,必有根据定理3,我们可以由max门,且当正maxn°max 是否等于n 来检验判断矩阵 A 是否为一致矩阵。
由CImaxn 1RI 。
对 n 1, ,9,Saaty 给出了 RI 的值,RImaxnn 1MATLAB教程网重进行合成。
设上一层次(A层)包含A1, ,A m共m个因素,它们的层次总排序权重分别为a1, ,a m。
又设其后的下一层次(B层)包含n个因素, B n,它们关于A j的层次单排序权重分别为b1j, ,b nj (当B i与A j无关联时,b j 0 )。
现求B层中各因素关于总目标的权重,即求B层各因素的层次总排序权重b1, ,b n,计算按下表所示方m式进行,即b i qa j , i 1, ,n。
j i层丹%1金1 JS-I */-IflJ-J■■ik ■■■ ■ ■■ ■ ■V■■札1'■■■■A*对层次总排序也需作一致性检验,行。
这是因为虽然各层次均已经过层次单排序的一致性检验,各成对比较判断矩阵都已具有较为满意的一致性。
但当综合考察时,各层次的非一致性仍有可能积累起来,引起最终分析结果较严重的非一致性。
设B层中与A j相关的因素的成对比较判断矩阵在单排序中经一致性检验,求得单排序一致性指标为CI(j),( j 1, ,m ),相应的平均随机一致性指标为RI(j) (Cl (j)、Rl( j)已在层次单排序时求得),则B层总排序随机一致性比例为mCl(j)a jCR「Rl(j)a jj i当CR 0.10时,认为层次总排序结果具有较满意的一致性并接受该分析结果。
§ 2层次分析法的应用在应用层次分析法研究问题时,遇到的主要困难有两个:(i)如何根据实际情况抽象出较为贴切的层次结构;(ii)如何将某些定性的量作比较接近实际定量化处理。
层次分析法对人们的思维过程进行了加工整理,提出了一套系统分析问题的方法,为科学管理和决策提供了较有说服力的依据。
但层次分析法也有其局限性,主要表现在:(i)它在很大程度上依赖于人们的经验,主观因素的影响很大,它至多只能排除思维过程中的严重非一致性,却无法排除决策者个人可能存在的严重片面性。
(ii)比较、判断过程较为粗糙,不能用于精度要求较高的决策问题。
AHP至多只能算是一种半定检验仍象层次总排序那样由高层到低层逐层进量(或定性与定量结合)的方法。
AHP方法经过几十年的发展,许多学者针对AHP的缺点进行了改进和完善,形成了一些新理论和新方法,像群组决策、模糊决策和反馈系统理论近几年成为该领域的一个新热点。
在应用层次分析法时,建立层次结构模型是十分关键的一步。
现再分析一个实例,MATLAB 教程网以便说明如何从实际问题中抽象出相应的层次结构。
例2挑选合适的工作。
经双方恳谈,已有三个单位表示愿意录用某毕业生。
该 生根据已有信息建立了一个层次结构模型,如下图所示。