层次分析法matlab程序

合集下载

MatLab层次分析法代码

MatLab层次分析法代码
>>A=[12564724;1/21242712;1/51/215151/22;1/61/41/511/331/21/4;1/41/2131512;1/71/71/51/31/511/71/5;1/21221712;1/41/21/241/251/21];
>>d=eig(A)%求全部特征值所组成的向量
e=max(eig(A));%最大特征值
v=null(A-e*eye(length(A)));%e对应特征向量
>>e
>>A=[13365957;1/31134746;1/31134746;1/61/31/311/241/22;1/51/41/421412;1/91/71/71/41/411/31/2;1/51/41/421312;1/71/61/61/21/221/21];
e=max(eig(A));%最大特征值
v=null(A-e*eye(length(A)));%e对应特征向量
>>e
e=
8.4243
>>v
v=
-0.7427
-0.3893
-0.2579
-0.0985
-0.2588
-0.0519
-0.3352
-0.1966
>>A=[13365957;1/31134746;1/31134746;1/61/31/311/241/22;1/51/41/421412;1/91/71/71/41/411/31/2;1/51/41/421312;1/71/61/61/21/221/21];
0.2579-0.0614+0.3195i-0.0614-0.3195i-0.0739-0.0916i-0.0739+0.0916i-0.1506-0.0176i-0.1506+0.0176i

(完整版)层次分析法计算权重在matlab中的实现

(完整版)层次分析法计算权重在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 a计权算法

matlab a计权算法

matlab a计权算法
MATLAB中的A计权算法指的是AHP(层次分析法)计算权重的
算法。

AHP是一种多准则决策分析方法,用于确定各准则对于特定
目标的相对重要性。

下面我会从多个角度来解释AHP算法在MATLAB
中的应用。

首先,AHP算法在MATLAB中的实现可以通过使用MathWorks提
供的AHP工具箱或者自行编写代码来完成。

AHP工具箱提供了一些
内置的函数和工具,可以帮助用户进行层次分析法的权重计算和一
致性检验。

用户可以通过调用这些函数来实现AHP算法的各个步骤,包括建立层次结构、构造判断矩阵、计算特征向量和一致性指标等。

其次,AHP算法的实现需要用户输入层次结构和判断矩阵。

在MATLAB中,用户可以通过定义层次结构和输入判断矩阵来进行AHP
算法的计算。

通过调用相应的函数,MATLAB可以帮助用户对判断矩
阵进行特征值分解,计算特征向量,进而得到每个准则的权重。

此外,AHP算法在MATLAB中的应用还可以包括对一致性检验的
实现。

AHP算法要求判断矩阵满足一致性,MATLAB提供了相应的函
数来对判断矩阵进行一致性检验,帮助用户评估判断矩阵的一致性
水平,从而确保AHP算法的可靠性和准确性。

总的来说,MATLAB提供了丰富的工具和函数来支持AHP算法的实现和应用。

用户可以通过调用这些函数来进行层次分析法的权重计算和一致性检验,从而应用AHP算法解决实际的决策问题。

希望这些信息能够帮助你更好地理解MATLAB中AHP算法的应用。

层次分析法判断矩阵求权值以及一致性检验程序

层次分析法判断矩阵求权值以及一致性检验程序

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计算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程序实现层次分析法(AHP)的简捷算法

使用Matlab程序实现层次分析法(AHP)的简捷算法

使用Matlab程序实现层次分析法(AHP)的简捷算法作者:于晶来源:《科技风》2016年第16期摘要:层次分析法简便易懂,可操作性和实用性强,但是构造判断矩阵往往不容易,计算判断矩阵的特征值特别繁琐且易出错,得到的一致性检验不易调整,这些都给使用层次分析法带来困难,以往使用办公软件电子表格(Excel)的方法计算单层次排序和总层次排序,这种方法使得计算和一致性检验变得容易,文本使用Matlab程序使得计算变得更容易,也使得层次分析法在多个领域得到推广和应用。

关键词:层次分析法;Excel;matlab1 层次分析法(AHP法)的原理和解决思路层次分析法是对定性问题进行定量分析的一种简便、灵活而又实用的多准则决策方法。

它的原理是模拟人的决策过程,具有思路清晰、方法简便、适用面广、系统性强等特点。

是解决多目标、多准则、多层次复杂问题决策或者大型工程风险分析的有力工具。

层次分析法解决问题的思路就是用下一次因素的相对排序求得上一次因素的相对排序。

按照因素之间的相互影响和隶属关系将各层次因素聚类组合,形成一个递进有序的层次结构模型。

2 层次分析法的应用难点2.1合适的判断矩阵构造不易模型确定后,按照模型层次结构和模型的各因素的相对重要性,综合专家群体咨询意见,采用标度法[ 1 ],从数字1/9一9中选取恰当值,构造各层的判断矩阵,并使之尽量符合一致性检验,这一步成为问题的关键。

但实际上系统越复杂,判定矩阵的阶数就会越高,计算就会越困难。

2.2计算量大,步骤繁琐层次分析法首先要求的就是判断矩阵的最大特征值?姿max,及其正规化的特征向量w,向量w的分量wi是相应因素的单层次权值,这部分计算理论上基于线性代数知识,不用计算机也可以将其计算出来。

但实际上,当矩阵的阶数高于4阶时,人工计算就变得相当困难且易出错,如使用计算机计算,就容易得多,常用的方法有Basic语言,电子表格Excel等方法。

但计算量都有待改进。

层次分析法及matlab程序

层次分析法及matlab程序

层次分析法及Matlab程序一、层次分析法简介层次分析法(Analytic Hierarchy Process,简称AHP)是一种用于决策分析的工具,由美国数学家托马斯·L·萨蒂(Thomas L. Saaty)在1970年代创立。

AHP通过将决策问题划分为多个层次和多个因素,将主要因素和次要因素划分归纳,以定量化的方法分析各因素间优先级的关系,从而对决策方案进行综合评价。

AHP的基本原理是通过构造判断矩阵、计算判断矩阵的特征向量、确定权重,最终得到决策方案的优先级,从而找到最终的最优决策方案。

其主要优点是可定量化、简单易行,适用于大部分决策问题。

二、层次分析法的步骤AHP的具体步骤如下:1.确定决策目标;2.确定影响决策的因素,并将它们分成若干类别,即形成层次结构;3.为每个因素构建判断矩阵,评估每个因素的重要程度(用1~9的数字表示);4.将各判断矩阵进行一致性检验,并计算其权重;5.对计算得到的权重进行优先级排序,选出最优决策方案。

三、Matlab程序实现AHP计算在Matlab中,可以通过编写程序实现AHP的计算。

以下是一份简单的Matlab 程序,用于计算AHP的权重:% 输入判断矩阵A = [1 4 5;1/4 1 2;1/5 1/2 1];% 计算特征向量[V, D] = eig(A);[m, idx] = max(max(D));w = V(:,idx)';w = w/sum(w);% 一致性检验RI = [0 0 0.58 0.9 1.12 1.24 1.32 1.41 1.45 1.49];CR = (max(D) - 3)/2/RI(length(A));CI = sum(CR)/length(A);if CI < 0.1disp('一致性较好,权重为:');disp(w);elsedisp('一致性差,需重新评估判断矩阵!');end该程序用于计算一个3x3的判断矩阵的权重,并输出一致性检验的结果。

(完整版)层次分析法及matlab程序

(完整版)层次分析法及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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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>p
i=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));
end
a=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.10
disp('此矩阵的一致性可以接受!');
disp('CI=');disp(CI);
disp('CR=');disp(CR);
end
function 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:dim
CToT(i,:)=input('请输入数据:');
end
CToT %输出
pause,
tempmatrix=zeros(x+1);
tempmatrix=AHP1(dim,CToT);
EigOfCri=tempmatrix(1:x);
ci1=tempmatrix(1+x);
EigOfCri
ci1
pause,
matrix=cell(x);%元胞数组
ci=zeros(1,x);
dim=y;
for k=1:x
matrix{k}=zeros(dim,dim);
%生成成对比较阵
for i=1:dim
matrix{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,
end
%下面进行组合一致性检查
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);
CR
if CR>0.1
disp('组合一致性不通过,请重新评分')
return
end
%下面根据比较阵的结果进行组合
result=EigOfOpt*EigOfCri;
result
function 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:dim
if D(h,h)>tempNum
tempNum=D(h,h);
pos=h;
end
end
eigVector=V(:,pos);
maxeig=D(pos,pos);
maxeig
dim
CI=(maxeig-dim)/(dim-1);
CR=CI/RI(dim);
if CR>0.1
disp('准则对目标影响度评分生成的矩阵不是一致阵,请重新评分') return
end
CI
%归一化
sum=0;
for h=1:dim
sum=sum+eigVector(h);
end
sum
pause,
for h=1:dim
eigVector(h)=eigVector(h)/sum;
end
f=[eigVector;CI];。

相关文档
最新文档