文档库 最新最全的文档下载
当前位置:文档库 › 层次分析法及matlab程序

层次分析法及matlab程序

层次分析法及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 桂林,到底到哪个

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

目标层

准则层

方案层

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 的影响,并用ij a 表示,全部比较的结果用成对比较矩阵表示,即:

)1( 1

,0 ,)(=?=

>=ij ij ij

ji ij nxn ij a a a a a a A 或 (1)

由于上述成对比较矩阵有特点: ji

ij ij ij a a a a A 1 ,0 , )(=

>= 故可称A 为正互反矩阵:显然,由 ji

ij a a 1

=,即:1=?ji ij a a ,故有:1=ji a 例如:在旅游决策问题中:

2112=a =(费用)(景色)21C C 表示:???2O 1O 21的重要性为(费用)对目标

的重要性为景色)对目标(C C

故:),费用重要性为即景色重要性为21(2

112=a

14413==a = (居住条件)(景色)31C C 表示:???1O C 4O (3

1的重要性为(居住条件)对目标的重要性为景色)对目标C 即:景色为4,居住为1。

17723==a =(居住条件)(费用)32

C C 表示:???1O C 7O (32的重要性为(居住条件)对目标

的重要性为费用)对目标C

即:费用重要性为7,居住重要性为1。

因此有成对比较矩阵:?

??

?????

?

??=113

5

13

1112513131211714

1

553374121

21

A ??问题:稍加分析就发现上述成对比较矩阵的问题: ① 即存在有各元素的不一致性,例如:

既然:4

1114a ;22113313113212112==?===?==

a a C C a C C a 所以应该有:188412

1

3

12

31213223======

C C C C a a C C a

而不应为矩阵A 中的1

723=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 i

ij 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 ( 1

0=?=

>ji ij ji

ij ij a a a a a 或 而且还满足:(ii )一致性:即

n 2, 1,j i, ==?==

h

a h

a a k a a a a j i kj i j i ij //有点点错误 则称满足上述条件的正互反对称矩阵A 为一致性矩阵,简称一致阵。

一致性矩阵(一致阵)性质:

性质1:A 的秩 Rank(A)=1//显然

A 的唯一非0的特征根为n

性质2:A 的任一列(行)向量都是对应特征根n 的特征向量:

即有(特征向量、特征值):

?????????? ??=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

2

1

2221212111,则向量??????

?

??=321W W W W

层次分析法及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)机会多(如新单位或单位发展有后劲)等。 问题:现在有多个用人单位可供他选择,因此,他面临多种选择和决策,问题是他将如何作出决策和选择?——或者说他将用什么方法将可供选择的工作单位排序?

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

层次分析法实现代码(MATLAB)

%% AHP weight calculation %%data input clc clear all A =[1 3 5 7 9 5;1/3 1 3 9 3 3;1/5 1/3 1 3 3 1/3;1/7 1/9 1/3 1 5 1/3;1/9 1/3 1/3 1/5 1 1/3;1/5 1/3 1 3 3 1]; %%Consistency calculation and weight vector calculation [n,n] = size(A); [v,d] = eig(A); r = d(1,1); CI = (r-n)/(n-1); RI = [0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.52 1.54 1.56 1.58 1.59]; CR = CI/RI(n); if CR<0.10 CR_Result = 'pass'; else CR_Result = 'no pass'; end % % Weight vector calculation w = v(:,1)/sum(v(:,1));

w = w'; % % output disp('The judgment matrix weight vector calculation report:'); disp('coincidence indicator:');disp(num2str(CI)); disp('Consistency ratio:');disp(num2str(CR)); disp(' Consistency test results:');disp(CR_Result); disp('eigenvalue:');disp(num2str(r)); disp('weight vector:');disp(num2str(w));

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

基于Matlab的层次分析法及其运用浅析 本文通过使用Matlab软件进行编程,在满足同一层次中各指标对所有的下级指标均产生影响的假定条件下,实现了层次分析法的分析运算。本程序允许用户自由设定指标层次结构内的层次数以及各层次内的指标数,通过程序的循环,用户只需输入判断矩阵的部分数据,程序可依据层次分析法的计算流程进行计算并作出判断。本程序可以方便地处理层次分析法下较大的运算量,解决层次分析法的效率问题,提高计算机辅助决策的时效性。 标签:Matlab层次分析法判断矩阵决策 在当前信息化、全球化的大背景下,传统的手工计算已不能满足人们高效率、高准确度的决策需求。因此计算机辅助决策当仁不让地成为了管理决策的新工具、新方法。基于此,本文在充分发挥计算机强大运算功能的基础上,选用美国MathWorks公司的集成数学建模環境Matlab R2009a作为开发平台,使用M语言进行编程,对计算机辅助决策在层次分析法中的运用进行讨论。试图通过程序实现层次分析法在计算机系统上的运用,为管理决策探索出新的道路。 1 层次分析法的计算流程 根据层次分析法的相关理论,层次分析法的基本思想是将复杂的决策问题进行分解,得到若干个下层指标,再对下层指标进行分解,得到若干个再下层指标,如此建立层次结构模型,然后根据结构模型构造判断矩阵,进行单排序,最后,求出各指标对应的权重系数,进行层次总排序。 1.1 构造层次结构模型在进行层次分析法的分析时,最主要的步骤是建立指标的层次结构模型,根据结构模型构造判断矩阵,只有判断矩阵通过了一致性检验后,方可进行分析和计算。其中,结构模型可以设计成三个层次,最高层为目标层,是决策的目的和要解决的问题,中间层为决策需考虑的因素,是决策的准则,最低层则是决策时的备选方案。一般来讲,准则层中各个指标的下级指标数没有限制,但在本文中设计的程序尚且只能在各指标具有相同数量的下级指标的假定下,完成层次分析法的分析,故本文后文选取的案例也满足这一假定。 1.2 建立判断矩阵判断矩阵是表示本层所有因素针对上一层某一个因素的相对重要性的比较给判断矩阵的要素赋值时,常采用九级标度法(即用数字1到9及其倒数表示指标间的相对重要程度),具体标度方法如表1所示。 1.3 检验判断矩阵的一致性由于多阶判断的复杂性,往往使得判断矩阵中某些数值具有前后矛盾的可能性,即各判断矩阵并不能保证完全协调一致。当判断矩阵不能保证具有完全一致性时,相应判断矩阵的特征根也将发生变化,于是就可以用判断矩阵特征根的变化来检验判断的一致性程度。在层次分析法中,令判断矩阵最大的特征值为λmax,阶数为n,则判断矩阵的一致性检验的指标记为:

层次分析法及matlab程序

层次分析法及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)机会多(如新单位或单位发展有后劲) 等。 问题:现在有多个用人单位可供他选择,因此,他面临多种选择和决策,问题是他将如何作出决策和选择——或者说他将用什么方法将可供选择的工作单位排序 工作选

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

层次分析法 1)建立层次结构模型: (2)构造判断矩阵 判断矩阵() ij A a =应为正互反矩阵,而且ij a 的判断如下(1~9尺度法): (3)单层排序及一致性检验 1、单层排序 求解判断矩阵A 的最大特征值max λ,再由最大特征值求出对应的特征向量

ω()max A ωλω=,并将ω标准化,即为同一层相对于上一层某一因素的权重,根据此 权重的大小,便可确定该层因素的排序。

2、一致性检验 取一致性指标max 1 n CI 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 的总 排序权重为 1 n j ij j a b =∑,见下表: 从而确定层的排序。 例: 纯文本文件txt3.txt 中的数据格式如下: 1 1 1 4 1 1/ 2 1 1 2 4 1 1/2 1 1/2 1 5 3 1/2 1/ 4 1/4 1/ 5 1 1/3 1/3 1 1 1/3 3 1 1 2 2 2 3 3 1 1 1/4 1/2

4 1 3 2 1/ 3 1 1 1/4 1/5 4 1 1/2 5 2 1 1 3 1/3 1/3 1 1/7 3 7 1 1 1/3 5 3 1 7 1/5 1/7 1 1 1 7 1 1 7 1/7 1/7 1 1 7 9 1/7 1 1 1/9 1 1 matlab程序: >> fid=fopen('txt3.txt','r'); n1=6;n2=3; a=[]; for i=1:n1 tmp=str2num(fgetl(fid)); a=[a;tmp]; %读准则层判断矩阵 end for i=1:n1 str1=char(['b',int2str(i),'=[];']); str2=char(['b',int2str(i),'=[b',int2str(i),';tmp];']); eval(str1); for j=1:n2 tmp=str2num(fgetl(fid)); eval(str2); %读方案层的判断矩阵 end end ri=[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);

(完整word版)模糊层次分析法的Matlab实现

一、引言 层析分析法是将定量与定性相结合的多目标决策法,是一种使用频率很高的方法,在经济管理、城市规划等许多领域得到了广泛应用。由于其结果受主观思维的影响较大,许多科研工作者对其进行了深入的研究,将模糊理论与层次分析法相结合,提出了模糊层次分析法。为克服层次分析法中判断矩阵的一致性与人类思维的一致性存在的显著差异,文献[1-2]引入了模糊一致矩阵。为解决解的精度及收敛问题,文献[3-4]引入幂法来求排序向量。运用模糊层次分析法研究实际问题时,常采用迭代法来得到精度更高的排序向量,这就要求选择合适的初始值并通过大量的计算,为此,文中利用三种方法计算了初始排序向量,并给出了算法的Matlab程序,最后通过实例说明。 二、模糊层次分析法 为解决AHP种所存在的问题,模糊层次分析法引入模糊一致矩阵,无需再进行一致性检验,同时使用幂法来计算排序向量,可以减少迭代齿数,提高收敛速度,满足计算精度的要求.具体步骤: 1.构造优先关系矩阵 采用0.1~0.9标度[2],建立优先判断矩阵 2.将优先关系矩阵转化为模糊一致矩阵 3.计算排序向量 (1)和行归一法: (2)方根法: (3)利用排序法: (4)利用幂法[5-6]求精度更高的排序向量: 否则,继续迭代。 三、模糊层次分析法的程序实现 给出模糊层次分析法的Matlab程序。 clear; clc; E=input('输入计算精度e:') Max=input('输入最大迭代次数Max:')

F=input('输入优先关系矩阵F:'); %计算模糊一致矩阵 N=size(F); r=sum(F'); for i=1:N(1) for j=1:N(2) R(i,j)=(r(i)-r(j))/(2*N(1))+0.5; end end E=R./R'; % 计算初始向量---------- % W=sum(R')./sum(sum(R)); % 和行归一法 %--------------------------------------------------------- for i=1:N(1) S(i)=R(i,1); for j=2:N(2) S(i)=S(i)*R(i,j); end end S=S^(1/N(1)); W = S./sum(S);%方根法%-------------------------------------------------------- % a=input('参数a=?'); %W=sum(R')/(N(1)*a)-1/(2*a)+1/N(1); %排序法 % 利用幂法计算排序向量----V(:,1)=W'/max(abs(W)); %归一化 for i=1:Max V(:,i+1)=E*V(:,i); V(:,i+1)=V(:,i+1)/max(abs(V(:,i+1))); if max(abs(V(:,i+1)-V(:,i)))k=i; A=V(:,i+1)./sum(V(:,i+1)); break Else End End 四、计算实例

层次分析法matlab程序举例

层次分析法程序举例: A=[1 1/7 1/5 2 4 1/3;7 1 3 5 5 3;5 1/3 1 5 5 3;1/2 1/3 1/5 1 2 1/3;1/4 1/5 1/5 1/2 1 1/5;3 1/3 1/3 3 5 1]; [v,d]=eig(A); eigenvalue=diag(d); lamda=max(eigenvalue); cil=(lamda-6)/5; crl=cil/1.26; w1=v(:,1)/sum(v(:,1)) 挑选合适的工作。经双方恳谈,已有三个单位表示愿意录用某毕业生。该生根据已有信息建立了一个层次结构模型,如下图所示。 程序: A=[1 1/7 1/5 2 4 1/3;7 1 3 5 5 3;5 1/3 1 5 5 3;1/2 1/3 1/5 1 2 1/3;1/4 1/5 1/5 1/2 1 1/5;3 1/3 1/3 3 5 1]; [v,d]=eig(A); eigenvalue=diag(d); lamda=max(eigenvalue); ci=(lamda-6)/5

cr=ci/1.26 w1=v(:,1)/sum(v(:,1)) B1=[1 1/4 1/2;4 1 3;2 1/3 1]; [v,d]=eig(B1); eigenvalue=diag(d); lamda=max(eigenvalue); cil1=(lamda-3)/2 cr1=cil1/0.52 b1w=v(:,1)/sum(v(:,1)) B2=[1 1/4 1/5;4 1 1/2;5 2 1]; [v,d]=eig(B2); eigenvalue=diag(d); lamda=max(eigenvalue); cil2=(lamda-3)/2 cr2=cil2/0.52 b2w=v(:,1)/sum(v(:,1)) B3=[1 1/2 2; 2 1 3;1/2 1/3 1]; [v,d]=eig(B3); eigenvalue=diag(d);

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个旅游胜地供你选择,试确定一个最佳地点。 在此问题中,你会根据诸如景色、费用、居住、饮食和旅途条件等一些准则去反复比较3个侯选地点。可以建立如下的层次结构模型。 目标层O 选择旅游地 准则层C 景色 费用 居住 饮食 旅途 措施层P 1P 2P 3P 1.2 构造判断矩阵

Matlab笔记——层次分析法

一、概述 层次分析法(Analytic Hierarchy Process, AHD)是将要决策的问题及其有关因素分解成目标、准则、方案等层次,进而进行定性和定量分析的决策方法。它的特征是合理地将定性与定量决策结合起来,按照思维、心理的规律把决策过程细致化(层次化、数量化)。 层次分析法广泛地应用到处理复杂的决策问题,而决策是基于该方法计算出的权重,所以也常用来确定指标的权重。 层次分析法的基本思路与人们对一个决策问题的思维、判断过程大体上是一样的。例如,选购一台笔记本电脑,假设有三种不同品牌款式的笔记本电脑A、B、C供选择。我们一般会根据价格、外观、重量、用途、功耗、品牌等一些准则去反复比较这个三个候选。首先,会确定这些准则在自己心目中各占多大比重,不同的人这种比重会有很大差异(喜欢玩游戏的人看重硬件性能和散热、预算有限的人看重价格等)。其次,还会就每一个准则将A、B、C进行对比,比如A最便宜,B次之;C性能最好,B次之;C的品牌最知名等。最后,将这两个层次的比较判断进行综合,在A、B、C中确定一台作为最符合自己需求的电脑。 二、算法步骤 1. 将问题条理化、层次化,建立层次结构模型 1)最高层(目标层)——只有一个元素:决策目标; 2)中间层(准则层)——考虑的因素,决策的准则、子准则;

3)最底层(方案层)——决策时的备选方案、措施。 层次分析法要解决的问题是,求出最底层对最高层的相对权重,以此对最底层的方案、措施进行排序,选择最优方案。 注1:为了避免两两比较判断过于复杂,每层次中各元素所支配的元素一般不要超过9个,否则应划分为若干子层; 注2:层次分析法只考虑相邻两个层次间自上向下的支配作用,认为同一层次的元素间相互独立,若考虑进来需要网络分析法(ANP )。 例如前文提到的选购笔记本电脑的决策模型,可以建立如下的层次结构: 2. 构造判断矩阵(成对比较矩阵) 构造好层次模型后,针对某一层来讲,在比较第i 个元素与第j 个元素相对于上一层某个因素的重要性时,使用数量化的相对权重a ij 来表示,假设共有n 个元素参与比较,则矩阵 1111()n ij n n n nn a a A a a a ??? ?== ? ??? L M O M L 称为判断矩阵(或成对比较矩阵)。 Saaty 根据绝大多数人认知事物的心理习惯,建议用1~9及其倒数作为标度来确定a ij 的值。 其中,2, 4, 6, 8分别介于1, 3, 5, 7, 9对应的重要程度之间。显然,A 中的元素满足:

层次分析法计算权重在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); end s=B(:,1); for j=2:n s=s+B(:,j); end c=sum(s);%计算近似最大特征值λmax w=s./c; d=A*w lam=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.1 disp('没有通过一致性检验'); else disp('通过一致性检验'); end end 3 案例应用 我们拟构建公司员工绩效评价分析权重,完整操作步骤如下: 3.1构建的评价指标体系 我们将影响员工绩效评定的指标因素分为:打卡、业绩、创新、态度与品德。 3.2专家打分,构建两两比较矩阵 A = 1.0000 0.5000 3.0000 4.0000 2.0000 1.0000 5.0000 3.0000 0.3333 0.2000 1.0000 2.0000 0.2500 0.3333 0.5000 1.0000 3.3在MATLAB中运用编写好的程序实现 直接在MATLAB命令窗口中输入 [w,lam,CR]=ccfx(A) 继而直接得出 d = 1.3035 2.0000 0.5145 0.3926 w = 0.3102 0.4691 0.1242 0.0966 lam =4.1687

层次分析法的MATLAB实现(20210228092712)

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 选择旅游地

MatLab层次分析法代码

>> A= [1 2 5 6 4 7 2 4;1/2 1 2 4 2 7 1 2; 1/5 1/2 1 5 1 5 1/2 2 ; 1/6 1/4 1/5 1 1/3 3 1/2 1/4 ;1/4 1/2 1 3 1 5 1 2;1/7 1/7 1/5 1/3 1/5 1 1/7 1/5;1/2 1 2 2 1 7 1 2;1/4 1/2 1/2 4 1/2 5 1/2 1]; >> d=eig(A) %求全部特征值所组成的向量 >> [V,D]=eig(A) %求特征值及特征向量所组成的矩阵 >> A= [1 2 5 6 4 7 2 4;1/2 1 2 4 2 7 1 2; 1/5 1/2 1 5 1 5 1/2 2 ;1/6 1/4 1/5 1 1/3 3 1/2 1/4 ;1/4 1/2 1 3 1 5 1 2;1/7 1/7 1/5 1/3 1/5 1 1/7 1/5;1/2 1 2 2 1 7 1 2;1/4 1/2 1/2 4 1/2 5 1/2 1]; d=eig(A) %求全部特征值所组成的向量 [V,D]=eig(A) %求特征值及特征向量所组成的矩阵 d = 8.4243 -0.0020 + 1.7077i -0.0020 - 1.7077i -0.1240 + 0.7030i -0.1240 - 0.7030i -0.1103 + 0.3207i -0.1103 - 0.3207i 0.0483 V = Columns 1 through 7 0.7427 0.8569 0.8569 0.7153 0.7153 0.7100 0.7100 0.3893 0.1636 + 0.0231i 0.1636 - 0.0231i 0.1747 - 0.0500i 0.1747 + 0.0500i -0.2144 + 0.4572i -0.2144 - 0.4572i 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 0.0985 -0.0976 - 0.0879i -0.0976 + 0.0879i 0.0679 + 0.0635i 0.0679 - 0.0635i 0.0183 + 0.0558i 0.0183 - 0.0558i 0.2588 0.0176 + 0.1232i 0.0176 - 0.1232i 0.0227 + 0.3409i 0.0227 - 0.3409i -0.0373 - 0.2293i -0.0373 + 0.2293i 0.0519 0.0080 - 0.0585i 0.0080 + 0.0585i -0.0134 - 0.0662i -0.0134 + 0.0662i -0.0507 - 0.0850i -0.0507 + 0.0850i 0.3352 0.1943 - 0.0809i 0.1943 + 0.0809i -0.4321 + 0.2823i -0.4321 - 0.2823i 0.1131 + 0.3427i 0.1131 - 0.3427i

Matlab笔记_层次分析法020

20. 层次分析法 一、概述 层次分析法(Analytic Hierarchy Process, AHD)是将要决策的问题及其有关因素分解成目标、准则、方案等层次,进而进行定性和定量分析的决策方法。它的特征是合理地将定性与定量决策结合起来,按照思维、心理的规律把决策过程细致化(层次化、数量化)。 层次分析法广泛地应用到处理复杂的决策问题,而决策是基于该方法计算出的权重,所以也常用来确定指标的权重。 层次分析法的基本思路与人们对一个决策问题的思维、判断过程大体上是一样的。例如,选购一台笔记本电脑,假设有三种不同品牌款式的笔记本电脑A、B、C供选择。我们一般会根据价格、外观、重量、用途、功耗、品牌等一些准则去反复比较这个三个候选。首先,会确定这些准则在自己心目中各占多大比重,不同的人这种比重会有很大差异(喜欢玩游戏的人看重硬件性能和散热、预算有限的人看重价格等)。其次,还会就每一个准则将A、B、C进行对比,比如A 最便宜,B次之;C性能最好,B次之;C的品牌最知名等。最后,将这两个层次的比较判断进行综合,在A、B、C中确定一台作为最符合自己需求的电脑。 二、算法步骤 1. 将问题条理化、层次化,建立层次结构模型 1)最高层(目标层)——只有一个元素:决策目标;

2)中间层(准则层)——考虑的因素,决策的准则、子准则; 3)最底层(方案层)——决策时的备选方案、措施。 层次分析法要解决的问题是,求出最底层对最高层的相对权重,以此对最底层的方案、措施进行排序,选择最优方案。 注1:为了避免两两比较判断过于复杂,每层次中各元素所支配的元素一般不要超过9个,否则应划分为若干子层; 注2:层次分析法只考虑相邻两个层次间自上向下的支配作用,认为同一层次的元素间相互独立,若考虑进来需要网络分析法(ANP)。 例如前文提到的选购笔记本电脑的决策模型,可以建立如下的层次结构: 2. 构造判断矩阵(成对比较矩阵) 构造好层次模型后,针对某一层来讲,在比较第i个元素与第j 个元素相对于上一层某个因素的重要性时,使用数量化的相对权重a ij来表示,假设共有n个元素参与比较,则矩阵

Matlab建模教程层次分析法

第八章层次分析法 层次分析法(Analytic Hierarchy Process,简称AHP )是对一些较为复杂、较为模糊的问题作出决策的简易方法,它特别适用于那些难于完全定量分析的问题。它是美国运筹学家T. L. Saaty 教授于70年代初期提出的一种简便、灵活而又实用的多准则决策方法。 § 1层次分析法的基本原理与步骤 人们在进行社会的、经济的以及科学管理领域问题的系统分析中,面临的常常是一个由相互关联、相互制约的众多因素构成的复杂而往往缺少定量数据的系统。层次分析法为这类问题的决策和排序提供了一种新的、简洁而实用的建模方法。 运用层次分析法建模,大体上可按下面四个步骤进行: (i)建立递阶层次结构模型; (ii)构造出各层次中的所有判断矩阵; (iii)层次单排序及一致性检验; (iv)层次总排序及一致性检验。 下面分别说明这四个步骤的实现过程。 1.1递阶层次结构的建立与特点 应用AHP分析决策问题时,首先要把问题条理化、层次化,构造出一个有层次的结构模型。在这个模型下,复杂问题被分解为元素的组成部分。这些元素又按其属性及关系形成若干层次。上一层次的元素作为准则对下一层次有关元素起支配作用。这些层次可以分为三类: (i)最高层:这一层次中只有一个元素,一般它是分析问题的预定目标或理想结果,因此也称为目标层。 (ii )中间层:这一层次中包含了为实现目标所涉及的中间环节,它可以由若干个层次组成,包括所需考虑的准则、子准则,因此也称为准则层。 (iii )最底层:这一层次包括了为实现目标可供选择的各种措施、决策方案等,因此也称为措施层或方案层。 递阶层次结构中的层次数与问题的复杂程度及需要分析的详尽程度有关,一般地层次数不受限制。每一层次中各元素所支配的元素一般不要超过9个。这是因为支配 的元素过多会给两两比较判断带来困难。 下面结合一个实例来说明递阶层次结构的建立。 例1假期旅游有R、F2、F3 3个旅游胜地供你选择,试确定一个最佳地点。在此问题中,你会根据诸如景色、费用、居住、饮食和旅途条件等一些准则去反复比较3个侯选地点。可以建立如下的层次结构模型。 目标层0 准则层C P1 P2 P3 措施层P 1.2构造判断矩阵 层次结构反映了因素之间的关系,但准则层中的各准则在目标衡量中所占的比重并不一定相同,在决策者的心目中,它们各占有一定的比例。

matlab用层次分析法输入判断的源程序

matlab用层次分析法输入判断矩阵A(n阶)源程序如下: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);

层次分析法及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)机会多(如新单位或单位发展有后劲)等。 问题:现在有多个用人单位可供她选择,因此,她面临多种选择与决策,问题就是她将如何作出决策与选择?——或者说她将用什么方法将可供选择的工作单位排序? 工作选择 贡献收入发展声誉工作环境生活环境

数学建模层次分析法题目及程序

假期旅游问题 现有三个目的地可供选择(方案):风光绮丽的杭州(),迷人的北戴河(),山水甲 天下的桂林()。有5个行动方案准则:景色、费用、居住、饮食、旅途情况。 目标层 准则层 方案层 选择旅游地的层次结构 1-9的标度方法 1-9的标度方法是将思维判断数量化的一种好方法。首先,在区分事物的差别时,人们 总是用相同、较强、强、很强、极端强的语言。再进一步细分,可以在相邻的两级中插入折衷的提法,因此对于大多数决策判断来说,1-9级的标度是适用的。其次,心理学的实验表 明,大多数人对不同事物在相同程度属性上差别的分辨能力在5-9级之间,采用1-9的 标度反映多数人的判断能力。再次,当被比较的元素其属性处于不同的数量级时,一般需要将较高数量级的元素进一步分解,这可保证被比较元素在所考虑的属性上有同一个数量级或比较接近,从而适用于1 -9的标度。 选择旅游地 J景费居饮旅 色用住食途 C2 C 3 C4 C5 C1 G 『1 1/2 4 3 3、 C2 2 1 7 5 5 A = C3 1/4 1/7 1 1/2 1/3 C4 1/3 1/5 2 1 1 C5 订/3 1/5 3 1 1」

相对于旅途 R P 2 F 3 P 「1 1 1/4、 B 5 =R 2 1 1 1/4 讥4 4 1」 程序: A=[1 1/2 4 3 3; 2 1 7 5 5; 1/4 1/7 1 1/2 1/3; 1/3 1/5 2 1 1; 1/3 1/5 3 1 1]; [x,y]=eig(A); eige nvalue=diag(y); m=max(eige nvalue); lamda=m n=fin d(m==eige nvalue); y_lamda=x(:,n); s=sum(y_lamda); W2=y_lamda./s B1=[ 1 2 5; 1/2 1 2; 相对于景色 P P 2 R P 1 f 1 2 5 B 1 =P 2 1/2 1 2 P 3 <1/5 1/2 '1 相对于费用 R P 2 P 3 R (1 1/3 1/8 B 2 =F2 3 1 1/3 叭 3 '1 ; B 3 R 『1 3 4 、 B 4 =P 2 1/3 11 F 3 '^1/4 1 '1』

相关文档
相关文档 最新文档