层次分析法及matlab程序

合集下载

层次分析法(AHP法)

层次分析法(AHP法)

32
定义一致性比率 : CR CI
RI
一般,当一致性比率 CR CI 0.1 时,认为A
RI
的不一致程度在容许范围之内,有满意的一致性,通 过一致性检验。否则要重新构造成对比较矩阵A,对
aij 加以调整。
一致性检验:利用一致性指标和一致性比率<0.1
及随机一致性指标的数值表,对A进行检验的过程。
实用文档
6
例2 旅游 假期旅游,是去风光秀丽的苏州,还是
去凉爽宜人的北戴河,或者是去山水甲天下 的桂林?通常会依据景色、费用、食宿条件、 旅途等因素选择去哪个地方。
实用文档
7
例3 择业 面临毕业,可能有高校、科研单位、企
业等单位可以去选择,一般依据工作环境、 工资待遇、发展前途、住房条件等因素择业。
实用文档
31
由于λ(A的特征根) 连续的依赖于aij ,则λ比n 大的 越多,A 的不一致性越严重。引起的判断误差越大。 因而可以用 λ-n 数值的大小来衡量 A 的不一致程
度。
定义一致性指标: CI n
n 1
CI=0,有完全的一致性
CI接近于0,有满意的一致性
CI 越大,不一致越严重
实用文档
实用文档
14
2.层次数与问题的复杂程度和所需要分析的详尽 程度有关。每一层次中的元素一般不超过9个,因 一层中包含数目过多的元素会给两两比较判断带 来困难。
实用文档
15
3.一个好的层次结构对于解决问题是极为重 要的。层次结构建立在决策者对所面临的 问题具有全面深入的认识基础上,如果在 层次的划分和确定层次之间的支配关系上 举棋不定,最好重新分析问题,弄清问题 各部分相互之间的关系,以确保建立一个 合理的层次结构。

层次分析法(AHP法.

层次分析法(AHP法.
成对比较矩阵是表示本层所有因素针对上一层某一个 因素的相对重要性的比较。判断矩阵的元素aij用 Saaty的1—9标度方法给出。
心理学家认为成对比较的因素不宜超过9个,即 每层不要超过9个因素。
成对比较阵和权向量
比较尺度aij
Saaty等人提出1~9尺度——aij 取值
1,2,… , 9及其互反数1,1/2, … , 1/9
②工作收入较好(待遇好); ③生活环境好(大城市、气候等工作条件等); ④单位名声好(声誉等); ⑤工作环境好(人际关系和谐等) ⑥发展晋升机会多(如新单位或前景好)等。
目标层
工作选择
准则层 方案层
贡收 发 声 工 生 作活 环环
献入 展 誉 境 境
可供选择的单位P1’ P2 , Pn
建立层次结构模型的思维过程的归纳
• 便于定性到定量的转化:
a ij
尺度
1 2 34
Ci
:
C
的重要性
j
相同
稍强
5 6 78 9 强 明显强 绝对强
aij =1,1/2, ,…1/9 ~ Ci :Cj 的重要性与上面相反
• 用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种比较尺度对若干实例构造成对比较
RI
一般,当一致性比率 CR CI 0.1 时,认为A
RI
的不一致程度在容许范围之内,有满意的一致性,通 过一致性检验。否则要重新构造成对比较矩阵A,对 aij 加以调整。
一致性检验:利用一致性指标和一致性比率<0.1 及随机一致性指标的数值表,对A进行检验的过程。
判断矩阵一致性检验的步骤如下: (1) 计算一致性指标 C.I.:

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

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

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程序

层次分析法建模层次分析法(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 桂林,到底到哪个地方去旅游最好?要作出决策和选择。

基于Matlab的层次分析法(提供代码)

基于Matlab的层次分析法(提供代码)

基于Matlab的层次分析法(提供代码)层次分析法是一种常用的决策分析方法,可以用来解决复杂决策问题。

在Matlab中,我们可以使用ahp函数来实现层次分析法,以下是具体实现方法和代码示例。

1. 构建层次结构模型在进行层次分析法之前,首先需要构建层次结构模型。

层次结构模型是由多个因素构成的层次结构,每个因素都对应有多个子因素或者指标,最终目标会在最底层的因素或指标进行判断。

在Matlab中,我们可以使用ahp函数中的输入参数来构建层次结构模型。

2. 对各因素进行比较接着我们需要对各因素进行比较,即两两之间构建比较矩阵。

比较矩阵的大小取值应该为1,3,5,7,9这几个数,分别代表相当于、稍微重要、中等重要、非常重要和绝对重要。

在Matlab中,我们可以使用ahp函数中的输入参数来进行比较矩阵的构建。

3. 计算权重计算权重即为计算每个因素在最终目标中所占的权重大小。

我们可以根据比较矩阵来计算每个因素的权值,这可以通过Matlab的ahp函数中的输出参数进行得到。

以下是一个具体的代码示例:% 定义层次结构模型hierarchy = {'目标' {'因素1' '因素2' '因素3'}};% 构建比较矩阵% 比较矩阵大小代表相当于、稍微重要、中等重要、非常重要和绝对重要% 1代表相等,3代表比较略微重要等等,9代表比较绝对重要cmpMat{1} = [1 3 5;1/3 1 2;1/5 1/2 1];cmpMat{2} = [1 1/5 1/3;5 1 3;3 1/3 1];cmpMat{3} = [1 1/3 2;3 1 4;1/2 1/4 1];% 计算权重,得到结果存储在results变量中 results = ahp(hierarchy, cmpMat);% 层次分析法计算结果的可视化disp('计算结果:');disp(results);。

层次分析法及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 程序如下:clc,clearfid=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); %读方案层的判断矩阵endri=[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主成分分析dataset=xlsread(‘d:\1\11.xls’)stdr=std(dataset);%求出各变量标准差[n,m]=size(dataset)%定义矩阵的行列数sddata=dataset./stdr(ones(n,1),:);%将原始数据集体标准化sddata %输出标准化数据[P,princ,eigenvalue,t2]=princomp(sddata); %调用主成分分析数据p3=P(:,1:3);%提取前三个主成分系数p3%输出前三个主成分系数sc=princ(:,1:3);%提出前三个主成分得分值sc%输出前三个主成分得分值eigenvalue%输出相关矩阵的各特征值e=eigenva lue(1:3)’%提取前三个特征根并转置M=e(ones(m,1),:).^0.5;%利用特征根构造变化矩阵compmat=p3.*M%求主成分载荷矩阵的前三列per=100*eigenvalue/sum(eigenvalue);%求出各个主成分的贡献率per%求出各个主成分的贡献率cumsum(per)%求出各个主成分的累计贡献率pareto(per)%将贡献率绘成直方图t2%输出各省市与平均位置的距离plot(eigenvalue,'r+')%绘制方差贡献散点图hold on%保持图形plot(eigenvalue,'g-');%绘制方差贡献山麓图hold off%关闭图形plot(princ(:,1),princ(:,2),'+'); %绘制2维分布散点图6、模型的优缺点。

Matlab求解层次分析法程序代码【求解步骤+代码】

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层次分析法

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-层次分析法一致性

matlab-层次分析法一致性

用了两周左右的时间,我编写了网络分析法(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 时,判断矩阵永远具有完全一致性。

Matlab建模教程层次分析法

Matlab建模教程层次分析法

第八章 层次分析法层次分析法(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个旅游胜地供你选择,试确定一个最佳地点。

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

层次分析法(AHP法.

层次分析法(AHP法.

w1
wn

由右面矩阵可以看出,
w2
A


w1
1L
w2
wn

wi wi wk
wj
wk w j
M M M M

wn
wn L
ik akj aij i, j 1,2, , n
A
但在例2的成对比较矩阵中, a23 7, a21 2, a13 4 a23 a21 a13
C.I. max n
n 1
其中 n 为判断矩阵的阶数;
(2) 查找平均随机一致性指标 R.I.:
平均随机一致性指标是多次(500次以上)重复 进行随机判断矩阵特征根计算之后取算术平均得到的。 龚木森、许树柏1986年得出的1—15阶判断矩阵重复 计算1000次的平均随机一致性指标如下:
成对比较矩阵是表示本层所有因素针对上一层某一个 因素的相对重要性的比较。判断矩阵的元素aij用 Saaty的1—9标度方法给出。
心理学家认为成对比较的因素不宜超过9个,即 每层不要超过9个因素。
成对比较阵和权向量
比较尺度aij
Saaty等人提出1~9尺度——aij 取值
1,2,… , 9及其互反数1,1/2, … , 1/9
这种方法的特点是在对复杂的决策问题的 本质、影响因素及其内在关系等进行深入 分析的基础上,利用较少的定量信息使决 策的思维过程数学化,从而为多目标、多 准则或无结构特性的复杂决策问题提供简 便的决策方法。
是对难于完全定量的复杂系统作出决策的 模型和方法。
层次分析法在经济、科技、文化、军事、 环境乃至社会发展等方面的管理决策中都 有广泛的应用。
个课题,一般依据课题的可行性、应用价值、 理论价值、被培养人才等因素进行选题。

基于Matlab的层次分析法及其运用浅析

基于Matlab的层次分析法及其运用浅析

度 )具体标度 方法如表 1所示。 ,
表 1 T..a t LS ay教授 的 1 9标度方法 -
底层 指 标 相 对 于 准 则 层 的 权 重 系数 , 而 有助 于 选 择 最 优 方案 , 序 从 程 流程如图 1 所示 , 其中的平行 四边形表示输入数据 , 菱形表示判断 , 根据 判 断结 果 的不 同 出现 2个 分 支 。 程 序 中 , 于 生成 判 断矩 阵 的部 分 程 序 如 下 : 用
表 2 平均 随机一致性指标 ,
在当前信息化 、 全球化 的大背景下 , 传统的手工计 算已不能满足 素, 因此在判断矩 阵不能通过一致性检 验时, 需要对 各指标问相互重 人们高效 率、 高准确度 的决策需求。 因此计算机辅助决策当仁不让地 要性程度重新进行赋值 , 直至其通过矩阵一致性检验。 其最大特征值 成为 了管理决策 的新工具、 方法。基于 此, 新 本文在充分发挥计算机 对应 的特征 向量 即为该指标相对于上一级指标的重要性排序。 强大运算功能的基础上 ,选用美国 Mah rs公司的集成数学建 tWok
基于 Malb的层次分析 法及 其运 用浅析 t a
郭 东硕 程 正敏 彭茜 ( 西南大学 经济管理学院)
满足同一层 次中各指标对 所有的下级指标均产生影响 的假定条件下 ,实现 了层次分析法的分析运算。 本程序允许 用户自由设定指标层次结构内的层次数以及各层次 内的指标数 , 通过程序的循环 , 用户只需输入 判断矩 阵的部 分数据 , 程序可依据层 次分析 法的计算流程 进行计算并作 出判断。 本程序可以方便地处理层 次分析法下较 大的运算量 , 解决层次分析法的效率问题 , 提高计算机辅助决策的时效性。 关键词 : t b层 次分析法 判断矩阵 决策 Mal a
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

层次分析法及m a t l a b程序Prepared on 21 November 2021层次分析法建模层次分析法(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 桂林,到底到哪个地方去旅游最好要作出决策和选择。

为此,要把三个旅游地的特点,例如:①景色;②费用;③居住;④环境;⑤旅途条件等作一些比较——建立一个决策的准则,最后综合评判确定出一个可选择的最优方案。

目标层准则层方案层C .资源开发的综合判断7种金属可供开发,开发后对国家贡献可以通过两两比较得到,决定对哪种资源先开发,效用最用。

二、问题分析:例如旅游地选择问题:一般说来,此决策问题可按如下步骤进行: (S1)将决策解分解为三个层次,即:目标层:(选择旅游地)准则层:(景色、费用、居住、饮食、旅途等5个准则)方案层:(有1P ,2P ,3P 三个选择地点)并用直线连接各层次。

(S2)互相比较各准则对目标的权重,各方案对每一个准则的权重。

这些权限重在人的思维过程中常是定性的。

例如:经济好,身体好的人:会将景色好作为第一选择;中老年人:会将居住、饮食好作为第一选择; 经济不好的人:会把费用低作为第一选择。

而层次分析方法则应给出确定权重的定量分析方法。

(S3)将方案后对准则层的权重,及准则后对目标层的权重进行综合。

(S4)最终得出方案层对目标层的权重,从而作出决策。

以上步骤和方法即是AHP 的决策分析方法。

三、确定各层次互相比较的方法——成对比较矩阵和权向量在确定各层次各因素之间的权重时,如果只是定性的结果,则常常不容易被别人接受,因而Santy 等人提出:一致矩阵法.....即:1. 不把所有因素放在一起比较,而是两两相互比较2. 对此时采用相对尺度,以尽可能减少性质不同的诸因素相互比较的困难,提高准确度。

因素比较方法 —— 成对比较矩阵法:目的是,要比较某一层n 个因素n C C C , ,,21 对上一层因素O 的影响(例如:旅游决策解中,比较景色等5个准则在选择旅游地这个目标中的重要性)。

采用的方法是:每次取两个因素i C 和j C 比较其对目标因素O 的影响,并用ija 表示,全部比较的结果用成对比较矩阵表示,即:)1( 1,0 ,)(=⋅=>=ij ij ijji ij nxn ij a a a a a a A 或 (1)由于上述成对比较矩阵有特点: jiij ij ij a a a a A 1 ,0 , )(=>= 故可称A 为正互反矩阵:显然,由 jiij a a 1=,即:1=⋅ji ij a a ,故有:1=ji a 例如:在旅游决策问题中:2112=a =(费用)(景色)21C C 表示:⎩⎨⎧2O 1O 21的重要性为(费用)对目标的重要性为景色)对目标(C C故:),费用重要性为即景色重要性为21(2112=a14413==a = (居住条件)(景色)31C C 表示:⎩⎨⎧1O C 4O (31的重要性为(居住条件)对目标的重要性为景色)对目标C 即:景色为4,居住为1。

17723==a =(居住条件)(费用)32C C 表示:⎩⎨⎧1O C 7O (32的重要性为(居住条件)对目标的重要性为费用)对目标C 即:费用重要性为7,居住重要性为1。

因此有成对比较矩阵:⎪⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=1135131112513131211714155337412121A 问题:稍加分析就发现上述成对比较矩阵的问题: ① 即存在有各元素的不一致性,例如:既然:41114a ;22113313113212112==⇒===⇒==a a C C a C C a 所以应该有:188412131231213223======C C C C a a C C a而不应为矩阵A 中的1723=a②成对比较矩阵比较的次数要求太 ,因:n 个元素比较次数为:!2)1(2-=n n C n 次, 因此,问题是:如何改造成对比较矩阵,使由其能确定诸因素n C C , ,1 对上层因素O 的权重对此Saoty 提出了:在成对比较出现不一致情况下,计算各因素n C C , ,1 对因素(上层因素)O 的权重方法,并确定了这种不一致的容许误差范围。

为此,先看成对比较矩阵的完全一致性——成对比较完全一致性四:一致性矩阵Def :设有正互反成对比较矩阵:⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=============== 1 a , , 1 , , 1 1nn 221122222212211121121111n n n n n n j iij n n n n W W W W a W W a W W a W W a W W a W W a W W a W W a W W a A(4) 除满足:(i )正互反性:即)1 ( 10=⋅=>ji ij jiij ij a a a a a 或 而且还满足:(ii )一致性:即n 2, 1,j i, ==⋅==ha h a a k a a a a j i kj i j i ij A A A n ⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=n n n n n n W W W W W W W W W W WW W W W W W W A212221212111⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=321W W W W n nW nW nW W W W W W W W W W W W W W W W A n n n nn n n=⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=212121121110)(=-nI A ⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=n W W W W 21ωn n M M M , , ,21 n W W W , , ,21 ⎪⎪⎪⎪⎪⎭⎫⎝⎛=n W W W W 21A()⎪⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎪⎨⎧∑⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎪⎪⎭⎫ ⎝⎛称特征根法,求权向量的方法量权向量,此种用特征向为即对上层因素O的权重,,C ,,C C ,就表示诸因素=W=则归一化后的特征向量,=:重量向量 为特征根的特征向量为以的特征根为n 21 1W W W W ,121 i n W W W n n A ⎪⎪⎪⎪⎪⎭⎫⎝⎛=n W W W W 21n M M M , , ,21 A A A A W ij a ij a A i W A λW W W W n A n =max λAA λW A λW λλ=→k kk lim W W k k =∞→lim A A k k =∞→lim A A A *A A A A ≈*A A A A λλW W W e A e e A k T kk =∞→lim ⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=111e W λA n n ≥λn =λA I C ⋅A A A ()][WW )(-及λλ-W max W A λ=nW AW =m ax λA W A A A ∑∑∑∑=======nk n k kk n k n n k k n a 11111λλ=A 1=ii a n ==max λλA n =max λA n≥max λ∑∑==+≠na iik hmaxmax λλλ∑≠-=-maxmax k kn λλ11maxmax --=--=⋅∑≠n n nI C k kλλn =max λ0=⋅I C A I C ⋅A A A10⋅≤⋅I C A I R ⋅A I R ⋅I R ⋅① IR IC R C ⋅⋅=⋅I R ⋅A A I C ⋅I R ⋅n A ')(j i a ij<'91ij a 'ji a 'ji ij a a '='11='ii a 然后再计算A '的一致性指标I C ⋅,因此A '是非常不一致的,此时,I C ⋅值相当大.② 如此构造相当多的A ',再用它们的I C ⋅平均值作为随机一致性指标。

③ Satty 对于不同的1(=n n ~11),用100~500个样本A '计算出上表所列出的随机一致性指标I R ⋅作为修正值表。

3. 一致性检验指标的定义——一致性比率R C ⋅。

由随机性检验指标R C ⋅可知:当2 ,1=n 时,0=⋅I R ,这是因为1, 2阶正互反阵总是一致阵。

对于3≥n 的成对比较阵A ,将它的一致性指标I C ⋅与同阶(指n 相同)的随机一致性指标I R ⋅之比称为一致性比率——简称一致性指标, 即有: 一致性检验指标的定义——一致性比率定义:I R I C R C ⋅⋅=⋅: IR IC R C ⋅⋅=⋅当:10⋅<⋅⋅=⋅I R IC R C 时,认为主观判断矩阵A 的不一致程度在容许范围之内,可用其特征向量作为权向量。

否则,对主观判断矩阵A 重新进行成对比较,构重新的主观判断矩阵A 。

相关文档
最新文档